Map tests under a second test folder of an os-sdlc target (os-me hooks/test) #1276
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#1276
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
An os-sdlc target has one
test_path. The os-me suite also loadsplugins/os-me/hooks/test/*_test.rb(plugins/os-me/test/all.rbglobs{,../hooks/test/}*_test.rb), but the diff-test gate maps only tests underplugins/os-me/test. A new test underhooks/testgets no red run, and the test-reviewer brief gets no diff for it. The run then fails, or a hook test goes in a folder that is not its home.Observed
In implementation 135 (#1248), the test-writer put
plugins/os-me/hooks/test/extract_launcher_test.rbnext to the other hook tests. The test-reviewer (dispatch 1152) wrote: "test_changes has no diff content for plugins/os-me/hooks/test/extract_launcher_test.rb, and red_tests has no runner result for it (diff-test reported it unmapped and ran changed mapped tests only)". It returned verdicterror, and the Runner returnedimplementation_failed.Reproduce
n/a: needs a pipeline run with a new test under
plugins/os-me/hooks/test; seen once in implementation 135.Origin
plugins/os-me/test/extract_launcher_test.rband opened a new run (136), which passed.hooks/test← target config has onetest_path(.sdlc/project.yamlos-me target). Stop atDESIGN(.sdlc/project.yaml,plugins/os-sdlc/lib/os_sdlc/project.rb).VERDICT: CREATE
Occurrence: os-sdlc: tests outside a target's test_path are classed as code; the gate does not run them and the test-reviewer fails the run with error
Seen: plugins/os-sdlc/lib/os_sdlc/project/codebase.rb (
Project::Codebase#test_path?, lines 46-48;code?, lines 28-30), plugins/os-sdlc/maps/poodr-ticket-implementation.yaml (test-reviewererroredge, line 93)Run: implementation 293 (ticket #1762), dispatch 2905, 2026-11-13; session 2bb44e9c-522c-4c97-8449-bd46bed898e0
Adds: This is the second occurrence (the first was implementation 135, #1248). This time the changed tests were existing files,
plugins/os-me/hooks/test/cli_appender_test.rbandplugins/os-me/hooks/test/prediction_recorder_test.rb, so a move of the test path in the ticket body is not a workaround. The test-writer gate ended green although the tests for acceptance criteria 3 to 16 never ran; the brief said "unmapped code files (no mapped test; diff-test ran changed tests only)" (plugins/os-sdlc/lib/os_sdlc/dispatch/brief/facts.rb:105-109). The cause in code:test_path?is@test.include?(path), so a file underhooks/testis a code file to the gate.plugins/os-sdlc/agents/test-reviewer.md:22-24forbids the reviewer to read files and tells it to settleerrorwith aMISSING:item; the map sends thaterrorto implementation-failed with no repair path. Two acceptance statements are proposed: (1) a changed test file in a directory that the target's suite loads gets a diff and a red or green result in the brief, orimplementation-openrefuses a target whose suite loads tests outsidetest_path; (2) a test-reviewererrorfor missing evidence has a repair path, or the Runner payload names the cause. A count on 2026-11-13 of test files outside each target'stest_pathshows that os-me is the only affected target (3 files inplugins/os-me/hooks/test). The other 11 targets have 0 real tests outside: the os-sdlc count of 88 is 73 tests of the nested takedown target plus 15 production files with test-like names, and the takedown count of 4 is production files underlib/takedown. Runs 291 (#1233) and 292 (#1758) passed because all their tests were underplugins/os-me/test/. #1396 moves the os-me hook class files but does not namehooks/testand does not change os-sdlc.