agent-runtime-validati…
Plans and evaluates bounded runtime tests of AI agents, tools, memory, hooks, approvals, and scope enforcement. Use when static…
Writes security findings that survive triage: reproducible, severity-justified, and fixable, in a fixed structure with a severity rubric. Use when turning a discovered vulnerability, misconfiguration, or weakness into a report entry, ticket, or disclosure.
Claude Code
$ npx -y skills add zero-lab-ai/skills --skill findings-report --agent claude-code
Codex
$ npx skills add zero-lab-ai/skills --skill findings-report -a codex -y
Cursor
$ npx skills add zero-lab-ai/skills --skill findings-report -a cursor -y
Gemini CLI
$ npx skills add zero-lab-ai/skills --skill findings-report -a gemini-cli -y
GitHub Copilot
$ npx skills add zero-lab-ai/skills --skill findings-report -a github-copilot -y
OpenCode
$ npx skills add zero-lab-ai/skills --skill findings-report -a opencode -y
Windsurf
$ npx skills add zero-lab-ai/skills --skill findings-report -a windsurf -y
name: findings-report description: "Writes security findings that survive triage: reproducible, severity-justified, and fixable, in a fixed structure with a severity rubric. Use when turning a discovered vulnerability, misconfiguration, or weakness into a report entry, ticket, or disclosure." allowed-tools: Read Grep Glob
A finding is an argument: here is a flaw, here is how to see it yourself, here is what it costs you, here is what to do. Most findings fail at triage because one of those four is missing or because the severity was asserted rather than derived. This skill produces findings in a fixed shape and checks the argument before prose can hide a missing part.
1. Collect, before writing a word: the exact reproduction (input, steps, observed result), the affected component and version, and evidence (output, screenshot path, request/response). If you cannot reproduce it, it is a *lead*, not a finding; label it as such. 2. Fill `references/finding-template.md` from the checked record. Every section is required. "N/A" is acceptable only for `References`. 3. Write the fix as a concrete change, not a category. "Validate input" is a category. "Reject `path` values that resolve outside `DATA_ROOT` after `os.path.realpath`" is a fix. 4. Reread the title. It should name the component and the flaw, and a reader should be able to guess the severity from it.
| Evidence state | Report as | Why | | --- | --- | --- | | Reproduced flaw with bounded impact | Finding with severity | The argument can be independently checked | | Strong signal, reproduction incomplete | Unrated lead | The signal deserves follow-up but impact is not established | | Version or pattern match only | Observation or lead | Applicability is not proven by a label | | Control claimed but not verified | Open precondition | A stated control cannot reduce severity without evidence | | Work blocked by scope or safety limit | Limitation | Blocked work is not a negative result |
Example: a response containing another user's record supports an authorization finding. A route name containing `admin` does not; it is a lead until access and impact are demonstrated.
severity, and one of them is wrong.
hostnames and tokens with the reader's or with placeholders they can fill.
log line, the stack trace. Trim, do not paraphrase.
is the bug. "Read any row in `users`, including password hashes, as an unauthenticated caller" is the impact.
that account reached those records. They do not prove every account, every record, or exploitation at scale. State the demonstrated set, then label broader blast radius as a hypothesis requiring coverage evidence.
network position, an account, a victim click, a race. Each precondition lowers likelihood; say so explicitly.
demonstrated path is a lead. Put it in `Notes`, not `Impact`.
mitigation reduces exposure while the fix is pending. Label each.
| Severity | Shape of the justification | | --- | --- | | Critical | Unauthenticated or low-privilege attacker gets full control or all data, no victim interaction | | High | Significant data or control, with one precondition (account, victim action, adjacent network) | | Medium | Limited data or control, or significant impact behind two or more preconditions | | Low | Information useful for other attacks, or impact confined to the attacker's own session | | Info | No direct security impact; hygiene, defense in depth, or a deviation from stated policy |
Full rubric with worked examples: `references/severity-rubric.md`.
normalized factors and review make the decision reproducible.
triage cannot verify the claim.
unrated lead until evidence establishes its impact.
supports a follow-up hypothesis; only tested coverage or authoritative access logic supports a universal impact claim.
exposure and states its limit; only a change that removes the flaw is a fix.
Portable, evidence-bound security skills for authorized defensive assessment, penetration testing, red teaming, detection engineering, purple teaming, and engagement operations. The collection contains 56 skills in 10 installable plugins from zero-lab.ai.
Plans and evaluates bounded runtime tests of AI agents, tools, memory, hooks, approvals, and scope enforcement. Use when static…
Reviews an MCP server's tool surface for tool poisoning, over-broad parameters, missing descriptions, and privilege escalation…
Maps identity, authority, instruction, data, memory, and approval propagation across agents and agent-to-agent handoffs. Use when…
Assesses whether direct, indirect, multi-turn, retrieved, or tool-mediated instructions can override an AI system's intended…
Maps cloud identity and authorization paths across AWS, Azure, GCP, and hybrid trust boundaries, separating proven access from…
Tracks embedded-device and firmware assessment coverage across exact units, acquisition methods, debug interfaces, stored…
Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication,…
Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys)…
Clean and finalize authorized natural-language text intended for readers by auditing suspicious invisible Unicode and rewriting…