{
  "schema": "snappy-card/1",
  "skill": "snappy-dashboard",
  "tier": "public",
  "origin_tier": "base",
  "purpose": "Base URL for all examples: ```bash BASE=\"https://backend-dashboard-api.fly.dev\" ```",
  "verbs": [],
  "faces": [],
  "agents": [],
  "uses": [],
  "used_by": [],
  "checks": {
    "pass": 27,
    "fail": 7,
    "defer": 27,
    "line": "27 of 34 checks pass",
    "failing": [
      {
        "id": 5,
        "rule": "Description is valid, third-person, and says what plus when",
        "says": "first/second person; no when/use marker"
      },
      {
        "id": 7,
        "rule": "Promised and declared verbs have no set difference",
        "says": "promised-only=[help]; loader-missing=[]"
      },
      {
        "id": 8,
        "rule": "Skill body and reference graph stay within disclosure budgets",
        "says": "534 lines; ~5675 tokens; connecting-stacks.md >100 lines without ToC; provider-formats.md >100 lines without ToC; hard-won-lessons.md >100 lines without ToC; curl-reference.md >100 lines without ToC"
      },
      {
        "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 ~94 tokens; body ~5675 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",
    "connecting-stacks.md",
    "contract.test.ts",
    "curl-reference.md",
    "hard-won-lessons.md",
    "provider-formats.md"
  ],
  "total_size": 64784,
  "checksum": "sha256:139895c57017d64be33a248c5a23a48cc2dcfce8fb5df6ffbd396a7d604f1e74",
  "built_at": "2026-09-09T22:08:36.472Z",
  "openapi": {
    "openapi": "3.1.0",
    "info": {
      "title": "snappy-dashboard",
      "version": "0.0.0",
      "description": "Snappy Dashboard — the operating system for your backend infrastructure. Boots with live stack state, renders an interactive dashboard, guides you through deployments and operations. Triggers: snappy dashboard, backend dashboard, manage stack, deploy endpoint, stack health, infrastructure, manage backend, deploy route, run sql, manage machines, introspect, stack management"
    },
    "x-snappy-transport": "cli",
    "servers": [
      {
        "url": "npx tsx ~/.claude/skills/snappy-dashboard/api.ts",
        "description": "The hand itself. Every path is a verb word, every query or body key an argument."
      }
    ],
    "paths": {},
    "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"
            }
          }
        }
      }
    }
  }
}