Development record
README capability currency. Re-scoped by the 2026-08-05 maintainer disposition to one surviving instance; the original three-claim corpus is closed as filed.
README capability currency. Re-scoped by the 2026-08-05 maintainer disposition to one surviving instance; the original three-claim corpus is closed as filed.
Claims 1 and 2 are overtaken, no work: the Status section's Phase 0 claim and the surface list's native review oracle, spec/task engine and autonomous run are gone from the README. Both were removed by 73428b6 (2026-07-17, "manual: Revise README with new badges and project details"), a manual revision predating the v0.5.0 plan; the iss-143 tagline commit 48a3524 (2026-07-27) touched only the strapline. git log -S over README.md for "## Status", "review oracle", "spec/task" and "autonomous run" places each of them in 73428b6 and the scaffold commit 8624854 alone. ("spec/task engine" returns nothing: the phrase was line-wrapped in the old README, so the whole-string probe misses it — the shorter substring is the one that reproduces.) The claims those two were written against no longer exist to correct.
Claim 3's surviving half: the Layout section's .abcd/ entry claims the directory is "never shipped". 73428b6 never touched this line — git log -S "never shipped" -- README.md places it in the scaffold commit 8624854 and in this branch's fix alone — so it stood untouched while the other two claims were being overtaken. It holds for one thing the project distributes and fails for every other. The released binaries carry nothing but themselves — release.yml uploads the four binaries and checksums.txt — but the plugin channel installs from .claude-plugin/marketplace.json, whose plugin source is "./", so an install takes the whole repository; and GitHub attaches auto-generated source archives to each release, which carry .abcd/ as well, since .gitattributes declares no export-ignore. Fix: the line divides on the boundary that is real — every repository checkout against the released binaries — rather than asserting a blanket exclusion.
The fix is doc-side because the alternative is wiring work, not doc repair. An exclusion mechanism does exist: internal/core/launch/bundle.go:27-31 denies the .abcd namespace structurally and bundle_test.go pins it. It is simply not on the path any release takes. The wired abcd launch ship exercises the deny through launch.PrecheckPayload and launch.RenderPayload, which resolve the bundle (internal/core/launch/render.go:192); launch.Ship, the would-publish stub that halts at WouldPublish with no network call (internal/core/launch/ship.go:36-41), has no production caller; and release.yml invokes neither, uploading the binaries directly. Making the blanket claim true therefore means wiring that path and finding an answer for the two channels it does not govern (a marketplace install of the repository root, and GitHub's auto-generated source archives). Out of scope here.
Residue recorded as iss-183: the same claim survives across the record — CONTEXT.md's sharp-edges list, AGENTS.md, both .abcd/ READMEs, two brief documents and a phase doc — several of them attributing the exclusion to packaging that is implemented but has never run. All are outside this issue's one-line scope.
Detector dropped. The proposed extension of the docs-currency gate to README capability and status claims is re-pointed at iss-181 as a candidate extension of the gate cross-check detector's scope, to be settled with that detector's own scoping questions.
Frontmatter
| id | iss-43 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | major |
.abcd/work/issues/resolved/iss-43-readme-capability-currency.md
open on GitHub ↗ · commit history ↗
mentions7
- dcn-26080500000000052026-08-05 — iss-43 (v0.5.0 item D): the three-claim corpus is closed as OVERTAKEN rather than fixed — the Status section and the surface list were removed by `73428b6` (2026-07-17, "manual: Revise README with new badges and project details"), a manual revision predating the v0.5.0 plan, so the Phase 0 claim and the native review oracle / spec-task engine / autonomous run claims no longer exist to correct, and re-deriving a corpus against a rewritten document would be inventing findings to justify a ticket. That attribution is itself a correction worth recording: the round first credited the iss-143 tagline commit `48a3524`, which touches ONE README line (the strapline), because it read a SHALLOW clone whose truncation window opened well after 2026-07-17 and therefore could not see the real commit — a truncated history answers a `git log` question confidently and wrongly, and the cheap guard is `git log -S` over the file for the exact removed string, unshallowed first. Two corollaries earned the same way: the corpus's third claim was never `73428b6`'s at all (`git log -S "never shipped"` puts that line in the scaffold commit and in this branch alone), so "all three overtaken" was a second wrong attribution riding on the first; and a whole-phrase probe can miss a claim that was line-wrapped in the original, which is why `"spec/task"` reproduces where `"spec/task engine"` returns nothing. One instance survives, and it is half true rather than false, which is why it needed splitting instead of deleting: the Layout line called `.abcd/` "never shipped", which holds for the released binaries alone (release.yml uploads the four of them and `checksums.txt`, nothing else) and fails everywhere else — `.claude-plugin/marketplace.json` declares `source: "./"`, so a marketplace install takes the whole repository, and GitHub attaches auto-generated source archives to each release, which carry the directory too because `.gitattributes` declares no `export-ignore`. The line now divides on the boundary that is real: every repository checkout against the released binaries, rather than a per-channel split that would have been wrong about the release page. Doc-side deliberately: the marketplace manifest schema has no per-path exclusion, so making "never shipped" true everywhere means building a curated publish path — feature work with its own design questions, not doc repair, and writing the doc to describe a packaging mechanism that does not exist is the phantom-claim failure this item belongs to. The proposed detector (README capability and status claims resolve to wired verbs and to the roadmap) is DROPPED here and re-pointed at iss-181 as a candidate extension of the gate cross-check detector's scope, recorded as a candidate rather than a commitment because it shares that detector's two unsettled scoping questions and a second half-specified scanner would answer neither. The same claim survives across the record — CONTEXT.md's sharp-edges list, AGENTS.md, both `.abcd/` READMEs, `02-constraints/01-platform.md`, `05-internals/03-configuration.md` and `phase-1-ahoy.md`, with adr-0028, the dated plans and the planned/shipped intent bodies exempt as decision and historical records — and it is recorded as iss-183 rather than fixed here, since the disposition scoped this item to one README line. That issue also corrects a claim this round made twice: the exclusion is NOT unimplemented. `internal/core/launch/bundle.go` denies the `.abcd` namespace structurally, with tests, reachable from the wired `abcd launch ship`; it is unwired, because `Ship` stops at `WouldPublish` with no network call and `release.yml` uploads the binaries without ever invoking the verb. "No mechanism exists" and "the mechanism never runs" ask for different fixes, and only the second is true.
- dcn-26080500000000072026-08-05 — iss-43, CORRECTION to the entry immediately above, from a merge-gate record-accuracy review on PR #196. That entry stands unedited; four of its claims are corrected here rather than in place, because it is merged history. (1) It opens "the three-claim corpus is closed as OVERTAKEN rather than fixed", and the corpus does not close as a unit: claims 1 and 2 — the Phase 0 status claim and the native-capability surface list — close as overtaken via `73428b6`, while claim 3's surviving half, the Layout line, is FIXED by that same PR. The entry knows this later in its own text and in the issue's `resolution:` field, so the opening verdict was a second over-claim of the same shape as the attribution it goes on to retract: a single verdict asserted over a corpus whose members had different fates. (2) "a SHALLOW clone whose truncation window opened well after 2026-07-17" over-claims. The evidence bounds the boundary to the interval after 2026-07-17 and no later than the oldest visible substantive README rewrite; "well after" asserts a distance nothing measured. Read it as "after 2026-07-17". (3) "writing the doc to describe a packaging mechanism that does not exist" is refuted by the entry's own closing paragraph. The clause scopes to the all-channel curated publish path, which genuinely does not exist and which no release has ever taken; the namespace deny itself exists and is tested. (4) The call edge is wrong in the closing paragraph: "reachable from the wired `abcd launch ship`; it is unwired, because `Ship` stops at `WouldPublish`" reads as one chain, implying the verb runs through `launch.Ship`. It does not. `launch.Ship` has NO production caller — the only calls are three in `dryrun_test.go` — while the wired verb exercises the deny through `launch.PrecheckPayload` and `launch.RenderPayload`, which resolve the bundle at `internal/core/launch/render.go:192`, reached from `internal/surface/cli/ship.go`. `release.yml` invokes neither. Both facts stand; the edge joining them did not. The lesson generalises past this entry: a summary sentence written before the detail paragraphs are finished tends to keep the verdict the round started with, and a call chain assembled from two true sentences about neighbouring functions is not evidence that either calls the other — `grep` for the callers.
- dcn-26080600000000042026-08-06 — iss-183: of the two fix directions the issue offered, REWORD is
- iss-143tagline three-variant drift: the repo runs three different self-descriptions — README strapline (an opinionated, intent-driven development framework for product thinkers), plugin.json description (host-agnostic configuration layer for development ... usable as a plugin in compatible agent harnesses), and AGENTS.md (a host-agnostic configuration layer for development). The drift is itself the finding: one-canonical-primitive wants a single recorded tagline (a DECISIONS.md line, or the brief's product chapter as the home) with per-surface renderings derived from it. Adopting any new wording without that consolidation just mints a fourth variant. Surfaced by the 2026-07-27 tagline assessment. Detector: a positioning-currency check that the three surfaces render from one recorded home.
- iss-18106-lint.md section 1 (the lint-code namespace) is a catalogue of a predecessor project's Python-era implementation — the `IL001`–`RC007` code families and the class names they cite (`IntentLinter`, `BundleLinter`, `PromptLinter`, `SpecLinter`) describe code this repo does not carry. Re-filed here from iss-37 (2026-08-03 maintainer disposition), which is re-scoped to its three doc-claim instances.
- iss-183The blanket `.abcd/` exclusion claim that iss-43 corrected in the README survives across the record. Recorded rather than fixed there, because the disposition scoped iss-43 to one README line.
- iss-316README process section asserts two unshipped capabilities a brief-drafting skill and a Socratic interview the framework provides