docs(readme): stop ordering the field transcript back into the tree (#1494) - #1569
Merged
os-sales merged 1 commit intoSep 3, 2026
Merged
Conversation
Step 3 of "Maintain The Docs" told the next maintainer to update docs/developers/api_reference.md when object fields change — an order to perform the act 2026-08-31 ruling item 5 forbids by name, aimed at a page that now states in its own words that field lists are deliberately not restated on it. Following it faithfully re-creates the fifteen `Key fields:` lists PR #1495 removed. The Start Here row labelled it "Object field reference", which described the page as it was rather than as it is. Both lines are reworded in place rather than deleted, matching the shape the same ruling's earlier cleanups landed in docs/ARCHITECTURE.md and docs/MAINTENANCE.md: keep the entry, repoint it at source, carry a "Supersedes ... 2026-08-31 ruling, item 5." note. Step 3 now says what to do instead — leave the page alone, because the `fields:` block of src/objects/*.object.ts is the reference, so editing the object file is the update. Steps 1 and 5 already carry the two obligations a field change really has: the business-concept docs under content/docs/, and the checks in docs/STATUS.md where `pnpm validate` is authoritative for the counts. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019hUuCQStzXGMFSX4dzww5t
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
os-sales
marked this pull request as ready for review
September 3, 2026 13:11
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #1494
What was false
Two statements about
docs/developers/api_reference.md, both left stranded when PR #1495 replaced that page's transcript with a pointer at source:Line 63 is the sharp one. It orders a maintainer to update a file that now states, in its own words, that it deliberately does not carry the thing they would be updating:
A reader who follows it faithfully re-creates the fifteen
Key fields:lists PR #1495 removed, which is the actAGENTS.mddocumentation-discipline rule 5 forbids by name: "The single source of truth for a machine fact — a dataset's dimensions, an object's fields, the roster of objects itself — is the self-describing metadata undersrc/." Line 20's label described the page as it was rather than as it is.The call: reword both lines in place, not delete
The card left this open on purpose, so here is the argument for the route taken.
1. The repo has already answered this question twice, in the same ruling's cleanup, and answered it "reword".
docs/ARCHITECTURE.mdkept itsengines.protocolsentence and repointed it atobjectstack.config.ts(PR #1476).docs/MAINTENANCE.mdkept step 2 of its own numbered per-PR change loop — the closest structural twin of the line under edit — and repointed it atsrc/translations/. Both carry a*Supersedes … — 2026-08-31 ruling, item 5.*note. Deleting here would makedocs/README.mdthe one site in that family that answers the same question with silence, and a reader comparing the two checklists would find no rule where its sibling has one.2. Deleting removes the question, not the answer. Step 3 exists because someone wanted the field reference to stay current — a real want. A checklist that simply drops the entry leaves the next maintainer looking at an
api_reference.mdrow in the Start Here index with no maintenance rule attached to it, and re-adding a table is the cheapest thing they can do about that. That is how one roster reached four files. A negative instruction is enforceable by a reader; an absent one is not.3. Deleting is safe, it just buys nothing. Measured, not assumed: nothing in this repo cross-references "step 3" of this list, and nothing links to the
Maintain The Docsheading, so renumbering would break no reference. The argument against deleting is editorial, not mechanical — which is why the honest route was to argue it rather than pick the smaller diff.What a maintainer should do instead when object fields change
This is the half a bare deletion would drop, so the step now states it:
src/objects/*.object.tsfile. Thefields:block is the reference — editing the object file is the update, and there is no second copy to keep in step.api_reference.mdis a pointer page and needs no edit at all.content/docs/— step 1 of the same list already says this, and rule 5 governs its shape: concepts, never a transcribed field table.docs/STATUS.md— step 5, wherepnpm validateis authoritative for object and field counts.Before / after
Line 20:
The new label is the page's own subtitle read back — "Where this repository's object and field inventory lives, and how to read it from source" — and it fits the
Needcolumn's noun-phrase style.Line 63:
Measurements
docs/README.mdthat describeapi_reference.mdas carrying field lists. Whole file read (69 lines).api_reference— 2 hits, both of them.fieldcase-insensitive — 2 hits, the same two lines.reference— 4 hits: lines 20 and 63, plus lines 6 and 28, which describe the wholedocs/tree as "developer reference" and make no claim about this page. No third sentence anywhere.docs/,.github/,content/docs/,AGENTS.md,CLAUDE.md,README.mdfor Update-this-doc instruction shapes and for field-transcription language. The literal shape "Update docs/…" returns exactly three hits, all inside this one list (lines 62, 63, 64). Every other hit is a pointer-at-source statement of the kind this PR is aligning with (docs/ARCHITECTURE.md,docs/MAINTENANCE.md,docs/DEPLOYMENT.md,api_reference.mditself) or the rule text inAGENTS.md:267andAGENTS.md:326. Nothing to report as a second offender.Object field referencehad exactly one occurrence in the repo — the line being changed. Only two test files referencedocs/README.mdat all (below).link-check.ymlrunscheck-modified-files-onlyon PRs, so it does read this file; the relative link targetdevelopers/api_reference.mdis unchanged and resolves, and the edit adds no new link.step 3cross-reference to this list exists anywhere in the repo — thestep Nhits aredocs/MAINTENANCE.md:193(its own §5 loop),.github/instructions/architect.md, twocontent/docspages and three test/script comments, none of them about this list. Nothing links to theMaintain The Docsanchor either. Reword keeps 1–5 intact regardless.docs/README.mdis inside a guarded tree, and the guard stays green and non-vacuous.test/docs-src-tree-paths.test.tslists it in bothTREE_DOCS(line 114) andTREE_DIAGRAM_DOCS(line 174). Neither pins contents: the first resolves everysrc/DIR/path named inline against the real tree, the second every entry drawn under the tree diagram'ssrc/node. The new step-3 text namessrc/objects/*.object.tsinline, whichinlineSrcDirsreads asobjects— a directory that exists — so membership has not gone vacuous and the file gained a second real inline claim.test/docs-role-hierarchy.test.ts:187also scans it for forbidden role-hierarchy spellings; the edit introduces none.docs/is insideTEXT_SCANNEDinscripts/lib/source-hygiene-surface.mjs, so the control-byte check reads this file — self-scanned clean before committing, andpnpm hygieneconfirms.docs/README.mdis not inCOUNT_DOCSand not in the token ratchet surface (src/**/*.ts), so neither can be affected.No ablation. Nothing behavioural changes — this is two lines of English in an index file, with no code path, no guard and no generated artefact behind it. There is nothing to mutate and no red leg to produce, and manufacturing one would be ceremony rather than evidence. The edit is instead proved on disk: blob
3dfceefebefore,9a7c73f9after, with anchored counts on both the removed text (Object field reference0, the old step 3 line 0) and the injected text (new label 1, new step-3 head 1, theSupersedesnote 1), and both edited sections read back in full.Verification
pnpm verifyin full, on the tree committed ase2fddae8(working tree clean againstHEAD, so the measured tree is the pushed tree), run under this container's shared heavy-verify lock:Exit code captured before any pipe; the verdict line above is the lock entry point's own, not a bare
$?.Scope
docs/README.mdplus.changeset/readme-stops-ordering-the-field-transcript.md, exactly as declared.docs/developers/api_reference.mdis correct after PR #1495 and was read but not touched;AGENTS.mdis governed and is the source of the rule. No guard is added or retired — 2026-08-31 ruling item 3 keeps gate-type mechanisms on the platform.🤖 Generated with Claude Code
https://claude.ai/code/session_019hUuCQStzXGMFSX4dzww5t
Generated by Claude Code