agentleFS
rozzarozza/ai-skills/grill-review/SKILL.md

grill-review

Skill1 starsChanged 7 months agoApache-2.0View on GitHub

Stress-test your understanding of a code change by answering questions about intent, mechanics, impact, and testing. Works for both authors and reviewers.

The file

We split this skill into the rules it gives an agent

4 rules. About 0 are common, 2 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Precedence rule: Check diff patterns first.

    line 21
  2. Distinctive:

    If neither exists, stop and ask the user which branch to diff against.

    line 54
  3. Very specific:

    Remote resolution: Check if an upstream remote exists (git remote get-url upstream).

    line 56
  4. Distinctive:

    Run the diff command. If the diff is empty, stop and report — nothing to review.

    line 60

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Grill Review

Stress-tests a user's understanding of a code change by asking pointed questions. Walks through Intent, Mechanics, Impact, and Testing — one question at a time — verifying answers against the actual code.

Step 1: Determine the Review Mode

STOP. Do NOT run git diff, gh pr diff, gh pr view, git log, or ANY command until you complete this section.

Parse the user's argument to determine whether this is a diff review or a path review:

Precedence rule: Check diff patterns first. If the argument starts with #, is a URL (starts with http), or resolves as a git ref (git rev-parse --verify <arg> succeeds), treat it as a diff review — even if it contains /. Only treat as a path review if none of those match.

Path review — argument is a file path, directory, or glob that does not match a diff pattern:

User invocationMeaningAction
/grill-review src/foo.javaSingle fileRead full file contents
/grill-review src/module/DirectoryRead all files in directory
/grill-review src/**/*.ktGlob patternRead all matching files
/grill-review path/a.java path/b.ktMultiple filesRead all specified files

Diff review — all other arguments:

User invocationMeaningAction
/grill-review mainDiff against maingit diff main...HEAD
/grill-review release/1.0Diff against a branchgit diff release/1.0...HEAD
/grill-review #123Review PR 123gh pr diff 123 -R <remote>
/grill-review https://github.com/.../pull/123Review PR by URLgh pr diff 123 -R <remote> (extract number from URL)
/grill-review <commit-sha>Diff against a commitgit diff <sha>...HEAD
/grill-review (no argument)Auto-detectSee sequence below

Auto-detect sequence (no argument):

  1. Check for an open PR — Run gh pr view --json number,baseRefName -q '.baseRefName' (using remote resolution below). If this succeeds, use git diff <baseRefName>...HEAD.
  2. Fall back to primary branch — Run git rev-parse --verify main. If main exists, use git diff main...HEAD. If not, try git rev-parse --verify master. If neither exists, stop and ask the user which branch to diff against.

Remote resolution: Check if an upstream remote exists (git remote get-url upstream); if it does, use -R <upstream-url>. Otherwise use origin.

Run the diff command. If the diff is empty, stop and report — nothing to review.

If the diff exceeds ~3000 lines, warn the user and suggest narrowing scope.

Step 2: Gather Context

  1. Extract file paths under review:
    • For diff reviews: parse diff --git a/... b/... headers from the diff
    • For path reviews: use the file paths provided by the user
  2. Find AGENTS.md and CLAUDE.md files in the directory hierarchy of each file under review. Use: find . \( -name "AGENTS.md" -o -name "CLAUDE.md" \) | sort then filter to paths that are ancestors of files under review.
  3. Read all found AGENTS.md/CLAUDE.md files — concatenate their contents into a context block (label each with its path).
  4. Follow references — if any AGENTS.md points to reference docs (e.g., .agents/references/), read those too.
  5. Read FULL file contents for all changed files — not just the diff hunks. This enables you to verify answers against the complete code.

Step 3: Build Risk Map (Internal)

Do NOT show this to the user. Analyze the change silently across four dimensions:

  • Complexity — Non-obvious logic, deep nesting, subtle interactions between components, tricky control flow
  • Impact — Shared interfaces, public APIs, critical paths, data migrations, breaking changes
  • Novelty — New patterns not seen elsewhere in the codebase, deviations from established conventions
  • Test coverage — Changes lacking corresponding test updates, untested edge cases

Assign relative risk (high/medium/low) to each area. This drives question weighting.

Step 4: Ask Questions

Walk categories in this order: Intent → Mechanics → Impact → Testing

Rules:

  • ONE question per message — wait for the user's answer before continuing
  • Reference specific code — use line numbers, function names, variable names
  • Mix question styles: direct ("What does X do?"), scenario-based ("What happens if Y fails?"), explain ("Why was Z chosen over W?"), compare ("How does this differ from the old approach?")
  • Weight by risk map — ask more questions about high-risk areas, fewer about low-risk areas
  • Quantity by diff size:
    • Small (<50 lines): 3-5 questions
    • Medium (50-200 lines): 5-10 questions
    • Large (200+ lines): 10-15 questions

After each answer, verify against the code:

Answer qualityResponse
CorrectBrief confirmation, move to next question
Partially correctAcknowledge what's right, note what's missing or imprecise
IncorrectShow what the code actually does (cite lines), ask a follow-up
VagueProbe deeper — ask for specifics

Internal tracking (do not show): categories covered, questions asked per category, accuracy rate per category.

Step 5: Termination & Verdict

End the session when all risk areas are adequately covered OR the user says "stop", "enough", or "done".

Present a final assessment:

## Assessment

| Category | Confidence | Notes |
| --- | --- | --- |
| Intent | ✅ Strong | Clearly articulated the motivation |
| Mechanics | ⚠️ Gaps | Missed the error retry logic |
| Impact | ✅ Strong | Understood downstream effects |
| Testing | ❌ Weak | Could not identify untested paths |

**Overall:** 1-2 sentence summary of the user's understanding.

Confidence levels:

  • ✅ Strong — Accurate answers, demonstrates deep understanding
  • ⚠️ Gaps — Partially correct, missed important details
  • ❌ Weak — Incorrect or unable to answer key questions
  • ⬜ Not assessed — Category skipped (e.g., user said "stop" early)

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.