Skip to content

docs: make the README's counts and claims match the tree - #91

Merged
srpatcha merged 1 commit into
masterfrom
docs/readme-matches-reality
Aug 30, 2026
Merged

docs: make the README's counts and claims match the tree#91
srpatcha merged 1 commit into
masterfrom
docs/readme-matches-reality

Conversation

@srpatcha

Copy link
Copy Markdown
Member

Everything the README documents was re-run against the tree. The build and test commands work verbatim — including the note that EOS_PRODUCT=vbox_test is required for the OTA, sensor, motor and power cases, which is correct and worth confirming rather than assuming.

Stale counts

claim actual
83 boards 84
~40 product profiles 48

The board line needed more than a number

"carries descriptors for 83 boards"

That reads as 83 supported boards. 71 of the 84 are named generic-*. The sentence now says a descriptor is not a port and that none has been validated on hardware — which is what STATUS.md records.

Added a Status section

The README had no maturity signal at all. A reader had no way to learn the two things that most change how they'd use this:

  • Networking is Planned. net/ is an API with a POSIX backend for host builds; there's no IP stack for bare-metal targets and eos_net_connect() returns -1 there. ADR-014 records lwIP as the decision.
  • RSA/ECC signature verification is Planned. Those routines are stubs and refuse to run without EOS_ALLOW_STUB_CRYPTO. AES, SHA-256 and SHA-512 are implemented and pass NIST vectors — the distinction matters.

It also states plainly that nothing has been observed to boot on hardware, and that no latency/throughput/power figure is published because no reproducible benchmark exists to link to. §25 requires the link, and the absence of numbers is easier to misread than their presence.

Added cross-compiling

It works and was undocumented. Three of the six toolchain files build clean and produce armv7e-m and armv7 objects; the full library set measures 15.8 KB flash / 26.0 KB RAM on Cortex-M4. RISC-V and AArch64 are named as unverified rather than listed alongside the three that work.

Verification

Every count re-counted from the tree. Both documented test commands run — ctest 30/30, run_all_tests.py 10 passed. The new cross-compile block run verbatim: 0 build errors.

Depends on #88 for STATUS.md, which this links twice.

🤖 Generated with Claude Code

Everything the README documents was re-run against the tree. The build and
test commands work verbatim, including the note that EOS_PRODUCT=vbox_test is
required for the OTA, sensor, motor and power cases — that is correct and was
worth confirming rather than assuming.

Three counts were stale: 83 boards is 84, "~40 product profiles" is 48.

The board line needed more than a number. "carries descriptors for 84 boards"
reads as 84 supported boards, and 71 of the 84 are named generic-*. The
sentence now says a descriptor is not a port and that none has been validated
on hardware, which is what STATUS.md records.

Added a Status section, because the README had no maturity signal at all and
a reader had no way to learn the two things that most change how they would
use this:

- Networking is Planned. net/ is an API with a POSIX backend for host builds;
  there is no IP stack for bare-metal targets and eos_net_connect() returns -1
  there. ADR-014 records lwIP as the decision.
- RSA and ECC signature verification is Planned. Those routines are stubs and
  refuse to run without EOS_ALLOW_STUB_CRYPTO. AES, SHA-256 and SHA-512 are
  implemented and pass NIST vectors, so the distinction matters.

Also states plainly that nothing has been observed to boot on hardware, and
that no latency, throughput or power figure is published because no
reproducible benchmark exists to link to — §25 requires the link, and the
absence of numbers is easier to misread than their presence.

Added the cross-compiling section. It works and was undocumented: three of the
six toolchain files build clean and produce armv7e-m and armv7 objects, and
the full library set measures 15.8 KB flash and 26.0 KB RAM on Cortex-M4 via
arm-none-eabi-size -t. RISC-V and AArch64 are named as unverified rather than
listed alongside the three that work.

Verified: every count re-counted from the tree; both documented test commands
run (ctest 30/30, run_all_tests.py 10 passed); the new cross-compile block run
verbatim with 0 build errors.

Depends on #88 for STATUS.md, which this links twice.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@srpatcha
srpatcha merged commit 14f8ed4 into master Aug 30, 2026
20 of 27 checks passed
@srpatcha
srpatcha deleted the docs/readme-matches-reality branch August 30, 2026 22:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant