docs(*): send the README's reference sections to the documentation site - #519
Conversation
Five sections are gone from both READMEs: self-hosting, the command reference, the documentation index, the repo layout and the architecture. Each is already a page on the site, and a second copy in the README is the one that drifts. Quick Start now ends by naming the site, so a reader who has just installed Raven is told where the rest lives. The repo-layout table went with them, and it was never only prose: it is the canonical set of commit scopes. A test held it equal to the packages on disk while commitlint computes its enum from that same tree, so removing the section broke both of that test's assertions. The test reads the documentation page now, which carries the same table and the same key directories block, and it is renamed with it because it no longer reads a README. AGENTS.md, raven/README.md and two comments in commitlint.config.cjs name the page as well. The enum commitlint computes is unchanged at 71 scopes, because it was always read from the tree rather than from the table. The dated records under docs/plans and docs/specs still describe the old location. They are records of the tree as of their date and are left alone. Co-authored-by: Claude (claude-opus-5[1m]) <noreply@anthropic.com>
gloryfromca
left a comment
There was a problem hiding this comment.
No blockers; this can merge as far as I am concerned.
I reviewed the complete github/main...HEAD diff and the surrounding documentation-site pages, repository rules, CONTEXT-MAP.md/runtime terminology, affected scope-canon contract and commitlint callers, relevant history, deleted-anchor compatibility, and architecture boundaries. The canonical table and key-directory checks still follow the moved English page; I found no in-repository links to the deleted README anchors, no weakened test used to manufacture a green result, and no runtime or dependency change.
Verification: uv run --frozen --python 3.12 --all-extras pytest tests/test_scope_canon.py tests/test_docs_site.py tests/test_docker_runtime.py tests/test_living_docs.py -q (18 passed); the exact underlying commands for docs-build, check-source-language, and check-large-files passed; git diff --check github/main...HEAD passed. (make itself is unavailable in this environment, so I invoked those Makefile recipes directly.)
ZuyiZhou
left a comment
There was a problem hiding this comment.
Approving. The part that could actually break something is the scope canon moving out of the README, so that is what I checked.
The enum is unchanged and structurally could not have changed: base and head both compute 71 scopes and the sorted sets are identical. That is guaranteed rather than lucky, because ravenPackages() reads the tree relative to the config's own directory and never reads the table -- I confirmed it the blunt way, by running the base config from outside the repo and watching it fail on a missing raven/ rather than on a missing table.
The guard still bites from its new source. Dropping one row from the documentation page fails with package on disk without a table row: ['acp'], so the coupling survived the move intact.
One scoping change worth naming, since the test got looser and the description does not mention it: the old helper cut the Repo layout section out of the README before matching rows, and the new one matches against the whole page. That is harmless today -- repo-layout.md carries exactly one table, 40 rows -- and if a second table ever appeared, the row set would exceed the packages on disk and the test would fail loudly rather than quietly accept a wrong row. So it fails safe. It is just a wider net than the one it replaced.
The real residue is the other language. The canonical scope table now exists twice, and only the English page is guarded. The two currently agree -- I diffed the row keys and they are identical, 40 apiece -- but the parity guard in test_docs_site.py compares page existence and heading anchors, not table contents, so the Chinese table can drift from the tree with nothing red. Cheap to close later by running the same row extraction over both pages.
The rest checks out:
- The pointer updates are consistent across AGENTS.md,
raven/README.mdand the two commitlint comments. - No dangling anchors. The only internal anchors left in either README are
#readme-top, whose target is present in both files, and the one other hit in the tree points atdata/longrun/README.md, a different file. - Every surviving mention of the old README sections is confined to
docs/plans/anddocs/specs/, which CONTEXT.md defines as records of the tree as of their date. Correctly left alone and correctly disclosed. - 13 targeted tests pass. A broader sweep threw 88 import errors, all
ModuleNotFoundError: raven_ppt, which reproduce identically on the base commit -- a plugin missing from my throwaway environment, nothing to do with this change.
The rename is the right call and matches section 5.1's aspect-suffix form: the file no longer reads a README, so keeping readme in its name would have been the misleading option.
|
Not a blocker -- and this landed while I was reviewing, so it is now a note about What I verified, on the merged tree. Both READMEs lose the same ten headings, so the two stay The exception: It holds eight sections a reader cannot get elsewhere -- "What comes up", "Signing in", So the file is not deleted, it is unreachable. That is the cheapest kind of loss to ship and the The smallest fix is one line: a link from For the record, what else I checked and found sound: the four re-pointed readers all name a file One small thing while I am here: commitlint.config.cjs's second comment now reads "see that page's |
|
Not a blocker -- a second, smaller one, separate from the Both READMEs now reach 480 lines of moved reference material through exactly one route: an external The content is in the tree at Two things I want to state precisely rather than let the point run further than it should. First, And the design spec itself does not require a fallback link -- its Risk section names the exposure The cheap version is one line per README, next to the link that is already there, naming |
Summary
Five sections leave both READMEs: self-hosting, the command reference, the
documentation index, the repo layout and the architecture. Each is already a
page on the documentation site, and a second copy in the README is the one
that drifts. Quick Start now ends by naming the site, so a reader who has just
installed Raven is told where the rest lives. English drops 258 lines and
Chinese 228, and the two stay in step: every section removed and the pointer
added exist in both.
The repo-layout table went with them, and it was never only prose. It is the
canonical set of commit scopes: a test held it equal to the packages on disk
while commitlint computes its enum from that same tree, so the table is what
keeps the list a reader is sent to and the list the tooling enforces from
splitting. Removing the section broke both of that test's assertions, and the
test reads the documentation page now, which carries the same table and the
same key directories block. It is renamed with the move, because it no longer
reads a README. AGENTS.md, raven/README.md and two comments in
commitlint.config.cjs name the page as well. The enum commitlint computes is
unchanged at 71 scopes, because it was always read from the tree rather than
from the table.
Two things are deliberately left alone. The dated records under docs/plans and
docs/specs still describe the old location: they record the tree as of their
date. And the English README keeps a Showcase section the Chinese one does not
have, which is how they already were.
Type
Verification
The coupling was demonstrated rather than assumed: removing the sections first
was run against the existing test, which failed with "README.md lost its 'Repo
layout' section" and "Key directories lost its agents/ line". After repointing,
dropping one table row from the documentation page fails it again with "package
on disk without a table row: ['acp']", so the guard still bites from its new
source.
uv run pytest tests/test_scope_canon.py tests/test_docs_site.py tests/test_docker_runtime.py tests/test_living_docs.py tests/test_external_consumer_surface.py-> 22 passeduv run pytestover the eleven other tests that read a README -> 859 passedmake lint-python,make lint-imports,make lint-deps,make lint-types-> exit 0, against an environment synced the way CI installs
make check-commits,make check-source-language,make check-large-files,and
pre-commit run --from-ref origin/main --to-ref HEAD-> exit 0make docs-build-> builtnode -eon commitlint.config.cjs -> 71 scopes, the same set as before#readme-top, whosetarget is still there, and no remaining link points into a removed section
Risk
User-visible: the README no longer answers self-hosting, the commands, the
layout or the architecture; it points at the site instead. Anyone who had
bookmarked a README anchor for one of those sections loses it. The scope list
AGENTS.md sends a contributor to is now a page rather than a README section.
Rollback: revert the commit. Nothing outside the repository depends on the
removed sections, and the site pages they moved to were already published.
Related Issues
N/A