implementation-open and change-auditor accept a ticket whose criteria span two targets #1109
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#1109
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
implementation-openand thechange-auditorAlign step accept a ticket whose criteria name paths outside the bound target. The pipeline then cannot see the work, and the test-reviewer loops untilbound_exhausted.Observed
Implementation 65 of #1105 ran on target os-backlog.
Acceptance criterion 4 named os-sdlc work (
plugins/os-sdlc/lib).change-auditorandseam-designerpassed.test-writerwrote a test underplugins/os-sdlc/tests.Brief::Facts#test_changesand the diff-test gate read only the bound target'stest_paths, so the hunk never appeared in the facts.test-reviewerkept the grounded objection open four rounds untilbound_exhausted.The writer claimed "addressed" three times.
Reproduce
n/a: design gap; see implementation 65 of #1105.
Approach
Add a deterministic check at
implementation-openor in thechange-auditorAlign step. The check fails loudly when a Required work check path or an acceptance criterion names a path outside the bound target'scode_pathortest_paths. The error names the path and the target.Required work: none beyond the acceptance criteria.
Acceptance criteria
code_pathandtest_paths, when the ticket is opened, then the run fails and the error names the path and the target.Origin
Occurrence: Make the test-reviewer brief cover test edits outside the target plugin
Seen: plugins/os-sdlc/lib/os_sdlc/dispatch/brief/facts.rb:90 (
Brief::Facts#test_changesuseschanges.test_diff, scoped to the targettest_path)Run: implementation 165 (#1327,
--target os-sdlc), session 9862c06a-9e09-46ea-9b37-b6563d3fb103, dispatches 1426, 1428, 1430Adds: the ticket's Required work named tests in
plugins/os-me/test/. Reviewer objection 152 (os-me diff missing fromtest_changes) could not be corrected by the writer, and dispatch 1430 returnedverdict: error, which the map routes toimplementation_failed. Option A to consider beside the refusal: widentest_changesto every plugin path the Required work names. Open question: a test that only tags existing behavior (os-meuse_caseblock over a yielding shim) is green by design, but theround_testsrule requires red. Workaround: split #1327; os-me part is #1392.Occurrence: Let os-sdlc pipeline accept test changes across two project targets
Seen: plugins/os-sdlc test-reviewer dispatch / Runner; .sdlc/project.yaml
Run: Session 5b14a4ef-91b2-45c0-a729-baa17682a39a, implementation 244 (ticket #1589, target os-git)
Adds: Test-reviewer dispatch 2337 passed the 11 tests in plugins/os-git/tests but plugins/os/tests was not in test_changes, so it gave verdict error and the Runner ended as implementation_failed, verdict:error, though the work was sound. This ticket wants the pipeline to accept such a ticket, not only reject it at implementation-open. Context: implementations 242 and 243 (#1587, #1588) ended unexpected_pass and bound_exhausted:behavior-verifier/fail and were hand-finished; the audit of #1588 found 10 blockers the green suite missed.
Occurrence: Refuse or widen an implementation whose tests span several targets
Seen: plugins/os-sdlc/lib/os_sdlc/dispatch/brief/facts.rb
Run: implementation 260 for #1623, escalation 119 (bound_exhausted:test-reviewer/fail), session 3db425a5-c68f-487d-a031-882da554ee65
Adds: a second case. #1623 changed tests in four targets (os-backlog, os-sdlc, takedown, os) and ran with --target os-backlog. 11 changed test files were outside the bound target, objection 379 stayed open for all five reviewer rounds, and test-lint showed {"files":[]} every round. ticket check and TicketShape#missing both passed the body. Recovery: orchestrator hand-finish.