triage-validation
Skill37 starsChanged 3 months agoMITView on GitHub
Load when deciding whether a mobile finding is worth submitting, covering the two-minute triage questions, the Mobile 7-Question Gate, the four post-validation gates, verdict definitions, and the never-submit auto-KILL list.
12 other projects use a version of this.
Adopted by
Most recently taken up by
- SubhiSec/claude-ai-cyber-security-skillstheir own version, first seen Oct 25, 2026
- shuvonsec/claude-bug-bountytheir own version, first seen Oct 8, 2026
- Gabson0x/bountyforgetheir own version, first seen Sep 16, 2026
- ajtazer/heckittheir own version, first seen Sep 11, 2026
- zyphr-labs/bounty-harnesstheir own version, first seen Aug 26, 2026
- conjure-3301/skillstheir own version, first seen Aug 17, 2026
Used with
Projects with it also use meme-coin-audit, graphql-audit and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
hhjkjkjkSkillmeme-coin-audit
Meme coin and token security audit — rug pull detection (honeypot, hidden mint, fee manipulation, LP lock bypass), Solana SPL token analysis (freeze authority, mint authority, metadata mutability), Token-2022 extension risks (transfer hooks, permanent delegate), DEX liquidity pool attacks (sandwich amplification, LP drain, bonding curve exploits), pump.fun/Raydium/Jupiter integration risks, token_scanner.py automation, and real exploit examples from 2024-2025. Use for any token audit, rug pull assessment, meme coin security review, or pre-investment due diligence.
Also in 6 projects that use this
shuvonsecSkillgraphql-audit
GraphQL security hunting — introspection abuse, field suggestion enumeration (clairvoyance), batching DoS, IDOR via aliasing, auth bypass, injection via arguments, subscription abuse, depth/complexity bombs, and WAF bypass. Covers graphw00f fingerprinting, GraphQLmap, graphql-cop, and inql. Use when a target exposes a /graphql, /api/graphql, or GQL-over-HTTP endpoint.
Also in 4 projects that use this
hhjkjkjkSkillbb-methodology
Use at the START of any bug bounty hunting session, when switching targets, or when feeling lost about what to do next. Master orchestrator that combines the 5-phase non-linear hunting workflow with the critical thinking framework (developer psychology, anomaly detection, What-If experiments). Routes to all other skills based on current hunting phase. Also use when asking "what should I do next" or "where am I in the process.
Also in 6 projects that use this
shuvonsecSkillagentic-app-audit
Black-box security audit of a DEPLOYED AI agent (not the MCP server behind it) — tool-call hijacking, cross-session memory poisoning, confused-deputy via connected tools, agent-to-agent IDOR, excessive agency / unconfirmed destructive actions, and privilege compromise where the agent holds broader perms than the user. Use when the target is a live assistant/agent product with tool access (bookings, email, payments, file/RAG, browsing) rather than a raw LLM chat box or an MCP server you can read.
Also in 3 projects that use this
SubhiSecSkillsqli
Hunt SQL injection in REST/GraphQL/SOAP/raw parameters using sqlmap, ghauri, manual UNION/Time/Boolean techniques, and custom WAF-bypass tamper scripts. Use when an input flows into a database query or when the user has identified a parameter that might be vulnerable.
Also in 3 projects that use this
- +1 more from hhjkjkjk
- +6 more from shuvonsec
Other versions12 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 12
- shuvonsec/claude-bug-bounty★ 5.5ksame name
- awarexone/Agentic-Bug-Hunter★ 5.5ksame name
- Awarexone/Agentic-Bug-Hunter★ 5.5ksame name
- elementalsouls/Claude-BugHunter★ 5.5ksame name
- Gabson0x/bountyforge★ 431same name
- SubhiSec/claude-ai-cyber-security-skills★ 45same name
- 0xGhostCAT/claude-ai-cyber-security-skills★ 41same name
- Mikacr1138/claude-bug-bounty★ 3same name
- ajtazer/heckit★ 2same name
- zyphr-labs/bounty-harness★ 1same name
2 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository9 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- android-analysisSkill
- binary-reversingSkill
- ios-analysisSkill
- mobile-huntingSkill
- mobile-reconSkill
- mobile-vuln-classesSkill
- report-writingSkill
- sdk-analysisSkill
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 5 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 12 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 29
If all three pass → the finding is worth full validation.
- Distinctive: line 30
If any fail → KILL with reason and move on.
- Distinctive: line 112
How to assess: If Apple/Google has documented this behavior and considers it "working as intended," it is not a vulnerability.
- Distinctive: line 188
KILL if: No meaningful, specific gain beyond normal app behavior.
- Distinctive: line 250
Every PASS must have a clear exploit path: No theoretical vulnerabilities.
“Common” is measured: kept by at least 6 in 10 of the 12 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Triage & Validation: Gate Definitions
This skill defines the validation gates used by the validator agent and the /validate and /triage commands. Every finding must pass all gates before becoming a submission candidate.
Quick Triage (2-Minute Assessment)
Used by /triage for rapid go/no-go on a single finding. Answer these three questions:
- Is it exploitable without device modification? (jailbreak, root, ADB debug mode)
- YES → continue
- NO → KILL unless program scopes modified devices
- Does the attacker gain something concrete? (data, access, privilege)
- YES → continue
- NO → KILL
- Is it on the never-submit list?
- NO → PROCEED to full validation
- YES alone → KILL or CHAIN_REQUIRED
- YES but chained → PROCEED
If all three pass → the finding is worth full validation. If any fail → KILL with reason and move on.
Mobile 7-Question Gate
The complete validation gate applied by the validator agent. Every finding must pass all 7 questions.
Q1: Exploitability
Question: Can an attacker trigger this on a real, unmodified device?
Assessment framework:
- For IPC findings (URL schemes, intents, exported components): Can a malicious app installed from the App Store / Play Store exploit this? The malicious app must pass platform review.
- For binary findings (hardcoded keys, weak crypto): Does this manifest at runtime? Dead code paths are not exploitable.
- For config findings (ATS, network security): Is the misconfiguration actually used by the app's runtime behavior?
KILL criteria:
- Requires jailbreak/root (unless scoped)
- Requires ADB debugging enabled
- Requires physical access to unlocked device (unless scoped)
- Requires developer mode
- Dead code path: the function exists but is never called
Q2: Scope Alignment
Question: Is this type of finding in scope for the program?
Check against scope.json:
binary_analysis_allowed: Is reverse engineering permitted?client_side_accepted: Are client-side-only findings accepted?exclusions[]: Is this specific finding type excluded?
Common exclusions to watch for:
- "Client-side vulnerabilities without server-side impact" → kills most storage/crypto findings
- "Reverse engineering is not in scope" → kills binary analysis findings
- "Missing security controls" → kills missing pinning, missing root detection
KILL criteria:
- Finding type is explicitly excluded by the program
- Binary analysis findings when reverse engineering is not scoped
Q3: Asset Confirmation
Question: Is this the production App Store / Play Store build?
Check:
- iOS: No
get-task-allowentitlement (unless TestFlight is scoped). NoProvisionedDevicesin mobileprovision. - Android:
debuggable=false, signed with release key, not a debug/beta build - Version matches current store listing (outdated findings are duplicates or fixed)
KILL criteria:
- TestFlight / debug / beta / enterprise build (unless scoped)
- Outdated app version (finding may be fixed)
Q4: Access Feasibility
Question: Does exploitation require only standard, unmodified access?
Standard access means:
- Installing a malicious app from the store
- Sending a link/message to the victim
- Being on the same network (for MITM)
- Having the APK/IPA file (for static analysis findings)
Elevated access (auto-KILL unless scoped):
- USB connection + ADB debugging
- Physical access to unlocked device
- Jailbroken/rooted device
- MDM enrollment
- Developer mode enabled
Q5: Novelty Check
Question: Is this a known platform behavior, not a vulnerability?
Known behaviors to KILL:
- iOS pasteboard access before iOS 16 → known, Apple added paste notification
- Android implicit intent resolution → documented Android behavior
- App backup including app data → standard
adb backupbehavior (the backup flag itself isn't the vuln) - WebView loading HTTP on older targetSdk → standard behavior, not a misconfiguration
How to assess: If Apple/Google has documented this behavior and considers it "working as intended," it is not a vulnerability. The finding must demonstrate impact beyond the documented behavior.
Q6: Impact Proof
Question: Is concrete impact demonstrated with evidence?
Required evidence by finding type:
| Finding Type | Required Proof |
| Exported component | Demonstrated unauthorized data access or action via adb/PoC app |
| URL scheme hijacking | Proof that scheme carries sensitive data (token, session, credentials) |
| SQL injection | Successful injection query demonstrating data extraction |
| Hardcoded secret | Evidence the key is live and evidence of what it unlocks (see the authorization boundary below) |
| WebView bridge | Demonstrated call to exposed native method from web content |
| Weak crypto | Identified what data is protected and why the weakness matters |
| Data storage | Identified specific sensitive data and demonstrated extraction path |
Authorization boundary on proof: several of these proofs involve sending a request to a live service. Only exercise a discovered credential or endpoint when the asset is covered by the program's stated scope, and, when the service is third-party hosted (Firebase, Google Cloud, AWS, and similar), only with the program's written permission; the program owns that account, the researcher does not. Where that authorization is absent, a hardcoded-secret finding still passes Q6 on static evidence: the credential's location in the binary, the service and key type it belongs to, the access the provider documents for that key type, and an explicit request that the program confirm server side. Record which of the two paths was used in the finding's evidence. An unauthorized probe is never acceptable proof, and a finding is never killed for lacking one.
KILL criteria:
- "The component is exported" without demonstrating impact
- "ATS is disabled" without proving sensitive data over HTTP
- "Key found in binary" with no assessment of whether it is live or what access it grants, by either path above
- "Weak crypto used" without identifying protected data
Q7: Never-Submit Check
Question: Is this on the auto-KILL list?
Auto-KILL list (standalone findings only; chains may override):
| Item | Verdict | Override Condition |
| Missing certificate pinning | KILL or CHAIN_REQUIRED | Chained with MITM + sensitive data capture |
allowBackup="true" | KILL or CHAIN_REQUIRED | Chained with sensitive data in app storage |
debuggable="true" | KILL | Report as note, never as vuln |
| Missing root/jailbreak detection | KILL | Never; this is not a vulnerability |
| Cleartext traffic config | KILL or CHAIN_REQUIRED | Chained with sensitive data over HTTP |
| Missing ASLR/PIE/canaries (modern OS) | KILL | Never on iOS 15+ / Android 10+ |
| Self-signed certs in bundle | KILL | Never; often intentional for pinning |
| Analytics data collection | KILL | Never; privacy concern, not security |
| Clipboard on iOS 16+ | KILL | Never; system paste notification mitigates |
| Missing obfuscation | KILL | Never; informational only |
4 Post-Validation Gates
Applied after the 7-question gate passes. These catch findings that are technically valid but not submission-worthy.
Gate 0: Reality Check (30 seconds)
Question: Can this be demonstrated on a real device or emulator right now?
Mentally walk through the exploit:
- For IPC: craft the intent, URL, or scheme invocation. Does it work?
- For data storage: extract the data via the documented method. Is it there?
- For binary: does the code path execute at runtime?
KILL if: The exploit only works in theory but cannot be practically demonstrated.
Gate 1: Attacker Gain (2 minutes)
Question: What does the attacker gain that they couldn't get otherwise?
The gain must be:
- Specific: Not "access to data" but "access to all user messages including private conversations"
- Novel: The attacker couldn't get this through normal app usage
- Meaningful: Worth the attack complexity (installing a malicious app, hosting a page, etc.)
Examples of insufficient gain:
- Exported activity shows the app's About page → no sensitive data
- Hardcoded key for a public API that requires no auth anyway
- Reading app version or non-sensitive configuration
KILL if: No meaningful, specific gain beyond normal app behavior.
Gate 2: Deduplication (5 minutes)
Question: Has this been reported before?
Check:
- Program's disclosed/resolved reports (HackerOne Hacktivity, Bugcrowd)
- Platform security advisories (Apple/Google security bulletins)
- Is the finding on the current app version? (may be fixed in update)
- Is this a variant of a known, widely-reported issue?
KILL if: Likely duplicate based on disclosed reports or addressed in a recent app update.
Gate 3: Report Quality (10 minutes)
Question: Is the finding documented well enough for a triager to reproduce?
Required elements:
- Title follows the format:
[Bug Class] in [App vX.Y] [Component] allows [attacker] to [impact] - Steps include app version, platform version, device/emulator
- Exact reproduction commands (
adb,xcrun, URLs, code snippets) - Evidence: code snippets with file paths, config excerpts, command output
- Impact statement with concrete attacker gain
- Specific remediation (exact code/config changes)
DOWNGRADE if: Finding is valid but poorly documented → reduce severity, request enrichment.
Verdict Definitions
| Verdict | Meaning | Action |
| PASS | Finding is valid, evidence is sufficient, report-ready | → findings/<target>/validated/ |
| KILL | Finding fails one or more gates | → findings/<target>/killed/ with reason |
| DOWNGRADE | Finding is valid but severity should be lower | → Adjust severity, then PASS |
| CHAIN_REQUIRED | Finding is real but too weak standalone | → Flag for chain builder |
Automated vs Manual Validation
tools/validation/validate.py runs automated checks:
- Never-submit list matching
- Scope alignment verification
- Confidence threshold check
- Platform-specific gate checks via
mobile_gates.py
Findings that pass automated gates go to needs_review/ for the validator agent to apply the full 7-question gate manually.
tools/validation/poc_generator.py generates PoC artifacts:
adbcommands for Android IPC testingxcrun simctlcommands for iOS URL scheme testing- Frida script stubs for runtime verification
- Code snippets for PoC apps
Validation Consistency Rules
- Be strict. False positives damage researcher reputation and waste triager time.
- Every PASS must have a clear exploit path. No theoretical vulnerabilities.
- When in doubt, KILL. The agentic loop can catch missed findings in the next iteration.
- Never override the never-submit list unless a proven chain elevates the impact.
- Apply gates consistently regardless of bounty size or program prestige.
- Document kill reasons clearly so the orchestrator can make informed re-hunt decisions.
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
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.

