agentsclimarketplace

Audit orchestrator

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

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

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

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

Universal Pre-Scan → Analysis → Optimization → Report orchestrator for ANY project type — web apps (Astro/SvelteKit/Next), infrastructure/homelab repos, CLI tools, libraries, backend services, monorepos, data/ML projects, docs. Self-detects project type and runs the matching analysis track. Session state lives in `.audit-session/<date>-<slug>/` with INDEX.md + STATUS.md so any instance (or a different LLM) can resume after a crash. Delegates to /audit + /project-audit + /astro-audit + /sveltekit-audit + /db-audit + /auth-audit for web projects. Use when: "full audit", "audit everything", "complete audit", "infra audit", "homelab audit", "repo audit", "orchestrate audit", "pre-scan analysis optimization report".

SKILL.md

33.6 KB, as published. Nobody here has run it

<!-- AI-QUICK-REF ## /audit-orchestrator — Quick Reference - **Universal mode (default)** — works for any project type via self-detection - **Four phases:** 01-prescan → 02-analysis → 03-optimization → 04-report (each with its own folder) - **Session directory:** `.audit-session/<YYYY-MM-DD>-<slug>/` with INDEX.md + STATUS.md - **Resume protocol:** any instance reads STATUS.md → continues where prior stopped - **Project-type detection:** web (astro/sveltekit/next), infra (docker/iac/homelab), lang (py/go/rust/node), monorepo, docs, data-ml, generic - **Web specialization:** delegates to /audit, /{framework}-audit, /project-audit, /db-audit, /auth-audit - **Execution Modes:** Team (parallel) | Manual (sequential) | Runner (autonomous) - **Legacy state:** .audit-orchestrator-state.json (v3) still written for web-framework path -->

/audit-orchestrator — Universal Orchestrator

Meta-skill that runs a project through Pre-Scan → Analysis → Optimization → Report on any kind of codebase. Self-detects the project type, picks the right analysis track, and writes all state into a resumable session directory.

Two Modes

ModeWhenWhat runs
Universal (default)Any project — infra, homelab, CLI, library, monorepo, docs, data/ML, web, genericFour-phase workflow, project-profile-driven analysis track (see universal-workflow.md)
Web Orchestration (specialization)Project detected as web-astro, web-sveltekit, or web-nextjsSame four phases, but Phase 2 delegates to /audit + /{framework}-audit + /project-audit + optional /db-audit / /auth-audit per the rules below

Dry-Run Preview (RepoLens-inspired)

Invoke with dry-run argument to preview the full plan without firing any sub-agents or writing session state:

/audit-orchestrator dry-run

Dry-run output prints:

  1. Detected project type and confidence (no Read of large files beyond fingerprint check)
  2. Planned Phase-2 tracks — which audits/agents would run and why
  3. Estimated cost envelope — tool calls × HANGAR_COST_PER_CALL_USD (default 0.02 USD)
  4. Parallelization plan — which steps are independent, which serialize
  5. Session directory that would be created — path only, not materialized

No .audit-session/ is written, no agents are spawned. Safe to run on any repo for planning. Exit after printing the plan.

The universal mode is always entered first. If Phase 1 (Pre-Scan) detects a supported web framework, Phase 2 activates the web orchestration path. For any other project type, Phase 2 runs the general + specialty analysis tracks described in universal-workflow.md.

Session Directory

Every run creates .audit-session/<YYYY-MM-DD>-<slug>/ with:

INDEX.md                 # TOC + navigation
STATUS.md                # Live session state — read first on resume
01-prescan/              # detection + project profile
02-analysis/             # findings + opportunities + fix queue
03-optimization/         # applied changes + deferred + deviations
04-report/REPORT.md      # canonical deliverable
  • Full directory schema + file templates: session-schema.md.
  • Phase-by-phase execution (inputs, actions, outputs, exit criteria): universal-workflow.md.
  • Legacy web-specific state (.audit-orchestrator-state.json v3): state-schema.md (still written when the web orchestration path is active; coexists with the session directory).

Resume Protocol (Crash / Handoff / New Instance)

A fresh LLM or a different AI (or the same instance after a crash) picks up a session like this:

  1. ls .audit-session/ → find the target session directory.
  2. Read INDEX.md — understand the structure.
  3. Read STATUS.md — learn the current phase, state, and "next action".
  4. Claim the session: update STATUS.md active instance and last updated before the first tool call.
  5. Continue from the next-action line.

STATUS.md is always current. It is updated at every phase transition and after every ~5 fix commits in Phase 3, and flipped to paused on exit. Because findings/TODOs/changes live in phase folders as plain Markdown, the entire session is portable — another LLM, or the user reading by hand, can pick it up without running any tool.

Problem solved by this skill

An Astro project needs:

  • /audit for performance, SEO, a11y, privacy compliance, security
  • /astro-audit for version-specific migration/best practices
  • /project-audit for Git, CI/CD, testing, maintenance

Without orchestration: user must decide manually, duplicate work on security/infra.

An infra/homelab repo needs different things again (Docker hygiene, Compose V2, Traefik, service inventory vs. running services, backup state, cert expiry) — the orchestrator detects this and runs the infra track instead.

Problem

An Astro project needs:

  • /audit for performance, SEO, a11y, privacy compliance, security
  • /astro-audit for version-specific migration/best practices
  • /project-audit for Git, CI/CD, testing, maintenance

Without orchestration: user must decide manually, duplicate work on security/infra.

Solution: Auto-Detection + Audit Plan

Step 0 — Session Init (always)

Before any detection, create the session directory:

  1. Slug = <YYYY-MM-DD>-<short-descriptor> (see session-schema.md).
  2. Create .audit-session/<slug>/ with empty phase folders.
  3. Write initial INDEX.md (phases all pending) and STATUS.md (state: in_progress, phase: 01-prescan, next action: detect project type).
  4. From this point on, every phase transition and every ~5 fixes updates STATUS.md. This is what makes the session crash-resilient.

Step 1 — Scan Project

Same detection as /audit + /project-audit, plus universal signals:

  • package.json, pyproject.toml, go.mod, Cargo.toml, Dockerfile, docker-compose*.yml, .tf, ansible.cfg, .github/, .claude/, registry.json
  • Detect frontend framework (Astro, Next, SvelteKit, Hugo, etc.)
  • Detect backend (Fastify, Express, FastAPI, etc.)
  • Detect project type using the universal decision table in universal-workflow.md: web-astro | web-sveltekit | web-nextjs | node-app | node-lib | python | go | rust | infra-docker | infra-iac | infra-homelab | meta-automation | monorepo | docs | data-ml | generic
  • Detect output mode: output: "static" vs. output: "server" (from astro.config.*) — web only
  • Related projects: audit-context.md → check relatedProjects (e.g., forms backend)
  • Detect beta/unstable version: Version with -beta, -rc, -alpha suffix → prioritize migration audit

Write the result to 01-prescan/project-profile.md using the profile template (see session-schema.md). The profile drives Phase 2 track selection:

Detected project typePhase 2 tracks
web-astro / web-sveltekit / web-nextjsgeneral + web-framework (delegates to existing /audit orchestration below)
infra-dockergeneral + infra (Docker hygiene, Compose V2, rootless, secrets)
infra-iacgeneral + infra (tf/tofu/ansible state, drift, secrets)
infra-homelabgeneral + infra + ops (inventory vs. live, certs, backups, disk, retention)
python / go / rust / node-app / node-libgeneral + language-specific (lint, types, tests, CVEs, build repro)
monorepogeneral + per-package loop (each package under 02-analysis/packages/<name>/)
docsgeneral + docs (link rot, meta, freshness, structure)
data-mlgeneral + data-ml (deps, notebooks, reproducibility, dataset provenance)
meta-automationgeneral + ci (workflow sanity, pinned actions, secret scopes)
genericgeneral only

Rule: The general track (git hygiene, CI sanity, secret scan, dependency freshness, license posture, docs freshness) runs for every project. Specialty tracks are additive.

Step 1b — Infrastructure Scan (Pre-Audit)

Before starting project audits, check infrastructure level:

Detect GitHub:

  • .github/ directory present → github: true
  • git remote -v → github.com → extract repo owner + name
  • Detect organization: gh api repos/{owner}/{repo}owner.type == "Organization"

Detect VPS:

  • audit-context.md → server section present?
  • registry.json → server assignment for the project?
  • Dockerfile/docker-compose present → deployment on server likely

Pre-Audit Recommendation:

DetectedRecommendationReason
GitHub + VPS"Infra first: check GitHub settings + VPS hardening"Insecure platform makes code audit pointless
GitHub only"Check GitHub settings in /project-audit (github.md supplement)"Branch protection, secret scanning etc.
VPS only"VPS deep security in /audit Phase 08"Open ports, users, logging etc.
NeitherStandard processNo infra check needed

Freshness Check + Opportunities:

ConditionRecommendation
Last /freshness-check > 7 days"Recommendation: /freshness-check before audit start"
Last check < 7 daysNo hint, proceed to audit plan
No check documented"Recommendation: /freshness-check full (first run)"

Prior Context — Freshness Opportunities: If .freshness-state.json exists, read opportunities[] array:

  • Include HIGH opportunities as "Pre-Audit Notes" in the audit plan
  • Example: Opportunity { severity: "high", target: "audit/phases/02-security.md" } → "Note: Security phase has new best practices since last freshness check"
  • Opportunities are NOT automatically fixed — only provided as context for the audits

Rule: With GitHub + VPS, the first session is recommended for infra checks:

  1. GitHub org settings (once per org, not per repo)
  2. GitHub repo settings (branch protection, secret scanning)
  3. VPS quick check (ports, users, SSH, fail2ban)
  4. Only then: regular audit sessions

Infra findings are documented with prefix INFRA- (VPS) or SEC- / GIT- (GitHub) — in the respective audit state files, not in the orchestrator state.

Step 1c — Security Pre-Scan (Claude Code Projects)

When .claude/ directory is detected in the project:

CheckAction
.claude/settings.json existsRecommend /security-scan mcp before audit
.claude/hooks/ has custom hooksRecommend /security-scan hooks before audit
Both presentRecommend /security-scan (full) as Pre-Audit step

Rationale: Compromised hooks or MCP servers could manipulate audit results. Verify the Claude Code environment is clean before trusting audit output.

Integration: Security scan findings feed into the audit plan:

  • CRITICAL security-scan findings → address before starting audit
  • MCP permission issues → note in audit report context
  • Hook safety issues → fix before running automated audit modes

Step 2 — Determine Audit Combination

Project TypeRecommended AuditsReason
Astro Website (static)/audit + /astro-audit (reduced)Web quality + Astro specifics, skip ADPT section
Astro Website (SSR)/audit + /astro-auditWeb quality + Astro specifics (all sections)
Astro + Backend (e.g., Fastify)/audit + /astro-audit + /project-auditEverything — backend needs its own checks
SvelteKit App (SSR)/audit + /sveltekit-audit + /project-auditWeb quality + SvelteKit specifics + code/CI
SvelteKit App (prerendered)/audit + /sveltekit-audit (reduced)Skip SSR sections when prerender = true
SvelteKit + Drizzle/PostgreSQL/audit + /sveltekit-audit + /db-audit + /project-auditFull stack — DB needs its own checks
SvelteKit + AuthAbove + /auth-auditCustom auth always check separately
Next.js Website/audit + /project-audit (reduced)Web quality + code/CI/CD
Hugo Website/auditWeb quality only (static, little code)
Backend Service (no web)/project-audit + /db-audit (if DB)No SEO/a11y needed
CLI Tool / Library/project-auditCode/Git/CI/CD only
Management Repo/project-auditStructure/docs/scripts only
Monorepo/project-audit + per sub-projectEach package individually

Always add when detected:

ConditionAdditional AuditReason
.claude/ directory present/security-scan (pre-audit)Verify Claude Code environment before audit
Phase 09 content findings expected/design-system referenceUse curated palette/typography/UX databases for content checks

Step 2b — Static Site Filter (Astro)

When output: "static" is detected, certain checks are irrelevant:

Section/CheckReason for Skip
ADPT-01 to ADPT-04 (Adapter)Static needs no adapter
Session Driver ChecksNo server sessions with static
SSR-specific Security ChecksNo server-side code
allowedDomains ChecksSSR-only relevant

Rule: Mark skipped checks in state file as "status": "skipped", "reason": "static-output".

Step 2c — Related Projects (Cross-Repo)

When audit-context.md references related projects (e.g., forms backend):

  1. Recommend separate audit: Related projects have their own codebase → separate /audit or /project-audit
  2. Check interfaces: In the main audit, check integration:
    • API communication (CORS, auth, timeouts)
    • Shared infrastructure (same server, reverse proxy routing)
    • Credential management (shared secrets)
  3. Cross-references in state: relatedProjects array with status ("audited", "open", "not in scope")

Step 2d — Checkpoint Gates between Audit Phases

In team mode and complex multi-audit runs: use checkpoint gates to ensure quality between phases.

GateTimingCheckAction on Failure
Pre-Audit GateBefore audit startFreshness check current? Infra scan done?Postpone audit until pre-audit done
Migration GateAfter framework auditAll CRITICAL MIG findings fixed? Build OK?Don't start /audit until build is green
Security GateAfter /audit Phase 02No CRITICAL SEC findings open?Warning to team lead, prioritize fixing
Compliance GateAfter /audit Phase 07Privacy/accessibility mandatory checks passed?CRITICAL finding → fix immediately
Pre-Report GateBefore combined reportAll audits completed? State files consistent?Report only after completeness

Checkpoint Logic in Team Mode:

  1. Teammate reports audit phase as done
  2. Orchestrator checks gate conditions for next phase
  3. Gate passed → next audit/phase is released
  4. Gate not passed → orchestrator informs user + blocks next phase

Rules:

  • Gates are recommendations, not hard blocks — user can skip gates
  • CRITICAL findings in security/compliance gates are always reported
  • Migration gate is HARD — with a broken build, no web audit is worthwhile
  • Pre-report gate is HARD — incomplete reports are misleading

Step 3 — Manage Phase Overlap

Some phases exist in both audits but check different aspects. Do not delegate wholesale — instead clearly separate the focus:

Phase/audit Focus/project-audit FocusRecommendation
SecurityWeb security: OWASP, headers, SRI, SSRF, security.txt, CORP/COOPSupply chain: SBOM, ASVS, Sigstore, npm provenance, container signingBoth run — complementary
Infra / DeploymentVPS, Docker, Compose V2, rootless, proxy, monitoringContainer signing, SBOM in image, OCI annotationsBoth run — complementary
Code QualityLinting, types (basic)Patterns, complexity, dead code, coverage (thorough)/project-audit leads, /audit skips
DependenciesVersion check in status analysis (basic)Lockfiles, package managers, corepack, provenance (thorough)/project-audit leads, /audit status stays (version overview only)

Rule: Phases with different focus BOTH run. Only with true duplicates (same checks) does the more thorough one lead.

Step 4 — Intelligent Sequencing

The order of audits depends on the detected project:

ConditionRecommended OrderReason
Framework beta/RC versionFramework audit → /audit/project-auditMigration breaking changes first — a broken build blocks everything
Framework stable (major upgrade needed)Framework audit → /audit/project-auditUpgrade before quality audit
Framework stable (current)/audit → framework audit → /project-auditWeb quality first, then framework best practices
SvelteKit + Drizzle + Auth/db-audit/auth-audit/sveltekit-audit/audit/project-auditDB foundation → auth security → framework → web quality → code
SvelteKit (without DB/Auth)/sveltekit-audit/audit/project-auditFramework checks → web quality → code
No framework-specific audit/audit/project-auditStandard order
Backend only + DB/db-audit/project-auditDB foundation → code
Backend only/project-auditSingle audit

Rule: With beta/RC versions ALWAYS run the migration audit first — a build that doesn't compile makes any other audit pointless.

Step 5 — Show Audit Plan to User

Dynamic plan based on detection. Example for different scenarios:

Scenario A: Framework Beta + Static + Docker + GitHub + VPS

Audit Plan for: {{PROJECT_NAME}}

Detected: {{FRAMEWORK}} {{VERSION}} (Beta) + Tailwind v4 + Docker + Reverse Proxy
Output: static (no SSR)
GitHub: {{ORG}}/{{REPO}} (Organization)
Server: {{SERVER_LIST}}
Related Projects: {{RELATED_NAME}} ({{RELATED_STACK}})
Recommendation: Pre-audit infra → Framework migration → Web quality → Code/CI

Pre-Audit: Freshness + Security + Infrastructure (1 session)
  /freshness-check        ← Pipeline knowledge current? Versions, standards, regulations
  /security-scan           ← Claude Code environment: MCP permissions, hook safety, secrets
  GitHub Org Settings     ← 2FA, base permissions, third-party access
  GitHub Repo Settings    ← Branch protection, secret scanning, CodeQL
  VPS Quick Check         ← Ports, users, SSH, fail2ban, services
  → Secure foundation before checking code

Audit 1: /{{FRAMEWORK}}-audit (migration checks) ← PRIORITY
  {N} sections, of which {M} relevant (ADPT section skip: static)
  Ensure breaking changes and build compatibility
  → Must run before web audit — broken build blocks everything

Audit 2: /audit (9 phases — web quality)
  01 Status Analysis      ← Baseline (version overview)
  02 Security             ← Web security (OWASP, headers, SRI, SSRF)
  03 Performance          ← Exclusive (CWV, Lighthouse, caching)
  04 SEO                  ← Exclusive (meta, structured data, sitemap)
  05 Accessibility        ← Exclusive (WCAG 2.2, accessibility regulations)
  07 Privacy              ← Exclusive (consent, cookie regulations)
  08 Infrastructure       ← VPS deep security + Docker + proxy
  09 Content & Design     ← Content, typography, colors, consistency
  (06 Code Quality       → delegated to /project-audit)

Audit 3: /project-audit (10 phases — code/CI/CD)
  02 Dependencies         ← Leads (lockfiles, corepack, provenance)
  03 Code Quality         ← Leads (patterns, coverage, complexity)
  04 Git & Versioning     ← Exclusive (+ GitHub supplement)
  05 CI/CD & Automation   ← Exclusive (OIDC, attestation, SLSA, + GitHub supplement)
  07 Testing & QA         ← Exclusive (coverage, E2E)
  08 Security             ← Supply chain (SBOM, ASVS, Sigstore, + GitHub supplement)
  09 Deployment           ← Container signing, SBOM in image, OCI (+ GitHub environments)
  10 Maintenance          ← Exclusive (+ GitHub supplement)
  (01 Structure          → status in /audit)

Related Projects:
  {{RELATED_NAME}}: Separate /project-audit recommended, check interfaces in main audit

Estimated Sessions: {calculated}
Shall I start?

Scenario B: Framework Stable + SSR (without VPS access)

...
Recommendation: Security scan → GitHub check → Web quality → Framework best practices

Pre-Audit: /security-scan + GitHub settings (in session 1)
Audit 1: /audit (8 phases) ← FIRST
Audit 2: /{{FRAMEWORK}}-audit (all sections incl. ADPT)
Audit 3: /project-audit (10 phases, with GitHub supplement)
...

Step 5b — Choose Execution Mode

After the audit plan, the orchestrator asks how the audits should be executed.

Offer options:

ModePrerequisiteDescription
Team (parallel) (Recommendation)CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 setOrchestrator spawns teammates, audits run in parallel as team
Manual (sequential)Always availableUser starts each audit individually in separate sessions
Runner (external)/audit-runner availableAutonomous run via audit-runner.sh (separate process)

Rules:

  • Team option ONLY shown when CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 is set as env var
  • With available team mode: mark as recommendation (faster, less manual work)
  • Without team flag: manual as default, mention runner as alternative
  • User can always abort and switch to manual mode

Check Team Availability:

# Check in orchestrator:
echo $CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS
# If "1" → offer team option

Step 6 — Calculate Session Estimate

Not hardcoded — dynamically based on phase count:

Session Formula:
  framework_sessions = ceil(relevant_sections / 2) + ceil(expected_findings / 5)
  audit_sessions     = ceil(active_phases / 2)     + ceil(expected_findings / 5)
  project_sessions   = ceil(active_phases / 2)     + ceil(expected_findings / 5)

  planning_session   = 1  (orchestrator plan)
  fixing_sessions    = ceil(estimated_total_findings / 5)

  TOTAL = planning + framework + audit + project + fixing

Benchmarks for expected findings:

  • First audit: ~5-8 findings per skill
  • After previous audit: ~2-4 new findings
  • Beta migration: ~8-15 findings (more breaking changes)

Step 7 — Combined State

→ Full state schema (v3) + JSON example + backward compatibility: See state-schema.md


Session Strategy

The order adapts to the project. Variants:

Variant A: Beta/Migration + GitHub + VPS

SessionRecommendation
1/audit-orchestrator → Plan + /freshness-check + /security-scan + Pre-Audit: GitHub + VPS
2/{{FRAMEWORK}}-audit start (2 sections — CRITICAL first)
3/{{FRAMEWORK}}-audit continue (2 sections)
4/{{FRAMEWORK}}-audit continue (remaining sections)
5/audit start (2 phases)
6/audit continue (2 phases)
7/audit continue (remaining phases incl. VPS deep security)
8/project-audit start (2 phases, with GitHub supplement)
9/project-audit continue (2 phases)
10/project-audit continue (remaining phases)
11+Fix findings (highest severity first, cross-audit)

Variant B: Standard + GitHub (Stable, Current)

SessionRecommendation
1/audit-orchestrator → Plan + /security-scan + Pre-Audit: GitHub Settings
2/audit start (2 phases)
3/audit continue (2 phases)
4/audit continue (remaining phases) + /{{FRAMEWORK}}-audit start
5/{{FRAMEWORK}}-audit continue (2 sections)
6/project-audit start (2 phases, with GitHub supplement)
7+Continue as needed

Variant C: No Framework-Specific Audit (Backend, CLI, Library)

SessionRecommendation
1/audit-orchestrator → Plan + /security-scan + Pre-Audit: GitHub + optionally VPS
2/project-audit start (2 phases, with GitHub supplement)
3+Continue as needed

Variant D: SvelteKit Full-Stack (+ Drizzle + Auth + GitHub + VPS)

SessionRecommendation
1/audit-orchestrator → Plan + /freshness-check + /security-scan + Pre-Audit: GitHub + VPS
2/db-audit start (2 sections — schema + security first)
3/db-audit continue (remaining sections)
4/auth-audit start (2 sections — hashing + sessions first)
5/auth-audit continue (remaining sections)
6/sveltekit-audit start (2 sections — ENV + CODE first)
7/sveltekit-audit continue (2 sections)
8/sveltekit-audit continue (remaining sections)
9/audit start (2 phases)
10/audit continue (2 phases)
11/audit continue (remaining phases)
12/project-audit start (2 phases, with GitHub supplement)
13/project-audit continue (remaining phases)
14+Fix findings (highest severity first, cross-audit)

Automation: /audit-runner

For automated runs, the /audit-runner skill can be used. It runs all audits unattended in separate sessions — no context limit.

/audit-runner setup    → Configuration and audit plan
/audit-runner start    → Start autonomous run
/audit-runner status   → Check progress

When to use /audit-runner instead of manual:

  • First overview of a new project (collect findings, fix later)
  • Audit multiple projects sequentially
  • Overnight run: audit runs, review results in the morning

Team Mode (Parallel Audit Execution)

→ Full team mode documentation (T1-T8, pre-audit, error handling): See team-modus.md


Cross-Audit Findings

When findings are fixed, check if the fix is also relevant in another audit:

  • Web security fix in /audit (e.g., SRI, CSP) → check if /project-audit security is affected
  • Supply chain fix in /project-audit (e.g., SBOM, Sigstore) → check if /audit infra is affected
  • Docker fix (e.g., Compose V2) → mark as fixed in BOTH audits (infra + deployment)
  • Container signing in /project-audit → also relevant in /audit infrastructure
  • Framework migration fix (e.g., Node 22) → also relevant in /audit status analysis + /project-audit dependencies
  • /security-scan findings (MCP, hooks) → relevant for /audit Phase 02 (security) and /project-audit Phase 08 (security)
  • /audit Phase 09 content/design findings → feed into /polish scan + /design-system for resolution

Post-Audit Recommendations

After all audits complete, the orchestrator recommends follow-up actions:

ConditionRecommendationReason
Content/Design findings in Phase 09/polish scan/design-systemUse curated design databases for improvements
/security-scan not run as pre-audit/security-scanClaude Code environment should be verified
Security findings across audits/security-scan + /adversarial-reviewCross-check security posture
All audits clean, deployment target exists/deploy-checkVerify deployment readiness
Significant learnings from audit/lesson-learned sessionPersist audit insights

Status Display

Audit Orchestrator: {{PROJECT_NAME}}
Mode: {Team|Manual|Runner}
Order: {Reason} → {Audit 1} → {Audit 2} → {Audit 3}

Pre-Audit:
/security-scan:       ██████████ Grade: B (1 HIGH, 2 MEDIUM)
/freshness-check:     ██████████ done (2 opportunities)

Audits:
/{{FRAMEWORK}}-audit: ████████░░ 5/13 sections (8 findings, 1 skipped)
/audit:               ████████░░ 5/8 phases (12 findings)
/project-audit:       ████░░░░░░ 4/10 phases (5 findings)

Total: 25 findings (2 CRITICAL, 5 HIGH, 12 MEDIUM, 6 LOW)
Fixed: 3 | Open: 22 | Skipped: 1

Related Projects:
  {{RELATED_NAME}}: {Status}

Recommendation: Fix 2 CRITICAL findings first (MIG-03 from framework audit, SEC-01 from /audit)
Session Estimate: {N} remaining (of {M} planned)

Addition for Team Mode (executionMode: "team"):

Team: audit-{{PROJECT_NAME}}
  [audit-worker-1] /audit            → running (Phase 5/8)
  [audit-worker-2] /{{FRAMEWORK}}-audit → done (8 findings)
  [audit-worker-3] /project-audit    → waiting (blocked by /audit)
Runtime: 12 min

Combined Report

→ Report format, categories, regulatory standards + generation: See combined-report.md


Rules

  • Session directory is canonical.audit-session/<date>-<slug>/ holds INDEX.md, STATUS.md, and four phase folders. STATUS.md must stay current (update at phase transitions and every ~5 fix commits).
  • Any instance can resume — because state is plain Markdown in the session directory, a crashed session can be continued by a new instance, a different model, or a human. The resume protocol is: read INDEX.md → read STATUS.md → claim the session → continue from the "next action" line.
  • Four phases always run — Pre-Scan, Analysis, Optimization, Report. Empty phases are documented, not skipped.
  • Project type drives the track — Phase 1 writes project-profile.md; Phase 2 picks tracks from universal-workflow.md. Web projects additionally activate the web-orchestration specialization below.
  • Orchestrator plans + coordinates — the actual audits run via their own skills (manually or as teammates)
  • Team mode optional — only if CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 is set AND user chooses
  • Teammates use /auto — autonomous run, no manual start/continue
  • Legacy state coexists — each sub-skill keeps its own state file, and the web-specific .audit-orchestrator-state.json (v3) is still written when the web orchestration path is active; universal Markdown state is the primary surface for resume.
  • Orchestrator state tracks overview + phase mapping + sequencing + team status
  • Pre-audit by orchestrator — freshness check + GitHub/VPS checks done by orchestrator itself, not by teammate
  • Beta/RC always first — migration audit before quality audit for unstable versions
  • Static filter active — automatically skip SSR-specific checks for output: "static"
  • Crash not fatal + self-healing — teammate crash does not end the overall audit, state survives, manual fallback possible. In team mode: detect stalled workers (no state update > 5 min), restart once automatically before falling back to manual. Guard concurrent state file writes to prevent corruption (inspired by GSD v2 parallel worker patterns).
  • Combined report via /audit-orchestrator report or naturally as the Phase 4 output (04-report/REPORT.md).
  • Regulatory standards — explicitly check applicable privacy, accessibility, and compliance regulations — separate section in combined report

Anti-Stall Rules (Subagent-Safe Execution)

When this skill runs inside a subagent (spawned via Agent), the parent stream watchdog kills workers that produce no output for ~600s. Long silent scans (deep Grep, multi-file Read loops, recursive walks) can exceed that window even on small repos.

Every audit-orchestrator run — especially inside a subagent — MUST:

  1. Heartbeat every ≤120s — emit a single-line progress marker ([progress] phase=01 step=3/12 elapsed=85s) between tool batches. A completed tool call counts as output; a 600s silent Grep does not.
  2. Chunk Phase 1 fingerprinting — detect project type via at most 5 Glob + 3 Read calls before writing project-profile.md. Deep scans happen in Phase 2, never Phase 1.
  3. Cap Phase 2 per-track work units — split each track (security, deps, docs, drift, CI) into independent chunks of ≤10 tool calls. Write incremental findings to 02-analysis/findings/ after each chunk so crash-resume loses at most one chunk.
  4. Never block on a single tool call >180s — use explicit Bash timeout 120s <cmd> for scans that could hang (find, grep-r on huge trees, gh api without pagination).
  5. Prefer parallel tool calls — independent Greps/Reads go in one tool-call batch, not sequential. Each batch emits output to the parent; sequential chains starve the watchdog.
  6. Fail-soft on stalled subtasks — if a single track runs >5min with no new findings written, mark it skipped-stall in STATUS.md and continue. Do not re-retry; log for user review.

Subagent-invocation contract: when the orchestrator is spawned as an Agent, the caller must pass a scoped chunk, not "run the whole audit". Example:

GOOD: Agent(prompt="Run audit-orchestrator Phase 1 prescan only for <repo>. Return project-profile.md contents. Cap: 15 tool calls, 4min.")
BAD:  Agent(prompt="Run full audit on <repo>.")

The bad pattern is what stalls — 4 phases × N tracks × M files > watchdog window. Callers chaining this skill across phases should spawn one agent per phase and synthesize between.

Reference Files

  • universal-workflow.md — the four-phase workflow, project-type tracks, severity scale, exit criteria.
  • session-schema.md — session directory layout, INDEX.md / STATUS.md / findings / TODO / changes templates, ID conventions.
  • state-schema.md — legacy .audit-orchestrator-state.json v3 schema (web-orchestration path).

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.