os-backlog body checker ignores a check: on its own line under a Required work item #821
Labels
No labels
P0
P1
P2
P3
bug
category/code-change
category/cross-repo
category/eval-run
category/investigation
category/no-test-target
category/owner-ruling
category/prose-artifact
category/recurring-chore
category/structure
category/umbrella
crc-refactor
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
rule-proposal
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jared/cc-os#821
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Backlog::RequiredWork#checks_without_command(#817) reads only the numbered line of each Required work item. Acheck:on a later line of the same item is never inspected, so a free-text check on its own line passes at write time. The os-sdlc parser reads every line of an item, and #820 keeps that rule. ADR-0209 and ADR-0244 decision 4 require both validators to refuse the same bodies. They now disagree:1. X — check: `cmd`1. Xthencheck: grep fooon the next lineObserved
The #817 contract-auditor (dispatch 728) named this disagreement as a GAP item.
Reproduce
n/a: design ticket. The table above gives the two forms.
Approach
An item is its numbered line plus the lines under it, up to the next numbered line or the end of the section. The item's check is the first
check:anywhere in those lines. The command is backticked text after thatcheck:. This is the rule in #820 for os-sdlc.Decision record: ADR-0244.
Required work:
Backlog::RequiredWork#checks_without_commandreads every line of an item, not only the numbered line.Acceptance criteria
1. Delete the foo helperhascheck: grep foo prints nothingon the next line, when the os-backlog body checker runs, then it rejects the body and names the item.check: `grep -r foo lib`on the next line, when the checker runs, then it accepts the body.check:, when the checker runs, then it accepts the body.Owner sketch
Origin
VERDICT: CREATE
REASON: The os-backlog and os-sdlc validators now disagree on own-line check: items, which violates the ADR-0209 and ADR-0244 decision 4 requirement that both refuse the same bodies. #817 is complete and no existing ticket covers the os-backlog side. The chain has no improvisation, so this is a validation gap and not a speculative one.
Work started on branch ticket-821 via /os-sdlc:implement, target os-backlog.
Resolution
Done: Backlog::RequiredWork#checks_without_command groups each numbered item with its later lines; a free-text check: on its own line is refused, a backticked one accepted. Both validators now apply ADR-0244 decision 5.
Evidence: Implementation 74 complete: 8 dispatches, 5 min 34 s, all pass. os-backlog suite 271 runs, 0 failures. One body run through both parsers: items 2 and 3 refused by both, items 1 and 4 accepted/run by both.
Follow-ups: none