Development record
Running a source checkout's abcd through go run and typing a flag the verb does not have (go run ./cmd/abcd build next --dry-run) says 'this binary predates --dry-run the plugin surface it was provisioned from documents; this PATH copy is stale; run abcd update'. The binary is a fresh go-run build of the checkout, not a PATH copy, and abcd update would change nothing: staleUsageNote (internal/surface/cli/staleusage.go) takes its default branch for any executable outside the plugin root.
issueresolvedminoriss-2610120921425348
Running a source checkout's abcd through go run and typing a flag the verb does not have (go run ./cmd/abcd build next --dry-run) says 'this binary predates --dry-run the plugin surface it was provisioned from documents; this PATH copy is stale; run abcd update'. The binary is a fresh go-run build of the checkout, not a PATH copy, and abcd update would change nothing: staleUsageNote (internal/surface/cli/staleusage.go) takes its default branch for any executable outside the plugin root.
Frontmatter
| id | iss-2610120921425348 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2610120921425348-running-a-source-checkout-s-abcd-through.md
open on GitHub ↗ · commit history ↗
mentions2
- iss-2610121206277151The stale-usage note's classifier (internal/surface/cli/staleusage.go) reads a positional argument under a verb that has sub-verbs as an unknown sub-verb: 'abcd build itd-1 --frob-top' takes itd-1 for a sub-verb of build, so a flag the build page genuinely documents for 'abcd build <itd-N>' gets no stale-binary note. It fails safe (the plain unknown-flag refusal, never wrong advice), but a stale binary is then not told why. Found by the fix for iss-2610120921425348 and iss-2610120921497084 (branch fix/stale-usage-notes), which left it outside those remedies. <!-- record-lint: forward-looking -->
- iss-2610142319016723An unstamped abcd binary on PATH, built by go install or make build from a source checkout, now gets no advice on how to catch up when typed a verb or flag the plugin surface documents: staleUsageNote's unstamped branch (internal/surface/cli/staleusage.go) says only that the thing is not in this build, with no abcd update and no rebuild hint. This is the intended trade-off of iss-2610120921425348 (an unstamped build's age is not what the page proves), recorded so it stays visible. Found by the Opus+Sonnet review of fix/stale-usage-notes, 2026-10-15.