os-sdlc: test-discipline lint gate after test-writer + correction loop #340
Labels
No labels
P0
P1
P2
P3
bug
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
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#340
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?
Add a post-test-writer lint gate enforcing Sandi Metz test discipline (POODR ch.9), plus a mechanical correction loop.
Deterministic cops (start cops-only, measure before adding an AI judge tier):
send(:...),__send__,instance_variable_get/seton the class under test; reopening the class under test in a test file.Not deterministic (deferred): command-vs-query classification ("should have been ignored, not mocked") — needs side-effect knowledge; candidate for a closed-catalog Tier-2 judge later, os-aidd-lint style.
Correction loop: failing lints produce a mechanical correction list routed back to test-writer (the only role allowed to edit tests). Routing lives in the stepper map (
lib/os_sdlc/runner/transition_table.rb) as data, per ADR-0097 — never in skill prose. The red gate re-runs automatically because it is a post-agent hook on test-writer, so a corrected suite is re-verified to fail for the original reason for free.Blocked by #327 (base stepper must be complete first).
Planned additional transitions
Once this gate is complete, the following transitions will be added to the stepper (routing lives in
lib/os_sdlc/runner/transition_table.rbas data, per ADR-0097):Details tracked in the code-review skill and ADR-0097.
Frozen in the 2026-08-16 backlog reset — see #419 for the expiry procedure. Do not work unless a live run rediscovers this issue.