Skip to content

fix(skill): strengthen batch-fix enforcement in deft-review-cycle (#250)#253

Merged
MScottAdams merged 1 commit intomasterfrom
agent2/fix/250-review-cycle-batch-enforcement
Apr 9, 2026
Merged

fix(skill): strengthen batch-fix enforcement in deft-review-cycle (#250)#253
MScottAdams merged 1 commit intomasterfrom
agent2/fix/250-review-cycle-batch-enforcement

Conversation

@MScottAdams
Copy link
Copy Markdown
Collaborator

Summary

Strengthen batch-fix enforcement in skills/deft-review-cycle/SKILL.md to prevent agents from pushing one fix commit per Greptile finding instead of batching all findings into a single commit.

Root cause: agents push one fix commit per Greptile finding, causing N re-review cycles instead of 1.

Changes

  1. Phase 2 Step 3 pre-commit gate: Added ! rule requiring agents to re-read the FULL current Greptile review and confirm all P0/P1 issues are addressed in staged changes before committing
  2. Anti-pattern: partial fix commits: Push a fix commit that addresses fewer findings than the current review surfaces -- if Greptile flags 3 issues, all 3 must be fixed in one commit before pushing
  3. Anti-pattern: unchecked P1 fix: Push after fixing a P1 without first checking whether the same review contains additional P1 or P2 findings
  4. Spec task t1.12.2: Added to SPECIFICATION.md with [completed] status
  5. CHANGELOG entry: Added under [Unreleased]

Related Issues

Closes #250

Checklist

  • /deft:change <name> -- N/A (3 files changed but all are doc/skill updates with no architectural risk)
  • CHANGELOG.md -- added entry under [Unreleased]
  • ROADMAP.md -- N/A (release-time update per convention)
  • Tests pass locally (937 passed, 25 xfailed)

Post-Merge

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 9, 2026

Greptile Summary

This PR adds batch-fix enforcement to skills/deft-review-cycle/SKILL.md to prevent agents from pushing one fix commit per Greptile finding instead of batching all findings into a single commit. Three files are updated: the skill itself (new pre-commit gate + two anti-patterns), tests/content/test_skills.py (section 26 with three new tests), SPECIFICATION.md (t1.12.2 marked [completed]), and CHANGELOG.md (new [Unreleased] entry).

Confidence Score: 5/5

Safe to merge — all changes are documentation, skill instructions, and corresponding tests with no architectural or runtime risk.

No P0 or P1 findings. The single P2 comment is a wording precision issue between the pre-commit gate (P0/P1 scope) and the anti-pattern (implied all-severity scope), which could cause agent confusion but does not break any current behavior. All tests verify the new SKILL.md rules accurately, SPECIFICATION.md and CHANGELOG.md are correctly updated.

No files require special attention.

Vulnerabilities

No security concerns identified. All changes are documentation and instruction files with no executable code paths, credentials, or access-control logic.

Important Files Changed

Filename Overview
skills/deft-review-cycle/SKILL.md Added pre-commit gate requiring full Greptile review re-read before committing, plus two anti-patterns against partial fix commits — consistent with surrounding RFC2119 conventions and the existing exit condition logic.
tests/content/test_skills.py Section 26 adds three assertion tests for the new SKILL.md rules; all three string checks case-insensitively match the exact phrasing in the updated skill file and will pass.
SPECIFICATION.md Added t1.12.2 task entry marked [completed] with accurate acceptance criteria matching the SKILL.md changes.
CHANGELOG.md New [Unreleased] Fixed entry added for the batch-fix enforcement change — follows existing changelog conventions.
Prompt To Fix All With AI
This is a comment left during a code review.
Path: skills/deft-review-cycle/SKILL.md
Line: 87

Comment:
**Anti-pattern severity scope is broader than pre-commit gate**

The pre-commit gate (line 87) gates only on "all P0/P1 issues are addressed," but the anti-pattern at line 229 says "if Greptile flags 3 issues, **all 3** must be fixed in one commit before pushing" — with no severity qualifier. Step 6 explicitly states P2 is non-blocking, so an agent following the anti-pattern strictly would feel required to fix P2 findings before pushing even when the exit condition doesn't require it. Consider aligning the anti-pattern to match the gate's P0/P1 scope:

```
⊗ Push a fix commit that leaves any P0 or P1 finding unaddressed — if the current review surfaces P0/P1 issues, all must be fixed in one commit before pushing (P2-only findings may be deferred)
```

How can I resolve this? If you propose a fix, please make it concise.

Reviews (3): Last reviewed commit: "fix(skill): strengthen batch-fix enforce..." | Re-trigger Greptile

@MScottAdams MScottAdams force-pushed the agent2/fix/250-review-cycle-batch-enforcement branch from 1e816fd to 79178b1 Compare April 9, 2026 15:40
- Add ! pre-commit gate to Phase 2 Step 3: re-read FULL Greptile review
  and confirm all P0/P1 issues addressed in staged changes before committing
- Add anti-pattern: push a fix commit addressing fewer findings than the
  current review surfaces (if 3 issues flagged, all 3 fixed in one commit)
- Add anti-pattern: push after fixing a P1 without checking for additional
  P1/P2 findings in the same review
- Add spec task t1.12.2 to SPECIFICATION.md with [completed] status
- Add CHANGELOG entry under [Unreleased]

Closes #250
@MScottAdams MScottAdams force-pushed the agent2/fix/250-review-cycle-batch-enforcement branch from 79178b1 to 82ef2aa Compare April 9, 2026 15:46
@MScottAdams MScottAdams merged commit 11f99f8 into master Apr 9, 2026
9 checks passed
@MScottAdams MScottAdams deleted the agent2/fix/250-review-cycle-batch-enforcement branch April 9, 2026 15:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(skill): deft-review-cycle -- strengthen batch-fix enforcement, add anti-pattern against per-finding commits

1 participant