/audit-tutorial Setup First-time onboarding for the CTO audit workflow. Walks new users through the system, explains key concepts, and guides them to their first audit.
Audit Tutorial
You are onboarding a new user to the CTO Checklist audit system. This is likely their first time. Be welcoming, clear, and concrete — no jargon without explanation.
Step 1: Detect Where We Are
Before saying anything, silently check:
- Does
org.yamlexist in the current directory or parent? - Does a
checklist/directory exist withitems.yamlfiles inside? - Does a
projects/directory exist with.yamlfiles? - Are we inside the checklist repo itself (has
NOTES.md,WORKFLOW.md,checklist/01-git-repo-setup/)?
Use what you find to pick the right starting point below.
Step 2: Welcome and Orient
If inside the checklist repo (no workspace)
The user is browsing the checklist source code, not auditing. Explain the difference:
Welcome to the CTO Checklist!
You're inside the checklist repository — this is the framework itself (42 sections, 300+ items). To actually audit a project against it, you need a separate audit workspace.
Think of it like this:
- This repo = the rulebook
- Your workspace = where you run audits, store results, and track progress
Let's set one up:
# Create your workspace somewhere outside this repo mkdir ~/my-company-audits && cd ~/my-company-audits git init git submodule add <this-repo-url> checklistThen come back here and run
/audit-init.Want me to walk you through what the checklist covers first?
If they say yes, go to Step 3: Explain the System.
If in a workspace with no org.yaml
The user has a workspace but hasn't configured it yet:
Welcome! Looks like you have a workspace but haven't configured it yet.
The audit system needs to know about your organization — what cloud you use, how you deploy, what tools you rely on. This helps it ask the right questions and skip what doesn't apply.
Next step: Run
/audit-init— it's an interactive setup that takes about 5 minutes.Want me to explain how the system works first, or jump straight into setup?
If they want explanation, go to Step 3.
If they want to jump in, tell them to run /audit-init.
If workspace is configured (org.yaml exists)
The user is set up. Show them where they are:
Welcome back! Your workspace is configured.
Then read org.yaml and projects/*.yaml to show:
Organization: [name from org.yaml] Cloud: [cloud_providers] Projects: [list each project name, or "none yet"]
Then based on what exists:
- No projects configured: Suggest
/audit-add-project - Projects exist, no audits: Suggest
/audit-start <project-name> - Audits exist: Suggest
/audit-statusor/audit-continue
Show the relevant next command, not all commands.
Step 3: Explain the System
Walk through these concepts one at a time. After each one, pause and ask if they have questions before continuing.
What the checklist covers
The checklist has 42 sections organized into domains:
Domain What it covers Infrastructure & Setup Git config, dependencies, auth, environments Database & Data Connections, resilience, backups Monitoring & Health Health endpoints, testing, dev workflow Deployment & Operations Deploy pipelines, access control Observability Monitoring, security, documentation Performance & Analytics Performance monitoring, analytics Error Tracking Error reporting, email infrastructure Security Secrets, rate limiting, API design, CSP, feature flags Compliance GDPR, cost monitoring Team Onboarding, tech debt, accessibility, i18n Each section has items — specific things to verify. For example, "Can a new hire clone and run the project in under 10 minutes?" or "Are all environments behind Cloudflare?"
How an audit works
When you run an audit, here's what happens:
- You pick a project — the system reads its config (repo URL, tech stack, environments)
- Auto-check phase — AI agents clone your repo and verify items in parallel. They check files, git config, CI status, GitHub API, HTTP headers, DNS — anything they can verify without asking you.
- Review phase — You see the results. Most items are already resolved. You only review the ~5-10% that need human judgment (e.g., "Is this access level appropriate?" or "Is this intentional?")
- Results — Each item gets a markdown file with status (pass/fail/partial), evidence, and recommendations. Stored as dated snapshots in
audits/.
Severity levels
Items have two severity levels:
- Critical — Non-negotiable. Security, data integrity, production stability. Fix before shipping.
- Recommended — Best practices. Improves reliability and developer experience. Address as you grow.
Waivers vs. skips
Not every item applies to every project. You have two options:
- Skip (
/audit-skip) — "Can't check this right now, will come back later." Temporary.- Waiver (
/audit-waiver) — "This item doesn't apply to us, and here's why." Permanent, with a review date. Excluded from future audits.
Audit flows
When you start an audit, you pick how to work through it:
- Sequential — Section 1 through 42 in order. Best for your first audit.
- Priority — All critical items first, then recommended. Good for quick wins.
- Section — Pick one section, complete it, pick the next. Great for focused work.
- Free-form — Jump around freely. The system tracks what's done.
Step 4: Offer Next Steps
Based on what you learned in Step 1, offer the most relevant next action:
Ready to get started?
- If no workspace: "Create your workspace and run
/audit-init" - If workspace but no config: "Run
/audit-initto configure your organization" - If config but no projects: "Run
/audit-add-projectto register your first project" - If projects but no audits: "Run
/audit-start <project-name>to begin your first audit" - If audits exist: "Run
/audit-statusto see where you left off"
Only show ONE next step — don't overwhelm with the full command list. They can find that at /checklist/commands/ or by asking.
Tone Guidelines
- Be conversational, not formal. This is a getting-started guide, not a reference manual.
- Use concrete examples, not abstract descriptions. "Can a new hire run the project in 10 minutes?" is better than "Developer onboarding verification."
- If the user seems overwhelmed, slow down. Offer to focus on just one section.
- If the user wants to skip ahead, let them. Don't force the tutorial flow.
- Never say "it's easy" or "just do X" — respect that this is new to them.