os-sdlc: dedup .cc-os/config tracker-line regex between IssueSource and TeaTracker #411

Closed
opened 2026-08-16 06:28:32 +00:00 by jared · 1 comment
Owner

Context

Both regexes encode the .cc-os/config tracker-line grammar: IssueSource::CONFIG_TRACKER_LINE (plugins/os-sdlc/lib/os_sdlc/issue_source.rb:13, capturing, extracts the value) and an inline non-capturing copy in TeaTracker#config_tracker_line? (plugins/os-sdlc/lib/os_sdlc/runner/tea_tracker.rb:130, boolean match only). TeaTracker already depends on IssueSource::TrackerResolver (tea_tracker.rb:135), which owns CONFIG_TRACKER_LINE and the .cc-os/config read. Refactor, not a bug — no behavior change expected. Evidence brief: .sdlc/tickets/411/evidence-brief.md.

VERDICT: CREATE — confirmed duplicate tracker-line regex literals in IssueSource::CONFIG_TRACKER_LINE and TeaTracker#config_tracker_line?; real drift risk if a tracker type is added to one and not the other.

Tasks

  • Expose a public tracker-line predicate on IssueSource::TrackerResolver backed by CONFIG_TRACKER_LINE.
  • TeaTracker#config_tracker_line? delegates to it; delete the inline regex.
  • Tests pin the shared predicate (extend plugins/os-sdlc/tests/issue_source_test.rb; no dedicated tea_tracker test exists).

Acceptance criteria

  • Exactly one regex literal encodes the tracker-line grammar in os-sdlc.
  • Suite green; changed files rubocop-clean.
## Context Both regexes encode the .cc-os/config tracker-line grammar: IssueSource::CONFIG_TRACKER_LINE (plugins/os-sdlc/lib/os_sdlc/issue_source.rb:13, capturing, extracts the value) and an inline non-capturing copy in TeaTracker#config_tracker_line? (plugins/os-sdlc/lib/os_sdlc/runner/tea_tracker.rb:130, boolean match only). TeaTracker already depends on IssueSource::TrackerResolver (tea_tracker.rb:135), which owns CONFIG_TRACKER_LINE and the .cc-os/config read. Refactor, not a bug — no behavior change expected. Evidence brief: .sdlc/tickets/411/evidence-brief.md. VERDICT: CREATE — confirmed duplicate tracker-line regex literals in IssueSource::CONFIG_TRACKER_LINE and TeaTracker#config_tracker_line?; real drift risk if a tracker type is added to one and not the other. ## Tasks - [ ] Expose a public tracker-line predicate on IssueSource::TrackerResolver backed by CONFIG_TRACKER_LINE. - [ ] TeaTracker#config_tracker_line? delegates to it; delete the inline regex. - [ ] Tests pin the shared predicate (extend plugins/os-sdlc/tests/issue_source_test.rb; no dedicated tea_tracker test exists). ## Acceptance criteria - [ ] Exactly one regex literal encodes the tracker-line grammar in os-sdlc. - [ ] Suite green; changed files rubocop-clean.
Author
Owner

Resolution

Done: Done.

Evidence: ADR-0122 backfill audit: DROP on speculative-hardening - duplication is real but has no incident provenance, and it is eliminated wholesale when #418 replaces runner/tea_tracker.rb with os-backlog's Tracker/ConfigLocator.

Follow-ups: Covered by #418; no separate work item.

## Resolution **Done:** Done. **Evidence:** ADR-0122 backfill audit: DROP on speculative-hardening - duplication is real but has no incident provenance, and it is eliminated wholesale when #418 replaces runner/tea_tracker.rb with os-backlog's Tracker/ConfigLocator. **Follow-ups:** Covered by #418; no separate work item.
jared closed this issue 2026-08-16 13:46:10 +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#411
No description provided.