{
  "schema": "snappy-card/1",
  "skill": "snappy-course",
  "tier": "public",
  "origin_tier": "base",
  "purpose": "Orchestrator for the **Skool classroom portfolio** at skool.com/snappy. The classroom is the top-of-funnel for snappy.ai -- it is a growing portfolio of courses mined from the corpus (not a single course). This skill ties together five surfaces: Skool classroom (many courses, each with modules + lessons), course Slack workspace (T0AQPFMQEKB / snappyclaudec-qdk8925.slack.com), blog mirrors at snappy.ai/blog, newsletter at snappy.ai/newsletter, and Skool DM outreach. It does not write lesson copy or post directly -- it tracks the content map, enforces cross-link rules, and coordinates the skills that do the actual work. Write as a teacher, not a performer. Downstream reuse to other surfaces happens separately and must NEVER influence the writing. Robert reviews, never auto-publish.",
  "verbs": [
    {
      "name": "module",
      "args": [
        "module-id"
      ],
      "effect": "read",
      "firstCall": "npx tsx ~/.claude/skills/snappy-course/api.ts module <module-id>"
    },
    {
      "name": "modules",
      "args": [],
      "effect": "read",
      "firstCall": "npx tsx ~/.claude/skills/snappy-course/api.ts modules"
    }
  ],
  "faces": [],
  "agents": [],
  "uses": [
    "snappy-skool",
    "snappy-content",
    "snappy-positioning",
    "snappy-image",
    "snappy-gemini",
    "snappy-mine",
    "snappy-corpus",
    "snappy-knowledge",
    "snappy-publish",
    "snappy-email",
    "snappy-slack",
    "snappy-dom-cartographer"
  ],
  "used_by": [
    "snappy-image",
    "snappy-remotion"
  ],
  "checks": {
    "pass": 39,
    "fail": 6,
    "defer": 16,
    "line": "39 of 45 checks pass",
    "failing": [
      {
        "id": 8,
        "rule": "Skill body and reference graph stay within disclosure budgets",
        "says": "611 lines; ~7284 tokens"
      },
      {
        "id": 9,
        "rule": "Time-sensitive prose is isolated under Old patterns",
        "says": "3 time-sensitive instruction line(s) outside Old patterns"
      },
      {
        "id": 10,
        "rule": "One term names each concept",
        "says": "mixed synonym sets: endpoint/url/route/path, field/box/element"
      },
      {
        "id": 40,
        "rule": "Metadata, skill body, and resources follow three-level budgets",
        "says": "metadata ~175 tokens; body ~7284 tokens"
      },
      {
        "id": 55,
        "rule": "Eval scenarios are multi-call with ground truth",
        "says": "eval manifest missing"
      },
      {
        "id": 57,
        "rule": "Eval manifest contains a disjoint holdout",
        "says": "0 disjoint holdout scenario(s)"
      }
    ]
  },
  "coverage": null,
  "spec": null,
  "evals": null,
  "files": [
    "AGENTS.md",
    "SKILL.md",
    "api.ts",
    "contract.test.ts",
    "data/classroom-roster.json",
    "data/classroom-spec.md",
    "data/course-audit-20260411.md",
    "data/drafts/MODULE-WAVE-1-DRAFTS.md",
    "data/drafts/MODULE-WAVE-1-IMAGES.md",
    "data/drafts/MODULE-WAVE-2-DRAFTS.md",
    "data/drafts/adp-control-loop/01-pid-older-than-you-think.md",
    "data/drafts/adp-control-loop/02-certificates-over-toasts.md",
    "data/drafts/adp-control-loop/03-the-promotion-threshold.md",
    "data/drafts/adp-control-loop/04-handoffs-are-physical.md",
    "data/drafts/adp-control-loop/05-manual-agent-cron.md",
    "data/drafts/adp-control-loop/06-the-skill-is-the-controller.md",
    "data/drafts/adp-control-loop/ENHANCEMENT-DASHBOARD.md",
    "data/drafts/adp/ENHANCEMENT-DASHBOARD.md",
    "data/drafts/adp/carbonite-capture-skills-at-the-peak.md",
    "data/drafts/adp/code-as-depreciating-asset.md",
    "data/drafts/adp/cookies-are-the-difference.md",
    "data/drafts/adp/decouple-qa-from-enrichment.md",
    "data/drafts/adp/docs-as-two-way-street.md",
    "data/drafts/adp/playbooks-that-rewrite-themselves.md",
    "data/drafts/adp/probability-compounding-pipelines.md",
    "data/drafts/agent-browser/ENHANCEMENT-DASHBOARD.md",
    "data/drafts/agent-browser/parallel-weekend-coverage.md",
    "data/drafts/agent-browser/vs-playwright-mcp.md",
    "data/drafts/browser-automation/ENHANCEMENT-DASHBOARD.md",
    "data/drafts/browser-automation/browser-01-the-problem.md",
    "data/drafts/browser-automation/browser-02-what-agent-browser-does.md",
    "data/drafts/browser-automation/browser-03-dom-cartographer.md",
    "data/drafts/browser-automation/browser-04-real-patterns.md",
    "data/drafts/browser-automation/browser-05-install-and-ship.md",
    "data/drafts/build-with-snappy/00-snappy-kernel.md",
    "data/drafts/build-with-snappy/01-ralph.md",
    "data/drafts/build-with-snappy/02-snappy-dispatch.md",
    "data/drafts/build-with-snappy/03-snappy-shell.md",
    "data/drafts/build-with-snappy/04-snappy-skill.md",
    "data/drafts/build-with-snappy/05-skill-builder.md",
    "data/drafts/build-with-snappy/06-snappy-hooks.md",
    "data/drafts/build-with-snappy/07-find-skills.md",
    "data/drafts/build-with-snappy/08-skills-install.md",
    "data/drafts/build-with-snappy/09-claude-code-surfaces.md",
    "data/drafts/build-with-snappy/ENHANCEMENT-DASHBOARD.md",
    "data/drafts/build-with-snappy/REVIVAL-DASHBOARD.md",
    "data/drafts/build-with-snappy/_OUTLINE.md",
    "data/drafts/build-with-snappy/_TEMPLATE.md",
    "data/drafts/build-with-snappy/_live-snapshot-M2L2.md",
    "data/drafts/build-with-snappy/course-cover-spec.md",
    "data/drafts/build-with-snappy/course-cover-v2.png",
    "data/drafts/build-with-snappy/course-cover.png",
    "data/drafts/build-with-snappy/module-02/01-snappy-openrouter.md",
    "data/drafts/build-with-snappy/module-02/02-snappy-ai-models.md",
    "data/drafts/build-with-snappy/module-02/03-snappy-gemini.md",
    "data/drafts/build-with-snappy/module-02/04-research.md",
    "data/drafts/build-with-snappy/module-02/05-dspy-brain.md",
    "data/drafts/build-with-snappy/module-03/01-agent-browser.md",
    "data/drafts/build-with-snappy/module-03/02-snappy-browse.md",
    "data/drafts/build-with-snappy/module-03/03-snappy-dom-cartographer.md",
    "data/drafts/build-with-snappy/module-03/04-snappy-api-sniffer.md",
    "data/drafts/build-with-snappy/module-03/05-snappy-desktop.md",
    "data/drafts/build-with-snappy/module-03/06-mac-mini-server.md",
    "data/drafts/build-with-snappy/module-04/01-snappy-channel-contract.md",
    "data/drafts/build-with-snappy/module-04/02-snappy-telegram.md",
    "data/drafts/build-with-snappy/module-04/03-snappy-whatsapp.md",
    "data/drafts/build-with-snappy/module-04/04-snappy-imessage.md",
    "data/drafts/build-with-snappy/module-04/05-snappy-sync.md",
    "data/drafts/build-with-snappy/module-04/06-snappy-walkthrough.md",
    "data/drafts/build-with-snappy/module-05/01-snappy-ffmpeg.md",
    "data/drafts/build-with-snappy/module-05/02-snappy-video.md",
    "data/drafts/build-with-snappy/module-05/03-video-pipeline.md",
    "data/drafts/build-with-snappy/module-05/04-remotion-best-practices.md",
    "data/drafts/build-with-snappy/module-05/05-snappy-sensors.md",
    "data/drafts/build-with-snappy/module-06/01-universal-backend.md",
    "data/drafts/build-with-snappy/module-06/02-xanoscript-builder.md",
    "data/drafts/build-with-snappy/module-06/03-snappy-xano-mcp.md",
    "data/drafts/build-with-snappy/module-06/04-mcp-server-builder.md",
    "data/drafts/build-with-snappy/module-06/05-xano-mcp-tool-developer.md",
    "data/drafts/build-with-snappy/module-06/06-chatgpt-mcp-apps.md",
    "data/drafts/build-with-snappy/module-06/07-snappy-box.md",
    "data/drafts/build-with-snappy/module-06/08-notion-api.md",
    "data/drafts/build-with-snappy/module-07/01-vercel-agents.md",
    "data/drafts/build-with-snappy/module-07/02-vercel-react-best-practices.md",
    "data/drafts/build-with-snappy/module-07/03-vercel-composition-patterns.md",
    "data/drafts/build-with-snappy/module-07/04-vercel-react-native-skills.md",
    "data/drafts/build-with-snappy/module-07/05-seymour-papert.md",
    "data/drafts/build-with-snappy/module-07/06-web-design-guidelines.md",
    "data/drafts/build-with-snappy/module-07/07-crayonchat.md",
    "data/drafts/build-with-snappy/module-07/08-dev-terminal.md",
    "data/drafts/business-resources/course-cover-v1.png",
    "data/drafts/claude-code-bridges/completion-claim-your-certificate.md",
    "data/drafts/claude-code-bridges/foundation-agent-skills.md",
    "data/drafts/claude-code-bridges/foundation-building-with-claude-api.md",
    "data/drafts/claude-code-bridges/foundation-claude-code-in-action.md",
    "data/drafts/claude-code-bridges/foundation-intro-to-mcp.md",
    "data/drafts/claude-code-mastery/DASHBOARD.md",
    "data/drafts/claude-code-mastery/ENHANCEMENT-DASHBOARD.md",
    "data/drafts/claude-code-mastery/m1/1.1-body-revised.md",
    "data/drafts/claude-code-mastery/m1/1.1-hero-spec.md",
    "data/drafts/claude-code-mastery/m1/1.1-hero.png",
    "data/drafts/claude-code-mastery/m1/1.1-inline.png",
    "data/drafts/claude-code-mastery/m1/1.2-body-new.md",
    "data/drafts/claude-code-mastery/m1/alt-text-1.1.md",
    "data/drafts/claude-code-mastery/m1/completion-stakes.md",
    "data/drafts/claude-code-mastery/m1/cta-block.md",
    "data/drafts/claude-code-mastery/m1/loom-script-1.1.md",
    "data/drafts/claude-code-mastery/m1/module-description.md",
    "data/drafts/claude-code-mastery/m1/resources-1.1.md",
    "data/drafts/claude-code-mastery/m1/resources-1.2.md",
    "data/drafts/claude-code-mastery/m2/2.1-hero-spec.md",
    "data/drafts/claude-code-mastery/m2/2.1-hero.png",
    "data/drafts/claude-code-mastery/m2/2.2-body-revised.md",
    "data/drafts/claude-code-mastery/m2/2.2-inline-spec.md",
    "data/drafts/claude-code-mastery/m2/2.2-inline.png",
    "data/drafts/claude-code-mastery/m2/inspection-report.md",
    "data/drafts/claude-code-mastery/m3/3.1-hero-spec.md",
    "data/drafts/claude-code-mastery/m3/3.1-hero.png",
    "data/drafts/claude-code-mastery/m3/3.2-body-revised.md",
    "data/drafts/claude-code-mastery/m3/3.2-hero-spec.md",
    "data/drafts/claude-code-mastery/m3/3.2-hero.png",
    "data/drafts/claude-code-mastery/m3/3.2-inline.png",
    "data/drafts/claude-code-mastery/m3/inspection-report.md",
    "data/drafts/claude-code-mastery/m4/4.1-hero-spec.md",
    "data/drafts/claude-code-mastery/m4/4.1-hero-v1-empty-labels.png",
    "data/drafts/claude-code-mastery/m4/4.1-hero.png",
    "data/drafts/claude-code-mastery/m4/4.2-body-revised.md",
    "data/drafts/claude-code-mastery/m4/4.2-hero-spec.md",
    "data/drafts/claude-code-mastery/m4/4.2-hero.png",
    "data/drafts/claude-code-mastery/m4/inspection-report.md",
    "data/drafts/claude-code-mastery/m5/5.1-hero-spec.md",
    "data/drafts/claude-code-mastery/m5/5.1-hero.png",
    "data/drafts/claude-code-mastery/m5/5.2-body-revised.md",
    "data/drafts/claude-code-mastery/m5/5.2-inline.png",
    "data/drafts/claude-code-mastery/m5/inspection-report.md",
    "data/drafts/claude-code-mastery/m6/6.1-body-revised.md",
    "data/drafts/claude-code-mastery/m6/6.1-hero-spec.md",
    "data/drafts/claude-code-mastery/m6/6.1-hero.png",
    "data/drafts/claude-code-mastery/m6/6.1-inline.png",
    "data/drafts/claude-code-mastery/m6/inspection-report.md",
    "data/drafts/claude-code/ENHANCEMENT-DASHBOARD.md",
    "data/drafts/claude-code/bug-report-widget.md",
    "data/drafts/claude-code/ralph-02-the-loop-pattern.md",
    "data/drafts/claude-code/ralph-03-exit-criteria.md",
    "data/drafts/claude-code/ralph-05-install-and-run.md",
    "data/drafts/claude-code/ralph-long-running-loop.md",
    "data/drafts/claude-code/remote-terminus-tmux-mac-mini.md",
    "data/drafts/claude-code/skills-install-from-root.md",
    "data/drafts/claude-code/terminal-vs-vscode-extension.md",
    "data/drafts/claude-code/welcome-what-youll-build.md",
    "data/drafts/crayonchat/ENHANCEMENT-DASHBOARD.md",
    "data/drafts/crayonchat/crayonchat-01-what-it-is.md",
    "data/drafts/crayonchat/crayonchat-02-wiring-backend.md",
    "data/drafts/crayonchat/crayonchat-03-customization.md",
    "data/drafts/crayonchat/crayonchat-04-install-and-ship.md",
    "data/drafts/dspy/00-welcome-dspy.md",
    "data/drafts/dspy/ENHANCEMENT-DASHBOARD.md",
    "data/drafts/dspy/measuring-agent-output-in-background.md",
    "data/drafts/dspy/ship-dspy-single-session.md",
    "data/drafts/fly/00-welcome-fly.md",
    "data/drafts/fly/ENHANCEMENT-DASHBOARD.md",
    "data/drafts/fly/mcp-hot-deploy-wrap.md",
    "data/drafts/fly/never-split-logic-supabase-edge.md",
    "data/drafts/fly/suspended-machine-mental-model.md",
    "data/drafts/fly/two-instances-dev-prod.md",
    "data/drafts/gemini/00-welcome-gemini.md",
    "data/drafts/gemini/ENHANCEMENT-DASHBOARD.md",
    "data/drafts/gemini/claude-code-fallback.md",
    "data/drafts/gemini/direct-api-for-nano-banana.md",
    "data/drafts/hookdeck/00-welcome-hookdeck.md",
    "data/drafts/hookdeck/ENHANCEMENT-DASHBOARD.md",
    "data/drafts/hookdeck/every-webhook-day-one.md",
    "data/drafts/hookdeck/migration-insurance.md",
    "data/drafts/knowledge-graphs/ENHANCEMENT-DASHBOARD.md",
    "data/drafts/knowledge-graphs/falkordb-01-what-is-a-knowledge-graph.md",
    "data/drafts/knowledge-graphs/falkordb-02-why-falkordb.md",
    "data/drafts/knowledge-graphs/falkordb-03-entity-vs-edge.md",
    "data/drafts/knowledge-graphs/falkordb-04-ingestion.md",
    "data/drafts/knowledge-graphs/falkordb-05-querying.md",
    "data/drafts/krisp/00-welcome-krisp.md",
    "data/drafts/krisp/ENHANCEMENT-DASHBOARD.md",
    "data/drafts/krisp/mine-pipeline-transcript-to-lesson.md",
    "data/drafts/krisp/queryable-meeting-retrospection.md",
    "data/drafts/mac-mini-stack/ENHANCEMENT-DASHBOARD.md",
    "data/drafts/mac-mini-stack/mac-mini-01-why-a-mac-mini.md",
    "data/drafts/mac-mini-stack/mac-mini-02-hardware-and-base-install.md",
    "data/drafts/mac-mini-stack/mac-mini-03-terminal-tmux-remote-access.md",
    "data/drafts/mac-mini-stack/mac-mini-04-claude-code-remote.md",
    "data/drafts/mac-mini-stack/mac-mini-05-one-pass-install.md",
    "data/drafts/mcp-cloudflare/ENHANCEMENT-DASHBOARD.md",
    "data/drafts/mcp-cloudflare/mcp-cloudflare-01-what-mcp-is-practically.md",
    "data/drafts/mcp-cloudflare/mcp-cloudflare-02-why-meta-tools-beat-one-per-endpoint.md",
    "data/drafts/mcp-cloudflare/mcp-cloudflare-03-cloudflare-workers-as-your-mcp-host.md",
    "data/drafts/mcp-cloudflare/mcp-cloudflare-04-snappy-xano-mcp-case-study.md",
    "data/drafts/mcp-cloudflare/mcp-cloudflare-05-build-your-own.md",
    "data/drafts/mcp-cloudflare/mcp-cloudflare-06-when-not-to-use-mcp.md",
    "data/drafts/mcp/ENHANCEMENT-DASHBOARD.md",
    "data/drafts/mcp/authentication-with-oauth.md",
    "data/drafts/mcp/building-mcp-from-existing-api.md",
    "data/drafts/mcp/cli-vs-mcp-tradeoff.md",
    "data/drafts/mcp/deploying-on-cloudflare-workers.md",
    "data/drafts/mcp/designing-your-tools.md",
    "data/drafts/mcp/interactive-ui-in-chat.md",
    "data/drafts/mcp/mcp-as-feedback-channel-not-wrapper.md",
    "data/drafts/mcp/mcp-vs-skills-vs-cli.md",
    "data/drafts/mcp/nine-meta-tools-cover-four-hundred-endpoints.md",
    "data/drafts/mcp/plug-your-mcp-into-your-dev-loop.md",
    "data/drafts/mcp/sharing-installing-controlling-mcp.md",
    "data/drafts/mcp/tool-descriptions-context-window.md",
    "data/drafts/mcp/two-tier-judgment-tools.md",
    "data/drafts/mcp/what-an-mcp-actually-is.md",
    "data/drafts/mcp/xano-mcp-as-cli-mistake-insurance.md",
    "data/drafts/ray/ENHANCEMENT-DASHBOARD.md",
    "data/drafts/ray/ar-aging-the-business-line.md",
    "data/drafts/ray/four-drivers-of-rate.md",
    "data/drafts/ray/hours-and-minutes.md",
    "data/drafts/ray/multiplication-vs-addition.md",
    "data/drafts/ray/the-harness-has-opinions.md",
    "data/drafts/ray/the-kitchen-sink-demo.md",
    "data/drafts/ray/the-lackey-trap.md",
    "data/drafts/ray/the-rewrite-trap.md",
    "data/drafts/ray/the-transcript-data-asset.md",
    "data/drafts/ray/you-create-the-data.md",
    "data/drafts/skills-os/ENHANCEMENT-DASHBOARD.md",
    "data/drafts/skills-os/cli-first-everything-else-second.md",
    "data/drafts/skills-os/composition-over-orchestration.md",
    "data/drafts/skills-os/half-the-code-is-explanation.md",
    "data/drafts/skills-os/let-the-api-absorb-complexity.md",
    "data/drafts/skills-os/pr-review-loop-skill.md",
    "data/drafts/skills-os/skill-system-05-pid-loop.md",
    "data/drafts/skills-os/skill-system-06-write-your-first.md",
    "data/drafts/skills-os/skills-describe-capability-agents-md-orchestrates.md",
    "data/drafts/skills-os/the-self-correcting-loop.md",
    "data/drafts/skills-os/the-three-file-contract.md",
    "data/drafts/skills-os/turn-the-skill-into-a-script.md",
    "data/drafts/skills-os/what-is-a-skill-really.md",
    "data/drafts/snappy-kernel/01-what-claude-md-actually-does.md",
    "data/drafts/snappy-kernel/02-the-six-kernel-concerns.md",
    "data/drafts/snappy-kernel/03-api-ts-direct-calls-env-cli-mode.md",
    "data/drafts/snappy-kernel/04-the-passive-context-index.md",
    "data/drafts/snappy-kernel/05-preload-skill-context.md",
    "data/drafts/snappy-kernel/06-always-inject-and-the-footer.md",
    "data/drafts/snappy-kernel/07-posttooluse-and-stop-the-regen-queue.md",
    "data/drafts/snappy-kernel/08-env-cache-and-load-ts.md",
    "data/drafts/snappy-kernel/09-the-bitwarden-incident.md",
    "data/drafts/snappy-kernel/10-p-proportional-and-i-integral.md",
    "data/drafts/snappy-kernel/11-signal-logs-consumers-and-graduation.md",
    "data/drafts/snappy-kernel/12-the-five-pipelines.md",
    "data/drafts/snappy-kernel/13-snappy-ops-the-front-door.md",
    "data/drafts/supabase/00-welcome-supabase.md",
    "data/drafts/supabase/ENHANCEMENT-DASHBOARD.md",
    "data/drafts/supabase/branching-dev-prod-diffs.md",
    "data/drafts/supabase/files-table-junction-pattern.md",
    "data/drafts/supabase/never-put-logic-in-edge-functions.md",
    "data/drafts/supabase/supabase-plus-falkordb-entity-vs-graph.md",
    "data/drafts/tech-content/ENHANCEMENT-DASHBOARD.md",
    "data/drafts/tech-content/claude-code-on-phone-termius-tmux.md",
    "data/drafts/tech-content/claude-code-terminal-vs-vscode.md",
    "data/drafts/tech-content/file-upload-pass-the-url.md",
    "data/drafts/tech-content/fly-behave-through-mcp.md",
    "data/drafts/tech-content/fly-neon-xano-replacement-stack.md",
    "data/drafts/tech-content/flyio-mental-model-suspended-machine.md",
    "data/drafts/tech-content/handy-computer-local-voice.md",
    "data/drafts/tech-content/leaving-xano-prototype-fast.md",
    "data/drafts/tech-content/model-swapping-is-engineering.md",
    "data/drafts/tech-content/never-split-backend-supabase-fly.md",
    "data/drafts/tech-content/picking-your-ai-coding-tool.md",
    "data/drafts/tech-content/ralph-skill-keeps-claude-going.md",
    "data/drafts/tech-content/setting-up-termius.md",
    "data/drafts/tech-content/skills-install-from-root-claude.md",
    "data/drafts/tech-content/snippets-sftp-port-forwarding.md",
    "data/drafts/tech-content/style-references-not-descriptions.md",
    "data/drafts/tech-content/termius-in-agent-dev-workflow.md",
    "data/drafts/tech-content/thin-frontend-rule-for-agentic-ui.md",
    "data/drafts/tech-content/tool-not-android.md",
    "data/drafts/tech-content/two-fly-instances-dev-prod.md",
    "data/drafts/tech-content/waterfall-enrichment.md",
    "data/drafts/tech-content/webflow-to-xano-sockets-skool.md",
    "data/drafts/tech-content/what-termius-is.md",
    "data/drafts/tech-content/xano-hot-deploy-agentic-dev-skool.md",
    "data/drafts/tech-content/xano-shopify-server-side-skool.md",
    "data/drafts/tech-content/xano-to-fly-one-line-swap-skool.md",
    "data/drafts/tech-content/xano-unified-payment-layer-skool.md",
    "data/drafts/xano-system/ENHANCEMENT-DASHBOARD.md",
    "data/drafts/xano-system/course-cover-v2.png",
    "data/drafts/xano-system/xano-01-what-xanoscript-is.md",
    "data/drafts/xano-system/xano-02-the-builder-skill.md",
    "data/drafts/xano-system/xano-03-common-patterns.md",
    "data/drafts/xano-system/xano-04-the-three-skill-stack.md",
    "data/drafts/xano-system/xano-05-install-and-first-endpoint.md",
    "data/drafts/xano/ENHANCEMENT-DASHBOARD.md",
    "data/drafts/xano/consent-architecture-blockchain-ledger.md",
    "data/drafts/xano/hot-deploy-feedback-loop.md",
    "data/drafts/xano/migration-one-line-swap.md",
    "data/drafts/xano/provisioning-your-stack.md",
    "data/drafts/xano/shopify-server-side-backend.md",
    "data/drafts/xano/the-mcp-bridge-pattern.md",
    "data/drafts/xano/the-xano-mental-model.md",
    "data/drafts/xano/tiptap-r2-asset-pipeline.md",
    "data/drafts/xano/unified-payment-api.md",
    "data/drafts/xano/webflow-sockets-no-webhooks.md",
    "data/drafts/xano/why-agents-build-faster-fly-neon.md",
    "data/drafts/xano/why-you-need-a-backend.md",
    "data/frameworks-index.json",
    "data/image-upload-audit.md",
    "data/killed/20260414T060504Z/claude-code-mastery/01-welcome-claude-code-mastery.md",
    "data/killed/20260414T060504Z/claude-code-mastery/02-bridge-agent-skills.md",
    "data/killed/20260414T060504Z/claude-code-mastery/04-bridge-claude-api.md",
    "data/killed/20260414T060504Z/claude-code-mastery/06-bridge-mcp.md",
    "data/killed/20260414T060504Z/claude-code-mastery/08-bridge-claude-code-in-action.md",
    "data/killed/20260414T060504Z/claude-code-mastery/10-completion-claim-certificate.md",
    "data/killed/20260414T060504Z/ralph-loops/ralph-01-the-quit-early-problem.md",
    "data/killed/20260414T060504Z/ralph-loops/ralph-02-the-loop-pattern.md",
    "data/killed/20260414T060504Z/ralph-loops/ralph-03-exit-criteria.md",
    "data/killed/20260414T060504Z/ralph-loops/ralph-04-real-use-cases.md",
    "data/killed/20260414T060504Z/ralph-loops/ralph-05-install-and-run.md",
    "data/killed/20260414T060504Z/skill-system/skill-system-01-what-a-skill-is.md",
    "data/killed/20260414T060504Z/skill-system/skill-system-02-finding-and-loading.md",
    "data/killed/20260414T060504Z/skill-system/skill-system-03-the-gateway.md",
    "data/killed/20260414T060504Z/skill-system/skill-system-04-composition.md",
    "data/killed/20260414T060504Z/skill-system/skill-system-05-pid-loop.md",
    "data/killed/20260414T060504Z/skill-system/skill-system-06-write-your-first.md",
    "data/killed/20260414T060504Z/snappy-kernel/01-what-claude-md-actually-does.md",
    "data/killed/20260414T060504Z/snappy-kernel/02-the-six-kernel-concerns.md",
    "data/killed/20260414T060504Z/snappy-kernel/03-skill-md-agents-md-api-ts.md",
    "data/killed/20260414T060504Z/snappy-kernel/04-api-ts-direct-calls-env-cli-mode.md",
    "data/killed/20260414T060504Z/snappy-kernel/05-the-passive-context-index.md",
    "data/killed/20260414T060504Z/snappy-kernel/06-preload-skill-context.md",
    "data/killed/20260414T060504Z/snappy-kernel/07-always-inject-and-the-footer.md",
    "data/killed/20260414T060504Z/snappy-kernel/08-posttooluse-and-stop-the-regen-queue.md",
    "data/killed/20260414T060504Z/snappy-kernel/09-env-cache-and-load-ts.md",
    "data/killed/20260414T060504Z/snappy-kernel/10-the-bitwarden-incident.md",
    "data/killed/20260414T060504Z/snappy-kernel/11-p-proportional-and-i-integral.md",
    "data/killed/20260414T060504Z/snappy-kernel/12-d-derivative-trend-detection.md",
    "data/killed/20260414T060504Z/snappy-kernel/13-signal-logs-consumers-and-graduation.md",
    "data/killed/20260414T060504Z/snappy-kernel/14-the-five-pipelines.md",
    "data/killed/20260414T060504Z/snappy-kernel/15-snappy-ops-the-front-door.md",
    "data/krisp-archaeology.json",
    "data/krisp-code-walkthroughs.json",
    "data/krisp-debug-arcs.json",
    "data/krisp-teaching-by-person.json",
    "data/pass-log-entry-falkordb-knowledge-graphs-2026-04-13.md",
    "data/pass-log.md",
    "data/people-index.json",
    "data/polish-pod-d-2026-04-11.md",
    "data/polish-queue-20260411.md",
    "data/quote-bank.json",
    "data/ray-content/MANIFEST.md",
    "data/ray-content/consulting-economics/running-yourself-as-a-business.md",
    "data/ray-content/consulting-economics/the-5k-retainer-model.md",
    "data/ray-content/consulting-economics/the-rate-increase.md",
    "data/ray-content/consulting-economics/vendor-angle.md",
    "data/ray-content/mental-models/durable-pipeline-illusion.md",
    "data/ray-content/mental-models/earned-brag.md",
    "data/ray-content/mental-models/premium-vs-totality.md",
    "data/ray-content/mental-models/the-hidden-gem-problem.md",
    "data/ray-content/mental-models/two-names.md",
    "data/ray-content/mentorship-to-content/extract-dont-rewrite.md",
    "data/ray-content/mentorship-to-content/inspire-dont-inform.md",
    "data/ray-content/mentorship-to-content/seeds-you-dont-know.md",
    "data/ray-content/mentorship-to-content/the-101-course.md",
    "data/ray-content/mentorship-to-content/the-vj-story.md",
    "data/ray-content/weekly-rhythm/sell-ship-study.md",
    "data/ray-content/weekly-rhythm/short-and-sharp.md",
    "data/ray-content/weekly-rhythm/the-weekly-report.md",
    "data/ray-index.json",
    "data/refinement-queue.md",
    "data/skool-feature-recipes.md",
    "data/stories-index.json",
    "data/tactics-index.json",
    "data/tech-index-summary.md",
    "data/tech-index.json",
    "data/upload-log-20260410.md",
    "data/upload-log-20260411.md",
    "data/wave2-learnings.md",
    "data/wave3-ray-candidates.md",
    "data/wave3-tech-candidates.md",
    "scripts/add-cover-image.sh",
    "scripts/backfill-ship-state.sh",
    "scripts/batch-upload-lesson.sh",
    "scripts/classroom-check.sh",
    "scripts/create-course.sh",
    "scripts/hoist-cover.sh",
    "scripts/lint-draft.sh",
    "scripts/prep-drafts.mjs",
    "scripts/replace-cover.sh",
    "scripts/skool-auth-restore.sh",
    "scripts/skool-browser-start.sh",
    "scripts/update-lesson.sh",
    "scripts/upload-course-cover.sh",
    "scripts/upload-lesson.sh"
  ],
  "total_size": 6894302,
  "checksum": "sha256:12821a1bf25682fe33ae0285c917ee206ccd7b5dc077c19405cc9f37ea435542",
  "built_at": "2026-09-09T22:08:32.956Z",
  "openapi": {
    "openapi": "3.1.0",
    "info": {
      "title": "snappy-course",
      "version": "0.0.0",
      "description": "Orchestrator for the free agentic-building course. Owns the end-to-end flow: Skool classroom (skool.com/snappy) modules and lessons, the Slack workspace where students hang out between lessons, blog mirrors at snappy.ai/blog, newsletter capture at snappy.ai/newsletter, and the invite + outreach pipeline (Skool DMs, not LinkedIn). Knows the content map, the channel structure, the cross-link rules, and which downstream skills do the actual work. Triggers on: course, free course, agentic course, agentic-building course, snappy course, classroom module, lesson, invite to course, course outreach, course slack, course blog mirror, newsletter signup, course content map, cohort, course onboarding."
    },
    "x-snappy-transport": "cli",
    "servers": [
      {
        "url": "npx tsx ~/.claude/skills/snappy-course/api.ts",
        "description": "The hand itself. Every path is a verb word, every query or body key an argument."
      }
    ],
    "paths": {
      "/module": {
        "get": {
          "operationId": "snappy_course_module",
          "summary": "snappy-course module",
          "x-snappy-effect": "read",
          "x-snappy-annotations": {
            "readOnlyHint": true,
            "destructiveHint": false,
            "idempotentHint": false,
            "openWorldHint": false
          },
          "parameters": [
            {
              "name": "module-id",
              "in": "query",
              "required": true,
              "schema": {
                "type": "string",
                "description": "Module identifier from modules",
                "x-snappy-position": 0
              }
            }
          ],
          "responses": {
            "200": {
              "description": "The verb's own answer, as printed by `--json`."
            }
          }
        }
      },
      "/modules": {
        "get": {
          "operationId": "snappy_course_modules",
          "summary": "snappy-course modules",
          "x-snappy-effect": "read",
          "x-snappy-annotations": {
            "readOnlyHint": true,
            "destructiveHint": false,
            "idempotentHint": false,
            "openWorldHint": false
          },
          "parameters": [],
          "responses": {
            "200": {
              "description": "The verb's own answer, as printed by `--json`."
            }
          }
        }
      }
    },
    "components": {
      "schemas": {
        "SnappyRefusal": {
          "type": "object",
          "required": [
            "outcome",
            "code",
            "message"
          ],
          "properties": {
            "outcome": {
              "type": "string",
              "const": "refused"
            },
            "code": {
              "type": "string",
              "description": "A row of the closed refusal table."
            },
            "message": {
              "type": "string"
            },
            "fix": {
              "type": "string"
            }
          }
        }
      }
    }
  }
}