Development record
2026-09-29 — Every open issue that carries no remedy gets one (the user as product thinker, directly to the run A orchestrator abcd-fc [aaba3e] on 2026-09-29, verbatim: "add a sensible remedy for each -- conduct SOTA first when necessary"; recorded by lane integRemedies of autonomous run A). The run reads the ruling this way. Each such record gets a one-line `remedy:`. Where the fix depends on outside practice, a primary-source check grounds the remedy first. A remedy that waits on an unanswered ruling or planning interview opens "Waits on <ruling/interview>:" and names one fix per possible answer, choosing none: the drain's field rule ignores `deferral_reason`, so the remedy's own opening is what hands such a record back. Nine records-only lanes, remedyA to remedyI, applied it to 187 records. They skipped one, iss-2609020721396212, because it is resolved on a peer branch and an edit to its open copy would collide with that move. They found one duplicate, iss-2609230949466602 of iss-2608282026177429, which is closed as wontfix with a typed duplicates link.
2026-09-29 — Every open issue that carries no remedy gets one (the user as product thinker, directly to the run A orchestrator abcd-fc [aaba3e] on 2026-09-29, verbatim: "add a sensible remedy for each -- conduct SOTA first when necessary"; recorded by lane integRemedies of autonomous run A). The run reads the ruling this way. Each such record gets a one-line remedy:. Where the fix depends on outside practice, a primary-source check grounds the remedy first. A remedy that waits on an unanswered ruling or planning interview opens "Waits on <ruling/interview>:" and names one fix per possible answer, choosing none: the drain's field rule ignores deferral_reason, so the remedy's own opening is what hands such a record back. Nine records-only lanes, remedyA to remedyI, applied it to 187 records. They skipped one, iss-2609020721396212, because it is resolved on a peer branch and an edit to its open copy would collide with that move. They found one duplicate, iss-2609230949466602 of iss-2608282026177429, which is closed as wontfix with a typed duplicates link.
Frontmatter
| id | dcn-2609290000000005 |
|---|---|
| type | decision |
| date | 2026-09-29 |
.abcd/work/decisions/dcn-2609290000000005-every-open-issue-that-carries-no-remedy.md
open on GitHub ↗ · commit history ↗
mentions3
- iss-2608282026177429itd-154 does not ship the literal 'provisioning the abcd binary...' stderr line spc-47 AC2 asks for, and the reason is a conflict inside the record rather than an oversight: only the FIRST line of a hook's stderr reaches the transcript (iss-208, measured on the first manual install), and bootstrap.sh already spends that line on the success notice's one-time ahoy-install instruction, placed first for exactly that reason (iss-207). An announcement printed ahead of it takes the line from the success and, worse, from the refusal's cause on the failing path — which is the silence itd-154 exists to end. Both orderings were reproduced during the adversarial review. What ships instead is the EXIT trap that converts a silent death into the same loud refusal, naming provisioning in the one line it emits; the residue is a run that HANGS (process still alive, trap not yet fired) or is SIGKILLed, which still leaves nothing. The fix that would satisfy both is a breadcrumb: write a marker at the start of provisioning, remove it on any terminal line, and have the next session fold 'a previous attempt did not finish' into its own terminal line rather than into a new one. Detector: kill -9 a provisioning run, start a second session, expect the next run's first line to name the previous failure.
- iss-2609020721396212Intent and spec titles have no length ceiling, and several run to a full sentence that carries the description rather than a name (the longest today are well over a hundred characters), so a roster, a status board, a changelog line and the record export on the website all show a paragraph where a title belongs, and the id-plus-slug filename derived from the title is truncated at a fixed width that cuts mid-word. Two changes: a threshold on the title at mint time (intent new, spec new, capture promote), refused with the excess named and the description offered as the place for the rest, with a size stated in the record schema and enforced by record-lint for hand-written records; and the website's record export truncating an existing over-long title at the display layer with an ellipsis and the full text on hover or on the record page, so the records already in the corpus do not have to be rewritten to render. The ceiling itself is a decision (a fixed character count, or a word count); the site truncation is not.
- iss-2609230949466602itd-154 ac-2 not met: hooks/bootstrap.sh deliberately prints no eager 'provisioning the abcd binary…' line when it fetches the binary (the phrase is reserved for the EXIT trap's death report), so a successful provisioning run emits only the terminal 'abcd bootstrap: installed' line; the intent's criterion promised a visible loud-staged provisioning line on every fetch. The reasoning (only the first stderr line reaches the transcript, iss-208/iss-207) is recorded in the script, not in the intent or its spec — the record and the delivery disagree and one of them should move