Repository navigation
task-reviewer resolves the spec through lib/trackers (#239, step 2 of 2) - #253
Conversation
… switches onto the Phase-2 modules (fixes the GH_URL-only sidecar read): task-reviewer resolves the spec through lib/trackers Part of #239, the task-reviewer step. - Replace `parse_issue_number`, the `TRACKER == gh` branches (PR-body `Closes #N` scan, issue-URL synthesis), the two no-spec warnings and the four-loadout help table with tracker hooks: `aw_tracker_review_spec`, `aw_tracker_review_no_spec_warning`, `aw_tracker_review_usage_spec` and `aw_tracker_review_spec_shape`. The default is jira/notion/local's opaque pass-through; gh overrides it. - `--help` prints only this tracker's spec shape; outside a configured repo it says the shape is the tracker's. - kiro-* routing to `kiro-gh/bin/task-reviewer` is untouched (#146). Tests: bats --count 1311 at fc4d87b -> 1315. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Spec complianceIssue #239 called for migrating
The API design question the spec asked to record is answered clearly: Code-review findings
Mutation checking documented and thorough. Old binary fails both help tests; blanking CI: 1 run exists for the head commit ( No correctness bugs, no security concerns, no edge-case gaps. Verdictclean — all spec deliverables met, code is correct on all input paths, tests mutation-verified, CI ran. Ready to merge. |
Closes #239 — the task-reviewer step. Step 1 (task-recreate-worker) was #252.
What changed
The claude body of
bin/task-reviewerno longer branches on$TRACKER. Everything tracker-shaped moves into four new tracker hooks:parse_issue_number, the ghCloses/Fixes/Resolves #Nscan, the issues-URL synthesisaw_tracker_review_spec <input> <pr_url> <pr_body>→ setsAW_SPEC_ID/AW_SPEC_REFaw_tracker_review_no_spec_warning <pr_number><spec-identifier>help tableaw_tracker_review_usage_spec+aw_tracker_review_spec_shapeDefaults vs overrides.
_default.shholds jira/notion/local's opaque pass-through, so those three modules each override only the one-line shape noun.gh.shoverrides the spec resolution, the help paragraph and the warning.Why new hooks rather than
aw_tracker_parse_ref. This is the API question the spec asked to record. A reviewer's spec is nottask-work's ref:gh.sh'saw_tracker_is_refrejects;local.sh's predicate requires-f.So these are the "neighbour" hooks the spec anticipated, not evidence that the task-work API was drawn in the wrong place.
Behaviour
Unchanged on every loadout: spec resolution, the
.infocontents, the warnings, the error text and the/reviewerlaunch line. All 82 pre-existingtask_reviewer.batscases pass unmodified.Declared change:
--helpprints only this repo's tracker's spec shape, instead of all four loadouts' shapes.--helpsays the shape depends on the tracker.[<spec-identifier>], matching the README.#146 overlap
This PR does not touch
kiro-gh/bin/task-reviewer;kiro-*stillexecs into it. It does make #146's code half much smaller:kiro-gh'sparse_issue_number/ISSUE_URL/ PR-body scan is exactly whatlib/trackers/gh.sh'saw_tracker_review_specnow does._default.sh+gh.shand calling that one hook, not porting the task-reviewer: tracker-aware spec-issue cross-check (claude-jira/notion/local) (#144) #145SPEC_IDENTIFIERlogic by hand.kiro-jira/-notion/-localextension post-#144 reviewer cleanup: kiro-gh task-reviewer SPEC_IDENTIFIER migration + the stale signature in .claude/gh-workflow.md #146 lists as out of scope would get the opaque pass-through for free from_default.sh.task-pm: skipped
bin/task-pm's twocase "$AGENT"armsexecan argv (exec claude "/pm"). They do not build thebash -iccommand string thataw_agent_launch_cmdreturns, so the hook does not fit without a new PM-launch hook. The spec marks this step optional and lowest-payoff, so it is left alone.Tests
bats --count: 1311 at step 1'sfc4d87b→ 1315. All 1315 pass under./run_tests.sh(run before the rebase ontoorigin/main). After the rebase I re-rantask_reviewer,loadout_modulesandtask_recreate_worker, and all passed.New tests:
task_reviewer.bats:--helpnames only its own tracker's shape, on all four claude loadouts;--helpworks outside a configured repo;ISSUE_NUMBERin.infois the tracker's own id, for each of the four trackers.loadout_modules.bats:Each new test was checked against a broken tree and went red:
bin/task-reviewerfails both help tests;AW_SPEC_IDin the default hook fails the.infotest, and only that test. The non-ghISSUE_NUMBERhad no coverage before;aw_tracker_review_no_spec_warningin_default.shfails the hook-presence test.Also green:
tools/check-drift.sh(15 groups) andshellcheck -xonbin/task-reviewerandlib/trackers/*.sh.No
task-initre-run needed. The CHANGELOG entry is under[Unreleased]→ Changed.🤖 Generated with Claude Code