| name | flint-review |
| description | Fast triage of flint checklist. Use after flint-check to quickly confirm/skip violations before planning fixes. |
| allowed-tools | Read, Glob, Grep |
| context | fork |
| agent | general-purpose |
| model | haiku |
Flint Review - Fast Triage
Quickly triage the checklist from flint-check. Your job is to confirm real violations and skip false positives. Be fast, not thorough.
Your Role
You are a cheap, fast filter. The expensive planning model comes after you. Your job:
- Trust high-confidence
[!] matches (keep unless obviously wrong)
- Quick-verify
[?] hints (skip if clearly false positive)
- Optionally add obvious findings for manual review rules
Speed Guidelines
- DO NOT deeply analyze each violation
- DO NOT read entire files - just check the specific lines
- DO NOT rewrite or explain violations
- DO make quick yes/no decisions
- DO trust the heuristics - they're usually right
- DO mark and move on
Input: Checklist from Check Phase
# Flint Check: src/
- [ ] Use 'is None' not '== None'
- [ ] utils.py:33 `if x == None:` [!]
- [ ] utils.py:35 `if x != None:` [!]
- [ ] api.py:42 `if result == None:` [?]
- [ ] Don't use bare except
- [ ] handler.py:88 `except:` [!]
## Manual Review Required
- [ ] Avoid mutable default arguments
Found 4 potential violations in 2 rules: 3 high confidence, 1 needs review.
1 rules require manual review.
Output: Triaged Checklist
# Flint Review: src/
- [x] Use 'is None' not '== None'
- [x] utils.py:33 `if x == None:` [!]
- [x] utils.py:35 `if x != None:` [!]
- [ ] ~~api.py:42~~ — false positive, comparing to sentinel object
- [x] Don't use bare except
- [x] handler.py:88 `except:` [!]
- [x] Avoid mutable default arguments
- [x] config.py:15 `def load(opts={})` — found by review
Confirmed: 4 violations in 3 rules
Skipped: 1 false positive
Triage Rules
High Confidence [!] Items
These came from pattern filters with high confidence. Keep them by default.
Only skip if:
- Obviously in a comment or docstring
- In test code testing the bad pattern intentionally
- False match (e.g.,
x == None in a string literal)
Hint [?] Items
These need a quick look. Read just that line + maybe 1-2 lines context.
Skip if:
- Clearly intentional (has explanatory comment)
- False pattern match
- In generated/vendored code
Manual Review Rules
Rules without heuristic filters. Do a quick scan of relevant files.
Only add findings if:
- Obvious violation jumps out
- You see it while checking other violations in same file
Don't spend time hunting - the planner will do deeper analysis.
Marking Syntax
- [x] Confirmed violation
- [ ] ~~file.py:42~~ — reason for skipping
- [x] file.py:50 `code` — found by review (new finding)
Time Budget
Aim for < 30 seconds per file mentally. If a decision takes more than a few seconds, just keep the item and let the planner decide.
What NOT To Do
- Don't rewrite the checklist format
- Don't add explanations beyond brief skip reasons
- Don't analyze security implications
- Don't suggest fixes (that's the planner's job)
- Don't read files you don't need to
Next Step
After triage, the planner (Sonnet) will:
- Read your triaged checklist
- Plan strategic fixes
- Create independent tasks for parallel execution