Route late-gate lint offenses by path: test_path files dispatch to test-lint-fixer #318

Closed
opened 2026-08-07 13:16:58 +00:00 by jared · 2 comments
Owner

Design: ADR-0107; decisions charted on wayfinder map #310 (ticket #313). Depends on the test-lint-fixer agent from ticket #317 being merged.

Acceptance criteria

  • Agent selection at the late lint stage is a pure function of the assignment file's target path: under test_path → os-sdlc:test-lint-fixer, otherwise → os-sdlc:lint-fixer. The function lives in plugins/os-sdlc/lib/os_sdlc/transition_table/ (or lib/os_sdlc/) as tested Ruby.
  • The function is applied at EVERY late-gate dispatch point: the lint-worklist/residual fanout AND the lint-fixer-single re-dispatch loop. The late gate's scope is unchanged — it still lints everything.
  • green-assert re-runs if and only if a test file was edited at the late gate; no re-run when only non-test files were fixed.
  • No refusal-handling machinery is added (no human-pause row, no auto-todo, no fallback dispatch) — ADR-0107 records this as deliberate.
  • Transition-table unit tests cover: routing of a test-file assignment to test-lint-fixer on both dispatch paths, routing of a non-test assignment to lint-fixer, conditional green-assert re-run triggering only on test-file edits, and a regression test for the #261 shape (all residuals in test files → dispatches proceed, no re-dispatch loop).
  • Full suite green; rubocop clean.
Design: ADR-0107; decisions charted on wayfinder map #310 (ticket #313). Depends on the test-lint-fixer agent from ticket #317 being merged. ## Acceptance criteria - Agent selection at the late lint stage is a pure function of the assignment file's target path: under test_path → os-sdlc:test-lint-fixer, otherwise → os-sdlc:lint-fixer. The function lives in plugins/os-sdlc/lib/os_sdlc/transition_table/ (or lib/os_sdlc/) as tested Ruby. - The function is applied at EVERY late-gate dispatch point: the lint-worklist/residual fanout AND the lint-fixer-single re-dispatch loop. The late gate's scope is unchanged — it still lints everything. - green-assert re-runs if and only if a test file was edited at the late gate; no re-run when only non-test files were fixed. - No refusal-handling machinery is added (no human-pause row, no auto-todo, no fallback dispatch) — ADR-0107 records this as deliberate. - Transition-table unit tests cover: routing of a test-file assignment to test-lint-fixer on both dispatch paths, routing of a non-test assignment to lint-fixer, conditional green-assert re-run triggering only on test-file edits, and a regression test for the #261 shape (all residuals in test files → dispatches proceed, no re-dispatch loop). - Full suite green; rubocop clean.
Author
Owner

Depends on #317's agent, which is unmerged and predates the #341/#342 rewrite. ADR-0107 still Accepted. Leaving open pending #317 re-scoping.

Depends on #317's agent, which is unmerged and predates the #341/#342 rewrite. ADR-0107 still Accepted. Leaving open pending #317 re-scoping.
Author
Owner

Closing as superseded: depended on #317's pre-rewrite implementation. Path-based lint routing would need re-design against the current stepper (ADR-0097). ADR-0107 remains the design reference if revived.

Closing as superseded: depended on #317's pre-rewrite implementation. Path-based lint routing would need re-design against the current stepper (ADR-0097). ADR-0107 remains the design reference if revived.
jared closed this issue 2026-08-13 18:33:44 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jared/cc-os#318
No description provided.