# Debug False Positive

Diagnose and fix a Fallow false positive or false negative through extraction...

- Repository: https://github.com/fallow-rs/fallow (5289 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add fallow-rs/fallow --skill debug-false-positive -g -a claude-code -y`
Codex: `npx skills add fallow-rs/fallow --skill debug-false-positive -g -a codex -y`
Cursor: `npx skills add fallow-rs/fallow --skill debug-false-positive -g -a cursor -y`
Gemini CLI: `npx skills add fallow-rs/fallow --skill debug-false-positive -g -a gemini-cli -y`

## Description

Diagnose and fix a Fallow false positive or false negative through extraction, resolution, graph, analysis, reporting, and real-consumer verification.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Debug a false result

1. Reproduce on current `main` with `--format json --quiet`. Save one command
   that shows the wrong result. Change no code before this command exists.
   After a restart or an update, clear the `.fallow/` cache first.
2. Reduce to a minimal fixture without losing the behavior.
3. Write 3 to 5 ranked hypotheses. Each one predicts a result that one probe
   can disprove. Test one hypothesis per probe.
4. Trace the finding through extract, resolve, graph, reachability, analysis,
   suppression, filters, and report assembly.
5. Fix the earliest incorrect layer. Fix the pattern, not the instance (see
   test evidence in `docs/development/quality-gates.md`). After 3 failed
   fixes, stop and write down the premise that they share. Question that
   premise before a fourth fix.
6. Add a regression test that fails without the fix.
7. Run the fixed binary on a real consumer project with a cleared `.fallow/`
   cache and compare old versus new output. A debug build
   (`cargo build -p fallow-cli`) is enough for this comparison. A release
   build adds a slow LTO link and gives the same findings.
8. Run `review` with the affected surface reviewers.

Do not tune expected output around one fixture when the semantic model requires
a broader correction.

