Repository navigation
Claude Code Plugin
Install it with /plugin marketplace add ratomirjovanovic/pandaward and then /plugin install pandaward@pandaward (macOS, Linux) or /plugin install pandaward-windows@pandaward (Windows), and restart Claude Code. Details, updating and removal are on Installation.
You do not need the commands below. Ask Claude to check the project's security (or run /pandaward:start) and it does the rest:
- Scans the project, has read-only specialist agents review what automation could not decide, triages the results, builds the fix plan and writes the reports, with a live checklist.
- Asks one question at the end: fix the plan (all steps or the first N), record the triage results, install missing optional scanners, or nothing.
- Carries out what you chose without further prompts: one fix at a time with a retest after each, disposition changes through the confirmation prompt described under Hooks, and fresh reports at the end.
- Keeps watching for the rest of the session: after every turn that edits code, the Stop hook retests the changed files and Claude tells you about anything new or reopened.
What stays with you: revoking leaked secrets at the provider, confirming disposition changes in the prompt, product decisions a fix depends on, and network tests, which need a scope you approve in your own terminal (Network Testing).
Asking in your own words works for single steps too, for example "what is still untested?" or "explain finding PW-0007".
| Skill | Purpose |
|---|---|
/pandaward:start [quick|deep] |
The whole assessment with a visible checklist, then one question about what to do next, carried out for you (see Hands-free use) |
/pandaward:init |
Initialize and summarize the inventory |
/pandaward:plan |
Explain the plan and suspicious N/A decisions |
/pandaward:scan |
Passive scan with an honest summary |
/pandaward:status |
Resume from the ledger |
/pandaward:findings [ID] |
List or explain findings with evidence |
/pandaward:review [domain|triage] |
Manual-assisted review by read-only agents |
/pandaward:fix-plan |
Remediation plan; asks once which steps to apply, then applies them one by one with a retest after each |
/pandaward:retest |
Targeted re-scan of what changed, then the delta; Claude also runs it on its own after editing code |
/pandaward:graph |
Cross-domain graph, optionally as mermaid |
/pandaward:report |
Render reports |
/pandaward:doctor |
Tool check |
/pandaward:test |
Network test flow; only you can start it |
/pandaward:feedback [PW-ID|missed] |
Prepare a report about a wrong or missed finding for the Pandaward project; you review and submit it |
All agents are read-only and record only hypotheses.
| Agent | Domains |
|---|---|
pandaward:architect |
A: inventory gaps, trust boundaries, threat model |
pandaward:identity |
B, C: authentication, sessions, authorization, tenant isolation |
pandaward:api |
D, F, G, H: injection paths, webhooks, business logic, frontend sinks |
pandaward:cloud |
I, J, N, O: supply chain, IaC, CI/CD, logging |
pandaward:mobile |
K, L: Android and iOS static review |
pandaward:ai |
P: prompt injection paths, tool authorization, MCP |
pandaward:triage |
Verifies suspected findings and recommends a disposition |
| Event | Behavior |
|---|---|
| SessionStart | Adds a short ledger summary (latest assessment, coverage, open findings) and the suggested next step, which Claude offers and runs instead of asking you to type it |
| PreToolUse | Asks before approvals, network tests, disposition changes, direct ledger access and manifest edits; denies edits to .pandaward/private/
|
| PostToolUse | Marks edited files as stale so coverage is not overstated |
| Stop | After a turn that edited files, runs a changed-only passive retest (at most 40 seconds) and hands new or reopened findings back to Claude |
| PreCompact | Records a checkpoint event; the ledger stays authoritative |
All hooks are silent when the project is not initialized, and none sends network traffic.
The Stop hook is silent when nothing was edited or the retest found nothing new or reopened. If the last assessment took longer than the 40-second budget, it skips the retest and says the changed files are STALE; if a retest runs out of time or an adapter fails, it reports the assessment as INCOMPLETE. It never reports a finding as fixed unless the ledger marks it REMEDIATED. Turn it off with hooks.auto_retest: false (Configuration).
| Tool | Arguments | Effect |
|---|---|---|
pandaward_get_status |
read | |
pandaward_list_coverage_gaps |
domain |
read |
pandaward_get_control |
control_id |
read |
pandaward_get_findings |
status, confidence, control_id, limit
|
read, snippets redacted |
pandaward_get_evidence |
evidence_id |
read, integrity checked |
pandaward_get_graph |
edge_id |
read |
pandaward_list_entrypoints |
kind, service, limit
|
read: routes, GraphQL, gRPC, workers, cron with file and line |
pandaward_scan_passive |
local scan, writes the ledger | |
pandaward_retest |
changed_only (default true) |
targeted re-scan of what changed, writes the ledger |
pandaward_build_report |
formats |
writes reports |
pandaward_record_hypothesis |
control_id, file, start_line, end_line, title, severity, rationale, fix, proposer
|
records a HYPOTHESIS finding |
pandaward_prepare_feedback |
kind, finding_id, rule, file, line, note, include_path, include_snippet
|
prepares a report and a prefilled issue link; sends nothing |
pandaward_request_active_test |
explains authorization; never executes |
Arguments are validated strictly; unknown fields are rejected. Every response carries a notice that repository-derived fields are untrusted data. The tool names, inputs and annotations are frozen; see Schemas and compatibility.
Pandaward is AGPL-3.0-only. Not a certification or signed penetration test. Report a vulnerability.
Getting started
Using
- CLI Reference
- Claude Code Plugin
- Findings Lifecycle
- Retest and Delta
- Coverage and Statuses
- Reports
- Evidence Bundles
- Network Testing
- Mobile Runtime
- Configuration
- CI Integration
Reference