Found while fixing the five import-clause fabrications in the published agent-authoring prompts (Refs #9545). These two are the same defect class in the same published file, but they sit in prose rather than an import clause, so they are outside what the gate can resolve and were deliberately not folded into that card's scope.
Measured
packages/spec/prompts/implement-objectos.md, Rule #3:
Rule #3: API Gateway Contract
The HTTP/Gateway layer must perform strict request/response validation using api/contract.zod.ts and api/endpoint.zod.ts.
- Incoming requests -> Validate
RequestEnvelope - Outgoing responses -> Wrap in
ResponseEnvelope
Measured across all 16 published api-surface/*.json entries of @objectstack/spec on main:
| Symbol | Exists? | Nearest real neighbours |
|---|
RequestEnvelope | no | — nothing of that name anywhere in the package |
ResponseEnvelope | no | ResponseEnvelopeConfig, ResponseEnvelopeConfigParsed, ResponseEnvelopeConfigSchema (./api) |
ResponseEnvelopeConfig* is a config shape, not the envelope itself, so it is not a drop-in referent — naming the right thing here is a judgment call about what Rule #3 actually wants an implementer to validate against, which is why this is filed rather than guessed.
Two things in the same file that were checked and are fine, so nobody re-measures them:
Why it survived the sweep
check:published-readme-exports resolves import { ... } from '...' clauses and X.member( call sites. A bare symbol name in a bullet matches neither, so a published prompt can name any symbol it likes in prose and stay green. That structural blind spot is the gate's own lane and is already flagged by reference on #9532; this card is only the content defect — two fabricated symbol names currently published to agents implementing the runtime kernel.
The audience is what gives it weight: these prompts drive AI authoring, so a fabricated name in prose is read as authoritative and copied into an import by the agent that follows it — at which point it becomes the loud failure the gate would have caught, one step too late.
The three dead source paths in the same file's "Key Files to Watch" were repaired under #9545; only these two prose symbols remain.
Found while fixing the five import-clause fabrications in the published agent-authoring prompts (Refs #9545). These two are the same defect class in the same published file, but they sit in prose rather than an
importclause, so they are outside what the gate can resolve and were deliberately not folded into that card's scope.Measured
packages/spec/prompts/implement-objectos.md, Rule #3:Measured across all 16 published
api-surface/*.jsonentries of@objectstack/speconmain:RequestEnvelopeResponseEnvelopeResponseEnvelopeConfig,ResponseEnvelopeConfigParsed,ResponseEnvelopeConfigSchema(./api)ResponseEnvelopeConfig*is a config shape, not the envelope itself, so it is not a drop-in referent — naming the right thing here is a judgment call about what Rule #3 actually wants an implementer to validate against, which is why this is filed rather than guessed.Two things in the same file that were checked and are fine, so nobody re-measures them:
EventSchemais real (./kernel).ApiRoutesSchemais real and really lives inapi/discovery.zod.ts, exactly as the prompt claims.Why it survived the sweep
check:published-readme-exportsresolvesimport { ... } from '...'clauses andX.member(call sites. A bare symbol name in a bullet matches neither, so a published prompt can name any symbol it likes in prose and stay green. That structural blind spot is the gate's own lane and is already flagged by reference on #9532; this card is only the content defect — two fabricated symbol names currently published to agents implementing the runtime kernel.The audience is what gives it weight: these prompts drive AI authoring, so a fabricated name in prose is read as authoritative and copied into an import by the agent that follows it — at which point it becomes the loud failure the gate would have caught, one step too late.
The three dead source paths in the same file's "Key Files to Watch" were repaired under #9545; only these two prose symbols remain.