Development record
2026-09-23 — The four typed relations decompose-before-filing mandates are all supported (product thinker, ruling on iss-2609091256264547, choosing to build over narrowing the rule or sanctioning prose): `reverses`, `duplicates` and `refines` become real typed record fields in the schema and in every reader, beside `supersedes`. Until that lands, those relations are written in prose, the 2026-09-09 practice, because a typed field the readers do not know hides the record from them. Needs planning.
decisiondcn-2609230000000010
2026-09-23 — The four typed relations decompose-before-filing mandates are all supported (product thinker, ruling on iss-2609091256264547, choosing to build over narrowing the rule or sanctioning prose): reverses, duplicates and refines become real typed record fields in the schema and in every reader, beside supersedes. Until that lands, those relations are written in prose, the 2026-09-09 practice, because a typed field the readers do not know hides the record from them. Needs planning.
Frontmatter
| id | dcn-2609230000000010 |
|---|---|
| type | decision |
| date | 2026-09-23 |
.abcd/work/decisions/dcn-2609230000000010-the-four-typed-relations.md
open on GitHub ↗ · commit history ↗
mentions1
- iss-2609091256264547The decomposition discipline requires a cross-record link to be typed with one of four relations, supersedes or reverses or duplicates or refines, and never a vague related. Only the first of those four exists. supersedes is schema-known through recordHandleFields and is carried by fifty-eight decision records and three others, while reverses, duplicates and refines appear in no schema and in no committed record anywhere in the tree: the field list a record may carry is related_adrs, related_intents, builds_on and blocked_by, and a record carrying a key outside the known set is dropped by the reader rather than reported, so writing one of the three missing words would make the record invisible to every surface that reads it. The consequence is that an author following the rule literally either writes a link the tooling silently discards or writes the relation in prose and calls it typed, and the corpus shows the second: records assert a typed link in a heading and carry no frontmatter edge, which reads as done to a human and is invisible to every graph walker. That is the shape enforcement-claims-are-facts refuses, a convention naming a mechanism that does not exist, and it is load-bearing here because the decomposition protocol is the documented gate until its automated rung ships. Fix candidates, none chosen: implement the three missing relations as known fields so the rule can be followed; or narrow the rule to the vocabulary the schema implements and say what an author does with a relation the four words cannot express; or record that prose is the sanctioned form for the three and stop calling them typed. Detector: a record asserting a typed relation in its body carries a frontmatter edge naming the same target, and a relation the schema cannot express is refused at write time rather than dropped in silence.