From dev-core
Apply review findings — auto-apply high-confidence, 1b1 for rest, then batch-apply. Triggers: "fix findings" | "fix review" | "apply fixes" | "fix these" | "apply review comments" | "apply the review" | "fix the review issues" | "address review feedback" | "fix PR comments".
npx claudepluginhub roxabi/roxabi-plugins --plugin dev-coreThis skill is limited to using the following tools:
Two-pass pipeline: auto-apply high-C findings (C≥T, 2+ agents), then 1b1 for rest.
Addresses code review feedback by validating issues, fixing valid ones, and batch-committing changes. Handles local agent feedback or GitHub PR threads via /fix-code-review-feedback or auto-invocation.
Process code review feedback rigorously: read fully, understand issues, verify claims against code, evaluate fixes, respond with evidence, and implement changes. For PRs, agent reviews, external feedback.
Loads GitHub PR review comments into AI session for analysis, triage, and fix planning. Default analysis-only; explicit --mode fix for auto-fixes.
Share bugs, ideas, or general feedback.
Two-pass pipeline: auto-apply high-C findings (C≥T, 2+ agents), then 1b1 for rest.
⚠ Continuous pipeline. ¬stop between phases. Stop only on: unrecoverable failure or Phase 8 completion.
/fix → findings from conversation context
/fix #42 → gather findings from PR #42 comments
Let:
F := all findings | f ∈ F | C(f) ∈ [0,100] ∩ ℤ — confidence
A(f) := {agents that flagged f} | cat(f) ∈ {issue, suggestion, todo, nitpick, thought, question, praise}
src(f) := originating agent | actionable := {issue, suggestion, todo, nitpick}
T := 80 — auto-apply threshold
Q_auto := {f | cat(f) ∈ actionable ∧ C(f) ≥ T ∧ |A(f)| ≥ 2}
Q_1b1 := {f | cat(f) ∈ actionable ∧ f ∉ Q_auto}
O_push(N, scope, msg) { lint+test gate (max 3 retries) → stage specific files (¬git add -A) → commit fix(<scope>): <msg> → git push }
gh pr view <#> --json comments --jq '.comments[].body'; parse Conventional Comments/code-review outputSplit into Q_auto, Q_1b1, skipped (praise).
Single-agent high-C verification: ∀ f where cat(f) ∈ actionable ∧ C(f) ≥ T ∧ |A(f)| = 1:
∀ f ∈ Q_auto: solution(f) := Solution 1 (recommended).
Display:
── Fix Plan ──
Auto-apply: |Q_auto| finding(s) (C≥80, 2+ agents)
1b1 review: |Q_1b1| finding(s)
Skipped: |skipped| (praise)
Q_auto = ∅ ∧ Q_1b1 = ∅ → "No actionable findings", halt.
Q_auto = ∅ → skip to Phase 4.
∀ f ∈ Q_auto (sequential, inline — already verified by 2+ agents):
[applied][failed], demote to Q_1b1── Auto-Apply Results ──
1. [applied] issue(blocking): SQL injection in users.service.ts:42 (92%)
2. [failed → 1b1] nitpick: Unused import in dashboard.tsx:3 (85%) -- test failure
Applied: N | Failed → 1b1: M
∃ applied → O_push(N, scope, "auto-apply N review findings" + list in body). Fail after 3 → halt. ¬∃ applied → skip.
Q_1b1 = ∅ → skip to Phase 7.
∀ f ∈ Q_1b1 sequentially (excluding praise):
── Finding {i}/{|Q_1b1|}: {cat(f)} ──
{cat} — C(f)% — {src(f)}
{file}:{line}
Root cause: {root cause}
Recommended: Solution 1 — {rationale}
Alternative: Solution 2 — {rationale}
Demoted from auto-apply → prepend: Auto-apply failed: {reason}
→ DP(A)(single per finding): Solution 1 | Solution 2 | Defer (→ create issue) | Skip
Defer → gh issue create --title "{cat}: {summary}" --body "{details}" immediately.
── Walkthrough Complete ──
Accepted: N | Deferred (issues created): M | Skipped: K
acc := {f ∈ Q_1b1 | decision ∈ {solution1, solution2}}, each with chosen solution.
acc = ∅ → skip to Phase 7.
|acc| ≤ 2 → orchestrator applies directly (inline)
|acc| ≥ 3 → spawn agent(s) per dispatch + batching rules
Payload = findings + chosen solution + diff context + "fix using chosen solution; re-read files before editing; lint + test after each fix."
Fixer constraints: re-read targets before editing (Phase 3 may have changed them). CI fail → retry max 3; [failed] if stuck.
gh api repos/:owner/:repo/issues/<#>/labels -f "labels[]=reviewed"∄ PR → skip.
/tmp/review-fixes.md → gh pr comment <#> --body-file /tmp/review-fixes.md
## Review Fixes Applied
**Auto-applied (C≥80, 2+ agents):** N finding(s)
**Applied via 1b1:** M finding(s)
**Deferred (issues created):** J finding(s)
**Skipped:** K finding(s)
**Failed:** L finding(s)
### Auto-Applied
- [applied] issue(blocking): SQL injection in users.service.ts:42 (92%)
### Applied (1b1)
- [applied] suggestion: Missing error boundary in dashboard.tsx:15
### Deferred
- nitpick: Variable naming in auth.service.ts:88 → #123
### Failed
- [failed] nitpick: Unused import in dashboard.tsx:3 -- test failure
| Scenario | Behavior |
|---|---|
| F = ∅ | Halt |
| Q_auto = ∅ ∧ Q_1b1 = ∅ | Halt |
| All praise | "Nothing actionable", halt |
| C(f) ≥ T ∧ |A(f)| = 1 | Verify → confirmed: auto / rejected: 1b1 |
| Auto-apply fails | Demote to Q_1b1 |
| 1b1 fix fails | [failed], continue |
| Quality gate fails 3× | Halt, leave uncommitted |
| ¬∃ PR | Skip Phase 8, local only, no label |
git diff anytime — applied changes visible in working treegit add -A (risk of .env, secrets)reviewed only, human merges/code-review (findings)/code-review (re-review after fix) — LOOP/dev owns the dev-pipeline task lifecycle externallyTaskCreate new review task with metadata: { kind: "dev-pipeline", step: "review", follow_up: true, iteration: N+1, blockedBy: [this.id] }/dev: fixes applied + committed + pushed + PR comment posted → TaskCreate follow-up review task → return silently. /dev picks up the new review task.Next: /code-review (re-verify). Stop./dev presents Retry | Skip | Abort.metadata.iteration ≥ 2 on entry → refuse another iteration; return with message "Max fix iterations reached — resolve remaining manually". /dev presents Abort.$ARGUMENTS