Commit 62a8d0b
docs(specs): FR5 family + ADR-0009 (loader error envelope + source-on-node)
Brainstormed re-scope of the original FR5 draft (which was JSON-only and
under-designed). The new structure:
ADR-0009 — cross-language contract:
- Uniform error envelope { code, message, source, ...optional T2 }.
- `source` on every metadata node (not a side-channel). Always populated;
programmatic construction defaults to { format: "code" }. Mutates on
real semantic change; duplicate-no-change emits WARN_DUPLICATE_DECLARATION.
- Canonical JSONPath form (dot for identifier keys, bracket for arrays/
special-char keys, root $). Exact-string conformance enforcement.
- `semantic_diff` algorithm spec'd so all four ports converge.
- Six format discriminants: json, yaml, merged, resolved, database, code.
- Canonical JSON serialization explicitly omits `source` (loader-output,
not metadata).
Per-error-class FRs:
- FR5a (plan-of-record): JSON-shape + envelope foundation. Coordinated
TS/C#/Java/Python landing. Adds source field to each port's MetaData
base, threads JSONPath through parse, rewrites ~12-15 conformance
fixtures to the envelope shape.
- FR5b/5c/5d (sketches): YAML positions, multi-file merge attribution,
reference resolution. Each owned later with its own brainstorm.
- FR5e (forward-looking): database-source errors, gated on FR-003.
Supersedes the original 2026-05-25-fr-actionable-loader-error-messages-
design.md (deleted; was a single under-scoped draft).
Roadmap updated to reflect the family.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>1 parent 0cdfc03 commit 62a8d0b
8 files changed
Lines changed: 980 additions & 141 deletions
File tree
- docs/superpowers/specs
- spec
- decisions
Lines changed: 0 additions & 139 deletions
This file was deleted.
0 commit comments