Skip to content
Back to skills

Audit

ASecurity

Run the full audit sweep — accessibility, legal, security, UI, Claude-file, and code-maturity — in one pass and merge the results into a single ranked report with one approval step. Use when asked to audit the app/project/repo generally, for a health check or compliance sweep, before a release or before opening public registration, or when more than one of the six domains is wanted. For a single domain, invoke accessibility-audit, legal-audit, security-audit, ui-audit, claude-file-audit or co...

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 18, 2026
ai-agentssecurity

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 18, 2026

npx -y skills add ChulioZ/spielwirbel --skill audit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Audit?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Audit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/chulioz-audit/badge)](https://www.skillsdirectory.com/skills/chulioz-audit)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: audit
description: >-
  Run the full audit sweep — accessibility, legal, security, UI, Claude-file,
  and code-maturity — in one pass and merge the results into a single ranked
  report with one approval step. Use when asked to audit the app/project/repo
  generally, for a health check or compliance sweep, before a release or before
  opening public registration, or when more than one of the six domains is
  wanted. For a single domain, invoke accessibility-audit, legal-audit,
  security-audit, ui-audit, claude-file-audit or code-maturity-audit directly.
---

# Full audit

A thin orchestrator over the six domain audits. It exists so the user reviews
**one** ranked list and approves **one** batch of issues, instead of six of each.

It adds no criteria of its own. Every judgement lives in the domain skills and
`audit-loop.md`; this file only decides what runs where, and how the results
merge.

## Run order — the two browser audits cannot run in parallel

The split is driven by one hard constraint: **there is one Browser pane per
session**, and two audits drive it.

- **`legal-audit`, `security-audit`, `claude-file-audit` and
  `code-maturity-audit` run as four parallel subagents.** They are independent,
  read-only sweeps over largely disjoint file sets — exactly the case parallel
  subagents are for. Launch all four in a single message. (`security-audit` may
  itself invoke the built-in `/security-review` and `npm audit`; that stays
  inside its own subagent.)
- **`accessibility-audit` and `ui-audit` run in the main agent, one after the
  other — never as subagents, and never at the same time as each other.** Both
  drive the Browser pane and both need the seeded `dev-temp-data` instance, so a
  subagent (or a concurrent sibling) would contend for the same tabs and preview
  server. Run them **sequentially**, sharing the one preview session: bring up
  `dev-temp-data` once, do the accessibility pass, then the UI pass (or vice
  versa), then tear the preview down once at the end.

Start the four subagents first. Then, while they work, do the two browser passes
yourself back-to-back on the shared preview. Collect the subagents' reports when
they land.

Four seams to attribute correctly:
- `security-audit` and `accessibility-audit` both touch tenant isolation from
  different angles (RLS/gate enforcement vs. the auth-screen UI); `security-audit`
  overlaps `claude-file-audit` on the CI-tooling and env-file rules.
- **`code-maturity-audit` and `security-audit` both read hand-rolled
  auth/limiter/token code** — attribution by remedy owner: an *exploitable
  weakness* is security's even when a library swap would also fix it; *fragile
  or unmaintainable but not exploitable* is maturity's. `code-maturity-audit`
  also borders `claude-file-audit`: a stale document about code is
  claude-file's, the code itself is maturity's.
- **`ui-audit` and `accessibility-audit` both look at the visual UI** — the
  cleanest split in the set: anything about contrast, focus, target size, ARIA,
  keyboard or reduced-motion *compliance* is accessibility's (A-001..A-016);
  everything else visual — colour harmony, spacing, depth, type, consistency,
  polish — is UI's. A change that would trade one for the other (a prettier but
  lower-contrast treatment) is a **rejected** UI idea, not a finding.
- **Copy currency is `claude-file-audit`'s (C-024), not `ui-audit`'s.** `ui-audit`
  files copy under UX and rejects such findings outright (U-R03), so without this
  attribution a landing/FAQ sentence that no longer describes the app is dropped
  on the floor by every domain — which is how #209's per-device voting shipped
  with the FAQ still answering "a round runs from one device".

Attribute every shared finding to the domain that owns the *remedy*.

## Briefing the subagents

Each subagent starts cold, so brief it completely the first time — a re-brief
costs another full context load. Each brief must carry:

- The skill to invoke (`legal-audit` / `security-audit` / `claude-file-audit` /
  `code-maturity-audit`) and that it must read
  `.claude/skills/audit/audit-loop.md` and its own `criteria.md` first.
- Whether research is in scope this run (pass `--research` through, or say
  "cadence decides").
- **Report only — file nothing, open no PR, change no file.** The merge, the
  approval and every write happen here. A subagent that files issues on its own
  defeats the single-approval design.
- The report shape from `audit-loop.md` §F: criterion id, evidence, severity,
  cheapest correct remedy.

## Merging

1. **Dedupe across domains.** The six overlap by design at a few seams — the
   EAA/BFSG applicability question is recorded in both `accessibility-audit`
   (A-R05, deferred) and `legal-audit`; a stale reference in a rule about
   accessibility belongs to `claude-file-audit`; a tenant-isolation gap is
   `security-audit`'s even if `accessibility-audit` walked past the auth screen;
   hand-rolled security-relevant code splits by remedy owner (exploitable →
   `security-audit`, fragile-but-not-exploitable → `code-maturity-audit`);
   and `ui-audit`/`accessibility-audit` both see the visual UI — the visual defect
   is UI's, the contrast/focus/target/ARIA defect is accessibility's (see the run
   order). One finding, one entry, attributed to the domain that owns the remedy.
2. **Rank across domains, not within them.** A confirmed exploitable security hole
   or a legal blocker outranks an accessibility or UI polish item. Severity is the
   sort key; domain is a column. A `security-audit` blocker is surfaced immediately,
   not held for the merge (its own skill says so). UI findings are almost always
   polish-tier — that is expected, not a reason to inflate them.
3. **Group by remedy**, because that is how the work actually gets done: the
   tidy-up PR, the new assertions, the issues. Several small `claude-file-audit`
   findings usually collapse into one PR.
4. **Keep the legal reading list separate.** It is for the user's judgement, never
   mixed into the findings and never turned into an issue on your initiative.

## Approval and follow-through

One pass, at the end:

- Present the merged report and recommend which findings should become issues.
  Dedupe against open **and** closed issues first (`audit-loop.md` §G) — the
  backlog is small and deliberately curated.
- File only what the user picks, through `create-issue`, labelled `audit`
  (security findings also get a `security` label, UI findings a `ui` label). A live
  dependency advisory from `security-audit` routes to the `dependabot` skill, not a
  fresh issue. A UI polish batch is usually best taken straight as one `implement`
  PR rather than filed.
- Criteria changes from any research pass ship as **separate** PRs, one per domain,
  through `implement` — never folded together and never mixed with a findings fix.
- Tidy-up fixes ship as their own PR, also through `implement`.

## Reporting back

One summary: which domains ran, which did a research pass and which skipped on
cadence, the finding count by severity and domain, any confirmed exploitable hole
called out first, what became issues (with numbers), what became PRs, what was
dropped and why, and — separately — the legal reading list and the UI
before/after evidence. Confirm the browser scaffolding is cleaned up (the shared
`dev-temp-data` preview stopped, audit dataset deleted; `.claude/launch.json`
should be **unmodified** — its `dev-temp-data` entry is permanent).

Files in this skill

  • SKILL.md7.4 KB
  • audit-loop.md9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.