Development record
The 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 -->
The 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.
Frontmatter
| id | iss-2610121206277151 |
|---|---|
| type | issue |
| lifecycle | open |
| severity | nitpick |
.abcd/work/issues/open/iss-2610121206277151-stale-usage-positional-read-as-subverb.md
open on GitHub ↗ · commit history ↗
mentions3
- iss-2610120921425348Running 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.
- iss-2610120921497084The stale-usage note matches a flag anywhere on the verb's command page, not under the sub-verb typed: build next --dry-run was called documented because commands/build.md mentions '/abcd:drain --dry-run' in prose, so the note blamed the binary's age for a flag build next never had.
- itd-1Every Intent Has Acceptance Criteria; Every Audit Verifies Them