agentleFS
awarexoneawarexone/AXguard/axguard-triage/SKILL.md

axguard-triage

Skill17 starsChanged 47 days agoMITView on GitHub

Triage AXguard scanner output — false-positive filter, severity promotion, and keep/drop gates per vuln class. Use after an audit when the user wants signal, not volume, or runs /axguard-triage.

  • Pipes a download into a shell
  • Reads credentials
Files
SKILL.md

AXguard Triage

Fewer confirmed bugs beat a long maybe-list. Read .findings/axguard/axguard-report.json when present. If .findings/axguard/adversary.json is present, prefer adversary final statuses (CONFIRMED / LIKELY / UNVERIFIED / FALSE_POSITIVE / REQUIRES_REVIEW) over raw Judge labels when deciding Keep vs Drop. Else if .findings/axguard/verification.json is present, use Judge statuses (VERIFIED / LIKELY / UNVERIFIED / FALSE_POSITIVE) — hunters emit candidates only; do not promote pattern-only UNVERIFIED hits to critical. Defensive reasoning only.

Gate (all must pass to keep)

  1. Real sink in shipped code (not a test/fixture unless fixtures ship or CI deploys them).
  2. Reachability — attacker-influenced data can reach it, or a required control is clearly absent.
  3. Impact — more than style / theoretical purity.
  4. Actionable fix — engineer knows what to change.

Fail any → Drop. Pass all → Keep with severity + evidence. Uncertain reachability → needs-manual, do not promote to critical.

Severity rules

ActionWhen
PromoteConfirmed RCE/auth bypass/secret-in-prod with clear path; scanner said medium
HoldScanner severity matches evidence
DemoteSink real but only authenticated admin on isolated network, or mitigated partially
DropTest-only, constant input, dead code, already parameterized/sanitized on path

Critical reserved for: RCE, auth bypass, prod secret leak, unverified JWT / alg=none on auth path.

Class-specific FP notes

Lead typeOften false when…Promote when…
IDOR / get-by-idQuery also filters user_id/tenant_id; BOLA already enforced in middlewareId-only load on user-facing API
JWT decodeDisplay-only after prior verifyDecode used for auth decisions
SQL concatAll fragments are constants / bind vars usedRequest/body/params interpolated
shell=True / execFixed string; no user input in commandAny request/file/model field in command
pickle / unserializeLocal trusted cache, never from networkCookie, queue, upload, or request body
SSTITemplate name dynamic; string is static fileUser string compiled as template
path open/joinrealpath + prefix check to jailUser segment joins then opens/sends
SSRFHost allowlist / no user URLUser URL or redirect to internal/metadata
XSS sinksConstant HTML or strict sanitizer in correct contextUser/HTML from API into sink
upload original nameRandom key in object storage + no execSaved under web root / executable path
CORS *No credentials; public CDN* or reflect-origin with credentials
DEBUG flags.env.example / local-only compose not used in prodProd config or default True
supply curl|shDocs-only, not CI/ship scriptDockerfile, CI, install.sh ship path
agent execHuman approval hard-gate alwaysModel/tool output → shell/exec

Workflow

# Prefer existing report; else regenerate
axguard audit . --out-dir .findings/axguard
  1. Sort findings critical → low.
  2. Apply gate per item; record Keep / Drop / needs-manual.
  3. Re-rank kept items by blast radius (see axguard-cso).
  4. Hand confirmed list to /axguard-fix or /axguard-report.

Output

Keep / Drop / ManualIDSeverityLocationOne-line reason

Close with: kept count, dropped count, manual count, recommended ship decision hint (blocker if any Keep ≥ high on auth/RCE/secret).

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.

Reviews can't be read right now.

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.