{
  "schema": "snappy-card/1",
  "skill": "snappy-playbook",
  "tier": "public",
  "origin_tier": "base",
  "purpose": "This skill is the canonical theory layer for the Snappy mastermind. Sam Ovens'",
  "verbs": [
    {
      "name": "week",
      "args": [
        "week-number?"
      ],
      "effect": "read",
      "firstCall": "npx tsx ~/.claude/skills/snappy-playbook/api.ts week"
    },
    {
      "name": "weeks",
      "args": [],
      "effect": "read",
      "firstCall": "npx tsx ~/.claude/skills/snappy-playbook/api.ts weeks"
    }
  ],
  "faces": [],
  "agents": [],
  "uses": [
    "snappy-browse",
    "snappy-infra"
  ],
  "used_by": [
    "snappy-offer"
  ],
  "checks": {
    "pass": 40,
    "fail": 7,
    "defer": 14,
    "line": "40 of 47 checks pass",
    "failing": [
      {
        "id": 8,
        "rule": "Skill body and reference graph stay within disclosure budgets",
        "says": "274 lines; ~3722 tokens; week1-detailed.md >100 lines without ToC; week2-detailed.md >100 lines without ToC; week3-detailed.md >100 lines without ToC; week4-detailed.md >100 lines without ToC; week5-detailed.md >100 lines without ToC; week6-detailed.md >100 lines without ToC; week1-detailed.md >100 lines without ToC; week1-detailed.md >100 lines without ToC; week2-detailed.md >100 lines without ToC; week3-detailed.md >100 lines without ToC; week4-detailed.md >100 lines without ToC; week5-detailed.md >100 lines without ToC; week6-detailed.md >100 lines without ToC; execution.md >100 lines without ToC"
      },
      {
        "id": 10,
        "rule": "One term names each concept",
        "says": "mixed synonym sets: endpoint/url/route/path"
      },
      {
        "id": 11,
        "rule": "Each task presents one default, not a menu",
        "says": "1 line(s) present three-way alternative menus"
      },
      {
        "id": 40,
        "rule": "Metadata, skill body, and resources follow three-level budgets",
        "says": "metadata ~211 tokens; body ~3722 tokens"
      },
      {
        "id": 54,
        "rule": "At least three eval scenarios precede ready status",
        "says": "0 eval scenario(s); ready=true"
      },
      {
        "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",
    "execution.md",
    "foundation.md",
    "refusals.test.ts",
    "week1-detailed.md",
    "week2-detailed.md",
    "week3-detailed.md",
    "week4-detailed.md",
    "week5-detailed.md",
    "week6-detailed.md"
  ],
  "total_size": 83213,
  "checksum": "sha256:a03904c4af5f2fafcca28252dd126693d2b077743ba30b3ee9a4a6d71d392d97",
  "built_at": "2026-09-09T22:10:11.673Z",
  "openapi": {
    "openapi": "3.1.0",
    "info": {
      "title": "snappy-playbook",
      "version": "0.0.0",
      "description": "WeTube SS mastermind 6-week curriculum source. Sam Ovens course playbook covering vision, business model, offer definition, pricing, mindset, launch funnel, opportunity funnel, sales call formula, mastermind community delivery, traffic engine, website, email newsletter, YouTube organic, VSL funnel, YouTube ads, CEO daily workflow, member ops, financial ops, team ops. Use when building or refining the Snappy offer, writing sales scripts, designing funnels, planning content, structuring the Skool community, running ads, or operating the CEO daily routine. The transformation promise the mastermind delivers. SOURCE CURRICULUM (the Sam Ovens material itself) -- NOT Snappy's own current offer and positioning model, which lives in snappy-mastermind-model. Use this for the course content; use that one for what Snappy actually sells today."
    },
    "x-snappy-transport": "cli",
    "servers": [
      {
        "url": "npx tsx ~/.claude/skills/snappy-playbook/api.ts",
        "description": "The hand itself. Every path is a verb word, every query or body key an argument."
      }
    ],
    "paths": {
      "/week": {
        "get": {
          "operationId": "snappy_playbook_week",
          "summary": "snappy-playbook week",
          "x-snappy-effect": "read",
          "x-snappy-annotations": {
            "readOnlyHint": true,
            "destructiveHint": false,
            "idempotentHint": false,
            "openWorldHint": false
          },
          "parameters": [
            {
              "name": "week-number",
              "in": "query",
              "required": false,
              "schema": {
                "type": "integer",
                "description": "Week number, 1 through 6",
                "maximum": 6,
                "x-snappy-position": 0
              }
            }
          ],
          "responses": {
            "200": {
              "description": "The verb's own answer, as printed by `--json`."
            }
          }
        }
      },
      "/weeks": {
        "get": {
          "operationId": "snappy_playbook_weeks",
          "summary": "snappy-playbook weeks",
          "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"
            }
          }
        }
      }
    }
  }
}