Development record
Six record-family patterns in the lint and site packages keep their own hand-written copy of the cited families (adr, itd, iss, spc, dcn) instead of reading recordid.CitedFamilies: claimedHandleRe in internal/core/lint/crossstore.go:57, proseCitationRe in internal/core/lint/prosecitations.go:138, recordHandleRe and recordHandleFullRe in internal/core/lint/schema.go:60 and :62, the recordHandleKinds message in internal/core/lint/schema.go:73, and bodyHandleRe in internal/core/site/recordjson.go:34. Each includes dcn today, but each is a copy the next family added to recordid's list would miss, which is how the inbox rewrite and four refusal messages came to omit dcn (iss-2610160608389169, iss-2610160608457651).
Six record-family patterns in the lint and site packages keep their own hand-written copy of the cited families (adr, itd, iss, spc, dcn) instead of reading recordid.CitedFamilies: claimedHandleRe in internal/core/lint/crossstore.go:57, proseCitationRe in internal/core/lint/prosecitations.go:138, recordHandleRe and recordHandleFullRe in internal/core/lint/schema.go:60 and :62, the recordHandleKinds message in internal/core/lint/schema.go:73, and bodyHandleRe in internal/core/site/recordjson.go:34. Each includes dcn today, but each is a copy the next family added to recordid's list would miss, which is how the inbox rewrite and four refusal messages came to omit dcn (iss-2610160608389169, iss-2610160608457651).
Out of scope by design: exemptEdgeRe in internal/core/lint/reciprocal.go also hand-lists families and omits dcn, deliberately; the exempt_edges list it reads is frozen to its 155 itd edges (TestBuildsOnExemptionsNeverGrow), so a dcn entry could never be valid there. Its comment says so.
Frontmatter
| id | iss-2610161127265652 |
|---|---|
| type | issue |
| lifecycle | open |
| severity | minor |
.abcd/work/issues/open/iss-2610161127265652-six-record-family-patterns-in-the-lint.md
open on GitHub ↗ · commit history ↗
mentions2
- iss-2610160608389169The brief at .abcd/development/brief/04-surfaces/30-inbox.md:105-112 says a sender's id in a record family abcd resolves (adr, itd, iss, spc) is written as one word, so it never cites abcd's own record. abcd also resolves dcn ids (recordid.CitedIDRe; record-lint's prose_citation_resolves, internal/core/lint/prosecitations.go:138), but the promotion rewrite's senderIDRe (internal/core/report/inbox.go:714) covers only adr|itd|iss|spc, so a sender's dcn-N is copied as written and cites abcd's own dcn-N.
- iss-2610160608457651A malformed grill citation in abcd ideate is refused with '(want adr-N, itd-N, iss-N, or spc-N)' (internal/core/ideate/record.go:497), but CitedIDRe (internal/core/recordid/resolve.go:41) accepts dcn-N as well, commands/ideate.md lists dcn-N as citable, and the brief (.abcd/development/brief/04-surfaces/18-ideate.md:57-58) says a decision record is cited by its dcn- id like any other record. The refusal tells the caller dcn ids are not citable.