{
  "schemaVersion": 1,
  "generatedFrom": "sass-maker/saas-maker/tooling",
  "count": 103,
  "capabilities": [
    {
      "id": "doc:agent-indexing-standard",
      "type": "doc",
      "name": "Fleet Agent Indexing Standard (GEO)",
      "summary": "Make every public fleet surface readable by AI agents without scrolling or running JavaScript. Classic SEO (titles, OG, H1) is out of scope here — see seo-audit for that. Landing copy rules stay in LANDINGSTANDARD.md.",
      "path": "docs/agent-indexing-standard.md"
    },
    {
      "id": "doc:ahrefs-site-audit",
      "type": "doc",
      "name": "Canonical-root site audit",
      "summary": "The working path is a local sitemap crawl of Site Health's canonical roots, then source actions for 4xx pages, missing titles, and missing h1s. A report without remediation is incomplete.",
      "path": "docs/ahrefs-site-audit.md"
    },
    {
      "id": "doc:preserved-tooling",
      "type": "doc",
      "name": "Preserved tooling boundary",
      "summary": "The repository contains two intentionally different classes of tooling.",
      "path": "docs/preserved-tooling.md"
    },
    {
      "id": "script:agent-stack",
      "type": "script",
      "name": "Agent Stack",
      "summary": "Fleet operator script: Agent Stack.",
      "path": "scripts/agent-stack.sh"
    },
    {
      "id": "script:apply-clarity-id",
      "type": "script",
      "name": "Apply Clarity Id",
      "summary": "apply-clarity-id.sh — replace CLARITY_PROJECT_ID placeholder with the real",
      "path": "scripts/apply-clarity-id.sh"
    },
    {
      "id": "script:audit",
      "type": "script",
      "name": "Audit",
      "summary": "Fleet operator script: Audit.",
      "path": "scripts/audit.mjs"
    },
    {
      "id": "script:check-github-actions-policy",
      "type": "script",
      "name": "Check Github Actions Policy",
      "summary": "Credential-free availability checks may run daily when explicitly reviewed.",
      "path": "scripts/check-github-actions-policy.mjs"
    },
    {
      "id": "script:fleet-capabilities",
      "type": "script",
      "name": "Fleet Capabilities",
      "summary": "Fleet operator script: Fleet Capabilities.",
      "path": "scripts/fleet-capabilities.mjs"
    },
    {
      "id": "script:git-health",
      "type": "script",
      "name": "Git Health",
      "summary": "Fleet operator script: Git Health.",
      "path": "scripts/git-health.sh"
    },
    {
      "id": "script:github-priority-queue",
      "type": "script",
      "name": "Github Priority Queue",
      "summary": "Fleet operator script: Github Priority Queue.",
      "path": "scripts/github-priority-queue.mjs"
    },
    {
      "id": "script:link-project-agent-assets",
      "type": "script",
      "name": "Link Project Agent Assets",
      "summary": "Fleet operator script: Link Project Agent Assets.",
      "path": "scripts/link-project-agent-assets.sh"
    },
    {
      "id": "script:unlink-project-agent-assets",
      "type": "script",
      "name": "Unlink Project Agent Assets",
      "summary": "Fleet operator script: Unlink Project Agent Assets.",
      "path": "scripts/unlink-project-agent-assets.sh"
    },
    {
      "id": "script:validate-tooling",
      "type": "script",
      "name": "Validate Tooling",
      "summary": "Fleet operator script: Validate Tooling.",
      "path": "scripts/validate-tooling.mjs"
    },
    {
      "id": "script:verify-local",
      "type": "script",
      "name": "Verify Local",
      "summary": "scripts/verify-local.mjs",
      "path": "scripts/verify-local.mjs"
    },
    {
      "id": "skill:agent-ready",
      "type": "skill",
      "name": "agent-ready",
      "summary": "Subskill of site-health — AI/agent indexing audit (llms.txt, /api/ai, markdown negotiation, robots vs AI crawlers, SPA-fake detection). Route here from site-health for \"can AI read my site\" checks.",
      "path": "skills/agent-ready/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "degradation": "ask",
        "rationale": "Crawler and indexing evidence needs careful technical interpretation."
      }
    },
    {
      "id": "skill:analyze-storage",
      "type": "skill",
      "name": "analyze-storage",
      "summary": "Create a read-only local disk-usage report whose scan JSON, classified evidence, and static HTML stay under Fleet Workspace. Use when the operator asks what is consuming storage, says a disk is full, wants storage or cache analysis, asks for cleanup candidates, or wants a storage report. Do not use for RAM or process-memory diagnosis.",
      "path": "skills/analyze-storage/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "minimum": {
          "intelligence": "economy",
          "reasoning": "medium"
        },
        "degradation": "allow",
        "rationale": "Scanning and classification are deterministic; interpretation needs moderate context judgment."
      }
    },
    {
      "id": "skill:call-claude-code",
      "type": "skill",
      "name": "call-claude-code",
      "summary": "Delegate work to a fresh headless Claude Code instance as a teammate — a parallel worker in a worktree, a fresh-context review unbiased by the current conversation, or a run under the other profile (personal ~/.claude vs work ~/.claude-work, separate auth/config). Use when the user asks to call/delegate to claude or claude-work, or when you want an independent Claude with clean context.",
      "path": "skills/call-claude-code/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "minimum": {
          "intelligence": "economy",
          "reasoning": "medium"
        },
        "degradation": "allow",
        "rationale": "The current runtime briefs and verifies a separately configured teammate."
      }
    },
    {
      "id": "skill:call-codex",
      "type": "skill",
      "name": "call-codex",
      "summary": "Delegate repo-local coding work to OpenAI Codex CLI as a teammate agent — scoped implementation, mechanical refactors, test-fix loops, or an independent second-opinion code review from a different model family. Use when the user asks to call/delegate to codex, wants a second opinion on a diff, or when a well-scoped implementation task can run in parallel (e.g. in a worktree) while you do other work. Not for strategy, taste-heavy UX, or vague requirements.",
      "path": "skills/call-codex/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "minimum": {
          "intelligence": "economy",
          "reasoning": "medium"
        },
        "degradation": "allow",
        "rationale": "The current runtime briefs and verifies a separately configured teammate."
      }
    },
    {
      "id": "skill:call-cursor",
      "type": "skill",
      "name": "call-cursor",
      "summary": "Delegate coding work to Cursor Agent CLI (cursor-agent) as a teammate — fast scoped implementation with a clean JSON envelope, read-only plan/ask modes, or access to Cursor's model roster (GPT, Claude, Gemini variants) under a separate subscription quota. Use when the user asks to call/delegate to cursor, or as an implementation fallback when other teammates are quota-limited.",
      "path": "skills/call-cursor/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "minimum": {
          "intelligence": "economy",
          "reasoning": "medium"
        },
        "degradation": "allow",
        "rationale": "The current runtime briefs and verifies a separately configured teammate."
      }
    },
    {
      "id": "skill:call-devin",
      "type": "skill",
      "name": "call-devin",
      "summary": "Optional proprietary Devin teammate. Use only when the user explicitly asks for Devin or approves the spend/lock-in tradeoff.",
      "path": "skills/call-devin/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "degradation": "ask",
        "rationale": "Paid external delegation needs precise scope, spend, permission, and verification judgment."
      }
    },
    {
      "id": "skill:call-grok",
      "type": "skill",
      "name": "call-grok",
      "summary": "Delegate coding work to Grok CLI (xAI's terminal agent) as a teammate — scoped implementation with native worktree isolation, best-of-N parallel attempts on hard tasks, or a cross-model second opinion. Use when the user asks to call/delegate to grok, wants N parallel attempts at one task, or wants an opinion from a non-Anthropic/non-OpenAI model family.",
      "path": "skills/call-grok/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "minimum": {
          "intelligence": "economy",
          "reasoning": "medium"
        },
        "degradation": "allow",
        "rationale": "The current runtime briefs and verifies a separately configured teammate."
      }
    },
    {
      "id": "skill:call-hermes",
      "type": "skill",
      "name": "call-hermes",
      "summary": "Delegate bounded specialist work to the local open-source Hermes Agent runtime.",
      "path": "skills/call-hermes/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "minimum": {
          "intelligence": "economy",
          "reasoning": "medium"
        },
        "degradation": "allow",
        "rationale": "The current runtime briefs and verifies a separately configured teammate."
      }
    },
    {
      "id": "skill:call-teammate",
      "type": "skill",
      "name": "call-teammate",
      "summary": "Delegate work to Codex, Grok, Hermes, or optional Devin. Use for independent review, parallel attempts, bounded specialist work, and explicit-spend external agent runs.",
      "path": "skills/call-teammate/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "minimum": {
          "intelligence": "economy",
          "reasoning": "low"
        },
        "degradation": "allow",
        "rationale": "This parent performs lightweight teammate routing before loading one provider-specific skill."
      }
    },
    {
      "id": "skill:clarity-fleet-rollout",
      "type": "skill",
      "name": "clarity-fleet-rollout",
      "summary": "Create and wire one Microsoft Clarity project per Fleet catalog entry, with a recoverable ID receipt and explicit no-web-surface exceptions.",
      "path": "skills/clarity-fleet-rollout/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "degradation": "ask",
        "rationale": "This workflow creates provider-side resources and maps them across independently owned Fleet products."
      }
    },
    {
      "id": "skill:cloudflare-spend-guard",
      "type": "skill",
      "name": "cloudflare-spend-guard",
      "summary": "Audit Cloudflare and Turso costs, billable usage, free-tier or paid-plan exposure, quota exhaustion, project necessity, and safe optimization opportunities for Fleet. Use when the user asks whether Cloudflare or Turso is charging them, how likely a project is to cost real money or hit a database limit, what is driving a bill or Turso row usage, whether current Workers/Pages/D1/R2/KV/Queues/Durable Objects/AI/Turso usage is needed, which resources look wasteful, what can be optimized, or how to prevent surprise cloud spend or quota-blocked database queries.",
      "path": "skills/cloudflare-spend-guard/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "frontier",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "degradation": "deny",
        "rationale": "Cost, quota, and provider evidence can drive consequential operational decisions."
      }
    },
    {
      "id": "skill:code-cleanup",
      "type": "skill",
      "name": "code-cleanup",
      "summary": "Run Fleet code cleanup, dependency health checks, and guarded package upgrades in one place. Use for unused code or packages, outdated or vulnerable dependencies, Knip, lint/typecheck/test/format-check orchestration, Bundlephobia evidence, package recommendations, manifest or lockfile edits, and Fleet-wide dependency checks.",
      "path": "skills/code-cleanup/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "degradation": "ask",
        "rationale": "Dependency and dead-code changes require repository judgment beyond mechanical scans."
      }
    },
    {
      "id": "skill:component-pattern-mine",
      "type": "skill",
      "name": "component-pattern-mine",
      "summary": "Compare mature implementations of an unfamiliar web component or interaction pattern and turn them into project-adapted guidance. Use for command palettes, comboboxes, timelines, tables, editors, navigation, uploaders, multi-state controls, spatial UI, or any component whose anatomy, states, accessibility, responsive behavior, motion, or data boundary needs research before implementation.",
      "path": "skills/component-pattern-mine/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "frontier",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "degradation": "ask",
        "rationale": "Component comparison needs reliable synthesis across behavior, accessibility, and implementation constraints."
      }
    },
    {
      "id": "skill:content-coverage",
      "type": "skill",
      "name": "content-coverage",
      "summary": "Audit whether a product has the SEO and search-intent pages expected in its category, find competitive content gaps, draft source-backed pages, and publish approved pages through the owning repository. Use for SEO article coverage, comparison/alternative/use-case/integration pages, content inventories, or requests to create missing durable search pages.",
      "path": "skills/content-coverage/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "frontier",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "degradation": "deny",
        "rationale": "Competitive research, claims, information architecture, and public copy need strong judgment."
      }
    },
    {
      "id": "skill:creative-web-effects",
      "type": "skill",
      "name": "creative-web-effects",
      "summary": "Shape, audit, discover, specify, implement, and validate purposeful creative browser effects using CSS animation, SVG, Canvas, WebGL shaders, scroll progress, pointer input, particles, transitions, or procedural visuals. Use when a web surface needs a new expressive effect, an audit of existing animation code, identification of genuine motion opportunities, or precise vocabulary for an unclear motion brief. Requires project-native direction, reduced-motion and low-capability fallbacks, input safety, lifecycle cleanup, and measurable performance evidence.",
      "path": "skills/creative-web-effects/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "frontier",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "degradation": "ask",
        "rationale": "Creative effects require strong visual judgment plus accessibility and performance discipline."
      }
    },
    {
      "id": "skill:daily-learning",
      "type": "skill",
      "name": "daily-learning",
      "summary": "Create a fresh private 30-minute Fleet learning session from Telegram, OpenClaw, Hermes, or the terminal. Use when the operator asks to learn, study, review, get today's session, or focus on a named Fleet project or learning source.",
      "path": "skills/daily-learning/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "minimum": {
          "intelligence": "economy",
          "reasoning": "medium"
        },
        "degradation": "allow",
        "rationale": "Session control is bounded, while source selection benefits from moderate reasoning."
      }
    },
    {
      "id": "skill:design-engineering",
      "type": "skill",
      "name": "design-engineering",
      "summary": "Route focused UI and design-engineering work through Fleet's existing skills. Use for new UI, multiple design directions, brand boards, component extraction, Tailwind class cleanup, dark-mode UI or raster variants, responsive adaptation, semantic markup from screenshots, visual-reference research, component pattern mining, web 3D, creative effects, or evidence-heavy interfaces. Complements design-workflow, Impeccable, and imagegen without replacing their craft or completion gates.",
      "path": "skills/design-engineering/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "minimum": {
          "intelligence": "economy",
          "reasoning": "low"
        },
        "degradation": "allow",
        "rationale": "The parent classifies one of five bounded jobs and loads the matching specialist."
      }
    },
    {
      "id": "skill:design-inspiration",
      "type": "skill",
      "name": "design-inspiration",
      "summary": "Research, compare, and visualize attributable design directions for web interfaces. Use for landing pages, product surfaces, dashboards, component families, interaction languages, multiple UI concepts, compact brand-direction boards, or Fleet overhaul evidence, including temporary code probes when static evidence cannot show interaction or responsive behavior. Produces transferable principles and design-workflow receipt inputs without copying another product's brand, content, assets, or proprietary implementation.",
      "path": "skills/design-inspiration/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "frontier",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "degradation": "ask",
        "rationale": "Reference synthesis requires taste, attribution, and project-specific visual judgment."
      }
    },
    {
      "id": "skill:design-workflow",
      "type": "skill",
      "name": "design-workflow",
      "summary": "Use for meaningful Fleet frontend work that creates or changes visual language, layout, navigation, interaction patterns, responsive behavior, theming, reusable components, landing pages, dashboards, app shells, or substantial UI polish. Covers new UI, component extraction, dark mode, and device adaptation by routing to Impeccable and imagegen while preserving direction alignment, browser evidence, quality gates, and owner feedback. Skip copy-only edits, invisible refactors, and trivial CSS corrections.",
      "path": "skills/design-workflow/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "frontier",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "degradation": "ask",
        "rationale": "Product design requires taste, visual synthesis, and reliable multi-step review."
      }
    },
    {
      "id": "skill:evidence-interface-design",
      "type": "skill",
      "name": "evidence-interface-design",
      "summary": "Shape, audit, specify, or implement evidence-heavy web interfaces such as reports, benchmarks, comparisons, dashboards, scorecards, calculators, ROI tools, and decision pages. Use when facts, formulas, units, sources, uncertainty, visual encoding, or fast-versus-audit reading paths must remain trustworthy while the interface makes a conclusion or decision clear. Produces a project-native evidence and composition contract without importing another brand system.",
      "path": "skills/evidence-interface-design/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "frontier",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "degradation": "ask",
        "rationale": "Evidence interfaces require reliable synthesis across source meaning, information architecture, visual encoding, interaction state, and accessibility."
      }
    },
    {
      "id": "skill:evidence-research",
      "type": "skill",
      "name": "evidence-research",
      "summary": "Produce a decision-ready, evidence-first research report.",
      "path": "skills/evidence-research/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "frontier",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "degradation": "ask",
        "rationale": "Decision-ready research requires current evidence, source judgment, and explicit uncertainty handling."
      }
    },
    {
      "id": "skill:fleet-audit",
      "type": "skill",
      "name": "fleet-audit",
      "summary": "Audit the fleet — git/CI health, PROJECT_STATUS sync, or full recurring audit. Use when the user asks \"is the fleet healthy?\", \"what's the fleet status?\", \"what's everyone working on?\", \"audit the fleet\", \"check all projects\", \"what's broken?\", or wants a fleet-wide snapshot before a deploy or audit pass.",
      "path": "skills/fleet-audit/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "minimum": {
          "intelligence": "economy",
          "reasoning": "medium"
        },
        "degradation": "allow",
        "rationale": "Most evidence is script-produced, with moderate reasoning needed for fleet triage."
      }
    },
    {
      "id": "skill:fleet-deploy-guard",
      "type": "skill",
      "name": "fleet-deploy-guard",
      "summary": "Guard a fleet project deploy — verify clean main, green CI, known Cloudflare target, no uncommitted changes before allowing a deploy. Use when the user says \"deploy X\", \"can I deploy?\", \"is X safe to deploy?\", or before any production deploy.",
      "path": "skills/fleet-deploy-guard/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "frontier",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "degradation": "deny",
        "rationale": "A deploy gate must fail safely when interpreting branch, CI, target, and blocker evidence."
      }
    },
    {
      "id": "skill:fleet-deploy-parity",
      "type": "skill",
      "name": "fleet-deploy-parity",
      "summary": "Check whether live Fleet products match origin/main, including SHA-tagged Workers at 100% traffic, and current-main Actions are green.",
      "path": "skills/fleet-deploy-parity/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "degradation": "ask",
        "rationale": "Cross-project deployment evidence needs precise reconciliation and honest unknowns."
      }
    },
    {
      "id": "skill:fleet-init",
      "type": "skill",
      "name": "fleet-init",
      "summary": "Scaffold a new fleet project — create the GitHub repo, AGENTS.md, PROJECT_STATUS.md, wrangler config, CI workflow, and fleet README entry. Use when the user says \"create a new project\", \"scaffold X\", \"add a new fleet product\", or \"init a new repo\".",
      "path": "skills/fleet-init/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "degradation": "ask",
        "rationale": "Project scaffolding changes several durable repository and registry surfaces."
      }
    },
    {
      "id": "skill:fleet-ops",
      "type": "skill",
      "name": "fleet-ops",
      "summary": "Route Fleet-wide audits, deploy checks, public-product smoke tests, spend reviews, project setup, and workspace decisions to the relevant subskill.",
      "path": "skills/fleet-ops/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "minimum": {
          "intelligence": "economy",
          "reasoning": "low"
        },
        "degradation": "allow",
        "rationale": "This parent performs lightweight intent routing before loading one specialist skill."
      }
    },
    {
      "id": "skill:fleet-workspace",
      "type": "skill",
      "name": "fleet-workspace",
      "summary": "Use when working across the Fleet workspace, deciding whether work belongs in a child project, Fleet policy, or project-local task tracking.",
      "path": "skills/fleet-workspace/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "frontier",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "degradation": "ask",
        "rationale": "Cross-project ownership and policy decisions have broad repository consequences."
      }
    },
    {
      "id": "skill:geo-observatory",
      "type": "skill",
      "name": "geo-observatory",
      "summary": "Subskill of site-health — recurring GEO/SEO outcome measurement: probe configured queries on live web search, classify A/B/C, append to the ledger, regenerate the trend report. Route here from site-health for \"did results move\" and scheduled weekly runs.",
      "path": "skills/geo-observatory/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "frontier",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "degradation": "ask",
        "rationale": "Visibility trends require cautious attribution across noisy search evidence."
      }
    },
    {
      "id": "skill:ian-xiaohei-illustrations",
      "type": "skill",
      "name": "ian-xiaohei-illustrations",
      "summary": "Design or generate English-language editorial illustrations in Ian's licensed Xiaohei visual language for essays, blog posts, Notion documents, methods, workflows, and abstract concepts. Use for Xiaohei illustrations, sparse absurd hand-drawn article art, illustration shot lists, or edits to an existing Xiaohei image. Do not use for general illustration, formal diagrams, slide graphics, brand key art, or editable vector assets.",
      "path": "skills/ian-xiaohei-illustrations/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "frontier",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "degradation": "ask",
        "rationale": "Editorial metaphor selection, visual restraint, and post-generation critique require strong language and visual judgment."
      }
    },
    {
      "id": "skill:launch-campaign",
      "type": "skill",
      "name": "launch-campaign",
      "summary": "Plan and execute a one-off launch for a new product or major feature. Use when the owner wants every launch step, full flagship posts, broad relevant directory and content-platform submissions, one exact-plan approval, and automatic execution through repositories, Postiz, connectors, or a visible connected browser.",
      "path": "skills/launch-campaign/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "frontier",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "degradation": "deny",
        "rationale": "Positioning, public copy, channel eligibility, and external actions require strong judgment."
      }
    },
    {
      "id": "skill:local-ports-cleanup",
      "type": "skill",
      "name": "local-ports-cleanup",
      "summary": "Inspect, diagnose, and safely clean local listening ports and development-server processes with the installed `ports` CLI. Use when a local port is occupied, stale or orphaned dev processes should be stopped, a project's ports need clearing before restart, or an operator asks what is listening locally. Preserve healthy Docker, database, system, and unrelated project listeners unless explicitly named.",
      "path": "skills/local-ports-cleanup/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "degradation": "deny",
        "rationale": "Local process termination is bounded but requires careful ownership and scope judgment."
      }
    },
    {
      "id": "skill:local-verification",
      "type": "skill",
      "name": "local-verification",
      "summary": "Verify a Fleet product starts and serves the current patch locally in under five minutes using observable readiness probing, failure injection, and exact-patch selection. Use when the user asks to verify a project locally, run local verification, qualify a local build, check that a patch is live locally, or prove a service is ready without fixed sleeps.",
      "path": "skills/local-verification/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "economy",
          "reasoning": "medium"
        },
        "degradation": "ask",
        "rationale": "Local verification needs precise probe interpretation and honest timeout reporting, but the engine is deterministic and does not require frontier reasoning."
      }
    },
    {
      "id": "skill:mobile-task-control",
      "type": "skill",
      "name": "mobile-task-control",
      "summary": "Start, supervise, and report durable Fleet work requested from Telegram or another chat surface. Use when the operator asks to spin up work, run something in the background, show task status, or test mobile control.",
      "path": "skills/mobile-task-control/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "minimum": {
          "intelligence": "economy",
          "reasoning": "medium"
        },
        "degradation": "allow",
        "rationale": "Durable task control is bounded but must preserve scope and truthful status."
      }
    },
    {
      "id": "skill:name-domains",
      "type": "skill",
      "name": "name-domains",
      "summary": "Generate tasteful, likely-available domain names for a startup idea. Orchestrated pipeline (run-pipeline.sh): taste scoring, collision scan, two-pass RDAP/DNS availability, markdown shortlist. Reads PROJECT_STATUS.md in fleet repos. Use for domain names, brandable domains, naming help, \"name my startup\", or /name-domains. No backend, no signup.",
      "path": "skills/name-domains/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "frontier",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "degradation": "ask",
        "rationale": "Naming quality depends on taste, semantic judgment, and collision evidence."
      }
    },
    {
      "id": "skill:openspec-apply-change",
      "type": "skill",
      "name": "openspec-apply-change",
      "summary": "Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks.",
      "path": "skills/openspec-apply-change/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "frontier",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "degradation": "ask",
        "rationale": "Applying a planned change requires reliable implementation judgment across code, tests, and task state."
      }
    },
    {
      "id": "skill:openspec-archive-change",
      "type": "skill",
      "name": "openspec-archive-change",
      "summary": "Archive a completed change in the experimental workflow. Use when the user wants to finalize and archive a change after implementation is complete.",
      "path": "skills/openspec-archive-change/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "degradation": "ask",
        "rationale": "Archival must reconcile completion and specification state without losing unfinished work."
      }
    },
    {
      "id": "skill:openspec-explore",
      "type": "skill",
      "name": "openspec-explore",
      "summary": "Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements. Use when the user wants to think through something before or during a change.",
      "path": "skills/openspec-explore/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "frontier",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "degradation": "ask",
        "rationale": "Product and architecture exploration benefits from broad synthesis while preserving a strict read-only stance."
      }
    },
    {
      "id": "skill:openspec-propose",
      "type": "skill",
      "name": "openspec-propose",
      "summary": "Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.",
      "path": "skills/openspec-propose/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "frontier",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "degradation": "ask",
        "rationale": "A complete proposal shapes requirements, design, and implementation work across the change."
      }
    },
    {
      "id": "skill:openspec-sync-specs",
      "type": "skill",
      "name": "openspec-sync-specs",
      "summary": "Sync delta specs from a change to main specs. Use when the user wants to update main specs with changes from a delta spec, without archiving the change.",
      "path": "skills/openspec-sync-specs/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "frontier",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "degradation": "ask",
        "rationale": "Specification synchronization requires semantic merging without dropping existing requirements or scenarios."
      }
    },
    {
      "id": "skill:openspec-update-change",
      "type": "skill",
      "name": "openspec-update-change",
      "summary": "Update an OpenSpec change by revising its existing planning artifacts and keeping them coherent with one another. Use when the user wants to revise a change's plan, fold new decisions into it, or reconcile its artifacts after an edit. Never edits code.",
      "path": "skills/openspec-update-change/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "frontier",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "degradation": "ask",
        "rationale": "Updating change artifacts requires cross-document coherence and careful preservation of approved intent."
      }
    },
    {
      "id": "skill:psi-swarm",
      "type": "skill",
      "name": "psi-swarm",
      "summary": "Route distributional Lighthouse and Core Web Vitals audits to the standalone PSI Swarm repository.",
      "path": "skills/psi-swarm/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "minimum": {
          "intelligence": "economy",
          "reasoning": "low"
        },
        "degradation": "allow",
        "rationale": "This thin wrapper routes audits to the standalone PSI Swarm skill and does not perform the audit itself."
      }
    },
    {
      "id": "skill:public-product-smoke",
      "type": "skill",
      "name": "public-product-smoke",
      "summary": "Audit whether public websites actually work for users through bounded browser journeys. Use when the user asks to click around a site or the Fleet, verify guest usability, test each product's unique pages, find blank or broken routes, exercise search/detail/primary actions, or produce an actionable public-product repair queue. This is a read-only production audit, not SEO, performance measurement, native-app testing, or automatic repair.",
      "path": "skills/public-product-smoke/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "degradation": "ask",
        "rationale": "Browser journeys need reliable interpretation of product-specific behavior and failures."
      }
    },
    {
      "id": "skill:seo-audit",
      "type": "skill",
      "name": "seo-audit",
      "summary": "Subskill of site-health — on-page SEO audit (title/meta/canonical/OG/hreflang/JSON-LD/sitemap/headings/alt/SSR leaks) for any URL list. Route here from site-health for \"check my SEO\" requests.",
      "path": "skills/seo-audit/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "degradation": "ask",
        "rationale": "On-page evidence is partly mechanical but prioritization requires technical SEO judgment."
      }
    },
    {
      "id": "skill:site-health",
      "type": "skill",
      "name": "site-health",
      "summary": "Route site health, AI indexing, technical SEO, competitive content coverage, performance, visibility trends, and public guest-journey audits to one relevant Fleet subskill.",
      "path": "skills/site-health/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "minimum": {
          "intelligence": "economy",
          "reasoning": "low"
        },
        "degradation": "allow",
        "rationale": "This parent routes a request to one health specialist and does not perform the audit itself."
      }
    },
    {
      "id": "skill:spec-driven",
      "type": "skill",
      "name": "spec-driven",
      "summary": "Spec-driven development for any new fleet feature. Use when starting non-trivial feature work (multi-file, new surface, behavior change, cross-repo) in any fleet project. Creates a GitHub tracking issue with proposal, design, specs, and task checklist — no local spec files. Trigger automatically at the start of feature work; do not wait for the user to ask.",
      "path": "skills/spec-driven/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "frontier",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "degradation": "ask",
        "rationale": "Feature scoping and architectural decisions shape the entire implementation."
      }
    },
    {
      "id": "skill:token-budget",
      "type": "skill",
      "name": "token-budget",
      "summary": "Audit Codex context cost across instructions, memory, skills, plugins, hooks, and command output; identify safe trimming opportunities.",
      "path": "skills/token-budget/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "balanced",
          "reasoning": "medium"
        },
        "minimum": {
          "intelligence": "economy",
          "reasoning": "medium"
        },
        "degradation": "allow",
        "rationale": "Measurements are scripted and recommendations need moderate context judgment."
      }
    },
    {
      "id": "skill:web-3d-pipeline",
      "type": "skill",
      "name": "web-3d-pipeline",
      "summary": "Shape, inspect, optimize, integrate, and validate web 3D experiences and assets. Use for glTF or GLB files, models, scenes, cameras, materials, lighting, spatial interaction, product viewers, 3D heroes, WebGL delivery, Three.js or React Three Fiber work, and decisions about whether an experience needs real-time 3D at all. Requires provenance, fallbacks, loading behavior, accessibility, and browser performance evidence.",
      "path": "skills/web-3d-pipeline/SKILL.md",
      "executionProfile": {
        "schema": "fleet.skill-execution-profile.v1",
        "recommended": {
          "intelligence": "frontier",
          "reasoning": "high"
        },
        "minimum": {
          "intelligence": "balanced",
          "reasoning": "high"
        },
        "degradation": "ask",
        "rationale": "Web 3D decisions combine visual, asset, runtime, interaction, and performance trade-offs."
      }
    },
    {
      "id": "template:agent-surfaces/api-ai.example",
      "type": "template",
      "name": "Api Ai Example",
      "summary": "{ \"name\": \"example\", \"version\": \"1\", \"url\": \"https://example.com\", \"llms\": \"https://example.com/llms.txt\", \"llmsFull\": null, \"sitemap\": \"https://example.com/sitemap.xml\", \"markdown\": { \"suffix\": \".md\", \"negotiation\": true }, \"surfaces\": [ { \"id\": \"home\", \"url\": \"https://example.c",
      "path": "templates/agent-surfaces/api-ai.example.json"
    },
    {
      "id": "template:agent-surfaces/index.md",
      "type": "template",
      "name": "{{NAME}}",
      "summary": "{{SUMMARY}}",
      "path": "templates/agent-surfaces/index.md.tmpl"
    },
    {
      "id": "template:agent-surfaces/llms.txt",
      "type": "template",
      "name": "{{NAME}}",
      "summary": "> {{SUMMARY}}",
      "path": "templates/agent-surfaces/llms.txt.tmpl"
    },
    {
      "id": "template:agent-surfaces/robots-ai-snippet",
      "type": "template",
      "name": "Allow major AI crawlers on public content (agent-indexing standard).",
      "summary": "User-agent: ChatGPT-User Allow: /",
      "path": "templates/agent-surfaces/robots-ai-snippet.txt"
    },
    {
      "id": "template:api-timing",
      "type": "template",
      "name": "Api Timing",
      "summary": "/  Client-side API call timing via the Resource Timing API.   Polls performance.getEntriesByType('resource') for fetch/XHR entries,  groups them by normalized route, and emits apicalltiming events to  PostHog with p50/p90/max duration + TTFB. This captures the full  round-trip la",
      "path": "templates/api-timing.ts"
    },
    {
      "id": "template:biome.base",
      "type": "template",
      "name": "Biome Base",
      "summary": "{ \"$schema\": \"../../../nodemodules/@biomejs/biome/configurationschema.json\", \"root\": false, \"extends\": [\"ultracite/biome/core\"], \"vcs\": { \"enabled\": true, \"clientKind\": \"git\", \"useIgnoreFile\": true }, \"files\": { \"ignoreUnknown\": true, \"includes\": [ \"\", \"!!/nodemodules\", \"!!/.next",
      "path": "templates/biome.base.json"
    },
    {
      "id": "template:clarity-snippet",
      "type": "template",
      "name": "Clarity Snippet",
      "summary": "<!-- Microsoft Clarity snippet — session replay + heatmaps.",
      "path": "templates/clarity-snippet.html"
    },
    {
      "id": "template:design-review",
      "type": "template",
      "name": "Design Review",
      "summary": "{ \"$schema\": \"fleet.design-review.v1\", \"version\": 1, \"project\": \"replace-with-project-id\", \"target\": \"replace-with-reviewed-surface\", \"mode\": \"preserve\", \"register\": \"product\", \"context\": { \"product\": \"PRODUCT.md\", \"design\": \"DESIGN.md\" }, \"direction\": { \"references\": [], \"probes",
      "path": "templates/design-review.json"
    },
    {
      "id": "template:ios-landing/astro.config",
      "type": "template",
      "name": "Astro Config",
      "summary": "import { defineConfig } from \"astro/config\"; import { site } from \"./src/site.config.ts\";",
      "path": "templates/ios-landing/astro.config.mjs"
    },
    {
      "id": "template:ios-landing/package",
      "type": "template",
      "name": "Package",
      "summary": "{ \"name\": \"ios-landing\", \"version\": \"0.1.0\", \"private\": true, \"type\": \"module\", \"packageManager\": \"pnpm@10.33.2\", \"scripts\": { \"dev\": \"astro dev\", \"build\": \"astro build\", \"check\": \"astro check && astro build && node scripts/check-site.mjs\", \"preview\": \"astro preview\" }, \"devDepen",
      "path": "templates/ios-landing/package.json"
    },
    {
      "id": "template:ios-landing/readme",
      "type": "template",
      "name": "iOS landing template",
      "summary": "The five current Significant Hobbies iOS apps live in the shared factory ios-landings (one codebase, five PRODUCT= sites). Use this folder only for a new standalone iOS app that is not in that factory yet.",
      "path": "templates/ios-landing/README.md"
    },
    {
      "id": "template:ios-landing/scripts/check-site",
      "type": "template",
      "name": "Check Site",
      "summary": "import { access, readFile } from \"node:fs/promises\";",
      "path": "templates/ios-landing/scripts/check-site.mjs"
    },
    {
      "id": "template:ios-landing/src/components/cta",
      "type": "template",
      "name": "Cta",
      "summary": "{cta.kind === \"app-store\" ? ( <a class=\"store-badge\" href={cta.href}> <img src={appStoreBadge.src} width=\"160\" height=\"54\" alt={appStoreBadge.alt} /> </a> ) : ( <a class=\"button\" href={cta.href}> {cta.label} <span aria-hidden=\"true\">{cta.kind === \"status\" ? \"→\" : \"↗\"}</span> </a>",
      "path": "templates/ios-landing/src/components/Cta.astro"
    },
    {
      "id": "template:ios-landing/src/components/legalpage",
      "type": "template",
      "name": "LegalPage",
      "summary": "<SiteLayout title={${title} — ${site.name}} description={description} canonicalPath={path}> <div class=\"legal-main shell\"> <h1>{title}</h1> <p class=\"legal-lede prose\">{lede}</p> <article class=\"legal-copy prose\"><slot /></article> </div> </SiteLayout>",
      "path": "templates/ios-landing/src/components/LegalPage.astro"
    },
    {
      "id": "template:ios-landing/src/components/phone",
      "type": "template",
      "name": "Phone",
      "summary": "<figure class:list={[\"device\", size, tilt !== \"none\" && tilt-${tilt}]}> <div class=\"device-shell\"> <span class=\"device-island\" aria-hidden=\"true\"></span> <span class=\"device-side silent\" aria-hidden=\"true\"></span> <span class=\"device-side vol-up\" aria-hidden=\"true\"></span> <span",
      "path": "templates/ios-landing/src/components/Phone.astro"
    },
    {
      "id": "template:ios-landing/src/layouts/sitelayout",
      "type": "template",
      "name": "SiteLayout",
      "summary": "<!doctype html> <html lang=\"en\" data-scheme={scheme} style={tokenStyle}> <head> <meta charset=\"UTF-8\" /> <meta name=\"viewport\" content=\"width=device-width\" /> <meta name=\"generator\" content={Astro.generator} /> <meta name=\"description\" content={description} /> <meta name=\"theme-c",
      "path": "templates/ios-landing/src/layouts/SiteLayout.astro"
    },
    {
      "id": "template:ios-landing/src/lib/distribution",
      "type": "template",
      "name": "Distribution",
      "summary": "import { site } from \"../site.config\";",
      "path": "templates/ios-landing/src/lib/distribution.ts"
    },
    {
      "id": "template:ios-landing/src/pages/accessibility",
      "type": "template",
      "name": "Accessibility",
      "summary": "<LegalPage title={page.title} lede={page.lede} path=\"/accessibility/\"> {page.sections.map((section) => ( <section> <h2>{section.title}</h2> <p>{section.body}</p> </section> ))} </LegalPage>",
      "path": "templates/ios-landing/src/pages/accessibility.astro"
    },
    {
      "id": "template:ios-landing/src/pages/api/ai",
      "type": "template",
      "name": "Ai",
      "summary": "import { links, site } from \"../../site.config\";",
      "path": "templates/ios-landing/src/pages/api/ai.ts"
    },
    {
      "id": "template:ios-landing/src/pages/index",
      "type": "template",
      "name": "Index",
      "summary": "<SiteLayout> <section class=\"hero\"> <div class=\"hero-sky\" aria-hidden=\"true\"> <span class=\"orb-track t-a\"><span class=\"orb orb-a\"></span></span> <span class=\"orb-track t-b\"><span class=\"orb orb-b\"></span></span> <span class=\"orb-track t-c\"><span class=\"orb orb-c\"></span></span> <",
      "path": "templates/ios-landing/src/pages/index.astro"
    },
    {
      "id": "template:ios-landing/src/pages/index.md",
      "type": "template",
      "name": "Index Md",
      "summary": "import { links, site } from \"../site.config\";",
      "path": "templates/ios-landing/src/pages/index.md.ts"
    },
    {
      "id": "template:ios-landing/src/pages/llms.txt",
      "type": "template",
      "name": "Llms Txt",
      "summary": "import { links, site } from \"../site.config\";",
      "path": "templates/ios-landing/src/pages/llms.txt.ts"
    },
    {
      "id": "template:ios-landing/src/pages/privacy",
      "type": "template",
      "name": "Privacy",
      "summary": "<LegalPage title={page.title} lede={page.lede} path=\"/privacy/\"> {page.sections.map((section) => ( <section> <h2>{section.title}</h2> <p>{section.body}</p> </section> ))} </LegalPage>",
      "path": "templates/ios-landing/src/pages/privacy.astro"
    },
    {
      "id": "template:ios-landing/src/pages/robots.txt",
      "type": "template",
      "name": "Robots Txt",
      "summary": "import { site } from \"../site.config\";",
      "path": "templates/ios-landing/src/pages/robots.txt.ts"
    },
    {
      "id": "template:ios-landing/src/pages/sitemap.xml",
      "type": "template",
      "name": "Sitemap Xml",
      "summary": "import { site } from \"../site.config\";",
      "path": "templates/ios-landing/src/pages/sitemap.xml.ts"
    },
    {
      "id": "template:ios-landing/src/pages/support",
      "type": "template",
      "name": "Support",
      "summary": "<LegalPage title={page.title} lede={page.lede} path=\"/support/\"> {page.sections.map((section) => ( <section> <h2>{section.title}</h2> <p>{section.body}</p> </section> ))} </LegalPage>",
      "path": "templates/ios-landing/src/pages/support.astro"
    },
    {
      "id": "template:ios-landing/src/pages/terms",
      "type": "template",
      "name": "Terms",
      "summary": "<LegalPage title={page.title} lede={page.lede} path=\"/terms/\"> {page.sections.map((section) => ( <section> <h2>{section.title}</h2> <p>{section.body}</p> </section> ))} </LegalPage>",
      "path": "templates/ios-landing/src/pages/terms.astro"
    },
    {
      "id": "template:ios-landing/src/pages/testflight",
      "type": "template",
      "name": "Testflight",
      "summary": "<LegalPage title={page.title} lede={page.lede} path=\"/testflight/\"> {hasVerifiedBetaUrl ? ( <section> <h2>Join through Apple</h2> <p>The verified enrollment link is ready. <a href={configuredBetaUrl}>Open {site.name} in TestFlight</a>.</p> </section> ) : ( <section> <h2>Invite-on",
      "path": "templates/ios-landing/src/pages/testflight.astro"
    },
    {
      "id": "template:ios-landing/src/site.config",
      "type": "template",
      "name": "Site Config",
      "summary": "export type Chapter = { name: string; title: string; copy: string; image: string; alt: string; };",
      "path": "templates/ios-landing/src/site.config.ts"
    },
    {
      "id": "template:ios-landing/src/styles/device",
      "type": "template",
      "name": "Device",
      "summary": ".device { margin: 0; } .device.hero { width: min(100%, 360px); } .device.echo { width: 100%; } .device.gallery { flex: 0 0 min(268px, 72vw); transition: transform 400ms var(--ease-out); } .device.chapter { width: min(100%, 288px); justify-self: center; } .device-shell { position:",
      "path": "templates/ios-landing/src/styles/device.css"
    },
    {
      "id": "template:ios-landing/src/styles/global",
      "type": "template",
      "name": "Global",
      "summary": "@layer reset, tokens, base, components, utilities;",
      "path": "templates/ios-landing/src/styles/global.css"
    },
    {
      "id": "template:ios-landing/src/styles/landing",
      "type": "template",
      "name": "Landing",
      "summary": "/ THESIS: The real phone lives in the headline. Not a two-column hero. OWN-WORLD: Token sky, orbs, one device object overlapping the type. STORY: See the app in its own light, then the screens, then decide. FIRST VIEWPORT: Full-height room. Type left/bottom. Phone sits on the wor",
      "path": "templates/ios-landing/src/styles/landing.css"
    },
    {
      "id": "template:ios-landing/tsconfig",
      "type": "template",
      "name": "Tsconfig",
      "summary": "{ \"extends\": \"astro/tsconfigs/strict\" }",
      "path": "templates/ios-landing/tsconfig.json"
    },
    {
      "id": "template:ios-landing/wrangler.jsonc",
      "type": "template",
      "name": "Wrangler Jsonc",
      "summary": "{ \"name\": \"app-landing\", \"compatibilitydate\": \"2026-08-01\", \"pagesbuildoutputdir\": \"dist\" }",
      "path": "templates/ios-landing/wrangler.jsonc.example"
    },
    {
      "id": "template:web-landing/astro.config",
      "type": "template",
      "name": "Astro Config",
      "summary": "import { defineConfig } from 'astro/config';",
      "path": "templates/web-landing/astro.config.mjs"
    },
    {
      "id": "template:web-landing/package",
      "type": "template",
      "name": "Package",
      "summary": "{ \"name\": \"web-product-landing\", \"private\": true, \"type\": \"module\", \"packageManager\": \"pnpm@10.33.2\", \"scripts\": { \"dev\": \"astro dev\", \"build\": \"astro build\" }, \"devDependencies\": { \"@astrojs/check\": \"0.9.10\", \"astro\": \"7.2.0\", \"typescript\": \"6.0.3\" }, \"pnpm\": { \"onlyBuiltDepende",
      "path": "templates/web-landing/package.json"
    },
    {
      "id": "template:web-landing/readme",
      "type": "template",
      "name": "Web product landing template",
      "summary": "Use this template for a web product, developer tool, internal utility, or dashboard that needs a clear public first view without phone screenshots. It is the content-first companion to tooling/templates/ios-landing.",
      "path": "templates/web-landing/README.md"
    },
    {
      "id": "template:web-landing/src/layouts/sitelayout",
      "type": "template",
      "name": "SiteLayout",
      "summary": "<!doctype html> <html lang=\"en\"> <head> <meta charset=\"UTF-8\" /> <meta name=\"viewport\" content=\"width=device-width\" /> <meta name=\"description\" content={description} /> <link rel=\"canonical\" href={canonical} /> <meta property=\"og:type\" content=\"website\" /> <meta property=\"og:titl",
      "path": "templates/web-landing/src/layouts/SiteLayout.astro"
    },
    {
      "id": "template:web-landing/src/pages/index",
      "type": "template",
      "name": "Index",
      "summary": "<SiteLayout> <header class=\"shell nav\"> <a class=\"brand\" href=\"/\">{site.name}</a> <nav aria-label=\"Primary\"> <a href=\"#how\">How it works</a> <a class=\"nav-action\" href={site.primary.href}>{site.primary.label}</a> </nav> </header>",
      "path": "templates/web-landing/src/pages/index.astro"
    },
    {
      "id": "template:web-landing/src/site.config",
      "type": "template",
      "name": "Site Config",
      "summary": "export type SiteConfig = { name: string; projectId: string; url: string; title: string; description: string; eyebrow: string; headline: string; lede: string; primary: { label: string; href: string }; secondary?: { label: string; href: string }; artifact: { label: string; title: s",
      "path": "templates/web-landing/src/site.config.ts"
    },
    {
      "id": "template:web-landing/src/styles/global",
      "type": "template",
      "name": "Global",
      "summary": "@layer reset, base, components;",
      "path": "templates/web-landing/src/styles/global.css"
    },
    {
      "id": "template:web-landing/tsconfig",
      "type": "template",
      "name": "Tsconfig",
      "summary": "{ \"extends\": \"astro/tsconfigs/strict\" }",
      "path": "templates/web-landing/tsconfig.json"
    }
  ]
}