security-audits
Skill1 starsChanged 3 months agoMITView on GitHub
Audits what an attacker can make a change do, from attacker-controlled input to its effect. Use when a change touches a trust boundary, attacker-controlled input, authentication or authorization, secrets, sensitive data, isolation, a dependency, build or deploy exposure, availability, sessions, or cryptography, including anything touching login, tokens, permissions, uploads, or user input reaching a query or a shell. Skip only when no security surface changed.
In this repository49 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- working-from-a-ticketSkill
- writing-specsSkill
- clarifying-intentSkill
- dispatching-parallel-agentsSkill
- handoffSkill
- mapping-the-codebaseSkill
- prototypingSkill
- using-git-worktreesSkill
- using-sdlc-skillsSkill
- viewing-artifactsSkill
- writing-skillsSkill
- yagniSkill
- finishing-a-branchSkill
- release-readinessSkill
- architecture-decisionsSkill
- coding-standardsSkill
- data-modelSkill
- migration-strategySkill
- reviewing-plansSkill
- system-architectureSkill
- ui-ux-designSkill
- writing-plansSkill
- adding-observabilitySkill
- changing-a-live-schemaSkill
- executing-plansSkill
- rollout-controlsSkill
- subagent-driven-developmentSkill
- test-driven-developmentSkill
- complexity-auditSkill
- containing-an-incidentSkill
- debuggingSkill
- deprecating-an-apiSkill
- diagnosing-a-sessionSkill
- eliminating-correctionsSkill
- large-scale-changesSkill
- post-mortemSkill
- refactor-architectureSkill
- brainstormingSkill
- define-goalsSkill
- feasibility-checkSkill
- scopingSkill
- receiving-code-reviewSkill
- requesting-code-reviewSkill
- reviewing-a-prSkill
- verification-before-completionSkill
- verification-strategySkill
- visual-ui-verificationSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 6 are distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 17
Skip: only after inspecting what the change makes reachable and confirming that no security surface changed.
- Distinctive: line 23
Stop the writers this task started.
- Very specific: line 48
Read references/audit-checklists.md before tracing, and work every category checklist in it.
- Distinctive: line 51
Write each finding in three parts: attacker-controlled source, propagation, the sink or effect it actually reaches.
- Very specific: line 53
Run the security checks the assurance matrix names for every relevant platform, build mode, and environment cell, under …
- Distinctive: line 57
If a check is missing or stale, record a blocker and go to Step 4.
- Very specific: line 59
Write each traced finding (source, propagation, sink) to a working note at …
- Very specific: line 71
Never self-certify: a labelled self-audit never issues security clear.
- Distinctive: line 72
Only the auditor's completed result counts.
- Very specific: line 76
After a fix, or any later edit, there is a new version under review: rerun the affected checks and obtain a focused independent re-audit of …
- Very specific: line 81
Read the auditor's completed report.
- Distinctive: line 99
Ask one question offering these choices: authorize the exact probe, with its effects and blast radius.
- Very specific: line 104
If there is no answer, or the reply is silence or urgency, the verdict stays inconclusive.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Security Audits
Trace what an adversary can make the exact version under review do, from every attacker-controlled source to the sink it reaches. Never copy a prior finding, scanner summary, or comment as a verdict.
When to use
- The version under review changes a trust boundary, or changes how untrusted actors reach data, operations, dependencies, runtime resources, or deployment.
- Skip only after inspecting what the change makes reachable and confirming that no security surface changed. “Small diff” and “internal refactor” are not evidence.
Step 1: Freeze and model
- Stop the writers this task started; report any other writer to its owner and keep review pending until it stops.
- Take as input the review-candidate descriptor its caller passed, with the identities of the version under review and of its review inputs already frozen. If there is no descriptor, the audit is pending: ask the caller for one. Never obtain it by invoking a review skill; that dispatches a second review and routes this audit back here.
- REQUIRED SUB-SKILL: invoke
verification-before-completionfor the checks on this exact state that apply. Join its state identity byte for byte. - Inventory the threat model: protected assets, trusted and untrusted actors, entry points, trust boundaries, privileges, assumptions, abuse cases. Give each a stable ID and the hash of the source it was taken against.
- For each assumption record: supporting evidence, how it is validated, its owner, its expiry, and what happens if it is false.
Step 2: Trace
- Widen the scope to everything reachable from the changed code: newly reachable old code, callers, shared serializers and guards, generated sources, data stores, dependencies, build and CI, configuration, deployment. Record why each expansion is relevant.
- Note pre-existing unrelated issues separately. Keep them out of this verdict.
- Read
references/audit-checklists.mdbefore tracing, and work every category checklist in it. - Mark each category covered, or obtain an omission for it through Step 4.
- Write each finding in three parts: attacker-controlled source, propagation, the sink or effect it actually reaches.
- Run the security checks the assurance matrix names for every relevant
platform, build mode, and environment cell, under
verification-before-completion's effect authority. Never exploit shared or production state without exact, direct authority. - If a check is missing or stale, record a blocker and go to Step 4. Do not work around it.
- Write each traced finding (source, propagation, sink) to a working note at
.sdlc-skills/evidence/{{YYYY-MM-DD}}-{{topic}}/security-notes.md, never into the report template. Fix means the smallest change that closes the path. Sensitive evidence means a redacted location or hash, never the value.
Step 3: Verdict
- Send the blank
assets/security-report.mdwhen you dispatch the independent auditor's instructions, followingdispatching-parallel-agentsStep 2; never send your working note or a filled copy. Only the auditor fills the report,Verdictincluded. Never self-certify: a labelled self-audit never issuessecurity clear. - Only the auditor's completed result counts; a running, failed, or cancelled audit leaves the verdict pending.
- REQUIRED SUB-SKILL: invoke
receiving-code-reviewfor every finding that comes back. - After a fix, or any later edit, there is a new version under review:
rerun the affected checks and obtain a focused independent re-audit of
that edit and what it reaches, never a new audit of the whole version.
Its
security clearbinds to the new version. Never certify your own correction. - Read the auditor's completed report. Match
CandidateandReview inputsbyte for byte to the descriptor,Roletosecurity, andVerdictto step 6. If a field is missing, unreadable, conflicting, or mismatched, the verdict isinconclusive. - Issue one verdict:
security clear,security blocked, orinconclusive, bound to the identities of the version under review and of the review inputs.security clearrequires the independent auditor. - Return the report or its location to the requesting review. Leave
releasability to
release-readiness. Any later edit voids the verdict until Step 3.4 rebinds it.
Step 4: When a category cannot be covered
This is the case when no check exists, or the probe needs shared or production state you cannot touch. Do not approve the omission yourself.
- State the version under review, the blocked category and the reason, and the exposure.
- Ask one question offering these choices: authorize the exact probe, with its effects and blast radius; accept the omission, with an owner, an expiry, and compensation; or keep the version under review security-blocked.
- Recommend, in one sentence, the safest answer the evidence supports. Stop.
- If there is no answer, or the reply is silence or urgency, the verdict
stays
inconclusive. - An accepted omission is bound to this exact version under review and is voided, with the verdict, by any later edit; the Step 3.4 re-audit rebinds both, or records the omission as a blocker again.
- A lack of auditor independence is not on this menu; Step 3 settles it.
Gotchas
- An audit of the changed lines misses old code the change newly exposes. What is reachable from the change sets the scope, not the diff.
- A scanner summary is not a traced path. A finding stands only with its source, propagation, and sink written out, and a summary names none of them.
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.

