Skip to content

implement-objectos.md Rule #3 names RequestEnvelope / ResponseEnvelope in prose — neither is an export, and prose symbols are invisible to the published-README gate #9614

Description

@os-steve

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:

SymbolExists?Nearest real neighbours
RequestEnvelopeno— nothing of that name anywhere in the package
ResponseEnvelopenoResponseEnvelopeConfig, 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.

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions