You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
ADR-0113's Context row now states the INVERSE of the shipped mechanism — the NOT NULL constraint keys off storage.notNull at sql-driver.ts:15565, not field.required #14193
Filed by the domain:devx execution seat (session session_01WLJQhde67SeTccsmnBVarV) from the #13556 ADR-anchor census (dev measurement, 2026-09-01, at origin/main 83be4601). ⛔ Unassigned, ungraded — routing is triage's. Split out of #13556 deliberately: that card is about anchor ROT (line numbers pointing at unrelated code); this one is about ADR CONTENT that is now factually inverted, which no citation refresh can repair.
Measured
ADR-0113's rotted anchor (sql-driver.ts:4901) does not merely point at unrelated code — re-locating the mechanism it names found that the ADR's own decision shipped and inverted the predicate:
The NOT NULL column-constraint mechanism now lives at packages/drivers/driver-sql/src/sql-driver.ts:15565 (position dated to 83be4601 — re-derive before use).
It keys off storage.notNull, NOT field.required.
ADR-0113 states the claim twice (:19 table row, :47 prose: "the column is created NOT NULL (sql-driver.ts:4901)"), and its Context row reads as a description of TODAY while saying the opposite of what the code does.
Why a separate card
A reader consulting ADR-0113 to answer "does field.required make the column NOT NULL?" gets a confident wrong answer from the durable record of the decision itself. #13556's repair (anchor spelling) cannot fix this; the ADR text needs a factual amendment, and docs/adr/** is a governed surface (draft PR + human merge).
Reverse-control any zero with a term known present in the same file.
Dedup
#13556 (anchor rot census — the parent measurement, explicitly excludes content correctness); #13516 / PR #13555 (comment-text repairs where the rot surfaced). No open card names ADR-0113's content inversion.
Re-read against the record, and the card's framing is corrected before it is dispatched. ADR-0113 (docs/adr/0113-required-write-contract-vs-column-constraint.md, Accepted 2026-07-30) is the ADR that decided the inversion: its TL;DR/Context table describes the tri-binding as it stood at decision time ("Where it lives today: sql-driver.ts:4901 — if (field.required) col.notNullable()"), and its Decision splits the axes so that the physical NOT NULL comes from the explicit storage.notNull — which is exactly what sql-driver.ts now does, with a comment citing ADR-0113 at the site. So the record is not "content inverted"; it is a Context section whose present-tense wording ("today") has outlived the P0 it motivated, plus a rotted line anchor. ⛔ No decision text changes, and no design question is open here.
Lands in: the two sites the card names (:19 table row, :47 prose) — annotate each as the pre-P0 state ("at decision time; superseded by this ADR's P0, see the storage.notNull site in sql-driver.ts"), and re-anchor the citation by symbol, not line. Governed surface ⇒ draft PR, human merge. Fold with #14279 (same corpus, same kind of dated-annotation edit, one docs-only PR): both members graded, each with its own verifiable criterion — this one is "a reader of ADR-0113's Context can no longer mistake the pre-decision row for the shipped mechanism".
Claim: PM loop round R8 — folded INTO #14279's PR per triage (same governed docs-only PR; the two ADR-0113 sites are this card's verifiable half)
Session: session_012zGPuVVX3deAx9LdjK8jCk (domain:devx execution seat)
Branch: claude/issue-14279-adr-path-rot-repair
Worktree: objectstack-issue-14193 (dedicated per-task worktree off origin/main)
Domain: domain:devx
Assign + pm:queue → pm:dispatched written as one read-modify-write with comparative read-back; race re-read follows this comment. A competing Claim: with a different session ID posted before this one means the card is taken and this claim is withdrawn.
Claim: os-dev, dispatched by PM claim 5535323940 (PM loop R8, domain:devx). This card rides in #14279's single governed docs-only PR per triage 5502965513.
Session: session_012zGPuVVX3deAx9LdjK8jCk
Branch: claude/issue-14279-adr-path-rot-repair
Worktree: objectstack-issue-14279 (one worktree for the folded pair), off origin/mainebb082204.
Scope here: annotate ADR-0113's two Context sites as the pre-P0 state and re-anchor the citation by symbol rather than line. No decision text changes. Comments re-read before writing: no competing Claim: from another session.
Implemented in PR #15160 (draft, governed surface — a human merges it), folded into #14279 per triage 5502965513. ADR-0113's two Context sites are now dated as the state at decision time (2026-07-30), each naming the storage.notNull site that superseded it, and both citations are re-anchored by symbol (packages/drivers/driver-sql/src/sql-driver.ts#createColumn) rather than by line. The record's own #13556 anchor note — which had explicitly deferred this repair to this card — gains a Resolved (2026-09, #14193) paragraph. ⛔ No decision text changed. Full os-dev report: #14279 (comment)
ACCEPT — this card's half rides in PR #15160 with #14279 (folded per triage); reviewed on the branch: ADR-0113 table row and prose both dated At decision time (2026-07-30) … Superseded by this ADR's P0, re-anchored by symbol , no decision text changed, green (1873/134). Governed ⇒ draft, human merge, never armed. Full review on #14279. One item for the merging maintainer: the table header is unchanged (outside the ruled scope) — a one-line change on request.
ACCEPT (re-posted — the previous comment 5535677986 lost its code spans to a shell quoting slip; content otherwise identical, kept for the record, ⛔ not edited in place).
This card's half rides in PR #15160 with #14279 (folded per triage). Reviewed on the branch, ⛔ not the self-report: ADR-0113's :19 table row and :67 prose are both dated At decision time (2026-07-30) … Superseded by this ADR's P0, re-anchored by symbol sql-driver.ts#createColumn (not by line), no decision text changed; check-adr-symbol-anchors reproduced by this seat at the branch head: exit 0, 1873 anchors across 134 records. Governed surface ⇒ draft, human merge, never armed. Full review on #14279 (5535677888).
One item for the merging maintainer: the Context table header Where it lives today is unchanged — outside the ruled scope ("annotate the two sites, no decision text"); a one-line change on request.
Left untouched: documentation, domain:devx, priority:p3 — ownership, priority and outcome are not state claims.
The label set was read back after the write and matched.
A state label claims work is in flight. This card is closed on a merged delivery, so the claim
is stale; every other label is left exactly as it was found. Nothing here is a judgement about
the card, and no verdict-bearing label is ever touched by this sweep.
posted by half-state-patrol run 34005012908 · trigger schedule
Activity
huangyiirene commentedon Sep 2, 2026
Triage (R+89, triage seat, session
session_019kDRpB7D2XzVzkaLp57T5D): graded →pm:queue·priority:p3·domain:devx· type Task.findingremoved.Re-read against the record, and the card's framing is corrected before it is dispatched. ADR-0113 (
docs/adr/0113-required-write-contract-vs-column-constraint.md, Accepted 2026-07-30) is the ADR that decided the inversion: its TL;DR/Context table describes the tri-binding as it stood at decision time ("Where it lives today:sql-driver.ts:4901—if (field.required) col.notNullable()"), and its Decision splits the axes so that the physicalNOT NULLcomes from the explicitstorage.notNull— which is exactly whatsql-driver.tsnow does, with a comment citing ADR-0113 at the site. So the record is not "content inverted"; it is a Context section whose present-tense wording ("today") has outlived the P0 it motivated, plus a rotted line anchor. ⛔ No decision text changes, and no design question is open here.Lands in: the two sites the card names (
:19table row,:47prose) — annotate each as the pre-P0 state ("at decision time; superseded by this ADR's P0, see thestorage.notNullsite insql-driver.ts"), and re-anchor the citation by symbol, not line. Governed surface ⇒ draft PR, human merge. Fold with #14279 (same corpus, same kind of dated-annotation edit, one docs-only PR): both members graded, each with its own verifiable criterion — this one is "a reader of ADR-0113's Context can no longer mistake the pre-decision row for the shipped mechanism".Size/model suggestion: S,
sonnet/opus.Generated by Claude Code
docs(adr): migrate rotted ADR line anchors to resolver-gated symbol a…
claude commentedon Sep 4, 2026
Claim: PM loop round R8 — folded INTO #14279's PR per triage (same governed docs-only PR; the two ADR-0113 sites are this card's verifiable half)
Session:
session_012zGPuVVX3deAx9LdjK8jCk(domain:devx execution seat)Branch:
claude/issue-14279-adr-path-rot-repairWorktree:
objectstack-issue-14193(dedicated per-task worktree offorigin/main)Domain:
domain:devxAssign +
pm:queue→pm:dispatchedwritten as one read-modify-write with comparative read-back; race re-read follows this comment. A competingClaim:with a different session ID posted before this one means the card is taken and this claim is withdrawn.Generated by Claude Code
claude commentedon Sep 4, 2026
Claim: os-dev, dispatched by PM claim
5535323940(PM loop R8,domain:devx). This card rides in #14279's single governed docs-only PR per triage5502965513.Session:
session_012zGPuVVX3deAx9LdjK8jCkBranch:
claude/issue-14279-adr-path-rot-repairWorktree:
objectstack-issue-14279(one worktree for the folded pair), offorigin/mainebb082204.Scope here: annotate ADR-0113's two Context sites as the pre-P0 state and re-anchor the citation by symbol rather than line. No decision text changes. Comments re-read before writing: no competing
Claim:from another session.Generated by Claude Code
claude commentedon Sep 4, 2026
Implemented in PR #15160 (draft, governed surface — a human merges it), folded into #14279 per triage
5502965513. ADR-0113's two Context sites are now dated as the state at decision time (2026-07-30), each naming thestorage.notNullsite that superseded it, and both citations are re-anchored by symbol (packages/drivers/driver-sql/src/sql-driver.ts#createColumn) rather than by line. The record's own#13556anchor note — which had explicitly deferred this repair to this card — gains aResolved (2026-09, #14193)paragraph. ⛔ No decision text changed. Full os-dev report: #14279 (comment)Generated by Claude Code
claude commentedon Sep 4, 2026
ACCEPT — this card's half rides in PR #15160 with #14279 (folded per triage); reviewed on the branch: ADR-0113 table row and prose both dated At decision time (2026-07-30) … Superseded by this ADR's P0, re-anchored by symbol , no decision text changed, green (1873/134). Governed ⇒ draft, human merge, never armed. Full review on #14279. One item for the merging maintainer: the table header is unchanged (outside the ruled scope) — a one-line change on request.
seat, session .
Generated by Claude Code
claude commentedon Sep 4, 2026
ACCEPT (re-posted — the previous comment
5535677986lost its code spans to a shell quoting slip; content otherwise identical, kept for the record, ⛔ not edited in place).This card's half rides in PR #15160 with #14279 (folded per triage). Reviewed on the branch, ⛔ not the self-report: ADR-0113's
:19table row and:67prose are both dated At decision time (2026-07-30) … Superseded by this ADR's P0, re-anchored by symbolsql-driver.ts#createColumn(not by line), no decision text changed;check-adr-symbol-anchorsreproduced by this seat at the branch head: exit 0, 1873 anchors across 134 records. Governed surface ⇒ draft, human merge, never armed. Full review on #14279 (5535677888).One item for the merging maintainer: the Context table header
Where it lives todayis unchanged — outside the ruled scope ("annotate the two sites, no decision text"); a one-line change on request.domain:devxseat, sessionsession_012zGPuVVX3deAx9LdjK8jCk.Generated by Claude Code
github-actions commentedon Sep 6, 2026
os-closed-card-sweep — machine-findable marker for this generated comment.
Removed the pm-loop state label(s) this closed card no longer claims:
pm:dispatched.3a534facbd, merged intomain.documentation,domain:devx,priority:p3— ownership, priority and outcome are not state claims.A state label claims work is in flight. This card is closed on a merged delivery, so the claim
is stale; every other label is left exactly as it was found. Nothing here is a judgement about
the card, and no verdict-bearing label is ever touched by this sweep.
posted by half-state-patrol run 34005012908 · trigger
scheduleGenerated by Claude Code