Skip to content

feat(code-review): default to a maintainer fixup for small, mechanical findings - #1743

Merged
potiuk merged 1 commit into
apache:mainfrom
potiuk:feat/code-review-fixup
Oct 20, 2026
Merged

potiuk merged 1 commit into
apache:mainfrom
potiuk:feat/code-review-fixup

Conversation

@potiuk

@potiuk potiuk commented Oct 20, 2026

Copy link
Copy Markdown
Member

When every approval gate holds and the only findings left are minor / nit ones with a mechanical fix, sending the PR back costs the contributor a round trip for changes the maintainer could make in a minute.
pr-management-code-review now offers [F]ixup as the default in that case: commit exactly those changes to the PR head on the maintainer's confirmation, wait for CI, then approve with a body that lists what the fixup changed.

  • pr-management code-review disposition takes --head-pushable and a per-finding fixup line.
    When eligible, it returns fixup.changes, default: "FIXUP" and a FIXUP override.
  • A major or blocking finding is never fixed up.
    No approval gate is skipped: real CI green, no unresolved thread, no standing change request, no open maintainer question, and a branch that merges cleanly.
  • New classifications/disposition-fixup.md describes the flow.
    Step 6 of review-flow.md offers [F]ixup, and Step 4's finding shape gains fixup.
    scope.md carves this single confirmed path out of "never edits the contributor's branch".
  • Merging stays a separate, confirmed action.
  • The tool README row and specs/pr-management-family.md are updated.

Tests: 8 new cases in tools/pr-management/tests/code_review/test_decisions.py cover eligibility, push access, non-mechanical findings, majors, every approval gate, and the nit-only APPROVE.
The code-review suite and prek pass.
SKILL.md is unchanged, so no token restamp is needed.

Exercised by hand on #1728 before it was written up.


Generative AI: drafted with Claude Code (Claude Opus 5), reviewed by the author.

🤖 Generated with Claude Code

…l findings

When every approval gate holds and the only findings left are minor or
nit ones with a mechanical fix, sending the PR back for another round
costs the contributor a cycle for changes the maintainer could make in a
minute. The disposition step now offers FIXUP as the default in that
case: commit exactly those changes to the PR head on the maintainer's
confirmation, wait for CI, and approve with a body that lists what the
fixup changed.

- `disposition` takes `--head-pushable` and a per-finding `fixup` line,
  and returns `fixup`, `default` and a `FIXUP` override when eligible.
- A major or blocking finding is never fixed up; no gate is skipped
  (CI, threads, standing change requests, open questions, conflicts).
- New classifications/disposition-fixup.md describes the flow; Step 6
  of review-flow.md offers `[F]ixup`, and scope.md carves out this one
  confirmed path from "never edits the contributor's branch".
- Merging stays a separate, confirmed action.

Generated-by: Claude Opus 5
@potiuk potiuk added family:pr-management pr-management-* skills capability:review Deep per-item code review or contributor mentoring labels Oct 20, 2026
@github-actions github-actions Bot added family:tools tools/* family:docs Docs, MISSION.md, READMEs substrate:analytics Tool substrate: read-only metrics / dashboards / renderers labels Oct 20, 2026
@potiuk
potiuk merged commit e6e5c2e into apache:main Oct 20, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

capability:review Deep per-item code review or contributor mentoring family:docs Docs, MISSION.md, READMEs family:pr-management pr-management-* skills family:tools tools/* substrate:analytics Tool substrate: read-only metrics / dashboards / renderers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant