Skip to content

Commit a2f7772

Browse files
committed
chore(changeset): state the ADR-0087 disposition without rewrite-arrow syntax
The marker's own category name supplies the word 'migration', and the two worked examples supplied the arrow — so the disposition line matched the gate's framed-line rewrite-prescription detector and contradicted itself. Same reasoning, stated without FROM/TO arrow syntax; the per-key prescriptions live in the schema's aliases/guidance, which is where an author meets them. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011sGk4SKHqGRgmmqUok1P8M
1 parent 6794b29 commit a2f7772

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

.changeset/api-endpoint-schema-strict.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"@objectstack/spec": minor
33
---
44

5-
<!-- adr-0087: not-required (no-migration-prescription) this change retires NO key — the endpoint vocabulary is byte-identical and only the unknown-key POSTURE moves, from strip to reject. There is nothing for `objectstack migrate meta` to rewrite: an undeclared key was never honoured in the first place (it was dropped at parse, so it never reached storage, the matcher or the executor), which means no stored shape carries it and no authored shape that ever WORKED becomes invalid. The upgrade channel is the schema rejection itself, and it is strictly more specific than a ledger line could be: it names the offending key at the author's own path and carries either a rename (`cacheTTL` → `cacheTtl`) or a wrong-layer prescription (`namespace` → `manifest.namespace`; the six stored-envelope keys → not authorable at all). A ledger entry could only say "a key you may have written might have been a typo", which prescribes nothing and dilutes the registry. The one ADR-0087 entry that DOES govern this surface, `declarative-apis-endpoints-live`, is already registered for protocol 17 and is updated by this PR rather than duplicated. Measured blast radius: 0 affected entries across `examples/*` (2 endpoints) and the `cloud` repo (0 endpoints). -->
5+
<!-- adr-0087: not-required (no-migration-prescription) this change retires NO key. The endpoint vocabulary is byte-identical and only the unknown-key POSTURE moves, from strip to reject. Nothing exists for `objectstack migrate meta` to rewrite, because an undeclared key was never honoured in the first place: it was dropped at parse and so never reached storage, the matcher or the executor. No stored shape carries one, and no authored shape that ever WORKED becomes invalid. There is also no single FROM/TO rule a ledger entry could state, since what is now refused is an open set of author typos rather than a renamed key. The upgrade channel is the schema rejection itself, which is strictly more specific than any ledger line: it names the offending key at the author's own path and carries either the canonical spelling or a wrong-layer pointer at the surface that really owns the key. The one ADR-0087 entry that DOES govern this surface, `declarative-apis-endpoints-live`, is already registered for protocol 17 and is updated by this PR rather than duplicated. Measured blast radius: 0 affected entries across `examples/*` (2 endpoints) and the `cloud` repo (0 endpoints). -->
66

77
`ApiEndpointSchema` rejects undeclared keys (#5384), and the author-state type is named on the upgrade path (#5227)
88

0 commit comments

Comments
 (0)