Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,7 @@
},
{
"name": "fp-check",
"version": "1.0.2",
"version": "1.0.3",
"description": "Systematic false positive verification for security bug analysis with mandatory gate reviews",
"author": {
"name": "Maciej Domanski"
Expand Down
2 changes: 1 addition & 1 deletion plugins/fp-check/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "fp-check",
"version": "1.0.2",
"version": "1.0.3",
"description": "Systematic false positive verification for security bug analysis with mandatory gate reviews",
"author": {
"name": "Maciej Domanski"
Expand Down
18 changes: 18 additions & 0 deletions plugins/fp-check/agents/data-flow-analyzer.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,24 @@ tools:
- Read
- Grep
- Glob
hooks:
Stop:
- matcher: "*"
hooks:
- type: prompt
timeout: 30
prompt: |
You are an output completeness checker for the fp-check data-flow-analyzer subagent, which is about to stop. Verify it produced complete structured output for its assigned Phase 1 work.

Required sections:
- Phase 1.1: Trust boundary map with source, path, sink, and validation points (each with file:line references)
- Phase 1.2: API contract analysis (built-in protections identified or absence noted)
- Phase 1.3: Environment protection analysis (each classified as 'prevents entirely' or 'raises bar')
- Phase 1.4: Cross-reference analysis (similar patterns, test coverage, history)
- Phase 1 Conclusion with evidence

If required sections are missing, respond with JSON: {"ok": false, "reason": "<specific gaps>"}
If all required sections are present with evidence, respond with JSON: {"ok": true}
---

# Data Flow Analyzer
Expand Down
18 changes: 18 additions & 0 deletions plugins/fp-check/agents/exploitability-verifier.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,24 @@ tools:
- Read
- Grep
- Glob
hooks:
Stop:
- matcher: "*"
hooks:
- type: prompt
timeout: 30
prompt: |
You are an output completeness checker for the fp-check exploitability-verifier subagent, which is about to stop. Verify it produced complete structured output for its assigned Phase 2 work.

Required sections:
- Phase 2.1: Attacker control analysis with control level (full/partial/none) and evidence
- Phase 2.2: Mathematical bounds proof with step-by-step algebra, OR explicit 'N/A — not a bounds issue'
- Phase 2.3: Race condition feasibility analysis, OR explicit 'N/A — not a concurrency issue'
- Phase 2.4: Adversarial analysis synthesizing 2.1-2.3
- Phase 2 Conclusion with evidence

If required sections are missing, respond with JSON: {"ok": false, "reason": "<specific gaps>"}
If all required sections are present with evidence, respond with JSON: {"ok": true}
---

# Exploitability Verifier
Expand Down
19 changes: 19 additions & 0 deletions plugins/fp-check/agents/poc-builder.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,25 @@ tools:
- Grep
- Glob
- Bash
hooks:
Stop:
- matcher: "*"
hooks:
- type: prompt
timeout: 30
prompt: |
You are an output completeness checker for the fp-check poc-builder subagent, which is about to stop. Verify it produced complete structured output for its assigned Phase 4 work.

Required sections:
- Phase 4.1: Pseudocode PoC with data flow diagram (always required)
- Phase 4.2: Executable PoC or explicit skip with justification
- Phase 4.3: Unit test PoC or explicit skip with justification
- Phase 4.4: Negative PoC showing exploit preconditions
- Phase 4.5: Verification that PoCs demonstrate the vulnerability
- Phase 4 Conclusion

If required sections are missing, respond with JSON: {"ok": false, "reason": "<specific gaps>"}
If all required sections are present with evidence, respond with JSON: {"ok": true}
---

# PoC Builder
Expand Down
29 changes: 0 additions & 29 deletions plugins/fp-check/hooks/hooks.json

This file was deleted.

22 changes: 22 additions & 0 deletions plugins/fp-check/skills/fp-check/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,28 @@
name: fp-check
description: "Systematically verifies suspected security bugs to eliminate false positives. Produces TRUE POSITIVE or FALSE POSITIVE verdicts with documented evidence for each bug."
allowed-tools: Read Grep Glob LSP Bash Task Write Edit AskUserQuestion TaskCreate TaskUpdate TaskList TaskGet
hooks:
Stop:
- matcher: "*"
hooks:
- type: prompt
timeout: 30
prompt: |
You are a verification completeness checker for the fp-check false positive analysis skill. The agent is about to stop. Check whether the verification process was completed properly.

Scan the conversation for evidence of ALL of the following for EVERY bug that was being verified:

1. Phase 1 (Data Flow Analysis): Trust boundaries mapped, API contracts checked, environment protections analyzed, cross-references checked
2. Phase 2 (Exploitability Verification): Attacker control confirmed or denied, mathematical bounds analyzed (or marked N/A), race conditions analyzed (or marked N/A), adversarial analysis completed
3. Phase 3 (Impact Assessment): Real security impact vs operational robustness distinguished, primary controls vs defense-in-depth distinguished
4. Phase 4 (PoC Creation): Pseudocode PoC created, executable/unit test PoCs created or explicitly skipped with justification, negative PoC created, PoC verification completed
5. Phase 5 (Devil's Advocate): All 13 challenge questions addressed
6. Gate Review: All 6 gates (Process, Reachability, Real Impact, PoC Validation, Math Bounds, Environment) evaluated with pass/fail
7. Verdict: Each bug has a TRUE POSITIVE or FALSE POSITIVE verdict with evidence

If ANY bug is missing ANY of these phases or the gate review, respond with JSON: {"ok": false, "reason": "<specific gaps>"}
If all bugs have complete verification with verdicts, respond with JSON: {"ok": true}
If the conversation is not about fp-check verification at all, respond with JSON: {"ok": true}
---

# False Positive Check
Expand Down
Loading