Skip to content

Commit d6fe884

Browse files
os-trumpclaude
andauthored
docs(adr): correct ADR-0126 §6.4 — the paper protocol's zero-consumer reading was instrument blindness (#13139)
The #12057 survey instrument grepped the module's schema names, which genuinely read zero outside packages/spec with positive controls. It was blind to the module's exported TYPE names: packages/metadata/src/metadata-manager.ts:45 imports `type MetadataOverlay` from @objectstack/spec/kernel and backs a working overlay limb (map at 315-316, getOverlay/saveOverlay/removeOverlay/getEffective at 2166-2249), unreachable from any served surface — its only callers are that package's own unit tests. Verified present at the ADR's own evidence ref 0b04839, so the reading was already wrong when recorded, not later drift. §6.4's supersession and the enforce-or-remove charter are unaffected; §1.1's restatement of the same count points at the correction. Claude-Session: https://claude.ai/code/session_01LpRNHxWZgSUgVnFT9mQQo4 Co-authored-by: Claude <noreply@anthropic.com>
1 parent 2d2e6f0 commit d6fe884

1 file changed

Lines changed: 20 additions & 1 deletion

File tree

docs/adr/0126-packaged-metadata-customization-model.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,9 @@ And one **paper** mechanism: `packages/spec/src/kernel/metadata-customization.zo
101101
three-layer (system/platform/user) overlay protocol with field-level change tracking — exported,
102102
published in the reference docs, and consumed by **zero** runtime packages
103103
([#12057](https://github.com/objectstack-ai/objectstack/issues/12057)). §6.4 records its
104-
disposition so it cannot be mistaken for this model.
104+
disposition so it cannot be mistaken for this model — and ⚠️ **corrects that consumer count there**
105+
(#13136, 2026-08-29: one unreachable build-against consumer in `packages/metadata`, zero
106+
served-surface consumers; the disposition is unchanged).
105107

106108
### 1.2 Why per-type invention had to stop
107109

@@ -270,6 +272,23 @@ read at each runtime's own consult point; an empty ledger changes nothing anywhe
270272
chartered as an implementation card. Until that card lands, the reference page it generates
271273
must not be cited as the customization architecture.
272274

275+
⚠️ **Correction (#13136, 2026-08-29):** the parenthetical above records "zero consumers". That
276+
predicate was **instrument blindness at measurement time, not later drift**. The #12057
277+
instrument grepped the module's **schema** names, and that set genuinely does read zero outside
278+
`packages/spec`, positive controls included — but it was blind to the module's exported **type**
279+
names, and one of those has a real build-against consumer: `packages/metadata`'s
280+
`metadata-manager.ts:45` imports `type MetadataOverlay` from `@objectstack/spec/kernel` and
281+
backs a working three-layer overlay limb (in-memory map at 315-316; `getOverlay` /
282+
`saveOverlay` / `removeOverlay` / `getEffective` at 2166-2249). The corrected predicate is
283+
**one unreachable build-against consumer, zero served-surface consumers**: no route serves the
284+
paper endpoints, and the limb's only callers are that package's own unit tests. It is verified
285+
present at this ADR's own evidence ref `0b048393f`, so the zero-consumer reading was already
286+
wrong when it was recorded and §6.4 inherited it. ⛔ **The decision above is unaffected** — the
287+
maintainer's 2026-08-29 ruling adopts retirement on this widened evidence; the supersession and
288+
the enforce-or-remove charter stand, and "nothing may build against it" is now known to name one
289+
existing consumer that has to stop. Measurement:
290+
[#12057 comment 5451357017](https://github.com/objectstack-ai/objectstack/issues/12057#issuecomment-5451357017).
291+
273292
---
274293

275294
## 7. The worked example: packaged flows (first consumer)

0 commit comments

Comments
 (0)