agentsclimarketplace

Audit

Skill claude-hangar/claude-hangar/core/skills/audit

Production-grade configuration management for Claude Code. Hooks, agents, skills, multi-project orchestration.

Install
npx -y skills add claude-hangar/claude-hangar --skill audit

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Systematic website audit (stack detection, 9 phases). Use when: "audit", "website audit", "site audit", "check website".

SKILL.md

18.9 KB, as published. Nobody here has run it

<!-- AI-QUICK-REF ## /audit — Quick Reference - **Modes:** start | continue | status | report | auto - **Arguments:** `/audit $0` where $0 = mode (e.g. `/audit auto`, `/audit status`) - **Three-layer:** phases/*.md + stacks/**/*.md + audit-context.md - **Dual-Layer:** Source (read code) + Live (curl, Lighthouse, Playwright) - **Check-Priorities:** MUST (mandatory) | SHOULD (standard) | COULD (nice-to-have) - **9 Phases:** Baseline, Security, Performance, SEO, A11Y, Code, Privacy, Infra, Content - **Finding-IDs:** IST-01, SEC-01, PERF-01, SEO-01, A11Y-01, CODE-01, GDPR-01, INFRA-01, CD-01 - **Severity:** CRITICAL > HIGH > MEDIUM > LOW - **Context Protection:** Max 2 phases OR 5 fixes per session (except auto) - **State:** .audit-state.json (v2.1) - **Checkpoints:** [CHECKPOINT: verify] after each phase, [CHECKPOINT: decision] at audit scope -->

Skill: audit

Systematic website audit with a three-layer depth model. Automatically detects the stack, loads relevant supplements, and performs structured checks — for any web project.


Architecture: Three-Layer Model

Layer 1: Base Phase (phases/*.md)           ~50 lines, universal
Layer 2: Stack Supplement (stacks/*/*.md)   ~80 lines, framework-specific
Layer 3: Project Override (audit-context.md) ~20-40 lines, project-specific

Per phase, only the relevant supplements are loaded. Result: ~100-140 lines of check instructions per phase — comparable to a dedicated skill.


Dual-Layer: Source + Live

Each phase has two check levels:

LayerMethodExample
Source-LayerRead code/config, grep, ASTCheck package.json, read CSP in config
Live-LayerBrowser/tool-basedcurl -sI, Lighthouse, Playwright, axe-core

Rule: A check is only considered complete when BOTH layers have been verified (where applicable). Example: "CSP configured" (Source) + "CSP header is actually sent" (Live) = complete.

Not all checks have both layers — e.g. "TypeScript strict mode" is purely source. During phase execution, document which layer was checked per check.


Check Priorities + Completeness Tracking

See _shared/audit-patterns.md (MUST/SHOULD/COULD markers, completeness counting). Phase with <100% MUST-checks can NOT be marked as done.


5 Modes

ModeTriggerDescription
start/audit startDetect stack, create phase plan, execute first 2 phases
continue/audit continueContinue next phases or fix max 5 findings
status/audit statusShow progress, statistics, open findings
report/audit reportGenerate structured Markdown report
auto/audit autoFully autonomous run — all phases + fixes without prompts

Mode: start

Step 1 — Auto-Detection (no user input needed)

Scan files and detect stack:

File/PatternDetectsStack-Key
package.json > astroAstrofrontend: "astro"
package.json > @sveltejs/kitSvelteKitfrontend: "sveltekit"
package.json > svelte (without Kit)Svelte (standalone)frontend: "svelte"
package.json > nextNext.jsfrontend: "next"
package.json > nuxtNuxtfrontend: "nuxt"
hugo.toml / config.toml with HugoHugofrontend: "hugo"
package.json > fastifyFastifybackend: "node-fastify"
package.json > expressExpressbackend: "node-express"
svelte.config.js + @sveltejs/adapter-nodeSvelteKit Serverbackend: "node-sveltekit"
package.json > tailwindcssTailwind CSScss: "tailwind"
tailwind.config.* OR @import "tailwindcss"Tailwind v4css: "tailwind-v4"
Dockerfile / docker-compose.*Dockerdeployment: ["docker"]
traefik.* / Labels with traefikTraefikdeployment: +["traefik"]
nginx.conf / /etc/nginx/nginxdeployment: +["nginx"]
*.db / better-sqlite3 / sqlite3SQLitedatabase: "sqlite"
package.json > drizzle-orm / pg / postgresPostgreSQL + Drizzledatabase: "postgresql"
docker-compose.* > postgres imagePostgreSQL (Docker)database: "postgresql"
package.json > bcryptjs / bcrypt / argon2Auth (Custom)auth: "custom"
playwright.config.*Playwrighttesting: ["playwright"]
.github/workflows/GitHub Actionsci: "github-actions"

Version Detection: For each detected stack, extract version from package.json or config. Tailwind v4 detection: @import "tailwindcss" in CSS OR tailwindcss >= 4.0 in package.json.

Step 2 — Context Enrichment

  1. Project CLAUDE.md read (if available) — architecture, conventions
  2. audit-context.md load (if in project root) — project-specific context
  3. Existing docs scan: AUDIT-FINDINGS*.md, TODO*.md, GO-LIVE*.md
  4. {{REGISTRY_FILE}} match: If project name is in project registry > identify assigned servers
  5. Existing state file (.audit-state.json) check > auto-migrate if v1 (see State-Migration)

Step 3 — User Query

Show detection result as table:

Stack Detection:
+-------------+------------------+---------+
| Category    | Detected         | Version |
+-------------+------------------+---------+
| Frontend    | Astro            | 6.x     |
| CSS         | Tailwind CSS v4  | 4.x     |
| Deployment  | Docker, Traefik  | —       |
| Testing     | Playwright       | —       |
+-------------+------------------+---------+

Detected servers: {{SERVER_NAMES}}
Project context: audit-context.md found
Existing docs: AUDIT-FINDINGS-2026-02-13.md, TODO-SEO.md

Then ask user (AskUserQuestion):

  • Audit scope: Complete (all 9 phases) vs. focused (specific phases)
  • External repos: Include related projects? (if defined in audit-context.md)
  • Server access: Enable SSH checks? (if servers detected)
  • Phase order: Sequential (01>08, default) vs. Smart Order (Security>Performance>Code>Rest, recommended)

[CHECKPOINT: decision] — User selects audit scope and phase order.

Step 4 — Create state file and start first 2 phases

Create state file .audit-state.json (schema see below). Then execute the first 2 phases according to phase execution flow.


Mode: continue

  1. Read .audit-state.json
  2. Identify next pending phase(s)
  3. Generate smart recommendation (see below)
  4. User chooses: follow recommendation, different phase, or fix findings
  5. Write state immediately after each phase/fix

Smart Recommendation

Decision logic: See _shared/audit-patterns.md (CRITICAL>HIGH>Phases>Remaining). Show recommendation as first option in AskUserQuestion.

Fixing Findings

  • Always fix highest severity first: CRITICAL > HIGH > MEDIUM > LOW
  • Per fix: Show problem > Load fix template (if in fix-templates.md) > User confirmation > Implement > Test
  • Update fix status in state ("status": "fixed", "fixedIn": "Session N")
  • No auto-fix — every fix requires user confirmation (except auto mode)

[CHECKPOINT: verify] — After each fix: show result, user confirms.


Mode: status

Read state file and display:

Audit: Project Name (started YYYY-MM-DD)
Stack: Astro 6, Tailwind v4, Docker, Traefik

Phases:
  [done] 01 Baseline Analysis (Session 1, 3 Findings, MUST 100%)
  [done] 02 Security (Session 1, 5 Findings, MUST 100%)
  [wip]  03 Performance (in progress)
  [wait] 04 SEO
  [wait] 05 Accessibility
  [wait] 06 Code Quality
  [wait] 07 Privacy/GDPR
  [wait] 08 Infrastructure
  [wait] 09 Content & Design

Findings: 8 total
  CRITICAL: 1 (open: 1)
  HIGH: 3 (open: 2, fixed: 1)
  MEDIUM: 3 (open: 3)
  LOW: 1 (open: 1)

Completeness:
  MUST-Checks: 28/28 (100%)
  Total: 42/50 (84%)
  Layer: Source done, Live done (2 phases)

Mode: report

Generate structured Markdown report based on templates/report.md.

  1. Read state file
  2. Group all findings by phase
  3. Report with Executive Summary, Findings per Phase, Recommendations
  4. Include trend analysis (if history available):
    Trend (recent audits):
      CRITICAL: 5 > 2 > 0  (resolved)
      HIGH:     8 > 6 > 4  (declining)
      MEDIUM:  12 > 10 > 7  (declining)
      Total:   25 > 18 > 11
    Assessment: Project is steadily improving.
    
  5. Save report as AUDIT-REPORT-{YYYY-MM-DD}.md in project root
  6. If previous reports exist: Diff section (new/resolved since last report)

Mode: auto

Fully autonomous audit run without prompts. For experienced users who want the entire audit in one go.

Flow

  1. Check orchestrator context: If .audit-orchestrator-state.json exists:
    • Read phaseMapping.audit.delegated > skip delegated phases
    • Read sequencingReason > understand context
    • Example: If code-quality delegated to /project-audit > skip Phase 06
  2. Auto-detection as in start
  3. All phases run through (no 2-phase limit, skip delegated phases)
  4. Document findings with fix templates from fix-templates.md
  5. Context management: When context is running low:
    • Write state immediately
    • Create task in .tasks.json with handoff note
    • Recommend: "New session with /audit continue"
  6. At the end: automatically generate report

Context Protection in Auto Mode

  • Findings are collected but not fixed immediately (documented only)
  • Per phase: If >10 findings > close phase, start next
  • Write state after EVERY phase immediately
  • At context limit: clean abort with complete state
  • Fixes can be done in follow-up sessions with /audit continue

When to Recommend Auto Mode

  • User says "check everything", "fully autonomous", "full audit"
  • Auditing multiple projects in sequence
  • First overview of a new project

Phase Execution

For each phase:

  1. Load base: Read phases/{NN}-{name}.md — universal check items

  2. Load supplements: For each detected stack, load the matching file, ONLY the section relevant to the current phase

    PhaseSupplement Sections
    01-baseline-analysis§Baseline-Analysis
    02-security§Security
    03-performance§Performance
    04-seo§SEO
    05-accessibility§Accessibility
    06-code-quality§Code-Quality
    07-privacy§Privacy
    08-infrastructure§Infrastructure
    09-content-design§Content-Design
  3. Project override: If audit-context.md exists > include relevant section

  4. Existing findings: Check previous audit docs, do not create duplicates

  5. Execute checks: Systematically work through all loaded checks

    • Source layer: Read and analyze code/config
    • Live layer: Execute tools (curl, Lighthouse, Playwright, axe) where applicable
  6. Document findings: Each finding with ID, severity, description, location

  7. Count completeness: MUST/SHOULD/COULD checks (executed vs. skipped)

    • Skipped MUST-checks: document reason
    • Phase with <100% MUST-checks: status remains in-progress
  8. Update state: Set phase status to done, enter findings + completeness

[CHECKPOINT: verify] — After each phase: show findings + completeness to user, get confirmation.

Finding-IDs

PhasePrefixExample
01-baseline-analysisISTIST-01
02-securitySECSEC-01
03-performancePERFPERF-01
04-seoSEOSEO-01
05-accessibilityA11YA11Y-01
06-code-qualityCODECODE-01
07-privacyGDPRGDPR-01
08-infrastructureINFRAINFRA-01
09-content-designCDCD-01

Severity Definitions

LevelCriteriaExamples
CRITICALSecurity vulnerability, data loss, outageOpen port, missing auth, SQL Injection
HIGHFunctional bug, performance >2s, missing validationLCP >4s, no rate limiting, XSS
MEDIUMCode quality, missing tests, UX issueMissing alt texts, no error handling
LOWCosmetic, best practice, nice-to-haveOutdated dependency, missing docs

Prioritization: CRITICAL > HIGH > MEDIUM > LOW. Security before functional before visual.


State Schema v2.1 (.audit-state.json)

Complete state schema (JSON example) + migrations v1>v2 and v2>v2.1: See state-schema.md


Supplement Loading Logic

Per phase, the skill loads only relevant stack supplements. Each stack file is structured by sections.

Example Phase 02-security:

> Always: phases/02-security.md (base)
> If frontend=astro: + stacks/frontend/astro.md §Security
> If css=tailwind-v4: (no Security section > load nothing)
> If deployment includes docker: + stacks/deployment/docker.md §Security
> If deployment includes traefik: + stacks/deployment/traefik.md §Security
> If backend=node-fastify: + stacks/backend/node-fastify.md §Security
> If database=sqlite: + stacks/database/sqlite.md §Security
> If testing includes playwright: + stacks/testing/playwright.md §Security

Supplement file locations:

Stack-KeySupplement Path
frontend: "astro"stacks/frontend/astro.md
frontend: "sveltekit"stacks/frontend/sveltekit.md
frontend: "next"stacks/frontend/next.md
frontend: "hugo"stacks/frontend/hugo.md
backend: "node-fastify"stacks/backend/node-fastify.md
backend: "node-sveltekit"stacks/backend/node-sveltekit.md
css: "tailwind-v4"stacks/css/tailwind-v4.md
deployment: "docker"stacks/deployment/docker.md
deployment: "traefik"stacks/deployment/traefik.md
deployment: "nginx"stacks/deployment/nginx.md
database: "sqlite"stacks/database/sqlite.md
database: "postgresql"stacks/database/postgresql.md
testing: "playwright"stacks/testing/playwright.md

If a stack is detected but no supplement exists > use base phase only, no error.


Phase Order

Two modes for the order of phases:

Sequential (Default)

01-baseline-analysis > 02-security > 03-performance > 04-seo > 05-accessibility > 06-code-quality > 07-privacy > 08-infrastructure > 09-content-design

Smart Order (Recommended)

Prioritized by impact — finds critical issues first: 02-security > 03-performance > 08-infrastructure > 01-baseline-analysis > 06-code-quality > 04-seo > 05-accessibility > 07-privacy > 09-content-design

Logic: Security issues are most urgent, followed by performance (user impact), then infrastructure (stability). SEO/A11y/Privacy are important but less time-critical.

User chooses at start. Store in state as "phaseOrder": "sequential" or "smart".


Fix Templates

For common findings there are ready-made fix templates in fix-templates.md. Per finding type: code snippet, config change, verify step.

Usage: When a finding matches a template:

  1. Load template from fix-templates.md
  2. Adapt to project
  3. Get user confirmation
  4. Implement and verify

Verification-Depth + Fix Protocol

See _shared/audit-patterns.md (4-Level Verification, Stub-Detection, 5-Step Fix-Protocol). Level 4 (Functional) is mandatory when live layer is available. READ + VERIFY never skip.


Context Protection (CRITICAL)

Base rules: See _shared/audit-patterns.md (Max 2 phases, state immediately, no auto-fix).

Website audit specific:

  • SSH readonly during audit — write only during explicit fix with user confirmation
  • Dual-Layer: Per phase, document whether source layer, live layer, or both were checked
  • Anti-rationalization — Do not skip MUST-checks or reduce severity because "it looks fine". See _shared/anti-rationalization.md

Smart Next Steps

After completing the audit (report generated or all phases done), recommend suitable follow-up skills to user. Recommendations based on findings and detected stack:

ConditionRecommendationJustification
Astro project detected/astro-auditCheck version-specific migration/best-practices
SvelteKit project detected/sveltekit-auditSvelteKit/Svelte 5 version checks + best practices
PostgreSQL/Drizzle detected/db-auditDatabase schema, migrations, security, performance
Custom auth detected (bcryptjs etc.)/auth-auditAuth security, session management, OWASP ASVS
>3 HIGH/CRITICAL findings/adversarial-review auditCheck report for completeness
Phase 09 (Content) findings >0/polish scanDesign improvements based on findings
Phase 09 (Content) findings >0/design-systemCheck palette, typography, UX rules against curated databases
Claude Code project (.claude/ present)/security-scanMCP permissions, hook safety, secret detection
Audit completed/lesson-learned sessionExtract learnings from audit process
No /project-audit state present/project-audit startCheck code/CI/CD quality

Output in report: Replace {NEXT_STEPS} placeholder with concrete recommendation list.

Output after last phase: "Next steps:" + 2-3 most relevant recommendations.


Files in This Skill

audit/
├── SKILL.md                    <- This file
├── state-schema.md             # State Schema v2.1 + Migrations
├── fix-templates.md            # Quick-Fix templates for common findings
├── phases/
│   ├── 01-baseline-analysis.md # Versions, Config, Architecture
│   ├── 02-security.md          # OWASP, Headers, Secrets, Auth
│   ├── 03-performance.md       # Lighthouse, CWV, Caching, Images
│   ├── 04-seo.md               # Meta, Structured Data, Sitemap
│   ├── 05-accessibility.md     # WCAG AA, Contrast, ARIA, Keyboard
│   ├── 06-code-quality.md      # Linting, Types, Dependencies
│   ├── 07-privacy.md           # Cookies, Fonts, Analytics
│   ├── 08-infrastructure.md    # VPS, Docker, Proxy, Backup
│   └── 09-content-design.md    # Content, Typography, Colors, Consistency
├── stacks/
│   ├── frontend/astro.md       # Astro-specific checks
│   ├── frontend/sveltekit.md   # SvelteKit-specific checks
│   ├── frontend/next.md        # Next.js-specific checks
│   ├── frontend/hugo.md        # Hugo-specific checks
│   ├── backend/node-fastify.md # Fastify-specific checks
│   ├── backend/node-sveltekit.md # SvelteKit server-side checks
│   ├── css/tailwind-v4.md      # Tailwind v4-specific checks
│   ├── deployment/docker.md    # Docker-specific checks
│   ├── deployment/traefik.md   # Traefik-specific checks
│   ├── deployment/nginx.md     # nginx-specific checks
│   ├── database/sqlite.md      # SQLite-specific checks
│   ├── database/postgresql.md  # PostgreSQL + Drizzle checks
│   └── testing/playwright.md   # Visual & E2E testing checks
└── templates/
    └── report.md               # Markdown report template

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.