{
  "name": "SaaS Maker",
  "schemaVersion": 1,
  "version": "1",
  "url": "https://sassmaker.com",
  "llms": "https://sassmaker.com/llms.txt",
  "llmsFull": "https://sassmaker.com/llms-full.txt",
  "sitemap": "https://sassmaker.com/sitemap.xml",
  "markdown": {
    "suffix": ".md",
    "negotiation": false
  },
  "canonical": "https://sassmaker.com",
  "sourceOfTruth": "SaaS Maker privacy-checked public product catalog",
  "studio": {
    "name": "SaaS Maker",
    "url": "https://sassmaker.com",
    "owner": {
      "name": "Sarthak Agrawal",
      "role": "Founder and builder",
      "url": "https://sarthakagrawal.dev"
    },
    "eyebrow": "Public directory · shared workshop",
    "headline": "The products. And the tools behind them.",
    "oneLine": "SaaS Maker is the public directory for Fleet products and the reusable packages, skills, templates, and feedback layer that help them ship.",
    "thesis": "SaaS Maker keeps the public product inventory inspectable and publishes the shared workshop used across it, without becoming the private Fleet control plane.",
    "ownerVoice": "I use AI as material, infrastructure, and a collaborator—but not as the identity of the work. The studio is about choosing useful problems, building the right product around them, and maintaining what earns its place.",
    "aiPosition": "AI belongs inside the craft: in the capability, the research, and the way the work gets built. It should make a product more useful or make a difficult workflow possible; it is not a substitute for product judgment.",
    "principles": [
      {
        "title": "Problem before category",
        "summary": "Work begins with a specific friction worth owning, not a fashionable market label or a feature looking for a product."
      },
      {
        "title": "AI is material, not the pitch",
        "summary": "Models are used where they create real leverage. The product still needs a reason to exist when the novelty disappears."
      },
      {
        "title": "Evidence over posture",
        "summary": "Real destinations, source, changelogs, and honest operating boundaries carry more weight than invented scale or broad claims."
      },
      {
        "title": "Each product keeps its shape",
        "summary": "The studio supplies standards and shared craft without flattening every product into one design, stack, or business model."
      }
    ],
    "boundaries": [
      "SaaS Maker is not presented as a large team or institution.",
      "The complete directory is an accountable inventory, not a claim that every experiment is equally active.",
      "Products keep their own identity, destination, support, and operational boundary.",
      "What is public is deliberate and verifiable; what is private stays outside the story."
    ],
    "representativeWork": [
      {
        "id": "codevetter",
        "name": "CodeVetter",
        "description": "Execution-backed verification for AI-written software changes — local-first and inspectable.",
        "makerNote": "I built CodeVetter to make reviewing AI-generated code rigorous without giving up a local-first workflow.",
        "profileUrl": "https://sassmaker.com/p/codevetter",
        "destinationUrl": "https://codevetter.com",
        "repositoryUrl": "https://github.com/Codevetter/codevetter",
        "studioSignal": "AI with rigor: useful model assistance without surrendering a local-first workflow."
      },
      {
        "id": "posttrainllm",
        "name": "PostTrainLLM",
        "description": "An experimental browser model playground: run small language models locally with visible generation metrics.",
        "makerNote": "I use PostTrainLLM to explore local model training and turn those experiments into repeatable recipes for specialist models.",
        "profileUrl": "https://sassmaker.com/p/posttrainllm",
        "destinationUrl": "https://posttrainllm.com",
        "repositoryUrl": "https://github.com/PostTrainLLM/posttrainllm",
        "studioSignal": "Deep technical practice turned into repeatable infrastructure for specialist models."
      }
    ],
    "page": "https://sassmaker.com/studio",
    "markdown": "https://sassmaker.com/studio.md"
  },
  "surfaces": [
    {
      "id": "directory",
      "url": "https://sassmaker.com/",
      "md": "https://sassmaker.com/index.md",
      "kind": "collection",
      "description": "Software as a specialized service: a living studio of focused products"
    },
    {
      "id": "studio",
      "url": "https://sassmaker.com/studio",
      "md": "https://sassmaker.com/studio.md",
      "kind": "static",
      "description": "SaaS Maker is the public directory for Fleet products and the reusable packages, skills, templates, and feedback layer that help them ship."
    },
    {
      "id": "projects",
      "url": "https://sassmaker.com/projects",
      "md": "https://sassmaker.com/projects.md",
      "kind": "collection",
      "description": "Public directory of shareable Fleet projects and experiments"
    },
    {
      "id": "ideas",
      "url": "https://sassmaker.com/ideas",
      "md": "https://sassmaker.com/ideas.md",
      "kind": "collection",
      "description": "Scored decision ledger of tech-heavy product ideas"
    },
    {
      "id": "tools",
      "url": "https://sassmaker.com/tools",
      "md": "https://sassmaker.com/tools.md",
      "kind": "collection",
      "description": "Canonical public catalog of reusable Fleet capabilities"
    },
    {
      "id": "privacy",
      "url": "https://sassmaker.com/privacy",
      "md": "https://sassmaker.com/privacy.md",
      "kind": "static",
      "description": "Privacy policy for the SaaS Maker product directory"
    },
    {
      "id": "terms",
      "url": "https://sassmaker.com/terms",
      "md": "https://sassmaker.com/terms.md",
      "kind": "static",
      "description": "Terms of use for the SaaS Maker product directory"
    },
    {
      "id": "changelog",
      "url": "https://sassmaker.com/changelog",
      "md": "https://sassmaker.com/changelog.md",
      "kind": "collection",
      "description": "Product-owned history of meaningful changes shipped by SaaS Maker"
    },
    {
      "id": "learnings",
      "url": "https://sassmaker.com/learnings",
      "md": "https://sassmaker.com/learnings.md",
      "kind": "collection",
      "description": "First-party builder notes and agent-tooling learnings"
    },
    {
      "id": "learning-skills-should-declare-capabilities-not-model-names",
      "url": "https://sassmaker.com/learnings/skills-should-declare-capabilities-not-model-names",
      "md": "https://sassmaker.com/learnings/skills-should-declare-capabilities-not-model-names.md",
      "kind": "article",
      "description": "Why portable agent skills need provider-neutral intelligence and reasoning requirements, and how Fleet is testing the idea."
    },
    {
      "id": "product-codevetter",
      "url": "https://sassmaker.com/p/codevetter",
      "md": "https://sassmaker.com/p/codevetter.md",
      "kind": "profile",
      "description": "Execution-backed verification for AI-written software changes — local-first and inspectable."
    },
    {
      "id": "product-posttrainllm",
      "url": "https://sassmaker.com/p/posttrainllm",
      "md": "https://sassmaker.com/p/posttrainllm.md",
      "kind": "profile",
      "description": "An experimental browser model playground: run small language models locally with visible generation metrics."
    },
    {
      "id": "product-live",
      "url": "https://sassmaker.com/p/live",
      "md": "https://sassmaker.com/p/live.md",
      "kind": "profile",
      "description": "A free personality and hobby quiz that suggests a small experiment to try; account planning is not yet qualified."
    },
    {
      "id": "product-gitstat",
      "url": "https://sassmaker.com/p/gitstat",
      "md": "https://sassmaker.com/p/gitstat.md",
      "kind": "profile",
      "description": "An experimental public GitHub analysis tool for repository activity, contributions and code churn."
    },
    {
      "id": "product-email-manager",
      "url": "https://sassmaker.com/p/email-manager",
      "md": "https://sassmaker.com/p/email-manager.md",
      "kind": "profile",
      "description": "A private Gmail workspace for local semantic search, sender insights, and explicit unsubscribe workflows."
    },
    {
      "id": "product-chatgpt-memory-insights",
      "url": "https://sassmaker.com/p/chatgpt-memory-insights",
      "md": "https://sassmaker.com/p/chatgpt-memory-insights.md",
      "kind": "profile",
      "description": "A browser-local experiment for importing a ChatGPT export, exploring semantic themes and search, and optionally saving analysis on your device."
    },
    {
      "id": "product-on-record",
      "url": "https://sassmaker.com/p/on-record",
      "md": "https://sassmaker.com/p/on-record.md",
      "kind": "profile",
      "description": "Search evidenced podcast claims and follow links back to the original episode or publication."
    },
    {
      "id": "product-issue-pages",
      "url": "https://sassmaker.com/p/issue-pages",
      "md": "https://sassmaker.com/p/issue-pages.md",
      "kind": "profile",
      "description": "Read public GitHub issues as focused articles; publishing requires repository-owner access."
    },
    {
      "id": "product-research-papers",
      "url": "https://sassmaker.com/p/research-papers",
      "md": "https://sassmaker.com/p/research-papers.md",
      "kind": "profile",
      "description": "Search academic papers and follow original sources; account-based research chat is not yet qualified."
    },
    {
      "id": "product-materia",
      "url": "https://sassmaker.com/p/materia",
      "md": "https://sassmaker.com/p/materia.md",
      "kind": "profile",
      "description": "An educational body-and-remedy reference with condition-specific research citations and explicit uncertainty."
    },
    {
      "id": "product-anime-list",
      "url": "https://sassmaker.com/p/anime-list",
      "md": "https://sassmaker.com/p/anime-list.md",
      "kind": "profile",
      "description": "Anime and manga discovery with multi-axis filtering and personal watchlists."
    },
    {
      "id": "product-looptv",
      "url": "https://sassmaker.com/p/looptv",
      "md": "https://sassmaker.com/p/looptv.md",
      "kind": "profile",
      "description": "An experimental lean-back queue of curated science and other videos."
    },
    {
      "id": "product-swe-interview-prep",
      "url": "https://sassmaker.com/p/swe-interview-prep",
      "md": "https://sassmaker.com/p/swe-interview-prep.md",
      "kind": "profile",
      "description": "A learning OS for software-engineering interview practice."
    },
    {
      "id": "product-rolepatch",
      "url": "https://sassmaker.com/p/rolepatch",
      "md": "https://sassmaker.com/p/rolepatch.md",
      "kind": "profile",
      "description": "A guest resume-tailoring experiment with a reviewable diff and browser-local document exports."
    },
    {
      "id": "product-starboard",
      "url": "https://sassmaker.com/p/starboard",
      "md": "https://sassmaker.com/p/starboard.md",
      "kind": "profile",
      "description": "Explore public GitHub repositories and related projects through a searchable discovery experiment."
    },
    {
      "id": "product-mashup",
      "url": "https://sassmaker.com/p/mashup",
      "md": "https://sassmaker.com/p/mashup.md",
      "kind": "profile",
      "description": "Two playable examples of a local media-editing pipeline, with captions and inspectable source and approval receipts."
    },
    {
      "id": "product-web-playables",
      "url": "https://sassmaker.com/p/web-playables",
      "md": "https://sassmaker.com/p/web-playables.md",
      "kind": "profile",
      "description": "Small browser-playable game experiments."
    },
    {
      "id": "product-what-it-takes-to-win",
      "url": "https://sassmaker.com/p/what-it-takes-to-win",
      "md": "https://sassmaker.com/p/what-it-takes-to-win.md",
      "kind": "profile",
      "description": "Explore sourced career turning points with explicit survivorship and forecasting limits."
    },
    {
      "id": "product-sarthakagrawal-personal",
      "url": "https://sassmaker.com/p/sarthakagrawal-personal",
      "md": "https://sassmaker.com/p/sarthakagrawal-personal.md",
      "kind": "profile",
      "description": "Selected engineering case studies, technical writing and working project demonstrations."
    },
    {
      "id": "product-reddit-insights",
      "url": "https://sassmaker.com/p/reddit-insights",
      "md": "https://sassmaker.com/p/reddit-insights.md",
      "kind": "profile",
      "description": "Search a dated snapshot of 93 Reddit communities in your browser, with links to original posts and explicit provenance limits."
    }
  ],
  "externalResources": [
    {
      "id": "feedback-package",
      "url": "https://www.npmjs.com/package/@saas-maker/feedback",
      "kind": "documentation",
      "description": "Published feedback package and hosted submission service"
    }
  ],
  "tooling": {
    "url": "https://sassmaker.com/tools",
    "json": "https://sassmaker.com/tools.json",
    "generatedFrom": "sass-maker/saas-maker/tooling",
    "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:ai-client-standard",
        "type": "doc",
        "name": "Fleet AI client standard",
        "summary": "Status: ratified 2026-08-30 on issue #61.",
        "path": "docs/ai-client-standard.md"
      },
      {
        "id": "doc:clarity-fleet-health",
        "type": "doc",
        "name": "Clarity fleet health",
        "summary": "Fleet keeps one Microsoft Clarity project per catalog identity. Two skills own different halves of that, and they must not be confused:",
        "path": "docs/clarity-fleet-health.md"
      },
      {
        "id": "doc:landing-surface-classification",
        "type": "doc",
        "name": "Landing-surface classification",
        "summary": "Recorded: 2026-08-30. Refs sass-maker/saas-maker#62.",
        "path": "docs/landing-surface-classification.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:apple-native",
        "type": "skill",
        "name": "apple-native",
        "summary": "Build, review, test, and qualify Swift or SwiftUI applications across iOS, iPadOS, macOS, and watchOS. Covers Xcode and XcodeGen projects, platform boundaries, entitlements, simulator and physical-device QA, native accessibility, lifecycle, sync, and release preparation. Use for implementation or native product QA, not upload operations.",
        "path": "skills/apple-native/SKILL.md",
        "executionProfile": {
          "schema": "fleet.skill-execution-profile.v1",
          "recommended": {
            "intelligence": "frontier",
            "reasoning": "high"
          },
          "minimum": {
            "intelligence": "balanced",
            "reasoning": "high"
          },
          "degradation": "ask",
          "rationale": "Native implementation work turns on judgment a weaker model gets wrong quietly: SwiftData and CloudKit schema edits are runtime compatibility changes that still compile, platform boundaries decide what is genuinely shared versus cramped into one screen model, and entitlements must not be weakened to make a local build pass. High reasoning is the floor because the failure mode is a passing build that breaks users at runtime."
        }
      },
      {
        "id": "skill:apple-platform",
        "type": "skill",
        "name": "apple-platform",
        "summary": "Route Apple-native application work and Apple distribution work for iOS, iPadOS, macOS, and watchOS. Use when building Swift or SwiftUI apps, testing native targets, preparing archives, shipping through TestFlight or the App Store, notarizing direct-download Mac software, or diagnosing Apple Developer and App Store Connect blockers.",
        "path": "skills/apple-platform/SKILL.md",
        "executionProfile": {
          "schema": "fleet.skill-execution-profile.v1",
          "recommended": {
            "intelligence": "balanced",
            "reasoning": "high"
          },
          "minimum": {
            "intelligence": "balanced",
            "reasoning": "medium"
          },
          "degradation": "ask",
          "rationale": "This is the Apple entry point: it reads the request and routes to the focused implementation or release skill, so most of its own work is dispatch rather than execution. It still carries the shared operating contract, and misrouting release work into the native skill would skip the release gates, so it asks before degrading rather than allowing it silently."
        }
      },
      {
        "id": "skill:apple-release",
        "type": "skill",
        "name": "apple-release",
        "summary": "Qualify and deliver Apple applications end to end: Xcode archives, signing and entitlements, App Store Connect uploads, TestFlight internal and external testing, App Review submission, Mac App Store distribution, Developer ID signing, notarization, stapling, Gatekeeper checks, and Apple account/support diagnosis. Use when the user explicitly authorizes an Apple-side release action or asks for release readiness.",
        "path": "skills/apple-release/SKILL.md",
        "executionProfile": {
          "schema": "fleet.skill-execution-profile.v1",
          "recommended": {
            "intelligence": "frontier",
            "reasoning": "high"
          },
          "minimum": {
            "intelligence": "balanced",
            "reasoning": "high"
          },
          "degradation": "deny",
          "rationale": "Release actions are outward-facing and hard to reverse: App Store Connect uploads, TestFlight distribution, App Review submission, notarization, and stapling, all driven against real signing identities and credentials that must never be printed or copied. The skill is gate-based and keeps distribution channels and receipts separate. Degradation is denied rather than asked because a weaker model driving a signing or submission flow can take an irreversible action before anyone reviews it."
        }
      },
      {
        "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-health",
        "type": "skill",
        "name": "clarity-fleet-health",
        "summary": "Audit Microsoft Clarity across every Fleet product, including project-ID integrity, source wiring, desired capability coverage, provider settings, cached aggregate traffic, and explicit live traffic refreshes. Use for Clarity counts, fleet-wide Clarity health, missing analytics, feature adoption, or requests to test Clarity on all applications; use clarity-fleet-rollout instead for project creation or source installation.",
        "path": "skills/clarity-fleet-health/SKILL.md",
        "executionProfile": {
          "schema": "fleet.skill-execution-profile.v1",
          "recommended": {
            "intelligence": "balanced",
            "reasoning": "medium"
          },
          "minimum": {
            "intelligence": "economy",
            "reasoning": "medium"
          },
          "degradation": "allow",
          "rationale": "The deterministic collectors own execution; the agent interprets bounded per-project evidence and preserves privacy and quota boundaries."
        }
      },
      {
        "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": "Use explicitly for isolated design-engineering mechanics that do not need end-to-end visual direction: Tailwind canonicalization, semantic markup reconstruction, or routing a specialized 3D, effects, component-pattern, or evidence-interface task. Meaningful UI implementation and visual direction belong to design-workflow.",
        "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": "Use explicitly when external design references, comparative visual directions, or a requested brand-direction board are needed for a Fleet project. Produces attributable principles and design-workflow evidence without copying another product's brand, content, assets, or proprietary implementation. It does not own UI implementation or completion.",
        "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": "Primary Fleet entry point for meaningful frontend design 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. Owns product clarity, visual direction, implementation alignment, browser evidence, quality gates, and owner feedback; use Impeccable as a supporting mechanics playbook. 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:ios-app-growth",
        "type": "skill",
        "name": "ios-app-growth",
        "summary": "Plan, instrument, audit, and improve paid growth for consumer iOS subscription apps across positioning, App Store conversion, onboarding, paywalls, attribution, Apple Ads, paid social, and cohort economics. Use for iOS app growth plans or experiments, not ordinary feature implementation or generic marketing copy.",
        "path": "skills/ios-app-growth/SKILL.md",
        "executionProfile": {
          "schema": "fleet.skill-execution-profile.v1",
          "recommended": {
            "intelligence": "frontier",
            "reasoning": "high"
          },
          "minimum": {
            "intelligence": "balanced",
            "reasoning": "high"
          },
          "degradation": "deny",
          "rationale": "Subscription economics, privacy and platform policy, and bounded ad spend require strong 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, Microsoft Clarity traffic, 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\", \"surfaceMode\": \"operate\", \"mode\": \"preserve\", \"register\": \"product\", \"context\": { \"product\": \"PRODUCT.md\", \"design\": \"DESIGN.md\" }, \"direction\": {",
        "path": "templates/design-review.json"
      },
      {
        "id": "template:ios-landing/deprecated",
        "type": "template",
        "name": "Retired: the copy-to-fork iOS landing template",
        "summary": "Status: retired 2026-08-30. This directory no longer contains a template. Do not copy anything from here.",
        "path": "templates/ios-landing/DEPRECATED.md"
      },
      {
        "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": "This is the canonical starting point for a Fleet web landing page. Use it for a web product, developer tool, internal utility, or dashboard that needs a clear public first view without phone screenshots.",
        "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"
      }
    ]
  },
  "auth": {
    "public": true,
    "notes": "Private Fleet controls are intentionally excluded."
  },
  "tokenImpact": {
    "name": "Tokens Spent for the World",
    "metric": "Verified provider-reported model tokens from contributing products",
    "schemaVersion": 1,
    "snapshotDate": "2026-08-09",
    "lastUpdatedAt": "2026-08-09T12:20:08.480796+00:00",
    "previousLifetimeTokens": 165379019338,
    "lifetimeTokens": 165444915616,
    "todayTokens": 65896278,
    "countriesServed": 0,
    "projectsContributing": 1,
    "coverage": "Verified CodeVetter usage baseline. Additional products join the cumulative total through authoritative daily seeds.",
    "pulses": []
  },
  "products": [
    {
      "id": "codevetter",
      "name": "CodeVetter",
      "description": "Execution-backed verification for AI-written software changes — local-first and inspectable.",
      "url": "https://codevetter.com",
      "tier": "core",
      "category": "utility",
      "priority": "P1",
      "spotlight": true,
      "lifecycle": "primary",
      "shareable": true,
      "maturity": "experiment",
      "changelogUrl": "https://codevetter.com/changelog",
      "repositoryUrl": "https://github.com/Codevetter/codevetter",
      "roadmapUrl": "https://github.com/Codevetter/codevetter/issues",
      "pillarId": "build",
      "purposeContract": {
        "purpose": "CodeVetter verifies whether AI-written software changes actually satisfy their task, not merely whether the diff looks plausible.",
        "audience": "Developers and teams shipping code produced with AI agents.",
        "outcome": "Higher confidence that an agent completed the requested change correctly and safely.",
        "mechanism": "Local-first review combines repository context, executable checks, targeted evaluation, and inspectable verification receipts.",
        "proof": "Published macOS 1.13.9 is signed and notarized. Its CLI has verified real Codex review, passing and failing executable checks, and persisted receipts on a bounded Node fixture.",
        "nextAction": "Try the developer preview on a small local repository. Use the documented manual update path; in-app updating and other review providers remain unqualified."
      }
    },
    {
      "id": "posttrainllm",
      "name": "PostTrainLLM",
      "description": "An experimental browser model playground: run small language models locally with visible generation metrics.",
      "url": "https://posttrainllm.com",
      "tier": "core",
      "category": "utility",
      "priority": "P1",
      "spotlight": true,
      "lifecycle": "primary",
      "shareable": true,
      "maturity": "experiment",
      "changelogUrl": "https://posttrainllm.com/changelog",
      "repositoryUrl": "https://github.com/PostTrainLLM/posttrainllm",
      "roadmapUrl": "https://github.com/PostTrainLLM/posttrainllm/issues",
      "pillarId": "build",
      "purposeContract": {
        "purpose": "PostTrainLLM turns local model-training experiments into measured, reproducible recipes for useful specialist language models.",
        "audience": "Practitioners learning or running post-training workflows on personal Apple hardware and in the browser.",
        "outcome": "Train, evaluate, compare, and run specialist models with evidence about what worked and why.",
        "mechanism": "A local factory joins datasets, training methods, evaluation, experiment tracking, and inference into repeatable recipes.",
        "proof": "The project contains working browser and Mac-local experiments, evaluation infrastructure, and reproducible training paths.",
        "nextAction": "Explore the measured recipes and follow new experiments as they produce reproducible proof rather than scale claims."
      }
    },
    {
      "id": "anime-list",
      "name": "Anime List",
      "description": "Anime and manga discovery with multi-axis filtering and personal watchlists.",
      "url": "https://anime.significanthobbies.com",
      "tier": "secondary",
      "category": "media",
      "priority": "P4",
      "spotlight": false,
      "lifecycle": "active",
      "shareable": true,
      "maturity": "maintained",
      "changelogUrl": "https://anime.significanthobbies.com/changelog",
      "repositoryUrl": "https://github.com/Significant-Hobbies/anime-list",
      "roadmapUrl": "https://github.com/Significant-Hobbies/anime-list/issues",
      "pillarId": "learn",
      "purposeContract": {
        "purpose": "Anime List helps anime and manga fans filter a large catalogue, discover what fits, and maintain a personal watchlist.",
        "audience": "Anime and manga fans who want more precise discovery than a standard catalogue provides.",
        "outcome": "Find suitable titles quickly and keep personal viewing or reading plans organized.",
        "mechanism": "Multi-field search, shareable filters, seasonal discovery, taste tools, schedules, and signed-in watchlists operate over a large synced catalogue.",
        "proof": "The production app serves roughly 35,000 titles and is frequently used; broader community features are intentionally out of scope.",
        "nextAction": "Search the catalogue or use the watchlist; maintenance focuses on data quality and core discovery reliability."
      }
    },
    {
      "id": "gitstat",
      "name": "GitStat",
      "description": "An experimental public GitHub analysis tool for repository activity, contributions and code churn.",
      "url": "https://git.significanthobbies.com",
      "tier": "secondary",
      "category": "experimental",
      "priority": "P2",
      "spotlight": false,
      "lifecycle": "inactive",
      "shareable": true,
      "maturity": "experiment",
      "changelogUrl": "https://git.significanthobbies.com/changelog",
      "repositoryUrl": "https://github.com/sass-maker/gitstat",
      "roadmapUrl": "https://github.com/sass-maker/gitstat/issues",
      "pillarId": "build",
      "purposeContract": {
        "purpose": "GitStat explains how engineering effort, contribution history, and code churn are distributed across many repositories.",
        "audience": "A developer managing enough GitHub projects that the normal contribution graph no longer answers useful questions.",
        "outcome": "See where time and change are going and distinguish sustained work from noisy activity.",
        "mechanism": "A GitHub analytics dashboard aggregates commits, churn, collaboration, and AI-assisted work across the portfolio.",
        "proof": "The maintained dashboard answers the owner’s recurring repository-distribution questions and is considered functionally complete.",
        "nextAction": "Use the dashboard for a concrete portfolio question; request new analysis only when an unanswered recurring question appears."
      }
    },
    {
      "id": "email-manager",
      "name": "Kinetic",
      "description": "A private Gmail workspace for local semantic search, sender insights, and explicit unsubscribe workflows.",
      "url": "https://mail.significanthobbies.com",
      "tier": "active",
      "category": "utility",
      "priority": "P4",
      "spotlight": false,
      "lifecycle": "inactive",
      "shareable": true,
      "maturity": "maintained",
      "changelogUrl": "https://mail.significanthobbies.com/changelog",
      "repositoryUrl": "https://github.com/Significant-Hobbies/email-manager",
      "roadmapUrl": "https://github.com/Significant-Hobbies/email-manager/issues",
      "pillarId": "learn",
      "purposeContract": {
        "purpose": "Kinetic helps a person understand who fills their Gmail inbox and deliberately reduce unwanted volume.",
        "audience": "A Gmail user who wants private search, sender-level insight, and explicit unsubscribe control.",
        "outcome": "Find old mail, identify repeat senders, and unsubscribe with a clear understanding of what will change.",
        "mechanism": "A private Gmail workspace combines local semantic search, sender aggregation, and user-confirmed unsubscribe workflows.",
        "proof": "The maintained application performs its intended search, sender-insight, and unsubscribe jobs in regular use.",
        "nextAction": "Open the private workspace and investigate a sender or search question; no speculative feature expansion is planned."
      }
    },
    {
      "id": "live",
      "name": "Live",
      "description": "A free personality and hobby quiz that suggests a small experiment to try; account planning is not yet qualified.",
      "url": "https://live.significanthobbies.com",
      "tier": "active",
      "category": "media",
      "priority": "P2",
      "spotlight": false,
      "lifecycle": "active",
      "shareable": true,
      "maturity": "experiment",
      "changelogUrl": "https://live.significanthobbies.com/changelog",
      "repositoryUrl": "https://github.com/Significant-Hobbies/live",
      "roadmapUrl": "https://github.com/Significant-Hobbies/live/issues",
      "pillarId": "learn",
      "purposeContract": {
        "purpose": "Live helps a person turn passive wanting into a life they can deliberately imagine, plan, and experience.",
        "audience": "People who want meaningful goals, possibilities, and experiences to look forward to.",
        "outcome": "Build a personal catalogue of things worth doing and keep moving from possibility toward lived experience.",
        "mechanism": "The independent app combines a bucket list, goals, discovery, search, and suggestions around one private life catalogue.",
        "proof": "The product is independently owned, in active dogfooding, and retains its established data and authentication boundary.",
        "nextAction": "Open Live and use the catalogue, search, and suggestions to add or act on something you genuinely want to experience."
      }
    },
    {
      "id": "looptv",
      "name": "LoopTV",
      "description": "An experimental lean-back queue of curated science and other videos.",
      "url": "https://tv.significanthobbies.com",
      "tier": "secondary",
      "category": "media",
      "priority": "P4",
      "spotlight": false,
      "lifecycle": "inactive",
      "shareable": true,
      "maturity": "experiment",
      "changelogUrl": "https://tv.significanthobbies.com/changelog",
      "repositoryUrl": "https://github.com/Significant-Hobbies/looptv",
      "roadmapUrl": "https://github.com/Significant-Hobbies/looptv/issues",
      "pillarId": "learn",
      "purposeContract": {
        "purpose": "LoopTV turns curated YouTube channels into a calmer, lean-back television experience.",
        "audience": "Viewers who want intentional channel selection without YouTube’s endless recommendation feed.",
        "outcome": "Start watching something suitable quickly while retaining control over the available catalogue.",
        "mechanism": "A TV-like random player uses curated channels, focused search, and resilient handling of unavailable videos.",
        "proof": "The maintained product is complete for its intended viewing loop and already handles common catalogue failures.",
        "nextAction": "Open a curated channel and watch; future changes are limited to catalogue health or a proven viewing need."
      }
    },
    {
      "id": "chatgpt-memory-insights",
      "name": "Memory Map",
      "description": "A browser-local experiment for importing a ChatGPT export, exploring semantic themes and search, and optionally saving analysis on your device.",
      "url": "https://chatgpt.significanthobbies.com",
      "tier": "secondary",
      "category": "utility",
      "priority": "P2",
      "spotlight": false,
      "lifecycle": "inactive",
      "shareable": true,
      "maturity": "experiment",
      "changelogUrl": "https://chatgpt.significanthobbies.com/changelog",
      "repositoryUrl": "https://github.com/Significant-Hobbies/chatgpt-memory-insights",
      "roadmapUrl": "https://github.com/Significant-Hobbies/chatgpt-memory-insights/issues",
      "pillarId": "learn",
      "purposeContract": {
        "purpose": "Memory Map turns an exported AI conversation history into a private map of recurring themes, facts, emotions, and change.",
        "audience": "People curious about patterns across their own ChatGPT history who do not want to upload the archive to a service.",
        "outcome": "Recognize recurring concerns and how interests, language, and personal themes changed over time.",
        "mechanism": "The browser computes structured conversation analysis locally from an imported export and presents linked historical views.",
        "proof": "A useful browser-local dashboard exists today; deeper shift analysis and additional export sources remain active work.",
        "nextAction": "Import a ChatGPT export locally and explore the resulting private map; the source archive stays in the browser."
      }
    },
    {
      "id": "rolepatch",
      "name": "RolePatch",
      "description": "A guest resume-tailoring experiment with a reviewable diff and browser-local document exports.",
      "url": "https://rolepatch.com",
      "tier": "secondary",
      "category": "utility",
      "priority": "P2",
      "spotlight": false,
      "lifecycle": "inactive",
      "shareable": true,
      "maturity": "maintained",
      "changelogUrl": "https://rolepatch.com/changelog",
      "repositoryUrl": "https://github.com/Significant-Hobbies/rolepatch",
      "roadmapUrl": "https://github.com/Significant-Hobbies/rolepatch/issues",
      "pillarId": "build",
      "purposeContract": {
        "purpose": "RolePatch tailors a resume and supporting application material to the evidence and language of a specific job.",
        "audience": "A job seeker preparing a serious application for a particular role.",
        "outcome": "Present relevant experience more clearly and prepare for the role without inventing qualifications.",
        "mechanism": "Paste a resume and job description, review the generated changes, save in the browser, and export the current document.",
        "proof": "The guest resume, tailoring, review, save/reload and local document-export path has been verified with synthetic examples. Account sync and broader application tools remain unqualified.",
        "nextAction": "Try the guest workflow for one job, review every proposed claim, and export the version you want to use."
      }
    },
    {
      "id": "saas-maker",
      "name": "SaaS Maker",
      "description": "A public directory of working experiments, reference projects and reusable tooling.",
      "url": "https://sassmaker.com",
      "tier": "active",
      "category": "media",
      "priority": "P2",
      "spotlight": false,
      "lifecycle": "active",
      "shareable": true,
      "maturity": "experiment",
      "changelogUrl": "https://sassmaker.com/changelog",
      "repositoryUrl": "https://github.com/sass-maker/saas-maker",
      "roadmapUrl": "https://github.com/sass-maker/saas-maker/issues",
      "pillarId": "build",
      "purposeContract": {
        "purpose": "SaaS Maker is the public product studio and reusable tooling workshop for the Fleet portfolio.",
        "audience": "Visitors exploring Sarthak’s products and builders consuming the studio’s public packages, workflows, and evidence.",
        "outcome": "Understand the body of work and reuse the tools that have earned a stable place across its products.",
        "mechanism": "A generated public directory sits beside shared feedback, UI, workflow, skill, and automation tooling maintained through real Fleet use.",
        "proof": "It publishes the canonical privacy-safe project directory and houses packages and tooling used by multiple independent repositories.",
        "nextAction": "Explore the complete directory or open the public tooling catalogue; product-specific work continues in each owning repository."
      }
    },
    {
      "id": "sarthakagrawal-personal",
      "name": "Sarthak Agrawal",
      "description": "Selected engineering case studies, technical writing and working project demonstrations.",
      "url": "https://sarthakagrawal.dev",
      "tier": "secondary",
      "category": "media",
      "priority": "P4",
      "spotlight": false,
      "lifecycle": "inactive",
      "shareable": true,
      "maturity": "experiment",
      "changelogUrl": "https://sarthakagrawal.dev/changelog",
      "repositoryUrl": "https://github.com/sarthakagrawal927/portfolio",
      "roadmapUrl": "https://github.com/sarthakagrawal927/portfolio/issues",
      "pillarId": "personal",
      "purposeContract": {
        "purpose": "Sarthak Agrawal’s personal site is the durable public record of his work, writing, résumé, and professional identity.",
        "audience": "People evaluating Sarthak as an AI infrastructure and product engineer, collaborator, or builder.",
        "outcome": "Understand what he works on, what he has built, and how to verify or contact him.",
        "mechanism": "A maintained portfolio connects current positioning to selected projects, writing, résumé evidence, and public profiles.",
        "proof": "The public site is complete and satisfactory as the canonical professional record; updates follow changes in the underlying work.",
        "nextAction": "Explore the current work and résumé or use the listed contact paths; do not infer stale focus areas from older copy."
      }
    },
    {
      "id": "starboard",
      "name": "Starboard",
      "description": "Explore public GitHub repositories and related projects through a searchable discovery experiment.",
      "url": "https://starboard.codevetter.com",
      "tier": "secondary",
      "category": "utility",
      "priority": "P2",
      "spotlight": false,
      "lifecycle": "active",
      "shareable": true,
      "maturity": "experiment",
      "changelogUrl": "https://starboard.codevetter.com/changelog",
      "repositoryUrl": "https://github.com/Codevetter/starboard",
      "roadmapUrl": "https://github.com/Codevetter/starboard/issues",
      "pillarId": "learn",
      "purposeContract": {
        "purpose": "Starboard makes a large GitHub Stars collection useful for personal exploration and project-aware tool discovery.",
        "audience": "Developers whose saved repositories have outgrown GitHub’s default starred-items interface.",
        "outcome": "Rediscover relevant tools, understand why they were saved, and connect them to current project needs.",
        "mechanism": "Synchronization, search, tags, lists, semantic retrieval, and project-aware recommendations operate over the user’s saved repositories.",
        "proof": "Core sync, search, organization, and project-aware discovery are largely complete and under focused active improvement.",
        "nextAction": "Connect or explore a Stars collection and use a current project question to drive discovery; avoid unrelated alert or reporting scope."
      }
    },
    {
      "id": "swe-interview-prep",
      "name": "SWE Interview Prep",
      "description": "A learning OS for software-engineering interview practice.",
      "url": "https://learn.significanthobbies.com",
      "tier": "secondary",
      "category": "media",
      "priority": "P2",
      "spotlight": false,
      "lifecycle": "active",
      "shareable": true,
      "maturity": "maintained",
      "changelogUrl": "https://learn.significanthobbies.com/changelog",
      "repositoryUrl": "https://github.com/Significant-Hobbies/swe-interview-prep",
      "roadmapUrl": "https://github.com/Significant-Hobbies/swe-interview-prep/issues",
      "pillarId": "learn",
      "purposeContract": {
        "purpose": "SWE Interview Prep is a personal learning OS that turns software-engineering study into retained, artifact-backed understanding.",
        "audience": "Software engineers preparing for interviews or strengthening practical technical judgment through active study.",
        "outcome": "Build causal understanding that survives recall and can be demonstrated through code, diagrams, explanations, or projects.",
        "mechanism": "An evidence-gated Concept → Drill → Build → Review → Apply loop combines retrieval practice, Feynman explain-backs, roadmaps, and adaptive review.",
        "proof": "A fresh guest can complete a graded TypeScript drill and return to saved code in the same browser. Account sync and AI-graded mastery require sign-in and remain separately unqualified.",
        "nextAction": "Try a coding drill as a guest; progress stays in this browser. Use the issue tracker for account-sync qualification limits."
      }
    }
  ],
  "directory": [
    {
      "id": "codevetter",
      "name": "CodeVetter",
      "description": "Execution-backed verification for AI-written software changes — local-first and inspectable.",
      "makerNote": "I built CodeVetter to make reviewing AI-generated code rigorous without giving up a local-first workflow.",
      "purposeContract": {
        "purpose": "CodeVetter verifies whether AI-written software changes actually satisfy their task, not merely whether the diff looks plausible.",
        "audience": "Developers and teams shipping code produced with AI agents.",
        "outcome": "Higher confidence that an agent completed the requested change correctly and safely.",
        "mechanism": "Local-first review combines repository context, executable checks, targeted evaluation, and inspectable verification receipts.",
        "proof": "Published macOS 1.13.9 is signed and notarized. Its CLI has verified real Codex review, passing and failing executable checks, and persisted receipts on a bounded Node fixture.",
        "nextAction": "Try the developer preview on a small local repository. Use the documented manual update path; in-app updating and other review providers remain unqualified."
      },
      "kind": "product",
      "category": "utility",
      "form": "Desktop app",
      "platforms": [
        "macOS"
      ],
      "technologies": [
        "Swift",
        "SwiftUI",
        "Rust",
        "SQLite"
      ],
      "group": "featured",
      "lifecycle": "primary",
      "shareable": true,
      "deployed": true,
      "deploymentProviders": [
        "Cloudflare Pages",
        "Cloudflare Workers"
      ],
      "domains": [
        "codevetter.com"
      ],
      "url": "https://codevetter.com",
      "repositoryUrl": "https://github.com/Codevetter/codevetter",
      "changelogUrl": "https://codevetter.com/changelog",
      "roadmapUrl": "https://github.com/Codevetter/codevetter/issues",
      "firstCommitAt": "2025-11-30",
      "latestCommitAt": "2026-09-09"
    },
    {
      "id": "posttrainllm",
      "name": "PostTrainLLM",
      "description": "An experimental browser model playground: run small language models locally with visible generation metrics.",
      "makerNote": "I use PostTrainLLM to explore local model training and turn those experiments into repeatable recipes for specialist models.",
      "purposeContract": {
        "purpose": "PostTrainLLM turns local model-training experiments into measured, reproducible recipes for useful specialist language models.",
        "audience": "Practitioners learning or running post-training workflows on personal Apple hardware and in the browser.",
        "outcome": "Train, evaluate, compare, and run specialist models with evidence about what worked and why.",
        "mechanism": "A local factory joins datasets, training methods, evaluation, experiment tracking, and inference into repeatable recipes.",
        "proof": "The project contains working browser and Mac-local experiments, evaluation infrastructure, and reproducible training paths.",
        "nextAction": "Explore the measured recipes and follow new experiments as they produce reproducible proof rather than scale claims."
      },
      "kind": "product",
      "category": "utility",
      "form": "Research platform",
      "platforms": [
        "Web",
        "Local"
      ],
      "technologies": [
        "Astro",
        "Python",
        "Rust",
        "Cloudflare Pages"
      ],
      "group": "featured",
      "lifecycle": "primary",
      "shareable": true,
      "deployed": true,
      "deploymentProviders": [
        "Cloudflare Pages"
      ],
      "domains": [
        "posttrainllm.com"
      ],
      "url": "https://posttrainllm.com",
      "repositoryUrl": "https://github.com/PostTrainLLM/posttrainllm",
      "changelogUrl": "https://posttrainllm.com/changelog",
      "roadmapUrl": "https://github.com/PostTrainLLM/posttrainllm/issues",
      "firstCommitAt": "2026-05-21",
      "latestCommitAt": "2026-09-07"
    },
    {
      "id": "live",
      "name": "Live",
      "description": "A free personality and hobby quiz that suggests a small experiment to try; account planning is not yet qualified.",
      "makerNote": "I wanted a product that helps people live more intentionally through goals, possibilities, and things worth anticipating.",
      "purposeContract": {
        "purpose": "Live helps a person turn passive wanting into a life they can deliberately imagine, plan, and experience.",
        "audience": "People who want meaningful goals, possibilities, and experiences to look forward to.",
        "outcome": "Build a personal catalogue of things worth doing and keep moving from possibility toward lived experience.",
        "mechanism": "The independent app combines a bucket list, goals, discovery, search, and suggestions around one private life catalogue.",
        "proof": "The product is independently owned, in active dogfooding, and retains its established data and authentication boundary.",
        "nextAction": "Open Live and use the catalogue, search, and suggestions to add or act on something you genuinely want to experience."
      },
      "kind": "product",
      "category": "media",
      "form": "Web app",
      "platforms": [
        "Web"
      ],
      "technologies": [
        "Next.js",
        "TypeScript",
        "Cloudflare Workers",
        "D1"
      ],
      "group": "current",
      "lifecycle": "active",
      "shareable": true,
      "deployed": true,
      "deploymentProviders": [
        "Cloudflare Workers"
      ],
      "domains": [
        "live.significanthobbies.com"
      ],
      "url": "https://live.significanthobbies.com",
      "repositoryUrl": "https://github.com/Significant-Hobbies/live",
      "changelogUrl": "https://live.significanthobbies.com/changelog",
      "roadmapUrl": "https://github.com/Significant-Hobbies/live/issues",
      "firstCommitAt": "2026-03-01",
      "latestCommitAt": "2026-09-09"
    },
    {
      "id": "saas-maker",
      "name": "SaaS Maker",
      "description": "A public directory of working experiments, reference projects and reusable tooling.",
      "makerNote": "I use SaaS Maker as the public home for Fleet and as a workshop for reusable feedback, workflow, and automation tools.",
      "purposeContract": {
        "purpose": "SaaS Maker is the public product studio and reusable tooling workshop for the Fleet portfolio.",
        "audience": "Visitors exploring Sarthak’s products and builders consuming the studio’s public packages, workflows, and evidence.",
        "outcome": "Understand the body of work and reuse the tools that have earned a stable place across its products.",
        "mechanism": "A generated public directory sits beside shared feedback, UI, workflow, skill, and automation tooling maintained through real Fleet use.",
        "proof": "It publishes the canonical privacy-safe project directory and houses packages and tooling used by multiple independent repositories.",
        "nextAction": "Explore the complete directory or open the public tooling catalogue; product-specific work continues in each owning repository."
      },
      "kind": "product",
      "category": "media",
      "form": "Web directory and service",
      "platforms": [
        "Web",
        "API"
      ],
      "technologies": [
        "Astro",
        "Cloudflare",
        "D1",
        "IssuePages"
      ],
      "group": "current",
      "lifecycle": "active",
      "shareable": true,
      "deployed": true,
      "deploymentProviders": [
        "Cloudflare Pages",
        "Cloudflare Workers"
      ],
      "domains": [
        "sassmaker.com"
      ],
      "url": "https://sassmaker.com",
      "repositoryUrl": "https://github.com/sass-maker/saas-maker",
      "changelogUrl": "https://sassmaker.com/changelog",
      "roadmapUrl": "https://github.com/sass-maker/saas-maker/issues",
      "firstCommitAt": "2026-02-26",
      "latestCommitAt": "2026-09-09"
    },
    {
      "id": "gitstat",
      "name": "GitStat",
      "description": "An experimental public GitHub analysis tool for repository activity, contributions and code churn.",
      "makerNote": "I built GitStat to understand how my time and code churn are distributed across a large collection of repositories.",
      "purposeContract": {
        "purpose": "GitStat explains how engineering effort, contribution history, and code churn are distributed across many repositories.",
        "audience": "A developer managing enough GitHub projects that the normal contribution graph no longer answers useful questions.",
        "outcome": "See where time and change are going and distinguish sustained work from noisy activity.",
        "mechanism": "A GitHub analytics dashboard aggregates commits, churn, collaboration, and AI-assisted work across the portfolio.",
        "proof": "The maintained dashboard answers the owner’s recurring repository-distribution questions and is considered functionally complete.",
        "nextAction": "Use the dashboard for a concrete portfolio question; request new analysis only when an unanswered recurring question appears."
      },
      "kind": "product",
      "category": "experimental",
      "form": "Web app",
      "platforms": [
        "Web"
      ],
      "technologies": [
        "React",
        "Vite",
        "TypeScript",
        "Cloudflare Pages"
      ],
      "group": "past",
      "lifecycle": "inactive",
      "shareable": true,
      "deployed": true,
      "deploymentProviders": [
        "Cloudflare Pages"
      ],
      "domains": [
        "git.significanthobbies.com"
      ],
      "url": "https://git.significanthobbies.com",
      "repositoryUrl": "https://github.com/sass-maker/gitstat",
      "changelogUrl": "https://git.significanthobbies.com/changelog",
      "roadmapUrl": "https://github.com/sass-maker/gitstat/issues",
      "firstCommitAt": "2026-08-21",
      "latestCommitAt": "2026-09-06"
    },
    {
      "id": "email-manager",
      "name": "Kinetic",
      "description": "A private Gmail workspace for local semantic search, sender insights, and explicit unsubscribe workflows.",
      "makerNote": "Gmail did not help me see who was filling my inbox, so I built a clearer way to understand volume and unsubscribe.",
      "purposeContract": {
        "purpose": "Kinetic helps a person understand who fills their Gmail inbox and deliberately reduce unwanted volume.",
        "audience": "A Gmail user who wants private search, sender-level insight, and explicit unsubscribe control.",
        "outcome": "Find old mail, identify repeat senders, and unsubscribe with a clear understanding of what will change.",
        "mechanism": "A private Gmail workspace combines local semantic search, sender aggregation, and user-confirmed unsubscribe workflows.",
        "proof": "The maintained application performs its intended search, sender-insight, and unsubscribe jobs in regular use.",
        "nextAction": "Open the private workspace and investigate a sender or search question; no speculative feature expansion is planned."
      },
      "kind": "product",
      "category": "utility",
      "form": "Web app",
      "platforms": [
        "Web",
        "API"
      ],
      "technologies": [
        "React",
        "Hono",
        "Cloudflare Workers",
        "D1"
      ],
      "group": "past",
      "lifecycle": "inactive",
      "shareable": true,
      "deployed": true,
      "deploymentProviders": [
        "Cloudflare Workers"
      ],
      "domains": [
        "mail.significanthobbies.com"
      ],
      "url": "https://mail.significanthobbies.com",
      "repositoryUrl": "https://github.com/Significant-Hobbies/email-manager",
      "changelogUrl": "https://mail.significanthobbies.com/changelog",
      "roadmapUrl": "https://github.com/Significant-Hobbies/email-manager/issues",
      "firstCommitAt": "2026-02-24",
      "latestCommitAt": "2026-09-09"
    },
    {
      "id": "chatgpt-memory-insights",
      "name": "Memory Map",
      "description": "A browser-local experiment for importing a ChatGPT export, exploring semantic themes and search, and optionally saving analysis on your device.",
      "makerNote": "I wanted to learn what my exported AI conversations reveal about my themes, emotions, memory, and personal change.",
      "purposeContract": {
        "purpose": "Memory Map turns an exported AI conversation history into a private map of recurring themes, facts, emotions, and change.",
        "audience": "People curious about patterns across their own ChatGPT history who do not want to upload the archive to a service.",
        "outcome": "Recognize recurring concerns and how interests, language, and personal themes changed over time.",
        "mechanism": "The browser computes structured conversation analysis locally from an imported export and presents linked historical views.",
        "proof": "A useful browser-local dashboard exists today; deeper shift analysis and additional export sources remain active work.",
        "nextAction": "Import a ChatGPT export locally and explore the resulting private map; the source archive stays in the browser."
      },
      "kind": "product",
      "category": "utility",
      "form": "Web app",
      "platforms": [
        "Web"
      ],
      "technologies": [
        "Astro",
        "TypeScript",
        "Cloudflare Pages"
      ],
      "group": "past",
      "lifecycle": "inactive",
      "shareable": true,
      "deployed": true,
      "deploymentProviders": [
        "Cloudflare Pages"
      ],
      "domains": [
        "chatgpt.significanthobbies.com"
      ],
      "url": "https://chatgpt.significanthobbies.com",
      "repositoryUrl": "https://github.com/Significant-Hobbies/chatgpt-memory-insights",
      "changelogUrl": "https://chatgpt.significanthobbies.com/changelog",
      "roadmapUrl": "https://github.com/Significant-Hobbies/chatgpt-memory-insights/issues",
      "firstCommitAt": "2026-07-28",
      "latestCommitAt": "2026-09-07"
    },
    {
      "id": "on-record",
      "name": "High Signal Podcasts",
      "description": "Search evidenced podcast claims and follow links back to the original episode or publication.",
      "makerNote": "I’m building High Signal Podcasts to extract useful insights, recommendations, and emerging technology signals from top podcasts without listening to every episode.",
      "purposeContract": {
        "purpose": "High Signal Podcasts indexes evidenced claims, recommendations, books, and tools mentioned by notable podcast guests.",
        "audience": "People who want useful ideas from important podcasts without listening to every episode end to end.",
        "outcome": "Find what a person actually said or recommended and trace it back to the source episode.",
        "mechanism": "A source-backed corpus extracts attributable claims and organizes them into people, topics, books, tools, and emerging signals.",
        "proof": "The public corpus is live with 11,624 published claims, 294 named references, and 1,190 episodes with evidence.",
        "nextAction": "Explore the finished experiment; no ongoing roadmap or maintenance promise."
      },
      "kind": "product",
      "category": "media",
      "form": "Podcast intelligence web app",
      "platforms": [
        "Web",
        "API"
      ],
      "technologies": [
        "Astro",
        "Hono",
        "Cloudflare Workers",
        "D1"
      ],
      "group": "past",
      "lifecycle": "inactive",
      "shareable": true,
      "deployed": true,
      "deploymentProviders": [
        "Cloudflare Workers"
      ],
      "domains": [
        "podcasts.highsignal.app"
      ],
      "url": "https://podcasts.highsignal.app",
      "repositoryUrl": "https://github.com/Significant-Hobbies/on-record",
      "roadmapUrl": "https://github.com/Significant-Hobbies/on-record/issues",
      "firstCommitAt": "2026-08-24",
      "latestCommitAt": "2026-09-07"
    },
    {
      "id": "issue-pages",
      "name": "IssuePages",
      "description": "Read public GitHub issues as focused articles; publishing requires repository-owner access.",
      "makerNote": "I wanted publishing a public page to be as simple as opening a GitHub issue.",
      "purposeContract": {
        "purpose": "IssuePages turns a GitHub issue into a readable, searchable public page.",
        "audience": "A builder or writer who wants lightweight publishing while keeping GitHub as the editing workflow.",
        "outcome": "Publish and update a durable page without adopting a separate CMS.",
        "mechanism": "An owner-approved issue is rendered into a public page with edit, archive, search, and source-link behavior.",
        "proof": "The owner-only production pilot has proven the issue-to-page loop at issues.sarthakagrawal.dev.",
        "nextAction": "Explore the finished experiment; no ongoing roadmap or maintenance promise."
      },
      "kind": "experiment",
      "category": "experimental",
      "form": "Issue-backed publishing website",
      "platforms": [
        "Web",
        "GitHub"
      ],
      "technologies": [
        "Hono",
        "TypeScript",
        "Cloudflare Workers",
        "D1"
      ],
      "group": "past",
      "lifecycle": "inactive",
      "shareable": true,
      "deployed": true,
      "deploymentProviders": [
        "Cloudflare Workers"
      ],
      "domains": [
        "issues.sarthakagrawal.dev"
      ],
      "url": "https://issues.sarthakagrawal.dev",
      "repositoryUrl": "https://github.com/sarthakagrawal927/issue-pages",
      "roadmapUrl": "https://github.com/sarthakagrawal927/issue-pages/issues",
      "firstCommitAt": "2026-08-25",
      "latestCommitAt": "2026-09-07"
    },
    {
      "id": "research-papers",
      "name": "Research Papers",
      "description": "Search academic papers and follow original sources; account-based research chat is not yet qualified.",
      "makerNote": "I wanted one large, searchable research library where retrieval could help me understand what already exists in a market.",
      "purposeContract": {
        "purpose": "Research Papers is a structured, searchable library for discovering and interrogating academic and market research.",
        "audience": "The Fleet owner investigating a concrete product, technical, or market question.",
        "outcome": "Find relevant papers and retrieve grounded context from a large retained corpus.",
        "mechanism": "A curated research dataset is indexed for search and retrieval-assisted analysis with source structure intact.",
        "proof": "The corpus and discovery system are essentially complete and available when a real research question appears.",
        "nextAction": "Explore the finished experiment; no ongoing roadmap or maintenance promise."
      },
      "kind": "product",
      "category": "media",
      "form": "Research library",
      "platforms": [
        "Web"
      ],
      "technologies": [
        "Astro",
        "Python",
        "React",
        "TypeScript"
      ],
      "group": "past",
      "lifecycle": "inactive",
      "shareable": true,
      "deployed": true,
      "deploymentProviders": [
        "Cloudflare Pages"
      ],
      "domains": [
        "papers.highsignal.app"
      ],
      "url": "https://papers.highsignal.app",
      "repositoryUrl": "https://github.com/High-Signal-App/research-papers",
      "roadmapUrl": "https://github.com/High-Signal-App/research-papers/issues",
      "firstCommitAt": "2026-05-30",
      "latestCommitAt": "2026-09-06"
    },
    {
      "id": "materia",
      "name": "Materia",
      "description": "An educational body-and-remedy reference with condition-specific research citations and explicit uncertainty.",
      "makerNote": "I want to make anatomy explorable and connect body concerns to clear, evidence-based information about treatments and remedies.",
      "purposeContract": {
        "purpose": "Materia explores an anatomy-led, evidence-graded reference for understanding body concerns, treatments, and remedies.",
        "audience": "People seeking a clearer educational map from a body concern to bounded, source-backed information.",
        "outcome": "Understand relevant anatomy and compare remedy evidence without mistaking the product for medical diagnosis.",
        "mechanism": "An interactive body-system model links concerns to structured remedy pages with explicit evidence grades and safety limits.",
        "proof": "A technically ambitious reference exists, but sustained evidence quality, medical safety, and content maintenance are unresolved.",
        "nextAction": "Preserved experiment; no current work or obligation to resume."
      },
      "kind": "experiment",
      "category": "experimental",
      "form": "Interactive experiment",
      "platforms": [
        "Web"
      ],
      "technologies": [
        "Astro",
        "React",
        "Three.js",
        "Cloudflare Pages"
      ],
      "group": "past",
      "lifecycle": "inactive",
      "shareable": true,
      "deployed": true,
      "deploymentProviders": [
        "Cloudflare Pages"
      ],
      "domains": [
        "materia.significanthobbies.com"
      ],
      "url": "https://materia.significanthobbies.com",
      "repositoryUrl": "https://github.com/Significant-Hobbies/materia",
      "roadmapUrl": "https://github.com/Significant-Hobbies/materia/issues",
      "firstCommitAt": "2026-06-21",
      "latestCommitAt": "2026-09-06"
    },
    {
      "id": "anime-list",
      "name": "Anime List",
      "description": "Anime and manga discovery with multi-axis filtering and personal watchlists.",
      "makerNote": "I wanted better anime filtering and discovery than the standard catalog experience, with a watchlist that works for me.",
      "purposeContract": {
        "purpose": "Anime List helps anime and manga fans filter a large catalogue, discover what fits, and maintain a personal watchlist.",
        "audience": "Anime and manga fans who want more precise discovery than a standard catalogue provides.",
        "outcome": "Find suitable titles quickly and keep personal viewing or reading plans organized.",
        "mechanism": "Multi-field search, shareable filters, seasonal discovery, taste tools, schedules, and signed-in watchlists operate over a large synced catalogue.",
        "proof": "The production app serves roughly 35,000 titles and is frequently used; broader community features are intentionally out of scope.",
        "nextAction": "Search the catalogue or use the watchlist; maintenance focuses on data quality and core discovery reliability."
      },
      "kind": "product",
      "category": "media",
      "form": "Web app",
      "platforms": [
        "Web",
        "API"
      ],
      "technologies": [
        "React",
        "Vite",
        "Hono",
        "Cloudflare"
      ],
      "group": "current",
      "lifecycle": "active",
      "shareable": true,
      "deployed": true,
      "deploymentProviders": [
        "Cloudflare Pages",
        "Cloudflare Workers"
      ],
      "domains": [
        "anime.significanthobbies.com"
      ],
      "url": "https://anime.significanthobbies.com",
      "repositoryUrl": "https://github.com/Significant-Hobbies/anime-list",
      "changelogUrl": "https://anime.significanthobbies.com/changelog",
      "roadmapUrl": "https://github.com/Significant-Hobbies/anime-list/issues",
      "firstCommitAt": "2025-02-16",
      "latestCommitAt": "2026-09-08"
    },
    {
      "id": "looptv",
      "name": "LoopTV",
      "description": "An experimental lean-back queue of curated science and other videos.",
      "makerNote": "I wanted a more controlled and curated way to watch YouTube, shaped like television rather than an endless feed.",
      "purposeContract": {
        "purpose": "LoopTV turns curated YouTube channels into a calmer, lean-back television experience.",
        "audience": "Viewers who want intentional channel selection without YouTube’s endless recommendation feed.",
        "outcome": "Start watching something suitable quickly while retaining control over the available catalogue.",
        "mechanism": "A TV-like random player uses curated channels, focused search, and resilient handling of unavailable videos.",
        "proof": "The maintained product is complete for its intended viewing loop and already handles common catalogue failures.",
        "nextAction": "Open a curated channel and watch; future changes are limited to catalogue health or a proven viewing need."
      },
      "kind": "product",
      "category": "media",
      "form": "Web app",
      "platforms": [
        "Web",
        "TV"
      ],
      "technologies": [
        "Astro",
        "React",
        "Vite",
        "Cloudflare Pages"
      ],
      "group": "past",
      "lifecycle": "inactive",
      "shareable": true,
      "deployed": true,
      "deploymentProviders": [
        "Cloudflare Pages"
      ],
      "domains": [
        "tv.significanthobbies.com"
      ],
      "url": "https://tv.significanthobbies.com",
      "repositoryUrl": "https://github.com/Significant-Hobbies/looptv",
      "changelogUrl": "https://tv.significanthobbies.com/changelog",
      "roadmapUrl": "https://github.com/Significant-Hobbies/looptv/issues",
      "firstCommitAt": "2026-04-04",
      "latestCommitAt": "2026-09-07"
    },
    {
      "id": "swe-interview-prep",
      "name": "SWE Interview Prep",
      "description": "A learning OS for software-engineering interview practice.",
      "makerNote": "I built this as a learning-by-doing system that combines Pomodoro, Feynman, retrieval practice, and practical roadmaps.",
      "purposeContract": {
        "purpose": "SWE Interview Prep is a personal learning OS that turns software-engineering study into retained, artifact-backed understanding.",
        "audience": "Software engineers preparing for interviews or strengthening practical technical judgment through active study.",
        "outcome": "Build causal understanding that survives recall and can be demonstrated through code, diagrams, explanations, or projects.",
        "mechanism": "An evidence-gated Concept → Drill → Build → Review → Apply loop combines retrieval practice, Feynman explain-backs, roadmaps, and adaptive review.",
        "proof": "A fresh guest can complete a graded TypeScript drill and return to saved code in the same browser. Account sync and AI-graded mastery require sign-in and remain separately unqualified.",
        "nextAction": "Try a coding drill as a guest; progress stays in this browser. Use the issue tracker for account-sync qualification limits."
      },
      "kind": "product",
      "category": "media",
      "form": "Learning web app",
      "platforms": [
        "Web"
      ],
      "technologies": [
        "React",
        "Vite",
        "TypeScript",
        "Cloudflare Pages"
      ],
      "group": "current",
      "lifecycle": "active",
      "shareable": true,
      "deployed": true,
      "deploymentProviders": [
        "Cloudflare Pages"
      ],
      "domains": [
        "learn.significanthobbies.com"
      ],
      "url": "https://learn.significanthobbies.com",
      "repositoryUrl": "https://github.com/Significant-Hobbies/swe-interview-prep",
      "changelogUrl": "https://learn.significanthobbies.com/changelog",
      "roadmapUrl": "https://github.com/Significant-Hobbies/swe-interview-prep/issues",
      "firstCommitAt": "2026-02-08",
      "latestCommitAt": "2026-09-08"
    },
    {
      "id": "rolepatch",
      "name": "RolePatch",
      "description": "A guest resume-tailoring experiment with a reviewable diff and browser-local document exports.",
      "makerNote": "I wanted a focused way to tailor a resume and its supporting material to the actual job description.",
      "purposeContract": {
        "purpose": "RolePatch tailors a resume and supporting application material to the evidence and language of a specific job.",
        "audience": "A job seeker preparing a serious application for a particular role.",
        "outcome": "Present relevant experience more clearly and prepare for the role without inventing qualifications.",
        "mechanism": "Paste a resume and job description, review the generated changes, save in the browser, and export the current document.",
        "proof": "The guest resume, tailoring, review, save/reload and local document-export path has been verified with synthetic examples. Account sync and broader application tools remain unqualified.",
        "nextAction": "Try the guest workflow for one job, review every proposed claim, and export the version you want to use."
      },
      "kind": "product",
      "category": "utility",
      "form": "Web app",
      "platforms": [
        "Web",
        "API"
      ],
      "technologies": [
        "Next.js",
        "React",
        "Cloudflare Workers",
        "D1"
      ],
      "group": "past",
      "lifecycle": "inactive",
      "shareable": true,
      "deployed": true,
      "deploymentProviders": [
        "Cloudflare Workers"
      ],
      "domains": [
        "rolepatch.com"
      ],
      "url": "https://rolepatch.com",
      "repositoryUrl": "https://github.com/Significant-Hobbies/rolepatch",
      "changelogUrl": "https://rolepatch.com/changelog",
      "roadmapUrl": "https://github.com/Significant-Hobbies/rolepatch/issues",
      "firstCommitAt": "2026-02-23",
      "latestCommitAt": "2026-09-07"
    },
    {
      "id": "starboard",
      "name": "Starboard",
      "description": "Explore public GitHub repositories and related projects through a searchable discovery experiment.",
      "makerNote": "GitHub Stars stopped working for me at scale, so I built a better personal interface for exploring what I had saved.",
      "purposeContract": {
        "purpose": "Starboard makes a large GitHub Stars collection useful for personal exploration and project-aware tool discovery.",
        "audience": "Developers whose saved repositories have outgrown GitHub’s default starred-items interface.",
        "outcome": "Rediscover relevant tools, understand why they were saved, and connect them to current project needs.",
        "mechanism": "Synchronization, search, tags, lists, semantic retrieval, and project-aware recommendations operate over the user’s saved repositories.",
        "proof": "Core sync, search, organization, and project-aware discovery are largely complete and under focused active improvement.",
        "nextAction": "Connect or explore a Stars collection and use a current project question to drive discovery; avoid unrelated alert or reporting scope."
      },
      "kind": "product",
      "category": "utility",
      "form": "Web app",
      "platforms": [
        "Web",
        "API"
      ],
      "technologies": [
        "Next.js",
        "React",
        "Cloudflare Workers",
        "D1"
      ],
      "group": "current",
      "lifecycle": "active",
      "shareable": true,
      "deployed": true,
      "deploymentProviders": [
        "Cloudflare Workers"
      ],
      "domains": [
        "starboard.codevetter.com"
      ],
      "url": "https://starboard.codevetter.com",
      "repositoryUrl": "https://github.com/Codevetter/starboard",
      "changelogUrl": "https://starboard.codevetter.com/changelog",
      "roadmapUrl": "https://github.com/Codevetter/starboard/issues",
      "firstCommitAt": "2026-02-22",
      "latestCommitAt": "2026-09-07"
    },
    {
      "id": "mashup",
      "name": "Mashup",
      "description": "Two playable examples of a local media-editing pipeline, with captions and inspectable source and approval receipts.",
      "makerNote": "I wanted a creator’s archive to become coherent topic-specific compilations instead of a pile of isolated clips.",
      "purposeContract": {
        "purpose": "Mashup turns an owned creator archive into coherent topic-specific compilations while keeping every edit inspectable.",
        "audience": "A creator or operator assembling comedy, motivation, podcast, or clipping compilations from approved media.",
        "outcome": "Find, approve, sequence, and render useful clips without losing source provenance or editorial control.",
        "mechanism": "A local pipeline combines archive analysis, clipping, editable EDLs, source receipts, approval boundaries, and deterministic rendering.",
        "proof": "The first public Startups proof assembles a source-faithful 47-second argument from four beats across three Creative Commons podcast episodes, with captions and media receipts.",
        "nextAction": "Preserved experiment; no current work or obligation to resume."
      },
      "kind": "experiment",
      "category": "experimental",
      "form": "Local media tool with public proof",
      "platforms": [
        "Web",
        "CLI",
        "Local"
      ],
      "technologies": [
        "Python",
        "FFmpeg",
        "Astro",
        "Cloudflare Pages"
      ],
      "group": "past",
      "lifecycle": "inactive",
      "shareable": true,
      "deployed": true,
      "deploymentProviders": [
        "Cloudflare Pages"
      ],
      "domains": [
        "mashup.highsignal.app"
      ],
      "url": "https://mashup.highsignal.app",
      "repositoryUrl": "https://github.com/sass-maker/mashup",
      "roadmapUrl": "https://github.com/sass-maker/mashup/issues",
      "firstCommitAt": "2026-07-25",
      "latestCommitAt": "2026-09-07"
    },
    {
      "id": "web-playables",
      "name": "Web Playables",
      "description": "Small browser-playable game experiments.",
      "makerNote": "I built this laboratory to understand how idle and HTML-based games are designed, shipped, and distributed.",
      "purposeContract": {
        "purpose": "Web Playables is a small laboratory for learning how browser and YouTube-ready games are designed, packaged, and distributed.",
        "audience": "A builder studying reusable HTML5 game mechanics and portable distribution constraints.",
        "outcome": "Prototype a mechanic once and ship it as a normal web game and a submission-ready playable package.",
        "mechanism": "A reusable gamekit supplies loops, saves, offline progress, platform adapters, and builds for a small games hub.",
        "proof": "The research goal produced a working gamekit, a live idle game, and YouTube-compatible packaging; the project is now parked.",
        "nextAction": "Preserved experiment; no current work or obligation to resume."
      },
      "kind": "experiment",
      "category": "experimental",
      "form": "Game collection",
      "platforms": [
        "Web",
        "YouTube Playables"
      ],
      "technologies": [
        "TypeScript",
        "Vite",
        "Cloudflare Pages"
      ],
      "group": "past",
      "lifecycle": "inactive",
      "shareable": true,
      "deployed": true,
      "deploymentProviders": [
        "Cloudflare Pages"
      ],
      "domains": [
        "idle.aliveville.com"
      ],
      "url": "https://idle.aliveville.com",
      "repositoryUrl": "https://github.com/sarthakagrawal927/web-playables",
      "roadmapUrl": "https://github.com/sarthakagrawal927/web-playables/issues",
      "firstCommitAt": "2026-07-10",
      "latestCommitAt": "2026-09-07"
    },
    {
      "id": "what-it-takes-to-win",
      "name": "Look Sideways",
      "description": "Explore sourced career turning points with explicit survivorship and forecasting limits.",
      "makerNote": "I wanted to study the real advantages behind success and replace unhelpful comparison with evidence-based understanding.",
      "purposeContract": {
        "purpose": "Look Sideways shows why visible success cannot be reduced to a simple formula or a fair comparison with your own path.",
        "audience": "Readers who turn another person’s visible outcome into a judgment about their own pace, ability, or worth.",
        "outcome": "Replace flattened comparison with a more humane, evidence-bounded understanding of conditions, sequence, perseverance, and luck.",
        "mechanism": "A guided research exhibit connects source-linked life events and early-breakthrough paths through what people brought, were handed, and were surrounded by.",
        "proof": "The publication contains thousands of documented early-breakthrough paths, visible methodology, and ongoing source-linked profile coverage.",
        "nextAction": "Explore the finished experiment; no ongoing roadmap or maintenance promise."
      },
      "kind": "product",
      "category": "media",
      "form": "Research publication",
      "platforms": [
        "Web"
      ],
      "technologies": [
        "Astro",
        "TypeScript",
        "Cloudflare Pages"
      ],
      "group": "past",
      "lifecycle": "inactive",
      "shareable": true,
      "deployed": true,
      "deploymentProviders": [
        "Cloudflare Pages"
      ],
      "domains": [
        "paths.significanthobbies.com"
      ],
      "url": "https://paths.significanthobbies.com",
      "repositoryUrl": "https://github.com/Significant-Hobbies/what-it-takes-to-win",
      "roadmapUrl": "https://github.com/Significant-Hobbies/what-it-takes-to-win/issues",
      "firstCommitAt": "2026-07-21",
      "latestCommitAt": "2026-09-07"
    },
    {
      "id": "sarthakagrawal-personal",
      "name": "Sarthak Agrawal",
      "description": "Selected engineering case studies, technical writing and working project demonstrations.",
      "makerNote": "I maintain a personal website because I need one durable, accurate public record of my work and professional identity.",
      "purposeContract": {
        "purpose": "Sarthak Agrawal’s personal site is the durable public record of his work, writing, résumé, and professional identity.",
        "audience": "People evaluating Sarthak as an AI infrastructure and product engineer, collaborator, or builder.",
        "outcome": "Understand what he works on, what he has built, and how to verify or contact him.",
        "mechanism": "A maintained portfolio connects current positioning to selected projects, writing, résumé evidence, and public profiles.",
        "proof": "The public site is complete and satisfactory as the canonical professional record; updates follow changes in the underlying work.",
        "nextAction": "Explore the current work and résumé or use the listed contact paths; do not infer stale focus areas from older copy."
      },
      "kind": "product",
      "category": "media",
      "form": "Portfolio website",
      "platforms": [
        "Web"
      ],
      "technologies": [
        "Astro",
        "React",
        "Cloudflare Pages",
        "IssuePages"
      ],
      "group": "past",
      "lifecycle": "inactive",
      "shareable": true,
      "deployed": true,
      "deploymentProviders": [
        "Cloudflare Pages"
      ],
      "domains": [
        "sarthakagrawal.dev"
      ],
      "url": "https://sarthakagrawal.dev",
      "repositoryUrl": "https://github.com/sarthakagrawal927/portfolio",
      "changelogUrl": "https://sarthakagrawal.dev/changelog",
      "roadmapUrl": "https://github.com/sarthakagrawal927/portfolio/issues",
      "firstCommitAt": "2026-05-22",
      "latestCommitAt": "2026-09-07"
    },
    {
      "id": "reddit-insights",
      "name": "Reddit Insights",
      "description": "Search a dated snapshot of 93 Reddit communities in your browser, with links to original posts and explicit provenance limits.",
      "makerNote": "I wanted to understand how the signals and emotions inside a subreddit change over time, even though historical data is difficult to obtain.",
      "purposeContract": {
        "purpose": "Reddit Insights studies how topics, signals, and emotional tone inside a subreddit change over time.",
        "audience": "A researcher or product operator following a specific community longitudinally.",
        "outcome": "Recognize recurring shifts and emerging concerns from a retained body of subreddit evidence.",
        "mechanism": "A bounded collector stores attributable snapshots and derives recurring insight views without claiming unavailable history.",
        "proof": "The collector and snapshot model exist, but reliable lawful access to historical Reddit data remains the central blocker.",
        "nextAction": "Explore the finished experiment; no ongoing roadmap or maintenance promise."
      },
      "kind": "experiment",
      "category": "experimental",
      "form": "Research collector",
      "platforms": [
        "Web",
        "API"
      ],
      "technologies": [
        "TypeScript",
        "Cloudflare Workers",
        "R2"
      ],
      "group": "past",
      "lifecycle": "inactive",
      "shareable": true,
      "deployed": true,
      "deploymentProviders": [
        "Cloudflare Pages",
        "Cloudflare Workers"
      ],
      "domains": [
        "reddit-insights.highsignal.app"
      ],
      "url": "https://reddit-insights.highsignal.app",
      "repositoryUrl": "https://github.com/High-Signal-App/research-subreddit",
      "roadmapUrl": "https://github.com/High-Signal-App/research-subreddit/issues",
      "firstCommitAt": "2026-08-07",
      "latestCommitAt": "2026-09-07"
    }
  ],
  "historySemantics": "firstCommitAt and latestCommitAt are dates from the currently retained Git history. They are not incorporation, launch, or retirement dates.",
  "pastProjects": [
    {
      "id": "on-record",
      "name": "High Signal Podcasts",
      "description": "Search evidenced podcast claims and follow links back to the original episode or publication.",
      "lifecycle": "inactive",
      "category": "media",
      "shareable": true,
      "repositoryUrl": "https://github.com/Significant-Hobbies/on-record",
      "purposeContract": {
        "purpose": "High Signal Podcasts indexes evidenced claims, recommendations, books, and tools mentioned by notable podcast guests.",
        "audience": "People who want useful ideas from important podcasts without listening to every episode end to end.",
        "outcome": "Find what a person actually said or recommended and trace it back to the source episode.",
        "mechanism": "A source-backed corpus extracts attributable claims and organizes them into people, topics, books, tools, and emerging signals.",
        "proof": "The public corpus is live with 11,624 published claims, 294 named references, and 1,190 episodes with evidence.",
        "nextAction": "Explore the finished experiment; no ongoing roadmap or maintenance promise."
      }
    },
    {
      "id": "issue-pages",
      "name": "IssuePages",
      "description": "Read public GitHub issues as focused articles; publishing requires repository-owner access.",
      "lifecycle": "inactive",
      "category": "experimental",
      "shareable": true,
      "repositoryUrl": "https://github.com/sarthakagrawal927/issue-pages",
      "purposeContract": {
        "purpose": "IssuePages turns a GitHub issue into a readable, searchable public page.",
        "audience": "A builder or writer who wants lightweight publishing while keeping GitHub as the editing workflow.",
        "outcome": "Publish and update a durable page without adopting a separate CMS.",
        "mechanism": "An owner-approved issue is rendered into a public page with edit, archive, search, and source-link behavior.",
        "proof": "The owner-only production pilot has proven the issue-to-page loop at issues.sarthakagrawal.dev.",
        "nextAction": "Explore the finished experiment; no ongoing roadmap or maintenance promise."
      }
    },
    {
      "id": "what-it-takes-to-win",
      "name": "Look Sideways",
      "description": "Explore sourced career turning points with explicit survivorship and forecasting limits.",
      "lifecycle": "inactive",
      "category": "media",
      "shareable": true,
      "repositoryUrl": "https://github.com/Significant-Hobbies/what-it-takes-to-win",
      "purposeContract": {
        "purpose": "Look Sideways shows why visible success cannot be reduced to a simple formula or a fair comparison with your own path.",
        "audience": "Readers who turn another person’s visible outcome into a judgment about their own pace, ability, or worth.",
        "outcome": "Replace flattened comparison with a more humane, evidence-bounded understanding of conditions, sequence, perseverance, and luck.",
        "mechanism": "A guided research exhibit connects source-linked life events and early-breakthrough paths through what people brought, were handed, and were surrounded by.",
        "proof": "The publication contains thousands of documented early-breakthrough paths, visible methodology, and ongoing source-linked profile coverage.",
        "nextAction": "Explore the finished experiment; no ongoing roadmap or maintenance promise."
      }
    },
    {
      "id": "mashup",
      "name": "Mashup",
      "description": "Two playable examples of a local media-editing pipeline, with captions and inspectable source and approval receipts.",
      "lifecycle": "inactive",
      "category": "experimental",
      "shareable": true,
      "repositoryUrl": "https://github.com/sass-maker/mashup",
      "purposeContract": {
        "purpose": "Mashup turns an owned creator archive into coherent topic-specific compilations while keeping every edit inspectable.",
        "audience": "A creator or operator assembling comedy, motivation, podcast, or clipping compilations from approved media.",
        "outcome": "Find, approve, sequence, and render useful clips without losing source provenance or editorial control.",
        "mechanism": "A local pipeline combines archive analysis, clipping, editable EDLs, source receipts, approval boundaries, and deterministic rendering.",
        "proof": "The first public Startups proof assembles a source-faithful 47-second argument from four beats across three Creative Commons podcast episodes, with captions and media receipts.",
        "nextAction": "Preserved experiment; no current work or obligation to resume."
      }
    },
    {
      "id": "materia",
      "name": "Materia",
      "description": "An educational body-and-remedy reference with condition-specific research citations and explicit uncertainty.",
      "lifecycle": "inactive",
      "category": "experimental",
      "shareable": true,
      "repositoryUrl": "https://github.com/Significant-Hobbies/materia",
      "purposeContract": {
        "purpose": "Materia explores an anatomy-led, evidence-graded reference for understanding body concerns, treatments, and remedies.",
        "audience": "People seeking a clearer educational map from a body concern to bounded, source-backed information.",
        "outcome": "Understand relevant anatomy and compare remedy evidence without mistaking the product for medical diagnosis.",
        "mechanism": "An interactive body-system model links concerns to structured remedy pages with explicit evidence grades and safety limits.",
        "proof": "A technically ambitious reference exists, but sustained evidence quality, medical safety, and content maintenance are unresolved.",
        "nextAction": "Preserved experiment; no current work or obligation to resume."
      }
    },
    {
      "id": "reddit-insights",
      "name": "Reddit Insights",
      "description": "Search a dated snapshot of 93 Reddit communities in your browser, with links to original posts and explicit provenance limits.",
      "lifecycle": "inactive",
      "category": "experimental",
      "shareable": true,
      "repositoryUrl": "https://github.com/High-Signal-App/research-subreddit",
      "purposeContract": {
        "purpose": "Reddit Insights studies how topics, signals, and emotional tone inside a subreddit change over time.",
        "audience": "A researcher or product operator following a specific community longitudinally.",
        "outcome": "Recognize recurring shifts and emerging concerns from a retained body of subreddit evidence.",
        "mechanism": "A bounded collector stores attributable snapshots and derives recurring insight views without claiming unavailable history.",
        "proof": "The collector and snapshot model exist, but reliable lawful access to historical Reddit data remains the central blocker.",
        "nextAction": "Explore the finished experiment; no ongoing roadmap or maintenance promise."
      }
    },
    {
      "id": "research-papers",
      "name": "Research Papers",
      "description": "Search academic papers and follow original sources; account-based research chat is not yet qualified.",
      "lifecycle": "inactive",
      "category": "media",
      "shareable": true,
      "repositoryUrl": "https://github.com/High-Signal-App/research-papers",
      "purposeContract": {
        "purpose": "Research Papers is a structured, searchable library for discovering and interrogating academic and market research.",
        "audience": "The Fleet owner investigating a concrete product, technical, or market question.",
        "outcome": "Find relevant papers and retrieve grounded context from a large retained corpus.",
        "mechanism": "A curated research dataset is indexed for search and retrieval-assisted analysis with source structure intact.",
        "proof": "The corpus and discovery system are essentially complete and available when a real research question appears.",
        "nextAction": "Explore the finished experiment; no ongoing roadmap or maintenance promise."
      }
    },
    {
      "id": "web-playables",
      "name": "Web Playables",
      "description": "Small browser-playable game experiments.",
      "lifecycle": "inactive",
      "category": "experimental",
      "shareable": true,
      "repositoryUrl": "https://github.com/sarthakagrawal927/web-playables",
      "purposeContract": {
        "purpose": "Web Playables is a small laboratory for learning how browser and YouTube-ready games are designed, packaged, and distributed.",
        "audience": "A builder studying reusable HTML5 game mechanics and portable distribution constraints.",
        "outcome": "Prototype a mechanic once and ship it as a normal web game and a submission-ready playable package.",
        "mechanism": "A reusable gamekit supplies loops, saves, offline progress, platform adapters, and builds for a small games hub.",
        "proof": "The research goal produced a working gamekit, a live idle game, and YouTube-compatible packaging; the project is now parked.",
        "nextAction": "Preserved experiment; no current work or obligation to resume."
      }
    }
  ],
  "learnings": [
    {
      "slug": "skills-should-declare-capabilities-not-model-names",
      "title": "Skills should declare capabilities, not model names",
      "description": "Why portable agent skills need provider-neutral intelligence and reasoning requirements, and how Fleet is testing the idea.",
      "publishedAt": "2026-07-28",
      "publishedLabel": "July 28, 2026",
      "readingTime": "7 min read",
      "author": "Sarthak Agrawal",
      "href": "/learnings/skills-should-declare-capabilities-not-model-names",
      "markdown": "# Skills should declare capabilities, not model names\n\nAgents choose models. Skills should say what they need.\n\nA working method applied across 28 Fleet-owned skills.\n\n- Published: 2026-07-28\n- Author: Sarthak Agrawal\n- Reading time: 7 min read\n- Canonical HTML: https://sassmaker.com/learnings/skills-should-declare-capabilities-not-model-names\n\n~~~json\n{\n  \"recommended\": {\n    \"intelligence\": \"frontier\",\n    \"reasoning\": \"high\"\n  },\n  \"minimum\": {\n    \"intelligence\": \"balanced\",\n    \"reasoning\": \"high\"\n  },\n  \"degradation\": \"deny\"\n}\n~~~\n\nOnce a skill library grows past a handful of prompts, model selection becomes part of skill design whether you acknowledge it or not. Some skills mostly retrieve facts and format results. Others make product decisions, validate claims, or act in public.\n\nI ran into this while building two marketing skills. One audits search coverage and publishes missing pages. The other plans a launch, writes the campaign, and can carry an approved plan into public channels. Giving every step the strongest model would waste money. Letting an underpowered model handle claims or submissions would be careless.\n\nThe obvious answer is to put a model name in each skill. It is also the wrong abstraction for a portable skill. The better method is small, practical, and not especially revolutionary: let the skill declare the capability it needs, then let the host decide how to provide it.\n\n## Is a skill an agent?\n\nNo. This distinction matters more than it first appears.\n\nAn agent is the active runtime. It has a model, tools, permissions, context, and an execution loop. A skill is a package of instructions and resources that the runtime loads when a job calls for it.\n\nThe agent decides and acts. The skill changes how it approaches one class of work. If a skill hard-codes a model, it starts taking over a decision that usually belongs to the host.\n\n## Has anyone already done this?\n\nYes, at least part of it.\n\nClaude Code supports `model` and `effort` directly in skill frontmatter. That is the clearest version of the idea I found, and it is useful. The [Claude Code documentation](https://code.claude.com/docs/en/slash-commands#frontmatter-reference) says the model override lasts for the current turn.\n\nAgent frameworks make the same choice one layer higher. The [OpenAI Agents SDK](https://openai.github.io/openai-agents-python/models/) supports model selection per agent or run. LangChain's [skills pattern](https://docs.langchain.com/oss/python/langchain/multi-agent/skills) loads specialized prompts into an agent whose model is configured separately.\n\nSo model-aware execution is not new. The portable part is still awkward.\n\n## What is missing?\n\nThe open [Agent Skills specification](https://agentskills.io/specification) defines the portable package. Its standard fields cover identity, description, compatibility, metadata, and allowed tools. It does not define model or reasoning requirements.\n\nA literal model field would not fully solve that problem. A model name can be absent on another host, blocked by company policy, too expensive for the current run, or replaced next month. Even reasoning controls use different names across providers.\n\nThe skill knows the quality of work it needs. The host knows which runtimes are available. The contract should connect those two facts without pretending they are the same fact.\n\n> Declare the need, set a floor, choose what degradation means, and leave model mapping to the host.\n\n## What is the methodology?\n\nA useful skill execution profile answers four questions:\n\n1. **Need:** What quality would I choose when the work matters?\n2. **Floor:** What is the lowest capability that can do the job responsibly?\n3. **Degrade:** May the runtime degrade quietly, must it ask, or should it refuse?\n4. **Map:** Why does this skill need that level?\n\nThe profile should not name the current favorite model. It should describe stable capabilities in a vocabulary the host can map to its own providers.\n\nIn Fleet, intelligence is `economy`, `balanced`, or `frontier`. Reasoning runs from `low` to `very_high`. Degradation is `allow`, `ask`, or `deny`. The vocabulary is intentionally plain.\n\nI applied the method to every Fleet-owned skill. There are 28 today. Each has an `execution-profile.json` beside its instructions. The metadata catalog can read that profile before it loads the skill body.\n\n~~~text\nfleet-capabilities execution \\\n  skill:launch-campaign \\\n  --runtime balanced:high\n\n# compatible\n# action: continue\n~~~\n\nThe compatibility check returns recommended, compatible, degraded, approval required, or re-dispatch required. It never picks a provider or invokes a model. A host maps `frontier:high` to whatever meets its cost, availability, and policy rules.\n\n## Where does it fall short?\n\nThe tiers are subjective. Hosts still need a mapping table, and two models labelled \"frontier\" may be good at very different things. A whole-skill profile also ignores mixed workloads. The research stage of a campaign and the final browser submission do not necessarily need the same runtime.\n\nI considered stage-specific profiles and a larger capability vocabulary. I left both out. There is no evidence yet that the extra machinery would improve our work.\n\nThis is a working method in one skill library, not a proposed standard. The schema is small enough to change or delete when usage proves part of it wrong.\n\n## What is the useful idea?\n\nIt is not the model switch. Claude Code already has one.\n\nThe useful idea is execution hygiene. A portable skill should be honest about the quality it requires without taking routing away from the host. A deployment guard and a directory listing should not silently receive the same treatment.\n\nI do not know whether this belongs in the Agent Skills standard. I do think mature skill libraries need some version of the methodology. Our own skills are clearer now because they can say what they need, what they will tolerate, and when they should refuse to run.\n\nThe operating rule is simple: skills state their needs; hosts choose the machinery.\n\n## Sources and implementation\n\n- [Agent Skills specification](https://agentskills.io/specification)\n- [Claude Code skill frontmatter](https://code.claude.com/docs/en/slash-commands#frontmatter-reference)\n- [OpenAI Agents SDK model configuration](https://openai.github.io/openai-agents-python/models/)\n- [LangChain skills pattern](https://docs.langchain.com/oss/python/langchain/multi-agent/skills)\n",
      "url": "https://sassmaker.com/learnings/skills-should-declare-capabilities-not-model-names"
    }
  ]
}