spike: evaluate and improve the PR review path
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 20/100
Research direction
Start by reading the user-level pr-triage, pr-review, and pr-scoped-reviewer.md files named in the issue, along with the relevant PR diffs and follow-up fixes. Build the back-test table and record whether each bug was caught, dropped, or never raised, then use those results to assess the proposed changes. Done means the table and findings are posted, any adopted changes are re-tested against it, and the stated skill changes are complete.
Written by the indexing model from the issue text.
Description
Found while auditing the pipeline for #400 (piece 7). The PR review path (pr-triage, which runs pr-review and /code-review medium and then triages the findings) often returns a clean review, and the owner suspects it is missing real bugs. There is no data either way. This spike measures it and, if the data says so, improves it.
All of the review skills and agents involved are user-level files on the owner's machine (~/.claude/skills/pr-triage, ~/.claude/skills/pr-review, ~/.claude/agents/pr-scoped-reviewer.md), so there is no repo change unless the spike produces one.
Background
- The built-in
/code-reviewwas too critical about small issues and kept producing new changes on each pass, so a PR almost never got a clean review. pr-review(a thin wrapper aroundpr-scoped-reviewer) fixed the noise but seemed to miss bugs.pr-triagecombines both and adds a verify-and-rank step with a human walkthrough. It is the only one still in use.
Hypotheses to test (from reading the skill text, not from run data)
pr-scoped-reviewermay only cite lines the diff adds or changes and is told to omit anything in doubt, so it cannot report an omission (a caller, validator, migration or mapping that should have changed and did not).- The filters stack: the reviewer drops what it cannot prove, then the triage step drops what is speculative or pre-existing, so a real bug can be lost as "speculative".
- Neither reviewer sees the issue's acceptance criteria, so "does it do what was asked" is checked only by
implementation-validatoron pipeline PRs. - Neither reviewer is told this repo's known traps (enum casing, journal carry-forward, timezone, compose volumes).
- The two reviewers are the same model on the same diff, so agreement between them adds little confidence about what both missed.
Scope
- Build a back-test set: merged PRs that were later followed by a fix (a
bugfix/branch, afix:commit or a bug issue that traces to the earlier PR). Record for each one the bug, the PR it came from, and the category (omission, logic, project-specific trap, other). - Run the current
pr-triagereviewers (pr-scoped-reviewerand/code-review medium) on each original PR diff, read-only. Record whether the bug was caught, found but dropped in verification, or never raised, and which layer lost it. - Over the next several live
pr-triageruns, note whether anything on the dropped list later proves real. - From the results, decide which of these to apply, if any:
- allow omission findings that cite the changed line and the unchanged code that should have changed
- a "needs a human look" bucket for speculative critical or important candidates, in place of silent drops
- pass the issue's acceptance criteria and the CLAUDE.md Safe Change Rules to the reviewers
- drop one of the two reviewers if it finds nothing the other does not
- Change
pr-triageStep 2 to callpr-scoped-reviewerdirectly with the diff it already fetched, then retire thepr-reviewskill. Do these two together: deletingpr-reviewfirst would breakpr-triage, which invokes it. This also removes the duplicate diff fetch. - Remove the "shell quoting mangles" sentences in
pr-triage(Step 5b item 4 and Step 5c item 5). The--input <file>mechanism for the review JSON stays. #400 decided this cut in piece 2.
Acceptance criteria
- A back-test table is posted on this issue: each known bug, the PR it came from, and the result (caught, dropped in verification, or never raised) for the current review path.
- The findings say which layer lost the misses: reviewer scope, the verification filter, or missing context.
- Each change from scope item 4 is either applied or rejected, with a reason that points at the table.
- After any change, the back-test is re-run and the result is posted. The miss rate is no worse, and the noise on a few recent clean PRs has not clearly grown.
pr-triageno longer invokespr-review, and thepr-reviewskill is gone (scope item 5).
Out of scope
- The validator's role in the feature-factory pipeline. #400 decided it checks the diff against the approved brief only; revisit if this spike finds omissions need catching before the PR.
- Running
pr-triagefrom the pipeline. #400 decided it stays manual; the pipeline prints/pr-triage <N>after the PR is created. - Any change to the built-in
/code-review.
- Dominant language
- C#
- Stars
- 1
- Forks
- 0
- Avg merge
- 2h 2m
- Merged PRs (30d)
- 98
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from nevridge/TaskFlow
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Maintainers usually reply within 1 day
-
tech-debt
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
All issues in nevridge/TaskFlow
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
juandresrodca/AdminForge#54 ·
-
要トリアージ 辞書
Difficulty 1/5 1-3 hours Newbie friendliness 86/100
yksr-melt/Meltype#1625 · 1 reaction ·
Maintainers usually reply within 1 day
-
Docs typoOpen
Difficulty 1/5 Under an hour Newbie friendliness 78/100
MonoGame/docs.monogame.github.io#328 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
space-wizards/RobustToolbox#7197 ·
Maintainers usually reply within 1 day
-
documentation high priority
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
lachydotmcg/capri-desktop#201 ·
Maintainers usually reply within 1 day