create-audit · git:20260401.9e44c2b · 2026-04-01 · sha256 e4a06d76408aaf9b

create-audit git:20260401.9e44c2bA

Immutable. This exact content is served forever at /api/v1/blob/e4a06d76408aaf9b.

---
name: create-audit
description: Use when running a criteria-based review (health check, security audit, accessibility review, pen test, bug bash, spec compliance). Creates an Audit document with findings and presents them to the user for triage.
---

```
AUDITS DOCUMENT FINDINGS. THEY DON'T FIX THEM.
```

Present findings to the user. Let them decide what to act on.

<HARD-GATE>
Do NOT create iterations from findings. The audit produces a findings report
that the user triages. Only after the user selects findings to act on should
`/create-iteration` be used, and that is a separate skill invocation.
</HARD-GATE>

<NEVER>
- Do NOT write document files directly. Use `lazyspec create` and `lazyspec link`.
- Do NOT edit a document you haven't read. Always `lazyspec show <id> --json` or `Read` first.
- Do NOT create iterations from audit findings. Present findings to the user for triage.
- Do NOT fix issues found during the audit. Document them only.
</NEVER>

Always run `lazyspec help <subcommand>` before using unfamiliar commands. Always pass `--json`. On failure, check `--help` before retrying.

## Workflow

```d2
Define scope and criteria -> Create audit doc -> Review codebase -> Document findings -> Validate -> Present to user

Present to user -> User triages findings -> Use /create-iteration skill: for selected findings

Present to user.shape: diamond
Use /create-iteration skill.shape: double_circle
```

## Steps

1. **Define scope and criteria** with the user.
2. **Check for existing audits:** `lazyspec search "<topic>" --json`
3. **Create:** `lazyspec create audit "<title>" --author <name>`
4. **Link:** `lazyspec link <audit-path> related-to <target-path>` for every document the audit references.
5. **Review codebase:** Use Explore subagents (Sonnet) per area or criterion.
6. **Document findings** in the audit. Each finding must have:
   - **Severity:** critical, high, medium, low, or info
   - **Location:** file path or component
   - **Description:** what was found
   - **Recommendation:** what should be done
7. **Validate:** `lazyspec validate --json`
8. **Present** findings to user grouped by severity. Do NOT create iterations.

## Rules

- Audits document findings, they don't fix them
- Each finding must have a severity rating
- Link to stories/RFCs being audited when they exist
- Group findings by severity when presenting