Skip to content

Commit 2700cd8

Browse files
dmealingclaude
andcommitted
docs(skills): meta docs has three surfaces, and the codegen reference listed two
0.24.0 turned the requirement ledger into a documentation surface and put it in the DEFAULT set — `surfaces: ["model", "api", "requirements"]` — but the TypeScript codegen reference still opened "one door, two surfaces" and its command block still said "both surfaces". An agent working from it would not know `./docs/requirements.md` and `./docs/requirements.toon` were being written on every plain `meta docs` run, nor that `--requirements` exists to ask for them alone. That matters more than a missing flag usually would, because the ledger is the one surface whose whole value is that somebody READS it. A capability declared, gated by `verify`, and rendered into a page nobody was told about is a ledger maintained for a reader who never arrives. The entry also records what an empty ledger does, since the obvious guess is wrong: a project with no requirement.* nodes writes no file AND the run says nothing about the surface, deliberately — reporting "0 requirement pages" would advertise a surface that never ran, which is the same mistake as the reference itself was making in the other direction. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NynrRND6ZUwGvq3ZUTCfxG
1 parent 13c2c22 commit 2700cd8

3 files changed

Lines changed: 33 additions & 9 deletions

File tree

  • agent-context/skills/metaobjects-codegen/references
  • fixtures/agent-context-conformance
    • ts-react-tanstack/expected/.claude/skills/metaobjects-codegen/references
    • ts-requirements/expected/.claude/skills/metaobjects-codegen/references

‎agent-context/skills/metaobjects-codegen/references/typescript.md‎

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,10 +133,10 @@ cross-subtype 404. Conformance-gated by `fixtures/api-contract-conformance/tph`
133133
(HTTP wire shape) and `fixtures/persistence-conformance/tph-*` (single-table
134134
runtime semantics).
135135

136-
## Docs — `meta docs` (one door, two surfaces)
136+
## Docs — `meta docs` (one door, three surfaces)
137137

138138
Documentation is NOT a `meta gen` generator. The single door is the `meta docs`
139-
command, which emits two cross-linked **surfaces** under one output dir (default
139+
command, which emits three cross-linked **surfaces** under one output dir (default
140140
`./docs`):
141141

142142
- **model surface** (`./docs/<Entity>.md`, `./docs/<Template>.md`) — the neutral
@@ -146,11 +146,19 @@ command, which emits two cross-linked **surfaces** under one output dir (default
146146
`./docs/api/AGENT-API.md`) — the SDK/API reference: the concrete imports,
147147
function signatures, payload field shapes, and runnable examples for *this*
148148
project's generated code.
149+
- **requirements surface** (`./docs/requirements.md`, `./docs/requirements.toon`) —
150+
the declared `requirement.*` ledger as documentation, with each entry headed by its
151+
dotted path and its `title` where it has one, and each entity page naming the
152+
requirements that claim it. Metadata-alone like the model surface, so it needs no
153+
gen config. **On by default since 0.24.0** — a project declaring no `requirement.*`
154+
nodes writes no requirements file and the run says nothing about the surface at all,
155+
deliberately: reporting "0 requirement pages" would advertise a surface that never ran.
149156

150157
```bash
151-
npx meta docs # both surfaces → ./docs (model) + ./docs/api (api)
158+
npx meta docs # all three → ./docs (model) + ./docs/api + ./docs/requirements.*
152159
npx meta docs --model # model surface only
153160
npx meta docs --api # api surface only
161+
npx meta docs --requirements # requirement ledger only
154162
npx meta docs --out ./site-docs # write under a different root
155163
```
156164

‎fixtures/agent-context-conformance/ts-react-tanstack/expected/.claude/skills/metaobjects-codegen/references/typescript.md‎

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,10 +133,10 @@ cross-subtype 404. Conformance-gated by `fixtures/api-contract-conformance/tph`
133133
(HTTP wire shape) and `fixtures/persistence-conformance/tph-*` (single-table
134134
runtime semantics).
135135

136-
## Docs — `meta docs` (one door, two surfaces)
136+
## Docs — `meta docs` (one door, three surfaces)
137137

138138
Documentation is NOT a `meta gen` generator. The single door is the `meta docs`
139-
command, which emits two cross-linked **surfaces** under one output dir (default
139+
command, which emits three cross-linked **surfaces** under one output dir (default
140140
`./docs`):
141141

142142
- **model surface** (`./docs/<Entity>.md`, `./docs/<Template>.md`) — the neutral
@@ -146,11 +146,19 @@ command, which emits two cross-linked **surfaces** under one output dir (default
146146
`./docs/api/AGENT-API.md`) — the SDK/API reference: the concrete imports,
147147
function signatures, payload field shapes, and runnable examples for *this*
148148
project's generated code.
149+
- **requirements surface** (`./docs/requirements.md`, `./docs/requirements.toon`) —
150+
the declared `requirement.*` ledger as documentation, with each entry headed by its
151+
dotted path and its `title` where it has one, and each entity page naming the
152+
requirements that claim it. Metadata-alone like the model surface, so it needs no
153+
gen config. **On by default since 0.24.0** — a project declaring no `requirement.*`
154+
nodes writes no requirements file and the run says nothing about the surface at all,
155+
deliberately: reporting "0 requirement pages" would advertise a surface that never ran.
149156

150157
```bash
151-
npx meta docs # both surfaces → ./docs (model) + ./docs/api (api)
158+
npx meta docs # all three → ./docs (model) + ./docs/api + ./docs/requirements.*
152159
npx meta docs --model # model surface only
153160
npx meta docs --api # api surface only
161+
npx meta docs --requirements # requirement ledger only
154162
npx meta docs --out ./site-docs # write under a different root
155163
```
156164

‎fixtures/agent-context-conformance/ts-requirements/expected/.claude/skills/metaobjects-codegen/references/typescript.md‎

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,10 +133,10 @@ cross-subtype 404. Conformance-gated by `fixtures/api-contract-conformance/tph`
133133
(HTTP wire shape) and `fixtures/persistence-conformance/tph-*` (single-table
134134
runtime semantics).
135135

136-
## Docs — `meta docs` (one door, two surfaces)
136+
## Docs — `meta docs` (one door, three surfaces)
137137

138138
Documentation is NOT a `meta gen` generator. The single door is the `meta docs`
139-
command, which emits two cross-linked **surfaces** under one output dir (default
139+
command, which emits three cross-linked **surfaces** under one output dir (default
140140
`./docs`):
141141

142142
- **model surface** (`./docs/<Entity>.md`, `./docs/<Template>.md`) — the neutral
@@ -146,11 +146,19 @@ command, which emits two cross-linked **surfaces** under one output dir (default
146146
`./docs/api/AGENT-API.md`) — the SDK/API reference: the concrete imports,
147147
function signatures, payload field shapes, and runnable examples for *this*
148148
project's generated code.
149+
- **requirements surface** (`./docs/requirements.md`, `./docs/requirements.toon`) —
150+
the declared `requirement.*` ledger as documentation, with each entry headed by its
151+
dotted path and its `title` where it has one, and each entity page naming the
152+
requirements that claim it. Metadata-alone like the model surface, so it needs no
153+
gen config. **On by default since 0.24.0** — a project declaring no `requirement.*`
154+
nodes writes no requirements file and the run says nothing about the surface at all,
155+
deliberately: reporting "0 requirement pages" would advertise a surface that never ran.
149156

150157
```bash
151-
npx meta docs # both surfaces → ./docs (model) + ./docs/api (api)
158+
npx meta docs # all three → ./docs (model) + ./docs/api + ./docs/requirements.*
152159
npx meta docs --model # model surface only
153160
npx meta docs --api # api surface only
161+
npx meta docs --requirements # requirement ledger only
154162
npx meta docs --out ./site-docs # write under a different root
155163
```
156164

0 commit comments

Comments
 (0)