project-audit
Skill3 starsChanged 2 months agoMITView on GitHub
Run a full-spectrum senior engineering audit of an existing codebase or product across 15 domains — security, data, testing, architecture, API, DevOps, observability, performance, accessibility, SEO/web presence, privacy, docs, dependencies, DX and cost — producing a prioritised, verifiable findings report with a 0–100 scorecard. Use when the user says "audit my project", "review my codebase", "is this production ready", "what's wrong with my app", "health check", "due diligence", "technical assessment", "security review", "code review of the whole repo", "inherited this codebase", "what would a senior engineer say", "is this safe to launch", "find the problems" or shares a repository or URL and asks for an assessment. By Devleck.
We split this skill into the rules it gives an agent
12 rules. 0 are common, 8 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 12 edited versions we read keep these.
8
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 22
What may be run?: Read-only analysis is always safe.
- Very specific: line 25
Is there a live URL?: If yes, the web-presence-audit, accessibility-audit and privacy-compliance passes become live checks rather than code …
- Distinctive: line 28
Never scan, probe or send traffic to infrastructure the user has not confirmed they own or are authorised to test.
- Very specific: line 35
Run the discovery protocol from senior-engineer/references/discovery-protocol.md.
- Distinctive: line 40
Do not proceed to findings until the Ground Truth block is filled in.
- Distinctive: line 65
Scale the depth to the project: Not every audit needs all fifteen at full depth:
- Very specific: line 119
Use templates/audit-report.md as the output shape.
- Very specific: line 121
Write to a file (AUDIT.md or docs/audit-YYYY-MM-DD.md) when the report is longer than a screen — a report that scrolls out of a terminal …
- Distinctive: line 137
If the user asks you to fix rather than only report:
- Distinctive: line 140
Write the failing test before the fix wherever a test is possible.
- Distinctive: line 141
Do not bundle refactors with security fixes.
- Distinctive: line 145
If a fix turns out to be wrong or infeasible, say so and leave the finding open rather than quietly closing it.
“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
Project Audit
A real audit is evidence-driven. Every finding points at a line, a route, a table or a config key, and every finding carries a way to prove the fix. Opinions without locations are not findings.
Phase 0 — Scope and consent (2 minutes, never skipped)
Establish before reading code:
- What is in scope? Repository only, or also the live site, infrastructure and third-party accounts?
- What is the audit for? Pre-launch gate, investor due diligence, an inherited codebase, a security concern, or a general health check. This changes what gets weighted.
- What may be run? Read-only analysis is always safe. Ask before installing dependencies, running tests, starting services, or touching anything that reaches production.
- Is there a live URL? If yes, the
web-presence-audit,accessibility-auditandprivacy-compliancepasses become live checks rather than code inference.
Never scan, probe or send traffic to infrastructure the user has not confirmed they own or are authorised to test.
State the scope in one line and begin.
Phase 1 — Ground truth
Run the discovery protocol from senior-engineer/references/discovery-protocol.md.
scripts/recon.sh (or recon.ps1 on Windows) automates the first pass and
prints a structured summary — run it if the environment allows, and fall back to
the manual commands if not. It is read-only.
Do not proceed to findings until the Ground Truth block is filled in. An audit built on a misread stack is worse than no audit.
Phase 2 — The fifteen domain passes
Load the specialised skill for each domain rather than working from memory.
| # | Domain | Skill to load | Weight |
| 1 | Security | security-hardening | 15 |
| 2 | Data and persistence | database-engineering | 12 |
| 3 | Correctness and testing | testing-strategy | 11 |
| 4 | Architecture | this skill, references/architecture-review.md | 10 |
| 5 | API design | api-contracts | 7 |
| 6 | DevOps and delivery | devops-platform | 8 |
| 7 | Observability | observability-slo | 7 |
| 8 | Performance | performance-engineering | 6 |
| 9 | Accessibility | accessibility-audit | 6 |
| 10 | Web presence and SEO | web-presence-audit | 5 |
| 11 | Privacy and compliance | privacy-compliance | 6 |
| 12 | Documentation | engineering-standards | 4 |
| 13 | Dependencies and supply chain | security-hardening | 5 |
| 14 | Developer experience | engineering-standards | 4 |
| 15 | Cost and scalability | devops-platform | 4 |
Scale the depth to the project. Not every audit needs all fifteen at full depth:
- Quick scan (a small app, a first look): domains 1, 2, 3, 11 at depth; the rest as a one-line status each.
- Standard audit (the default): all fifteen, depth proportional to weight.
- Deep audit (due diligence, pre-funding, regulated): all fifteen at depth, plus a threat model, a restore drill and a load test.
Say which depth you are running, and why.
Security extensions — load alongside security-hardening for domains 1 and 13
whenever the evidence calls for them:
| If the recon shows… | Also load | Why |
PHP (composer.json, .php, a php image, WordPress, Laravel, Symfony) | php-hardening | The runtime itself has had critical, actively targeted flaws; check the running build, SAPI and config before the code |
| A hosting platform, CI, containers, Terraform, or any stored secrets | cloud-security | Score how much a stolen environment variable would buy an attacker (blast radius, rotation readiness) |
| Model/LLM calls, agents, tools, MCP servers, third-party skills | ai-security | Prompt-injection paths, agent permissions, provider-key spend exposure |
| Any sign the system may already be compromised (unknown processes or files, foreign admin users, a vendor breach notice, a key in public) | security-incident-response | Stop the audit and switch. Auditing a live compromise destroys evidence and delays rotation |
| A request to test (not review) a running system | pentest-methodology | Active testing needs written authorisation and a scope file; this audit does not authorise it |
A high-risk system (payments, health, regulated data, public API) should end with a recommendation for an authorised penetration test even when the code review is clean — reading code does not replace attacking the running thing.
Parallelising. For a large codebase, running domain passes concurrently as subagents is the right call — dispatch security, data, testing and web-presence as independent reviewers, then merge. This skill authorises that; give each agent the Ground Truth block so nobody re-derives it.
Phase 3 — Evidence discipline
For every candidate finding, before it enters the report:
Can I point at the exact location? -> if no, keep investigating or drop it
Can I state the concrete consequence? -> if no, it is a preference, not a finding
Did I verify it, or am I inferring? -> label CONFIRMED or PLAUSIBLE
Can I name a way to prove the fix works? -> if no, the fix is underspecifiedConfirm before escalating. A missing authorization check might be enforced in middleware you have not read. A missing index might exist under a different name. Grep for the mitigating control before calling something a P0 — a false P0 costs you the reader's trust for the whole report.
Sample when exhaustive is impossible. On a large codebase, review every auth-adjacent, money-adjacent and personal-data-adjacent path exhaustively, and sample the rest. Say what you sampled and at what rate.
Phase 4 — Score and report
Apply the rubric in senior-engineer/references/severity-and-reporting.md.
Use templates/audit-report.md as the output shape.
Write to a file (AUDIT.md or docs/audit-YYYY-MM-DD.md) when the report is
longer than a screen — a report that scrolls out of a terminal does not get
acted on. Offer to publish it as a shareable artifact if the user wants to
circulate it.
Mandatory sections, in this order:
- Verdict — can this ship, what breaks first, what does the fix cost.
- Score — NN/100 with the three weakest domains named.
- Ground Truth.
- Findings — P0, P1, P2, P3, each fully formed.
- Scorecard — fifteen rows, each with a one-line justification.
- Remediation plan — ordered, with effort estimates.
- What I could not verify — never empty by omission.
Phase 5 — Remediation, on request
If the user asks you to fix rather than only report:
- Fix in severity order, P0 first. One finding per commit.
- Write the failing test before the fix wherever a test is possible.
- Do not bundle refactors with security fixes; a reviewer must be able to see the fix.
- Re-verify each fix with the verification step written in the finding, and report the actual result.
- If a fix turns out to be wrong or infeasible, say so and leave the finding open rather than quietly closing it.
Calibration
Grade against what this project claims to be, not against a hypothetical ideal. A weekend side project with no users and a fintech handling card data are held to different standards on scalability and process — and to identical standards on secrets in git, SQL injection, and honest privacy claims.
Two failure modes to avoid in equal measure:
- Flattery. Grading generously so the user feels good. They asked for a senior review; give them the number the evidence supports.
- Performative severity. Inflating findings to look thorough. A P0 that is not exploitable teaches the reader to ignore your P0s.
References and assets
references/architecture-review.md— how to assess structure, boundaries, couplingreferences/stack-playbooks.md— per-stack specifics (Next.js, Django, Rails, Laravel, Spring, Go, .NET, Flutter, mobile)references/quick-scan.md— the 30-minute version and its command sequencetemplates/audit-report.md— the full report templatescripts/recon.sh/scripts/recon.ps1— read-only reconnaissance
Other versions14 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 14
- sd0xdev/sd0x-dev-flow★ 192same name
- sd0xdev/sd0x-harness★ 192same name
- danmaps/gis-agent-skills★ 30same name
- NeuralTrust/TrustGate★ 16same name
- grooownow/qa-pilot★ 6same name
- AhmedAbdelfattah0/AI-Skills★ 4same name
- hmj1026/dhpk★ 2same name
- DentalEdge-Solutions/claude_code★ 1same name
- jrittelmeyer/ai-dev-kit★ 1same name
- lucas-Oliveira-01/agents★ 1same name
4 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 repository21 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- accessibility-auditSkill
- ai-securitySkill
- api-contractsSkill
- cloud-securitySkill
- database-engineeringSkill
- devops-platformSkill
- engineering-standardsSkill
- observability-sloSkill
- pentest-methodologySkill
- performance-engineeringSkill
- php-hardeningSkill
- privacy-complianceSkill
- project-blueprintSkill
- release-readinessSkill
- security-hardeningSkill
- security-incident-responseSkill
- senior-engineerSkill
- testing-strategySkill
- web-presence-auditSkill
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.

