Found while implementing #10710. That card asked whether packages/spec/llms.txt is
generated or hand-kept — if generated, its content would be a symptom and the generator the
cause. Measured: it is hand-kept. So this is a fix at the file.
Evidence it has no generator
- No script under
scripts/ or packages/spec/scripts/ writes it. The only repo-wide
reference is scripts/check-published-files.mjs:89,273 , which merely asserts the file is
listed in the package's files array and describes it as "Protocol summary for LLM
consumers." - None of
packages/spec's ~20 gen:* scripts emits it (gen:schema, gen:openapi,
gen:docs, gen:api-surface, gen:skill-refs, ... all target other artifacts). - The file carries hand-typed provenance in its own header:
> **Version**: 3.0.0, > **Schema Count**: 171 Zod schemas, 191 test files, 5,157 tests,
> **Last Updated**: 2026-02-12.
The defect
packages/spec/llms.txt:171 still advertises a service contract that does not exist:
| `IGraphQLService` | execute, subscribe |
IGraphQLService is declared nowhere in packages/**/src. After #10710 lands, the repo-wide
survivors are three CHANGELOGs (history, correctly immutable) and this line — which is not
history: it is a live "Context for AI Agents" summary shipped in the published
@objectstack/spec tarball, whose whole purpose is to tell an LLM what contracts exist.
An agent reading it will try to register IGraphQLService to reach /graphql, a route
packages/runtime/src/http-dispatcher.ts:2026 removed.
The neighbouring row shows the alternative to deletion if the history is worth keeping —
IUIService is retained and marked **DEPRECATED** with the replacement call spelled out.
Either disposition is defensible; the current state is not.
Worth deciding at the same time: whether a file this load-bearing for AI consumers should
stay hand-kept at all, given its own header has been stale since 2026-02-12.
Back-links: #10710, #10583
Generated by Claude Code
Generated by Claude Code
Found while implementing #10710. That card asked whether
packages/spec/llms.txtisgenerated or hand-kept — if generated, its content would be a symptom and the generator the
cause. Measured: it is hand-kept. So this is a fix at the file.
Evidence it has no generator
scripts/orpackages/spec/scripts/writes it. The only repo-widereference is
scripts/check-published-files.mjs:89,273, which merely asserts the file islisted in the package's
filesarray and describes it as "Protocol summary for LLMconsumers."
packages/spec's ~20gen:*scripts emits it (gen:schema,gen:openapi,gen:docs,gen:api-surface,gen:skill-refs, ... all target other artifacts).> **Version**: 3.0.0,> **Schema Count**: 171 Zod schemas, 191 test files, 5,157 tests,> **Last Updated**: 2026-02-12.The defect
packages/spec/llms.txt:171still advertises a service contract that does not exist:IGraphQLServiceis declared nowhere inpackages/**/src. After #10710 lands, the repo-widesurvivors are three CHANGELOGs (history, correctly immutable) and this line — which is not
history: it is a live "Context for AI Agents" summary shipped in the published
@objectstack/spectarball, whose whole purpose is to tell an LLM what contracts exist.An agent reading it will try to register
IGraphQLServiceto reach/graphql, a routepackages/runtime/src/http-dispatcher.ts:2026removed.The neighbouring row shows the alternative to deletion if the history is worth keeping —
IUIServiceis retained and marked**DEPRECATED**with the replacement call spelled out.Either disposition is defensible; the current state is not.
Worth deciding at the same time: whether a file this load-bearing for AI consumers should
stay hand-kept at all, given its own header has been stale since 2026-02-12.
Back-links: #10710, #10583
Generated by Claude Code
Generated by Claude Code