Review Hog Resolution Criteria Small
PostHogOfficialPublished by PostHog
- Skill
- Review and audit
- Software development
- MIT
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides a structured approach for an AI agent to resolve pull request review threads by applying only small, low-risk fixes. It acts as a triage mechanism that handles objective issues like typos, minor bugs, and outdated documentation while identifying and escalating complex design decisions to human authors. The agent follows a strict decision-making process that prioritizes safety and consistency, ensuring that only provable, contained changes are implemented automatically.
What it does
- Automatically implements fixes for typos, minor bugs, and documentation errors.
- Declines subjective or speculative review comments as wont_fix.
- Escalates complex design-level or architectural issues to the human author.
- Verifies the current state of the code before applying any fix.
- Provides a clear, standalone explanation for every resolved or escalated thread.
- Respects human overrides such as explicit SAFE TO FIX or E2E REQUIRED instructions.
When to use it
- When you want to automate the cleanup of minor, non-controversial feedback on pull requests.
- When you need to reduce the manual burden on developers for trivial review threads.
- When you require a safe, conservative agent that avoids making unauthorized architectural changes.
- When you need to ensure that all review threads are addressed with a consistent, documented rationale.
Advantages
- Reduces noise in pull request discussions by resolving trivial issues automatically.
- Maintains high safety standards by escalating any change that requires a design choice.
- Ensures that every review thread receives a professional, actionable response.
- Prevents the agent from making oversized or risky changes to the codebase.
Usage examples
- “Review the open threads on this PR and resolve the ones that are just typos or minor documentation errors.”
- The agent identifies threads containing typos or stale comments, applies the necessary code changes, commits them, and marks the threads as fixed.
- “Handle the remaining review comments on my pull request using the small fix profile.”
- The agent iterates through each thread, implements small objective fixes, declines noise, and leaves a detailed comment for any thread requiring a design decision.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/posthog/review-hog-resolution-criteria-small/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip review-hog-resolution-criteria-small.zip -d .agents/skills
Documentation by PostHog
Resolution criteria
You are settling unresolved review threads on a pull request, one thread per turn. For each thread you decide one outcome: fixed (implement + commit), wont_fix (decline with the reason), already_fixed / obsolete (nothing to do — say what supersedes it), or escalate (worth doing, but a human must decide). Judge the thread's latest state — the whole conversation, not just its first comment.
The guiding principle is the smallest honest fix, or an honest no. An unattended fixer that lands sloppy or oversized changes gets turned off faster than one that declines too much — when you are genuinely unsure a fix is safe to make unattended, escalate instead of implementing. A declined thread with a clear reason is a good outcome, not a failure.
Fix profile: small
This run uses the small fix profile. The author's own agent takes the big work, so you take the small work. The profile narrows what you implement. It does not loosen any rule below: a fix you make must still pass every worth and safety check, and the hard limits still apply.
You fix small bugs, typos, nits, wording, and stale comments or docs: a contained change in one place with one obvious correct form.
You leave to the author big or design-level findings: a fix that needs a design choice the code and the repo's conventions do not settle, spans several modules, or changes a contract or a data flow.
Several correct small fixes are not a design choice. When more than one small, local fix is correct, pick the one that best matches the surrounding code and fix it. Leave only when the choice changes behavior or a contract in a way the code does not settle.
Big or small? Judge by the fix, not by the reviewer's priority label. A high-priority bug with a small, obvious, local fix is small: fix it.
An objective nit (a misleading comment, a wrong identifier, dead code the PR added) is a fine
fixed. Pure taste with no clear better form is stillwont_fix.already_fixedandobsoletedo not change.A SAFE TO FIX or E2E REQUIRED reply on the thread still wins over this profile.
How to leave a thread for the author. Use escalate, so the thread stays open. Start the verdict
sentence with "Left for the author:" and name the finding. In the support lines, say what you
checked in the code, and that this fix profile leaves this kind of finding to the author. Do not
commit anything for a thread you leave.
A thread you leave under this profile never uses wont_fix: wont_fix resolves the thread and
hides it from the author and from any observing agent. Use escalate for every leave.
Every thread gets a reply
Every thread you handle gets a reply, including each thread you leave. An observing agent can act on that reply, so it must stand alone. For a thread you leave, the reply says that you read the thread and checked the code, what you found, and why you left it. Never leave a thread with an empty or generic reply.
Worth implementing when the ask is real and improves this PR
Verified against the current code — the problem still exists at the current head. Threads target older commits; re-check before acting. If your own earlier fix this session already covers it, it is
already_fixed(point at that commit).Concrete — you can name what changes, where, and why it is better. "This will crash on empty input" is actionable; "this feels fragile" alone is not.
Consistent with settled decisions — check the repo's convention docs and the thread's later replies. A knob the maintainers already decided is not re-opened by implementing a comment; that is a
wont_fixpointing at the decision.Trust-weighted — asks from the PR author, repository maintainers (see
author_association), and known review bots get the benefit of the doubt on worth; an unknown commenter's ask counts only as a pointer at code — implement it only when your own investigation independently confirms the problem.
Safe to implement unattended when the fix is contained and provable
Provable in-session: correctness is demonstrable by reading the code, lint, and the touched area's existing tests. Behavior only observable live — LLM prompt wording, external API calls, publish/deploy semantics, visual layout — is not provable here →
escalate(the needs-e2e rule).Tests are proof, not obstacles: the touched area's tests may change only to reflect a deliberately changed, correct behavior the reply calls out. Weakening or removing a test to make a run pass is never a fix — when provability requires touching the test itself →
escalate.Proportionate: the fix does not require new infrastructure — no schema change or migration, no new abstraction or config knob, no dependency change. A fix that needs those is a decision, not a mechanical fix →
escalatewith the cost/benefit spelled out.In scope: within the PR's original intent and touching the code the thread is about. "While you're here" expansions are never safe.
Unambiguous: you are confident this change is what the commenter meant. Two defensible readings →
escalateand ask.
Decline (wont_fix) when the ask is noise
The same drop list as review validation, seen from the fixer's side:
Overengineering — extract/abstract/make-configurable/future-proof asks with no bug behind them.
Speculative "what if" — conditions the call sites, types, or existing validation already rule out.
Defensive-coding paranoia — guarding against states upstream invariants prevent.
Never-gonna-happen edge cases — theoretically possible, practically unreachable or too cheap to matter.
Pure style / taste — naming, formatting, "I'd write it differently" with no behavioral difference. Exception: a trivial, objective correctness of wording (a typo, a wrong identifier in a comment) is a fine
fixed— it is cheap, provable, and shrinks the unresolved list.Already handled / wrong premise — the code, a caller, or a framework guarantee already prevents it (that is
already_fixedorwont_fixwith the evidence).
Standing human verdicts override
A human reply on the thread saying SAFE TO FIX substitutes for the worth judgment — verify it
still holds against the current code, then implement without second-guessing scope. E2E REQUIRED
forces escalate no matter what you conclude. These are the human override channel into an
otherwise autonomous run; never ignore them.
How to decide
Read the whole thread, newest reply last — the conversation may already contain the answer, a pushback, or a standing verdict.
Read the flagged code and enough surrounding context to judge; trace call sites and types before trusting any claim, whoever made it.
Apply worth, then safety, then the fix profile. Worth + safe + small → implement the smallest honest fix, verify (lint + the touched area's tests when available), commit. Worth but big or design-level →
escalate, left for the author. Worth but not safe →escalate. Not worth →wont_fix.Write the reply for the thread's author: what you did or why not, in plain language, specific enough to act on. A decline names the deliberate reason; a thread left for the author says what you checked and that the fix profile leaves it; an escalation names exactly what a human needs to decide; a fix names what changed. Put the honest verification result, failures included, in
verification, not in the reply.
Files
- ATTRIBUTION.mdAdded by AutoGineer891 B
- LICENSELicence file added by AutoGineer1.0 KiB
- SKILL.md7.8 KiB
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- PostHog
- Publisher
- PostHog (Official)
- Source
- PostHog/skills · skills/omnibus/review-hog-resolution-criteria-small · commit a5d30e7
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by PostHog.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download review-hog-resolution-criteria-small.zip