← board

Track T face 2: agentic test manager — reads tstate, crafts tickets, owns the T codebase

Concept

A scheduled Claude agent (cron / recurring session) layered over the standalone watcher (feature-track-t-watcher). The watcher stays dumb and reliable; the agent adds judgment:

  1. Consume new devdocs/progress/tstate/ reports since its last run.
  2. NEW-RED → backlog ticket, filed like any track's ticket: repro command, failing job name, commit range (or exact SHA), first-failure log, suspect files from the range diff. Dedupe: one ticket per failing job signature; on range narrowing, UPDATE the existing ticket instead of filing a new one. Prio default ~70 (regressions block everyone).
  3. Drive bisects: when a range spans >1 commit, run/schedule the single-job bisect (testmgr --job) rather than waiting for idle backfill.
  4. Escalation policy: core-job red older than a day → mark ticket urgent + propose the revert in the ticket body.
  5. Corpus completeness (user, 2026-07-07): absent library_candidates/ trees make corpus jobs SKIP — silent coverage loss. The agent keeps its watcher clones complete (tools/install_lib_candidates.sh all); a SKIPping corpus job in tstate is a finding, not a green. On non-agentic boxes this stays a manual/user step (devdocs/dev/track-t.md).
  6. Owns the Track T codebase long-term: testmgr.py, twatch.py, report format, tier composition (e.g. promote new corpus targets into full), calibration constants. SELF-DIRECTED (user, 2026-07-07): the T agent is free to improve/refactor/optimize Track T sources on its own initiative — no ticket or approval required; improvements land under Track T's own gate (testmgr full green; tooling tested with quick tiers + scratch bare repo, never long runs).

Authority (user-set, 2026-07-07)

Gate

Non-goals

Fixing compiler regressions itself (files tickets for the owning track); replacing the dev-side quick gate.

Progress log

POSTPONED 2026-07-31 (user)

Moved to rainy-day/. The user prefers to keep a MANUAL eye on the Track T process for now rather than run the fully-autonomous cron agent — the supervised watcher + manual triage workflow stays in use. Revisit when there's appetite to automate the agentic loop. The watcher daemon itself keeps running; this only defers the unattended face-2 automation.