Skip to content

docs(readme): bind the crate count to the workspace - #531

Draft
seonghobae wants to merge 5 commits into
fix/contradictory-zero-count-recordsfrom
fix/readme-crate-count-drift
Draft

seonghobae wants to merge 5 commits into
fix/contradictory-zero-count-recordsfrom
fix/readme-crate-count-drift

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

Defect

The README had two inconsistent workspace crate-count claims while the measured workspace contains 58 directories under crates/ with a Cargo.toml. This Draft binds every explicit README count and the adjacent crate inventory to the repository instead of relying on manual refresh.

Current repair

  • Both README claims are 58.
  • tests/quality/test_readme_crate_count.py requires at least one explicit N independently documented ... crates claim, checks every such claim against the live workspace count, and requires the README crate list to equal the workspace crate set.
  • docs/product-technical-gap-baseline.md is not touched; that shared ledger remains owned by Draft docs(ddd): restore queue authority and bounded-context ownership #435.

Current exact stack

Current exact head: 21e0e12691efc7eccd22ab832b83b978ee271e43.

This dependent Draft is now stacked on the current main-target foundation successor #538 exact 0a6947b11f2dba9e161f2abe8bdec0f652d4b47a (fix/contradictory-zero-count-records) rather than the stale #523 base.

The ordinary-forward restack commit 21e0e126... has prior #531 exact be17b82967c7dc0f752e35aafa008b33fc1f6a5f as first parent and #538 exact 0a6947b... as second parent. The branch ref advanced with force=false; no destructive rebase or force update was used. Relative to #538, the intended surviving delta is only README.md plus tests/quality/test_readme_crate_count.py.

Evidence boundary

Pre-restack local evidence and predecessor-head checks do not transfer to 21e0e126.... Keep this PR Draft while #538 is unlanded. After #538 survives protected-main integration, restack this unchanged delta non-force onto the surviving protected head if necessary and reacquire applicable exact-head checks plus qualifying independent review.

Do not self-approve, bypass required gates, copy the shared product-gap ledger into this lane, or treat skipped/cancelled/predecessor checks as GREEN.

GAP-014 lists reconciling the README crate count as remaining work. The
README stated two different numbers, 50 in one paragraph and 54 in the
next, against 58 crate manifests under `crates/`. That is the first claim
a reader meets and both statements were wrong.

Both now read 58, and `tests/quality/test_readme_crate_count.py` counts
the directories under `crates/` that carry a `Cargo.toml` and asserts
every counted claim in the README matches. Changing one number to 57
fails it with `57 != 58`, so the pairing is enforced rather than asserted.

`docs/TRD.md` states no crate count, so it needed none. The gap ledger
records the half that is now closed and the half that is not.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 15, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@seonghobae
seonghobae marked this pull request as draft September 15, 2026 03:58
Retain the README correction and executable drift guard from #531 while
restacking non-force onto #523, the verified successor of #517/#525.

The shared product technical gap baseline remains owned by #435, so this
tree deliberately drops #531's competing edit and leaves an exact handoff
to that lane instead of creating a second writer.

The test now requires at least one explicit crate-count claim rather than
forcing the README to keep two redundant statements. Every claim that is
present still has to equal the live set of crate manifests.
seonghobae and others added 2 commits September 15, 2026 16:20
Fixing the counts was not enough. The README also prints the crate list,
and that list held 56 of the 58 directories: `mlx_native_receipt` and
`orchestrator_live` were absent. A reader checking which crates exist
would have missed both, and the count I corrected sat directly above a
list that disagreed with it.

The list is complete and stays sorted. `test_readme_lists_every_crate`
compares the printed list against `crates/` as a set, so a stated count
can no longer stand beside an incomplete list. Deleting one entry fails
it by naming the missing crate.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@seonghobae

Copy link
Copy Markdown
Contributor Author

The count was right and the list beside it was still wrong

Correcting the two numbers was not enough, and I should have checked this in the first pass rather than trusting that a count and the list under it agree.

The README also prints the crate list. It held 56 of the 58 directories. mlx_native_receipt and orchestrator_live were absent, so the corrected count sat directly above a list that disagreed with it. A reader checking which crates exist would have missed both.

listed in README: 56   actual: 58
on disk but missing from README: ['mlx_native_receipt', 'orchestrator_live']

Both are now listed, in sorted position.

test_readme_lists_every_crate compares the printed list against crates/ as a set, so a stated count can no longer stand beside an incomplete list. Deleting one entry fails it and names the missing crate:

AssertionError: Items in the second set but not the first:
FAILED (failures=1)

Merged, not forced

Another session restacked this branch onto #523's successor while I was working. I fetched and merged rather than forcing, and both changes stand together with no conflict.

Gate Result
python3 -m unittest discover -s tests/quality -p 'test_*.py' 185 tests, OK
python3 -m coverage report --fail-under=100 100% (1380 statements, 694 branches, 0 missing)
python3 scripts/validate_documentation.py passed
grep -c '^crates/' README.md 58
git diff --check clean

Note that this branch now inherits #523's draft guard through that restack, so its merge is coupled to the policy question open on #523. That coupling was not mine to make, and I have left it as the other writer arranged it rather than unpicking someone else's restack.

Preserve the README/test delta while moving the dependent branch onto the current #538 foundation successor. The shared product-gap ledger remains untouched.

This is an ordinary-forward merge restack: first parent is the existing #531 head and second parent is #538 exact 0a6947b.
@seonghobae
seonghobae changed the base branch from fix/skip-ci-on-draft-pull-requests to fix/contradictory-zero-count-records September 16, 2026 02:58
@seonghobae seonghobae added documentation Improvements or additions to documentation priority: medium labels Sep 19, 2026 — with ChatGPT Codex Connector
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation priority: medium

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant