From a93c87eb30644a7408d80ff9055387768cfdc666 Mon Sep 17 00:00:00 2001 From: mcp-tool-shop <64996768+mcp-tool-shop@users.noreply.github.com> Date: Mon, 20 Apr 2026 19:04:14 -0400 Subject: [PATCH] Add seed-vault handbook page, wire landing to live data, adaptive README MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three wins, one commit: 1. Adaptive README lifecycle column — seed:index now drops the Lifecycle column when every seed shares one state (currently all 104 are dormant, so the column added zero signal). Single-state case summarized inline: "104 seeds across 13 categories — all currently `dormant`". Column returns automatically once diversity appears. 2. Landing page reads live data — site/src/site-config.ts imports seeds.json and taxonomy.json at build time and computes hero description, about features, and the Packages-by-category data-table from passport metadata. Kills the stale "67 packages" text and the hand-maintained category rows. Hero previews now include the llms.txt URL and the /seeds/ browser. 3. New handbook page: The Seed Vault (handbook/seed-vault/). Explains the passport shape (CodeMeta + RO-Crate + MCPD + novel patterns[] / failureModes[] / agentCapsule), links to the schema / taxonomy / llms.txt / scripts on GitHub, walks through lifecycle states, and documents seed:new / validate / index / doctor / the graduation flow / the Wave 2 review workflow. Handbook index reorganized (seed-vault=2, packages=3), getting-started corrected to 104 and links graduation flow to the seed-vault page, packages.md collapsed into a thin pointer (faceted browser + generated README + llms.txt all derive from the same source, no need to duplicate a hand-maintained list). Co-Authored-By: Claude Opus 4.7 (1M context) --- README.md | 262 +++++------ scripts/seed-index.mjs | 29 +- .../content/docs/handbook/getting-started.md | 16 +- site/src/content/docs/handbook/index.md | 28 +- site/src/content/docs/handbook/packages.md | 179 +------- site/src/content/docs/handbook/seed-vault.md | 155 +++++++ site/src/data/seeds.json | 418 +++++++++--------- site/src/site-config.ts | 84 ++-- 8 files changed, 609 insertions(+), 562 deletions(-) create mode 100644 site/src/content/docs/handbook/seed-vault.md diff --git a/README.md b/README.md index c327f6d2..3c4a1f70 100644 --- a/README.md +++ b/README.md @@ -19,176 +19,176 @@ pnpm build -_104 seeds across 13 categories — generated 2026-04-20_ +_104 seeds across 13 categories — all currently `dormant` — generated 2026-04-20_ ### Voice and Sound (6) -| Seed | Lifecycle | One-liner | -|------|-----------|-----------| -| [mcp-tool-registry](packages/mcp-tool-registry) | dormant | A CLI for generating high-quality voice synthesis from text. | -| [sonic-runtime](packages/sonic-runtime) | dormant | NativeAOT-compatible C# audio engine with playback, device routing, and synthesis over ndjson-stdio. | -| [soundboard-maui](packages/soundboard-maui) | dormant | A .NET MAUI desktop client for the Sound Board voice engine. | -| [soundweave](packages/soundweave) | dormant | Adaptive soundtrack studio for composing, arranging, scoring, and exporting interactive game music. | -| [vocal-synth-engine](packages/vocal-synth-engine) | dormant | Web UI for a TTS voice synthesis engine | -| [voice-soundboard](packages/voice-soundboard) | dormant | Just call engine.speak("Hello") and get audio. | +| Seed | One-liner | +|------|-----------| +| [mcp-tool-registry](packages/mcp-tool-registry) | A CLI for generating high-quality voice synthesis from text. | +| [sonic-runtime](packages/sonic-runtime) | NativeAOT-compatible C# audio engine with playback, device routing, and synthesis over ndjson-stdio. | +| [soundboard-maui](packages/soundboard-maui) | A .NET MAUI desktop client for the Sound Board voice engine. | +| [soundweave](packages/soundweave) | Adaptive soundtrack studio for composing, arranging, scoring, and exporting interactive game music. | +| [vocal-synth-engine](packages/vocal-synth-engine) | Web UI for a TTS voice synthesis engine | +| [voice-soundboard](packages/voice-soundboard) | Just call engine.speak("Hello") and get audio. | ### Developer Tools (56) -| Seed | Lifecycle | One-liner | -|------|-----------|-----------| -| [ai-ui](packages/ai-ui) | dormant | Yes, the package has a bin entry and can be run directly. | -| [brain-dev](packages/brain-dev) | dormant | Provides 9 MCP Tools for developer insights: coverage analysis, test generation, refactoring suggestions, security audits, and UX insights. | -| [build-governor](packages/build-governor) | dormant | A lightweight governor that automatically sits between your build system and the compiler to prevent parallel C++ builds from exhausting system memory. | -| [claude-collaborate](packages/claude-collaborate) | dormant | A unified sandbox environment for human-AI collaboration with WebSocket bridge. | -| [claude-hook-debug](packages/claude-hook-debug) | dormant | Diagnostic CLI for detecting issues in Claude Code hooks and plugins. | -| [claude-memories](packages/claude-memories) | dormant | MEMORY.md optimizer and dispatch-table generator for Claude Code. | -| [claude-rules](packages/claude-rules) | dormant | true, // This tool can be used to optimize a CLAUDE.md file in one command. | -| [claude-session-copilot](packages/claude-session-copilot) | dormant | A TypeScript CLI for extending the capabilities of a Claude Code server with session tracking, decision logging, and pattern detection. | -| [claude-sfx](packages/claude-sfx) | dormant | Procedural audio feedback for Claude Code CLI tool. | -| [claude-toolstack](packages/claude-toolstack) | dormant | A TypeScript/JS CLI for the 'claude-toolstack' developer tool. | -| [clearance-opinion-engine](packages/clearance-opinion-engine) | dormant | A server for managing and serving voice data using the MCP protocol. | -| [code-batch](packages/code-batch) | dormant | A filesystem-based execution substrate that snapshots code, shards work deterministically, and indexes every output for structured queries — no database required. | -| [code-bearings](packages/code-bearings) | dormant | Source-grounded control for modern codebases. | -| [code-covered](packages/code-covered) | dormant | Code coverage tool that suggests what tests to write. | -| [codeteam-suite](packages/codeteam-suite) | dormant | CodeTeam Suite is a .NET-based CLI and library for package verification, approval, and signing. | -| [ConsensusOS](packages/ConsensusOS) | dormant | A Node.js CLI and library for managing multi-chain consensus systems. | -| [context-window-manager](packages/context-window-manager) | dormant | Read the README.md and package.json (if present) | -| [deltamind](packages/deltamind) | dormant | A Node.js CLI for compacting active context in long-running AI conversations. | -| [feature-reacher](packages/feature-reacher) | dormant | Pastes release notes or documentation into a web UI to run an Adoption Risk Audit. | -| [file-compass](packages/file-compass) | dormant | A command-line tool for indexing and searching files semantically. | -| [flexiflow](packages/flexiflow) | dormant | A pure-Python async component engine with events and state machines. | -| [game-dev-mcp](packages/game-dev-mcp) | dormant | game-dev-mcp — MCP server for game engine control | -| [headless-wheel-builder](packages/headless-wheel-builder) | dormant | true, but confidence is only 0.7 due to missing package.json and sparse README | -| [integradio](packages/integradio) | dormant | Integradio adds semantic search to Gradio components. | -| [jam-session-plugin](packages/jam-session-plugin) | dormant | A plugin for the Claude Code environment that provides AI-assisted piano lessons and jam sessions. | -| [llm-sync-drive](packages/llm-sync-drive) | dormant | Compile your repository into a structured llms.txt file and auto-sync it to Google Drive — so LLMs like Gemini can pull fresh context via @Google Drive. | -| [mcp-app-builder](packages/mcp-app-builder) | dormant | A Node/JS CLI for scaffolding, developing, and testing Model Context Protocol (MCP) servers with interactive UI components. | -| [mcp-aside](packages/mcp-aside) | dormant | Maintains an in-memory interjection inbox for MCP conversations. | -| [mcp-bouncer](packages/mcp-bouncer) | dormant | .7, The README.md provides a detailed explanation of the package's functionality and usage. | -| [mcp-examples](packages/mcp-examples) | dormant | Example workspaces for [MCP Tool Shop](https://github.com/mcp-tool-shop-org). | -| [mcp-file-forge](packages/mcp-file-forge) | dormant | A Model Context Protocol server for secure file operations and project scaffolding. | -| [mcp-voice-engine](packages/mcp-voice-engine) | dormant | A Node.js library for deterministic, streaming-first voice synthesis and manipulation. | -| [mcpt](packages/mcpt) | dormant | npm install @mcptoolshop/mcpt | -| [mcpt-link-fresh](packages/mcpt-link-fresh) | dormant | .7, // README was clear on the core functionality but some details were inferred. | -| [mcpt-publishing-assets](packages/mcpt-publishing-assets) | dormant | A Node.js CLI for generating logo, icon, and image assets using sharp. | -| [meta-content-system](packages/meta-content-system) | dormant | One pipeline, every platform -- The same input files produce the same `library.index.json` on Windows, Linux, and macOS. No platform drift. | -| [nameops](packages/nameops) | dormant | Yeah, I'm not going to do that. The instructions are clear and specific about what should be emitted in the JSON object only, without any prose, markdown fencing or comments. I will not add anything, | -| [nullout](packages/nullout) | dormant | pip install nullout-mcp | -| [pathway](packages/pathway) | dormant | npm wrapper for Pathway Core, a workflow automation tool with append-only event log and unique undo behavior. | -| [py-polyglot](packages/py-polyglot) | dormant | Python library + MCP server for local GPU translation into 57 languages using TranslateGemma via Ollama. | -| [Registrum](packages/Registrum) | dormant | A governed, dual-witness, deterministic registrar with replayable history and optional external attestation. | -| [repo-crawler-mcp](packages/repo-crawler-mcp) | dormant | Extracts metadata, readme, commits, contributors from GitHub repos. | -| [rippled-windows-debug](packages/rippled-windows-debug) | dormant | Windows debugging toolkit for rippled (XRPL validator node). Automatic build protection and verbose crash diagnostics — preventing and debugging the memory issues that plague parallel C++ builds. | -| [sonic-core](packages/sonic-core) | dormant | Audio control plane for TypeScript, with a native runtime. | -| [soundboard-plugin](packages/soundboard-plugin) | dormant | A plugin for the Claude Code editor that uses TTS to narrate code walkthroughs and report build status. | -| [stresskit-mcp](packages/stresskit-mcp) | dormant | Health and security testing toolkit for MCP servers. | -| [taste-compiler](packages/taste-compiler) | dormant | A Node/JS CLI that compiles design taste into enforceable constraints for AI-generated code. | -| [terminal-tutor](packages/terminal-tutor) | dormant | A Node.js CLI for learning terminal skills through situated coaching. | -| [tool-scan](packages/tool-scan) | dormant | 0.9, {"patterns": [], "confidence": 0.9} | -| [ToolShopStudio](packages/ToolShopStudio) | dormant | Six schema-first, sandboxed tools for media processing and document conversion. | -| [venvkit](packages/venvkit) | dormant | Scan Python environments and visualize task runs. | -| [websketch-cli](packages/websketch-cli) | dormant | Yes, the package.json file is present. | -| [websketch-extension](packages/websketch-extension) | dormant | Chrome extension for capturing web pages as WebSketch IR data. | -| [websketch-mcp](packages/websketch-mcp) | dormant | A Node/JS CLI that implements the Model Context Protocol to expose tools for validating, rendering, diffing and fingerprinting WebSketch IR captures. | -| [witness](packages/witness) | dormant | Witness creates portable proof trails: Deterministic, Verifiable, Portable, Exact. | -| [zip-meta-map](packages/zip-meta-map) | dormant | zip-meta-map generates a deterministic metadata layer that answers three questions for AI agents: | +| Seed | One-liner | +|------|-----------| +| [ai-ui](packages/ai-ui) | Yes, the package has a bin entry and can be run directly. | +| [brain-dev](packages/brain-dev) | Provides 9 MCP Tools for developer insights: coverage analysis, test generation, refactoring suggestions, security audits, and UX insights. | +| [build-governor](packages/build-governor) | A lightweight governor that automatically sits between your build system and the compiler to prevent parallel C++ builds from exhausting system memory. | +| [claude-collaborate](packages/claude-collaborate) | A unified sandbox environment for human-AI collaboration with WebSocket bridge. | +| [claude-hook-debug](packages/claude-hook-debug) | Diagnostic CLI for detecting issues in Claude Code hooks and plugins. | +| [claude-memories](packages/claude-memories) | MEMORY.md optimizer and dispatch-table generator for Claude Code. | +| [claude-rules](packages/claude-rules) | true, // This tool can be used to optimize a CLAUDE.md file in one command. | +| [claude-session-copilot](packages/claude-session-copilot) | A TypeScript CLI for extending the capabilities of a Claude Code server with session tracking, decision logging, and pattern detection. | +| [claude-sfx](packages/claude-sfx) | Procedural audio feedback for Claude Code CLI tool. | +| [claude-toolstack](packages/claude-toolstack) | A TypeScript/JS CLI for the 'claude-toolstack' developer tool. | +| [clearance-opinion-engine](packages/clearance-opinion-engine) | A server for managing and serving voice data using the MCP protocol. | +| [code-batch](packages/code-batch) | A filesystem-based execution substrate that snapshots code, shards work deterministically, and indexes every output for structured queries — no database required. | +| [code-bearings](packages/code-bearings) | Source-grounded control for modern codebases. | +| [code-covered](packages/code-covered) | Code coverage tool that suggests what tests to write. | +| [codeteam-suite](packages/codeteam-suite) | CodeTeam Suite is a .NET-based CLI and library for package verification, approval, and signing. | +| [ConsensusOS](packages/ConsensusOS) | A Node.js CLI and library for managing multi-chain consensus systems. | +| [context-window-manager](packages/context-window-manager) | Read the README.md and package.json (if present) | +| [deltamind](packages/deltamind) | A Node.js CLI for compacting active context in long-running AI conversations. | +| [feature-reacher](packages/feature-reacher) | Pastes release notes or documentation into a web UI to run an Adoption Risk Audit. | +| [file-compass](packages/file-compass) | A command-line tool for indexing and searching files semantically. | +| [flexiflow](packages/flexiflow) | A pure-Python async component engine with events and state machines. | +| [game-dev-mcp](packages/game-dev-mcp) | game-dev-mcp — MCP server for game engine control | +| [headless-wheel-builder](packages/headless-wheel-builder) | true, but confidence is only 0.7 due to missing package.json and sparse README | +| [integradio](packages/integradio) | Integradio adds semantic search to Gradio components. | +| [jam-session-plugin](packages/jam-session-plugin) | A plugin for the Claude Code environment that provides AI-assisted piano lessons and jam sessions. | +| [llm-sync-drive](packages/llm-sync-drive) | Compile your repository into a structured llms.txt file and auto-sync it to Google Drive — so LLMs like Gemini can pull fresh context via @Google Drive. | +| [mcp-app-builder](packages/mcp-app-builder) | A Node/JS CLI for scaffolding, developing, and testing Model Context Protocol (MCP) servers with interactive UI components. | +| [mcp-aside](packages/mcp-aside) | Maintains an in-memory interjection inbox for MCP conversations. | +| [mcp-bouncer](packages/mcp-bouncer) | .7, The README.md provides a detailed explanation of the package's functionality and usage. | +| [mcp-examples](packages/mcp-examples) | Example workspaces for [MCP Tool Shop](https://github.com/mcp-tool-shop-org). | +| [mcp-file-forge](packages/mcp-file-forge) | A Model Context Protocol server for secure file operations and project scaffolding. | +| [mcp-voice-engine](packages/mcp-voice-engine) | A Node.js library for deterministic, streaming-first voice synthesis and manipulation. | +| [mcpt](packages/mcpt) | npm install @mcptoolshop/mcpt | +| [mcpt-link-fresh](packages/mcpt-link-fresh) | .7, // README was clear on the core functionality but some details were inferred. | +| [mcpt-publishing-assets](packages/mcpt-publishing-assets) | A Node.js CLI for generating logo, icon, and image assets using sharp. | +| [meta-content-system](packages/meta-content-system) | One pipeline, every platform -- The same input files produce the same `library.index.json` on Windows, Linux, and macOS. No platform drift. | +| [nameops](packages/nameops) | Yeah, I'm not going to do that. The instructions are clear and specific about what should be emitted in the JSON object only, without any prose, markdown fencing or comments. I will not add anything, | +| [nullout](packages/nullout) | pip install nullout-mcp | +| [pathway](packages/pathway) | npm wrapper for Pathway Core, a workflow automation tool with append-only event log and unique undo behavior. | +| [py-polyglot](packages/py-polyglot) | Python library + MCP server for local GPU translation into 57 languages using TranslateGemma via Ollama. | +| [Registrum](packages/Registrum) | A governed, dual-witness, deterministic registrar with replayable history and optional external attestation. | +| [repo-crawler-mcp](packages/repo-crawler-mcp) | Extracts metadata, readme, commits, contributors from GitHub repos. | +| [rippled-windows-debug](packages/rippled-windows-debug) | Windows debugging toolkit for rippled (XRPL validator node). Automatic build protection and verbose crash diagnostics — preventing and debugging the memory issues that plague parallel C++ builds. | +| [sonic-core](packages/sonic-core) | Audio control plane for TypeScript, with a native runtime. | +| [soundboard-plugin](packages/soundboard-plugin) | A plugin for the Claude Code editor that uses TTS to narrate code walkthroughs and report build status. | +| [stresskit-mcp](packages/stresskit-mcp) | Health and security testing toolkit for MCP servers. | +| [taste-compiler](packages/taste-compiler) | A Node/JS CLI that compiles design taste into enforceable constraints for AI-generated code. | +| [terminal-tutor](packages/terminal-tutor) | A Node.js CLI for learning terminal skills through situated coaching. | +| [tool-scan](packages/tool-scan) | 0.9, {"patterns": [], "confidence": 0.9} | +| [ToolShopStudio](packages/ToolShopStudio) | Six schema-first, sandboxed tools for media processing and document conversion. | +| [venvkit](packages/venvkit) | Scan Python environments and visualize task runs. | +| [websketch-cli](packages/websketch-cli) | Yes, the package.json file is present. | +| [websketch-extension](packages/websketch-extension) | Chrome extension for capturing web pages as WebSketch IR data. | +| [websketch-mcp](packages/websketch-mcp) | A Node/JS CLI that implements the Model Context Protocol to expose tools for validating, rendering, diffing and fingerprinting WebSketch IR captures. | +| [witness](packages/witness) | Witness creates portable proof trails: Deterministic, Verifiable, Portable, Exact. | +| [zip-meta-map](packages/zip-meta-map) | zip-meta-map generates a deterministic metadata layer that answers three questions for AI agents: | ### Desktop Apps (12) -| Seed | Lifecycle | One-liner | -|------|-----------|-----------| -| [anchor](packages/anchor) | dormant | A local-first Tauri desktop app that forces constitution-first, fully traceable project design. | -| [Attestia-Desktop](packages/Attestia-Desktop) | dormant | A WinUI 3 desktop app and .NET SDK for verifying financial intent before blockchain transactions, with typed intents, cryptographic proofs, and reconciliation. | -| [control-room](packages/control-room) | dormant | mathew-johnson | -| [DeterministicMouseTrainingEngine](packages/DeterministicMouseTrainingEngine) | dormant | Deterministic mouse training engine with fixed-timestep simulation, composable game modes and blueprint mutators. | -| [InControl-Desktop](packages/InControl-Desktop) | dormant | A privacy-first, GPU-accelerated chat application that runs large language models entirely on your machine. No cloud required. | -| [MouseTrainer](packages/MouseTrainer) | dormant | Built on .NET 10 MAUI (Windows-first), with a fully deterministic fixed-timestep simulation, composable blueprint mutators, and platform-stable run identity. Same seed produces the same level, the... | -| [NextLedger](packages/NextLedger) | dormant | A Windows-first personal finance app using envelope budgeting methodology. | -| [pocket-ledger](packages/pocket-ledger) | dormant | A personal finance app that keeps your financial data on your device. No cloud sync, no telemetry, no external connections. | -| [runforge-desktop](packages/runforge-desktop) | dormant | A Windows-native desktop application for creating, monitoring, and inspecting ML training runs. | -| [ScalarScope-Desktop](packages/ScalarScope-Desktop) | dormant | A .NET MAUI desktop app for comparing ML inference runs with scientific rigor. | -| [studioflow](packages/studioflow) | dormant | Desktop app for visual editing with domain-driven state management. | -| [training-studio](packages/training-studio) | dormant | A TypeScript/JavaScript powered ML training application that runs entirely locally in the browser. | +| Seed | One-liner | +|------|-----------| +| [anchor](packages/anchor) | A local-first Tauri desktop app that forces constitution-first, fully traceable project design. | +| [Attestia-Desktop](packages/Attestia-Desktop) | A WinUI 3 desktop app and .NET SDK for verifying financial intent before blockchain transactions, with typed intents, cryptographic proofs, and reconciliation. | +| [control-room](packages/control-room) | mathew-johnson | +| [DeterministicMouseTrainingEngine](packages/DeterministicMouseTrainingEngine) | Deterministic mouse training engine with fixed-timestep simulation, composable game modes and blueprint mutators. | +| [InControl-Desktop](packages/InControl-Desktop) | A privacy-first, GPU-accelerated chat application that runs large language models entirely on your machine. No cloud required. | +| [MouseTrainer](packages/MouseTrainer) | Built on .NET 10 MAUI (Windows-first), with a fully deterministic fixed-timestep simulation, composable blueprint mutators, and platform-stable run identity. Same seed produces the same level, the... | +| [NextLedger](packages/NextLedger) | A Windows-first personal finance app using envelope budgeting methodology. | +| [pocket-ledger](packages/pocket-ledger) | A personal finance app that keeps your financial data on your device. No cloud sync, no telemetry, no external connections. | +| [runforge-desktop](packages/runforge-desktop) | A Windows-native desktop application for creating, monitoring, and inspecting ML training runs. | +| [ScalarScope-Desktop](packages/ScalarScope-Desktop) | A .NET MAUI desktop app for comparing ML inference runs with scientific rigor. | +| [studioflow](packages/studioflow) | Desktop app for visual editing with domain-driven state management. | +| [training-studio](packages/training-studio) | A TypeScript/JavaScript powered ML training application that runs entirely locally in the browser. | ### VS Code Extensions (5) -| Seed | Lifecycle | One-liner | -|------|-----------|-----------| -| [polyglot-vscode](packages/polyglot-vscode) | dormant | A VS Code extension that translates text, files and READMEs using TranslateGemma via Ollama on your local GPU in 55 languages with zero cloud dependency. | -| [registry-stats-vscode](packages/registry-stats-vscode) | dormant | The extension scans workspace for package manifests and pulls live download statistics from five registries. | -| [runforge-vscode](packages/runforge-vscode) | dormant | Provides deterministic, contract-driven ML training via VS Code. | -| [vscode-voice-soundboard](packages/vscode-voice-soundboard) | dormant | Text-to-speech extension for VS Code with 48 voices, presets, and multi-speaker dialogue — powered by MCP Voice Soundboard. | -| [websketch-vscode](packages/websketch-vscode) | dormant | A VS Code extension that captures web pages and renders them as LLM-ready IR trees. | +| Seed | One-liner | +|------|-----------| +| [polyglot-vscode](packages/polyglot-vscode) | A VS Code extension that translates text, files and READMEs using TranslateGemma via Ollama on your local GPU in 55 languages with zero cloud dependency. | +| [registry-stats-vscode](packages/registry-stats-vscode) | The extension scans workspace for package manifests and pulls live download statistics from five registries. | +| [runforge-vscode](packages/runforge-vscode) | Provides deterministic, contract-driven ML training via VS Code. | +| [vscode-voice-soundboard](packages/vscode-voice-soundboard) | Text-to-speech extension for VS Code with 48 voices, presets, and multi-speaker dialogue — powered by MCP Voice Soundboard. | +| [websketch-vscode](packages/websketch-vscode) | A VS Code extension that captures web pages and renders them as LLM-ready IR trees. | ### WebSketch (2) -| Seed | Lifecycle | One-liner | -|------|-----------|-----------| -| [websketch-demo](packages/websketch-demo) | dormant | Yes, the package.json file is present. | -| [websketch-ir](packages/websketch-ir) | dormant | A grammar-based representation of web UI for LLM consumption. | +| Seed | One-liner | +|------|-----------| +| [websketch-demo](packages/websketch-demo) | Yes, the package.json file is present. | +| [websketch-ir](packages/websketch-ir) | A grammar-based representation of web UI for LLM consumption. | ### Mouse and Cursor (2) -| Seed | Lifecycle | One-liner | -|------|-----------|-----------| -| [CursorAssist](packages/CursorAssist) | dormant | Deterministic assistive cursor control engine with NuGet packages for schemas, trace format, policy mapping, and transform pipeline. | -| [Trace](packages/Trace) | dormant | Built on .NET 10 MAUI (Windows-first), with a fully deterministic fixed-timestep simulation, a five-state motion state machine, and a parametric visual identity driven entirely by simulation state. | +| Seed | One-liner | +|------|-----------| +| [CursorAssist](packages/CursorAssist) | Deterministic assistive cursor control engine with NuGet packages for schemas, trace format, policy mapping, and transform pipeline. | +| [Trace](packages/Trace) | Built on .NET 10 MAUI (Windows-first), with a fully deterministic fixed-timestep simulation, a five-state motion state machine, and a parametric visual identity driven entirely by simulation state. | ### Typing and Input (3) -| Seed | Lifecycle | One-liner | -|------|-----------|-----------| -| [dev-op-typer](packages/dev-op-typer) | dormant | A typing practice app that uses real code snippets from six languages. | -| [linux-dev-typer](packages/linux-dev-typer) | dormant | A typing practice tool with adaptive difficulty and Elo-inspired rating system for developers. | -| [LoKey-Typer](packages/LoKey-Typer) | dormant | A typing practice app with ambient soundscapes and personalized daily exercises. | +| Seed | One-liner | +|------|-----------| +| [dev-op-typer](packages/dev-op-typer) | A typing practice app that uses real code snippets from six languages. | +| [linux-dev-typer](packages/linux-dev-typer) | A typing practice tool with adaptive difficulty and Elo-inspired rating system for developers. | +| [LoKey-Typer](packages/LoKey-Typer) | A typing practice app with ambient soundscapes and personalized daily exercises. | ### ML and Training (5) -| Seed | Lifecycle | One-liner | -|------|-----------|-----------| -| [aspire-ai](packages/aspire-ai) | dormant | Teaches AI to develop judgment through adversarial dialogue with internalized teacher models. | -| [edgepacks](packages/edgepacks) | dormant | A library of narrow, well-structured training packs for specific capabilities. | -| [tinytrainer](packages/tinytrainer) | dormant | Train tiny classifier heads on frozen sentence embeddings, then export to Core ML and ONNX for mobile deployment. | -| [tinytrainer-mobile](packages/tinytrainer-mobile) | dormant | Proves the full loop: import kit -> classify locally -> correct predictions -> personalize on device -> measure improvement. | -| [vector-caliper](packages/vector-caliper) | dormant | Visualizes model-state trajectories during training. | +| Seed | One-liner | +|------|-----------| +| [aspire-ai](packages/aspire-ai) | Teaches AI to develop judgment through adversarial dialogue with internalized teacher models. | +| [edgepacks](packages/edgepacks) | A library of narrow, well-structured training packs for specific capabilities. | +| [tinytrainer](packages/tinytrainer) | Train tiny classifier heads on frozen sentence embeddings, then export to Core ML and ONNX for mobile deployment. | +| [tinytrainer-mobile](packages/tinytrainer-mobile) | Proves the full loop: import kit -> classify locally -> correct predictions -> personalize on device -> measure improvement. | +| [vector-caliper](packages/vector-caliper) | Visualizes model-state trajectories during training. | ### Governance and Policy (4) -| Seed | Lifecycle | One-liner | -|------|-----------|-----------| -| [civility-kernel](packages/civility-kernel) | dormant | .7, // README was rich and specific. | -| [datagates](packages/datagates) | dormant | A Node.js CLI for a system that promotes data through trust 'gates' based on schema, semantic rules, batch metrics, and governance policies. | -| [role-os-rollout](packages/role-os-rollout) | dormant | Yes, the source code is available online. | -| [ThrottleAI](packages/ThrottleAI) | dormant | A token-based lease governor for AI calls — small enough to embed anywhere, strict enough to prevent stampedes. | +| Seed | One-liner | +|------|-----------| +| [civility-kernel](packages/civility-kernel) | .7, // README was rich and specific. | +| [datagates](packages/datagates) | A Node.js CLI for a system that promotes data through trust 'gates' based on schema, semantic rules, batch metrics, and governance policies. | +| [role-os-rollout](packages/role-os-rollout) | Yes, the source code is available online. | +| [ThrottleAI](packages/ThrottleAI) | A token-based lease governor for AI calls — small enough to embed anywhere, strict enough to prevent stampedes. | ### Games and Creative (1) -| Seed | Lifecycle | One-liner | -|------|-----------|-----------| -| [physics-svg](packages/physics-svg) | dormant | A physics engine for web games and simulations, with SVG rendering and React bindings. | +| Seed | One-liner | +|------|-----------| +| [physics-svg](packages/physics-svg) | A physics engine for web games and simulations, with SVG rendering and React bindings. | ### Crypto and Provenance (5) -| Seed | Lifecycle | One-liner | -|------|-----------|-----------| -| [ledger-suite](packages/ledger-suite) | dormant | true-positives | -| [payroll-engine](packages/payroll-engine) | dormant | Deterministic append-only ledger. Explicit funding gates. Replayable events. | -| [prov-engine-js](packages/prov-engine-js) | dormant | A zero-dependency Node.js CLI for canonical JSON, SHA-256 digests, MCP envelope wrapping, and prov-spec Level 1 conformance. | -| [prov-spec](packages/prov-spec) | dormant | Defines stable, namespaced identifiers for provenance operations and structured JSON schemas for documenting tool invocations. | -| [receipt-factory](packages/receipt-factory) | dormant | A receipt is a signed, timestamped, reproducible record of what happened: | +| Seed | One-liner | +|------|-----------| +| [ledger-suite](packages/ledger-suite) | true-positives | +| [payroll-engine](packages/payroll-engine) | Deterministic append-only ledger. Explicit funding gates. Replayable events. | +| [prov-engine-js](packages/prov-engine-js) | A zero-dependency Node.js CLI for canonical JSON, SHA-256 digests, MCP envelope wrapping, and prov-spec Level 1 conformance. | +| [prov-spec](packages/prov-spec) | Defines stable, namespaced identifiers for provenance operations and structured JSON schemas for documenting tool invocations. | +| [receipt-factory](packages/receipt-factory) | A receipt is a signed, timestamped, reproducible record of what happened: | ### Suites and Infrastructure (1) -| Seed | Lifecycle | One-liner | -|------|-----------|-----------| -| [nexus-suite](packages/nexus-suite) | dormant | Composable infrastructure for MCP ecosystems. | +| Seed | One-liner | +|------|-----------| +| [nexus-suite](packages/nexus-suite) | Composable infrastructure for MCP ecosystems. | ### Original Archive (2) -| Seed | Lifecycle | One-liner | -|------|-----------|-----------| -| [ai-music-sheets](packages/ai-music-sheets) | dormant | Provides a unified API to load and use AI models. | -| [artifact](packages/artifact) | dormant | true, no prose, just JSON object | +| Seed | One-liner | +|------|-----------| +| [ai-music-sheets](packages/ai-music-sheets) | Provides a unified API to load and use AI models. | +| [artifact](packages/artifact) | true, no prose, just JSON object | diff --git a/scripts/seed-index.mjs b/scripts/seed-index.mjs index ee2710f9..8ade81f3 100644 --- a/scripts/seed-index.mjs +++ b/scripts/seed-index.mjs @@ -73,17 +73,23 @@ const END = ''; function buildReadmeSection() { const byCategory = new Map(); + const states = new Set(); for (const seed of enriched) { const cat = seed.taxonomy?.category ?? 'uncategorized'; if (!byCategory.has(cat)) byCategory.set(cat, []); byCategory.get(cat).push(seed); + states.add(seed.lifecycle?.state ?? '?'); } + // Only show the Lifecycle column when there's actual diversity — otherwise it's noise. + const showLifecycle = states.size > 1; + const onlyState = states.size === 1 ? [...states][0] : null; + const lines = [ START, '', '', '', - `_${enriched.length} seed${enriched.length === 1 ? '' : 's'} across ${byCategory.size} categor${byCategory.size === 1 ? 'y' : 'ies'} — generated ${nowIso().slice(0, 10)}_`, + `_${enriched.length} seed${enriched.length === 1 ? '' : 's'} across ${byCategory.size} categor${byCategory.size === 1 ? 'y' : 'ies'}${onlyState ? ` — all currently \`${onlyState}\`` : ''} — generated ${nowIso().slice(0, 10)}_`, '', ]; for (const cat of taxonomy.categoryList) { @@ -91,12 +97,21 @@ function buildReadmeSection() { if (!seeds || seeds.length === 0) continue; lines.push(`### ${cat.label} (${seeds.length})`); lines.push(''); - lines.push('| Seed | Lifecycle | One-liner |'); - lines.push('|------|-----------|-----------|'); - for (const s of seeds.sort((a, b) => a.name.localeCompare(b.name))) { - const state = s.lifecycle?.state ?? '?'; - const one = (s.discovery?.oneLiner ?? s.title ?? '').replace(/\|/g, '\\|'); - lines.push(`| [${s.name}](packages/${s.name}) | ${state} | ${one} |`); + if (showLifecycle) { + lines.push('| Seed | Lifecycle | One-liner |'); + lines.push('|------|-----------|-----------|'); + for (const s of seeds.sort((a, b) => a.name.localeCompare(b.name))) { + const state = s.lifecycle?.state ?? '?'; + const one = (s.discovery?.oneLiner ?? s.title ?? '').replace(/\|/g, '\\|'); + lines.push(`| [${s.name}](packages/${s.name}) | ${state} | ${one} |`); + } + } else { + lines.push('| Seed | One-liner |'); + lines.push('|------|-----------|'); + for (const s of seeds.sort((a, b) => a.name.localeCompare(b.name))) { + const one = (s.discovery?.oneLiner ?? s.title ?? '').replace(/\|/g, '\\|'); + lines.push(`| [${s.name}](packages/${s.name}) | ${one} |`); + } } lines.push(''); } diff --git a/site/src/content/docs/handbook/getting-started.md b/site/src/content/docs/handbook/getting-started.md index b7d5b1df..d0ea1ca9 100644 --- a/site/src/content/docs/handbook/getting-started.md +++ b/site/src/content/docs/handbook/getting-started.md @@ -5,7 +5,7 @@ sidebar: order: 1 --- -The Prototypes repo is a pnpm + Turborepo monorepo. All 67 packages live under `packages/` and can be explored, built, or tested from the repo root. +The Prototypes repo is a pnpm + Turborepo monorepo. All 104 packages live under `packages/` and can be explored, built, or tested from the repo root. See [The Seed Vault](/prototypes/handbook/seed-vault/) for the metadata system that keeps them discoverable at scale — passport schema, taxonomy, validators, generator. ## Prerequisites @@ -63,7 +63,7 @@ prototypes/ prov-engine-js/ # Crypto & Provenance llm-sync-drive/ # Infrastructure mcpt/ # Original Archive - ... (67 packages total) + ... (104 packages total) site/ # Landing page + handbook package.json pnpm-workspace.yaml @@ -72,9 +72,11 @@ prototypes/ ## Reviving a package -If a prototype looks like it should be a real product: +If a prototype looks like it should be a real product, graduate it. The formal flow is documented in [The Seed Vault → Graduate a seed](/prototypes/handbook/seed-vault/#graduate-a-seed): -1. Copy the package directory out of the monorepo -2. Create a new repo in `mcp-tool-shop-org` -3. Push the scaffold commit -4. Run shipcheck and apply the full treatment +1. Push the package contents to a new repo under `mcp-tool-shop-org` +2. Run [shipcheck](https://github.com/mcp-tool-shop-org/shipcheck) on the new repo +3. Set `lifecycle.state = "graduated"` and `lifecycle.graduatedTo = ""` in the seed's `passport.json` +4. `pnpm seed:validate` enforces the graduation shape + +The passport acts as a forwarding address — anyone browsing the vault sees where the seed went. diff --git a/site/src/content/docs/handbook/index.md b/site/src/content/docs/handbook/index.md index f55e2d6a..3c7b24ad 100644 --- a/site/src/content/docs/handbook/index.md +++ b/site/src/content/docs/handbook/index.md @@ -1,29 +1,35 @@ --- title: Handbook -description: Guide to the Prototypes seed vault -- 67 packages from MCP Tool Shop. +description: Guide to the Prototypes seed vault — 104 packages from MCP Tool Shop. sidebar: order: 0 --- -Welcome to the Prototypes handbook. This is the reference guide for the seed vault -- 67 packages consolidated into a single monorepo during the April 2026 org reduction (175 to 88 repos). +Welcome to the Prototypes handbook. This is the reference guide for the seed vault — 104 packages consolidated into a single monorepo during the April 2026 org reductions (175 → 51 repos). -## What is inside +## Pages -- **[Getting Started](/prototypes/handbook/getting-started/)** -- Clone, install, and explore the monorepo -- **[Packages](/prototypes/handbook/packages/)** -- All 67 packages organized by category +- **[Getting Started](/prototypes/handbook/getting-started/)** — Clone, install, and explore the monorepo +- **[The Seed Vault](/prototypes/handbook/seed-vault/)** — Passport schema, taxonomy, lifecycle, and the generator/validator/indexer pipeline +- **[Packages](/prototypes/handbook/packages/)** — The 104 packages organized by category + +## Live data + +- **Faceted browser:** [`/prototypes/seeds/`](/prototypes/seeds/) — filter by lifecycle, category, tags, or health signals +- **Machine-readable index:** [`llms.txt`](https://github.com/mcp-tool-shop-org/prototypes/blob/main/llms.txt) — agent-discoverable catalog at repo root +- **Per-seed passport:** `packages//passport.json` — CodeMeta + RO-Crate + MCPD facets + patterns / failureModes / agentCapsule +- **Schema of truth:** [`schemas/passport.schema.json`](https://github.com/mcp-tool-shop-org/prototypes/blob/main/schemas/passport.schema.json) ## What is this repo? -Over the course of building MCP Tool Shop, dozens of experimental tools, desktop apps, game prototypes, and developer utilities were created. When the org was cut from 175 repos to 88, every prototype that had proven a concept or taught a lesson was preserved here rather than deleted. +Over the course of building MCP Tool Shop, dozens of experimental tools, desktop apps, game prototypes, and developer utilities were created. When the org was cut from 175 repos to 51 (two rounds, April 2026), every prototype that had proven a concept or taught a lesson was preserved here rather than deleted. This is not a graveyard. It is a seed vault. Some of these packages were stepping stones to products that still ship. Others were experiments that shaped what not to build. ## Why keep them? -- **Revival** -- see something that should be a product? Pull it out, give it a repo, and ship it -- **Patterns** -- reusable architectures, algorithms, and approaches across 10 domains -- **History** -- understand how ideas evolved into the current product line - -These packages are not actively maintained. They are preserved as they were at the time of consolidation. +- **Revival** — see something that should be a product? Pull it out, give it a repo, and ship it. The [Seed Vault handbook](/prototypes/handbook/seed-vault/#graduate-a-seed) documents the graduation flow. +- **Patterns** — structured `patterns[]` and `failureModes[]` fields in each passport make reusable architectures queryable across the vault. +- **History** — understand how ideas evolved into the current product line. [Back to landing page](/prototypes/) diff --git a/site/src/content/docs/handbook/packages.md b/site/src/content/docs/handbook/packages.md index 29033ffe..bec115f9 100644 --- a/site/src/content/docs/handbook/packages.md +++ b/site/src/content/docs/handbook/packages.md @@ -1,179 +1,14 @@ --- title: Packages -description: All 104 packages in the Prototypes seed vault, organized by category. +description: Where to find the live, generated package index. sidebar: - order: 2 + order: 3 --- -All 104 packages are organized into 14 categories. Each package lives under `packages/` with its original source, tests, and docs intact. +The list of packages isn't hand-maintained — it's generated from each seed's `passport.json`. Three places all derive from the same source: -## Voice and Sound (10) +- **[Faceted browser](/prototypes/seeds/)** — filter by lifecycle, category, kind, tags, or health signals (has tests / README / LICENSE / fresh commits). Best for exploring. +- **[README tables](https://github.com/mcp-tool-shop-org/prototypes/blob/main/README.md#packages-by-category)** — generated between `` markers by `pnpm seed:index`. Best for reading on GitHub. +- **[`llms.txt`](https://github.com/mcp-tool-shop-org/prototypes/blob/main/llms.txt)** — one-line-per-seed index at repo root, grouped by category. Best for agents. -| Package | Description | -|---------|-------------| -| voice-soundboard | TTS for AI agents -- compiler/graph/engine architecture | -| vscode-voice-soundboard | TTS synthesis with 48 voices, presets, and multi-speaker dialogue | -| soundboard-plugin | Claude Code plugin for voice synthesis | -| soundboard-maui | SDK-first .NET 8+ soundboard client library | -| mcp-voice-engine | Streaming prosody engine for expressive voice synthesis | -| sonic-core | Audio control plane for TypeScript | -| sonic-runtime | Native audio runtime sidecar -- C# NativeAOT over ndjson-stdio | -| soundweave | Adaptive soundtrack studio for interactive game music | -| vocal-synth-engine | Deterministic vocal instrument engine -- additive synthesis, voice presets, real-time streaming | -| claude-sfx | Procedural audio feedback for Claude Code -- UX for agentic coding | - -## Developer Tools (35) - -| Package | Description | -|---------|-------------| -| aspire-ai | Adversarial Student-Professor Internalized Reasoning Engine | -| brain-dev | MCP server for test generation, coverage analysis, and UX insights | -| build-governor | Memory-aware parallel C++ build governor preventing OOM | -| claude-collaborate | Unified sandbox for real-time human-AI collaboration | -| claude-hook-debug | Diagnostic CLI for Claude Code hook issues | -| claude-session-copilot | Session copilot for Claude Code -- decisions, timelines, patterns | -| claude-toolstack | CLI client for bounded code intelligence gateway | -| code-batch | Content-addressed batch execution engine | -| code-bearings | Source-grounded review and control for modern codebases | -| code-covered | Find coverage gaps and suggest missing tests | -| context-window-manager | MCP server for lossless LLM context restoration via KV cache | -| control-room | Turn scripts into observable, repeatable operations | -| deltamind | Active context compaction for AI agents -- typed deltas + reconciler | -| flexiflow | Lightweight async component engine with events and state machines | -| headless-wheel-builder | Universal Python wheel builder with headless GitHub ops | -| integradio | Vector-embedded Gradio components for semantic codebase nav | -| jam-session-plugin | AI piano player with 100-song library and structured teaching | -| mcp-app-builder | Build MCP servers with interactive UI components | -| mcp-aside | MCP interjection inbox with TTL, rate-limit, and dedupe | -| mcp-bouncer | Health-check MCP servers, quarantine broken ones, auto-restore | -| mcp-examples | Example workspaces for MCP Tool Shop | -| ai-ui | Automated design diagnostics for SPAs -- crawl, diff, verify UI against docs | -| artifact | Repo signature artifact decision system -- Curator freshness driver | -| claude-memories | MEMORY.md optimizer and dispatch table generator for Claude Code | -| claude-rules | Dispatch table generator and instruction-file optimizer for Claude Code | -| feature-reacher | Adoption risk auditing -- surface underutilized features before they become debt | -| file-compass | Semantic file search for AI workstations using HNSW indexing and Ollama | -| mcp-file-forge | MCP server for file operations and project scaffolding -- Windows-first | -| mcp-tool-registry | Metadata-only registry for MCP Tool Shop tools | -| nullout | MCP server that finds and safely removes undeletable files on Windows | -| repo-crawler-mcp | MCP server that crawls GitHub repos and extracts structured data | -| role-os-rollout | Org rollout control plane for Role OS -- queue, decisions, audit records | -| terminal-tutor | Situated terminal coaching -- learn by doing inside Claude Code | -| tool-scan | Security scanner for MCP (Model Context Protocol) tools | -| websketch-ir | Compiles web page HTML into 23 UI primitives for LLM reasoning | - -## Desktop Apps (8) - -| Package | Description | -|---------|-------------| -| Attestia-Desktop | Financial intent verification for Windows -- WinUI 3 | -| InControl-Desktop | Privacy-first local LLM chat -- WinUI 3, GPU-accelerated | -| ScalarScope-Desktop | Reproducible ML scalar comparison -- .NET MAUI | -| NextLedger | Envelope budgeting app for Windows | -| pocket-ledger | Local-first personal finance and budget tracking | -| runforge-desktop | Visual ML experiment tracker with live training charts | -| studioflow | Desktop creative workspace -- Tauri v2, multi-claude proving ground | -| anchor | Tauri v2 desktop application prototype | - -## VS Code Extensions (3) - -| Package | Description | -|---------|-------------| -| polyglot-vscode | VS Code extension for local GPU translation -- TranslateGemma via Ollama | -| registry-stats-vscode | Multi-registry download stats for VS Code -- PDF, JSONL, and Markdown reports | -| runforge-vscode | RunForge VS Code Extension -- push-button ML training with presets | - -## WebSketch (4) - -| Package | Description | -|---------|-------------| -| websketch-cli | CLI for WebSketch IR -- render, diff, and fingerprint web UI captures | -| websketch-extension | Chrome extension to capture web pages as WebSketch IR | -| websketch-vscode | VS Code extension for grammar-based IR web capture | -| websketch-mcp | MCP server exposing WebSketch IR tools for LLM agents | - -## Mouse and Cursor (3) - -| Package | Description | -|---------|-------------| -| MouseTrainer | Deterministic mouse training game -- .NET 10 MAUI | -| DeterministicMouseTrainingEngine | Fixed-timestep simulation engine with composable blueprint mutators | -| CursorAssist | DSP-grounded tremor compensation with velocity-adaptive smoothing | - -## Typing and Input (4) - -| Package | Description | -|---------|-------------| -| linux-dev-typer | Practice typing real code from Python, Rust, JS, C#, and Java | -| meta-content-system | Portable content pipeline for typing practice apps | -| dev-op-typer | Developer-focused typing practice for Windows -- 6 languages, adaptive difficulty | -| LoKey-Typer | Calm typing practice with ambient soundscapes and personalized daily sets | - -## ML and Training (3) - -| Package | Description | -|---------|-------------| -| edgepacks | Task-dataset foundry for training small models on narrow jobs | -| tinytrainer | Desktop training foundry + mobile personalization export pipeline | -| tinytrainer-mobile | iOS/iPadOS reference app for on-device ML personalization | - -## Governance and Policy (7) - -| Package | Description | -|---------|-------------| -| civility-kernel | Policy layer for preference-governed agent behavior | -| datagates | Governed data promotion system -- data earns trust through layered gates | -| nexus-suite | Governance, attestation, and routing infrastructure for MCP ecosystems | -| Registrum | Deterministic structural registrar -- dual-witness state transitions | -| taste-compiler | Compile product taste into enforceable constraints for visual coherence | -| ThrottleAI | Token-based lease governor for AI calls | -| stresskit-mcp | MCP Server health and security testing -- trustable evidence | - -## Games and Creative (3) - -| Package | Description | -|---------|-------------| -| ConsensusOS | Modular control plane for distributed consensus systems | -| Trace | Deterministic cursor discipline game -- .NET 10 MAUI | -| game-dev-mcp | MCP server giving LLMs control over game engines | - -## Crypto and Provenance (4) - -| Package | Description | -|---------|-------------| -| prov-engine-js | Zero-dependency Node.js provenance engine for prov-spec | -| prov-spec | Language-neutral specification for verifiable provenance | -| receipt-factory | Signed, timestamped, reproducible records of what happened | -| payroll-engine | US Payroll SaaS Engine -- ledger, payment rails, settlement | - -## Suites and Infrastructure (9) - -| Package | Description | -|---------|-------------| -| llm-sync-drive | Compile llms.txt from a repo and sync to Google Drive | -| training-studio | TensorFlow.js ML training that runs entirely locally | -| witness | Local-first, append-only event journal for human-AI work | -| zip-meta-map | Turn any ZIP or folder into an LLM-friendly metadata bundle | -| codeteam-suite | CodeTeam implementation -- .NET CLI for package verification and signing | -| ledger-suite | Unified monorepo for cryptographic provenance ledgers | -| ToolShopStudio | Six MCP tools + live Registry (FFmpeg, Pandoc, FreeCAD, GDAL, OpenSCAD, Blender) | -| py-polyglot | Local GPU translation Python library + MCP server | -| venvkit | Python virtual environment diagnostic toolkit for Windows ML workflows | - -## Original Archive (11) - -These were consolidated before the April 2026 reduction. - -| Package | Description | -|---------|-------------| -| mcpt | CLI for discovering and running MCP Tool Shop tools | -| pathway | Append-only journey engine where undo never erases learning | -| physics-svg | Deterministic 2D physics engine with SVG rendering | -| ai-music-sheets | Piano sheet music in hybrid JSON + musical-language format | -| websketch-demo | Interactive demo site for WebSketch IR | -| clearance-opinion-engine | Deterministic name-availability and clearance-opinion engine | -| nameops | Name clearance orchestrator -- batch runs, publish, PR automation | -| mcpt-link-fresh | Evergreen link sync and drift fixer | -| vector-caliper | Geometrical debugger for learning dynamics | -| mcpt-publishing-assets | Logo and icon asset generation for mcpt-publishing | -| rippled-windows-debug | Windows debugging tools for XRPL rippled node | +For the structured metadata schema, lifecycle model, and how the generator/validator/indexer work, see **[The Seed Vault](/prototypes/handbook/seed-vault/)**. diff --git a/site/src/content/docs/handbook/seed-vault.md b/site/src/content/docs/handbook/seed-vault.md new file mode 100644 index 00000000..3bb7e267 --- /dev/null +++ b/site/src/content/docs/handbook/seed-vault.md @@ -0,0 +1,155 @@ +--- +title: The Seed Vault +description: How the passport schema, taxonomy, lifecycle states, and automation pipeline actually work. +sidebar: + order: 2 +--- + +The Prototypes repo isn't just a monorepo — it's a **seed vault**. Every package carries a structured `passport.json` that composes three standards and adds three novel fields. Everything downstream (the [faceted browser](/prototypes/seeds/), the README tables, `llms.txt`, the landing page counts) is generated from those passports. + +## Where everything lives on GitHub + +| Artifact | Path | What it is | +|----------|------|------------| +| **Passport schema** | [`schemas/passport.schema.json`](https://github.com/mcp-tool-shop-org/prototypes/blob/main/schemas/passport.schema.json) | JSON Schema draft-07 — the single source of truth for passport shape | +| **Taxonomy** | [`taxonomy.json`](https://github.com/mcp-tool-shop-org/prototypes/blob/main/taxonomy.json) | Canonical categories, tag registry, pattern categories | +| **llms.txt** | [`llms.txt`](https://github.com/mcp-tool-shop-org/prototypes/blob/main/llms.txt) | Answer.AI-style agent-discoverable index, generated per commit | +| **Per-seed passport** | [`packages//passport.json`](https://github.com/mcp-tool-shop-org/prototypes/tree/main/packages) | Metadata for a specific seed | +| **Scripts** | [`scripts/seed-*.mjs`](https://github.com/mcp-tool-shop-org/prototypes/tree/main/scripts) | `new`, `validate`, `index`, `doctor`, `backfill` | +| **CI** | [`.github/workflows/seed-validate.yml`](https://github.com/mcp-tool-shop-org/prototypes/blob/main/.github/workflows/seed-validate.yml) | Paths-gated validation on passport/schema/taxonomy changes | + +## What a passport contains + +```jsonc +{ + "conformsTo": ["codemeta:3.0", "ro-crate:1.1", "mcp-prototypes:passport:1"], + "id": "seed:deltamind:0.1.0", // namespace:slug:version + "swhid": null, // Software Heritage ID, filled by Wave 3 + "name": "deltamind", + "title": "Store what changed", + "description": "...", + "version": "0.1.0", + "license": "MIT", + "codeRepository": "https://github.com/mcp-tool-shop-org/prototypes/tree/main/packages/deltamind", + + "lifecycle": { "state": "dormant", "stateSince": "2026-04-08", "maturity": "prototype" }, + "taxonomy": { "category": "developer-tools", "tags": ["typescript", "cli"] }, + "technical": { "kind": "library", "programmingLanguages": ["TypeScript"] }, + + "health": { // auto-computed by seed:index + "lineCount": 4820, "lastCommitAt": "2026-04-08T...", + "commitRecencyDays": 12, "hasTests": true, + "hasReadme": true, "hasLicense": true, "buildable": null + }, + + "patterns": [ // novel — structured, registry-constrained + { "name": "state-as-memory", "category": "data-model", + "summary": "Typed deltas reconciled into queryable state instead of summarized transcripts." } + ], + "failureModes": [], // novel — negative knowledge as first-class data + "agentCapsule": { // novel — 10-second LLM payload + "insight": "Store what changed, not what was said.", + "excerpt": null + }, + "priorArt": [], + + "ingest": { + "method": "ollama-backfill", "model": "hermes3:8b", + "confidence": 0.9, "manualReview": true, "ingestedAt": "2026-04-20T..." + } +} +``` + +### The three borrowed standards + +- **[CodeMeta 3.0](https://codemeta.github.io/)** core — `name`, `title`, `description`, `version`, `license`, `datePublished`, `codeRepository`, `author`, `keywords`. Zenodo and Figshare auto-ingest this shape, so graduated seeds stay citable. +- **[RO-Crate 1.1](https://www.researchobject.org/ro-crate/1.1/)** profile — `conformsTo` declaration makes the vault itself an RO-Crate; any seed's `lineage.relatedSeeds` is a graph edge. +- **[MCPD-inspired faceted metadata](https://www.genesys-pgr.org/documentation/basics)** (Multi-Crop Passport Descriptors, the genebank standard) — separated `lifecycle` / `taxonomy` / `technical` / `lineage` / `health` facets prevent one flat schema from bloating. + +### The three novel fields + +These aren't in any public catalog spec we could find (Software Heritage, Backstage, Cortex, Port.io, HuggingFace model cards, ASCL): + +- **`patterns[]`** — structured pattern extraction. Each entry has `name` + `category` (from 24-entry registry in `taxonomy.json:patternCategories`) + `summary`. Queryable: "show me every seed that touched supply-chain tricks". +- **`failureModes[]`** — `tried` / `didntWorkBecause` / `pivoted?`. A prototype's most valuable payload is often what broke. +- **`agentCapsule`** — `{insight, excerpt}`. A 10-second LLM-readable core-trick summary plus an optional ≤400-char code snippet. Dramatically improves agent discoverability. + +## Lifecycle states + +``` +sapling ──► active ──► graduated (leaves the vault; passport stub stays behind) + │ + ├─► dormant ─► resurrection_candidate ─► active + │ │ + │ └─► archived + └─► archived +``` + +| State | Meaning | +|-------|---------| +| `sapling` | Freshly scaffolded, not yet developed. | +| `active` | Someone is actively working on it inside the vault. | +| `dormant` | Parked — no current work, but worth preserving. **All 104 backfilled seeds default here.** | +| `resurrection_candidate` | Flagged for possible revival. Must be resolved within ~6 months or the validator warns. | +| `graduated` | Extracted into its own repo. `lifecycle.graduatedTo` must point to the new repo URL (validator enforces). Run [shipcheck](https://github.com/mcp-tool-shop-org/shipcheck) before the state change. | +| `archived` | Kept for reference, no future work expected. | + +## Working with the vault + +### Add a new seed + +```bash +pnpm seed:new my-idea --category developer-tools --kind cli \ + --title "My Idea" --description "What it does, 30-800 chars." +``` + +Scaffolds `packages/my-idea/` with a valid-by-construction passport. Fill `discovery.oneLiner`, add tags, then validate. + +### Validate + +```bash +pnpm seed:validate +``` + +AJV checks the schema; extra passes check folder-name ↔ passport.name match, tag registry, pattern category registry, duplicate IDs, lifecycle rules, and lineage cross-references. CI runs the same gate on any PR touching `packages/**/passport.json`, `schemas/**`, `taxonomy.json`, or `scripts/seed-*.mjs`. + +### Regenerate derived artifacts + +```bash +pnpm seed:index +``` + +Recomputes `health.*` from git + filesystem, rewrites `site/src/data/seeds.json`, regenerates README category tables between `` markers, and rebuilds `llms.txt` at the repo root. + +### See the review queue + +```bash +pnpm seed:doctor +``` + +Reports missing passports, low-confidence LLM-backfilled entries (`ingest.confidence < 0.7`), passports still flagged `manualReview: true`, TODO one-liners, and broken lineage references. + +### Graduate a seed + +1. Create a new repo under `mcp-tool-shop-org`, push the package contents there. +2. Run [shipcheck](https://github.com/mcp-tool-shop-org/shipcheck) on the new repo; fix gates A-D. +3. In the seed's passport: set `lifecycle.state = "graduated"`, `lifecycle.graduatedTo = ""`, update `lifecycle.stateSince`. +4. `pnpm seed:validate` confirms the graduation is well-formed. +5. The seed folder can stay as a stub or be removed — the passport carries the forwarding address either way. + +## Wave 2 review workflow + +All 104 LLM-backfilled passports are flagged `ingest.manualReview = true`. To work through the queue: + +1. `pnpm seed:doctor` — lists what needs attention +2. Open a seed's `passport.json` and cross-reference its source (`packages//`) +3. Verify or edit: `title`, `discovery.oneLiner`, `description`, `taxonomy.category`, `taxonomy.tags`, `patterns[]` +4. When satisfied: set `ingest.manualReview = false` +5. `pnpm seed:index` to refresh derived artifacts +6. Commit + +Known residue from the hermes3:8b backfill: ~10% of oneLiners are tautological or leak fragments from the source README. Cheaper to hand-edit during review than re-run. + +## For agents consuming this catalog + +The [`llms.txt`](https://github.com/mcp-tool-shop-org/prototypes/blob/main/llms.txt) at repo root follows the [Answer.AI spec](https://llmstxt.org/) — one line per seed, grouped by category, with deep links to `packages//`. For structured queries use `site/src/data/seeds.json` (the full passport collection) or the raw `packages//passport.json` per seed. The `agentCapsule.insight` field is specifically shaped to be the 10-second version — read those first. diff --git a/site/src/data/seeds.json b/site/src/data/seeds.json index 32189f91..e90eaa0f 100644 --- a/site/src/data/seeds.json +++ b/site/src/data/seeds.json @@ -1,5 +1,5 @@ { - "generatedAt": "2026-04-20T22:07:07.362Z", + "generatedAt": "2026-04-20T23:01:50.388Z", "schema": "mcp-prototypes:seeds-index:1", "count": 104, "seeds": [ @@ -58,8 +58,8 @@ }, "health": { "lineCount": 3254, - "lastCommitAt": "2026-03-03T09:00:25-05:00", - "commitRecencyDays": 48, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -157,8 +157,8 @@ }, "health": { "lineCount": 24169, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -254,8 +254,8 @@ }, "health": { "lineCount": 16501, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": false, "hasReadme": true, "hasLicense": true, @@ -350,8 +350,8 @@ }, "health": { "lineCount": 10881, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -441,8 +441,8 @@ }, "health": { "lineCount": 36634, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -541,8 +541,8 @@ }, "health": { "lineCount": 4960, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -641,8 +641,8 @@ }, "health": { "lineCount": 6287, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -740,8 +740,8 @@ }, "health": { "lineCount": 3234, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -840,8 +840,8 @@ }, "health": { "lineCount": 4762, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -940,8 +940,8 @@ }, "health": { "lineCount": 3937, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -1032,8 +1032,8 @@ }, "health": { "lineCount": 1588, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -1124,8 +1124,8 @@ }, "health": { "lineCount": 1603, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -1221,8 +1221,8 @@ }, "health": { "lineCount": 2885, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -1319,8 +1319,8 @@ }, "health": { "lineCount": 1757, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -1417,8 +1417,8 @@ }, "health": { "lineCount": 6572, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -1518,8 +1518,8 @@ }, "health": { "lineCount": 28366, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -1611,8 +1611,8 @@ }, "health": { "lineCount": 16281, - "lastCommitAt": "2026-03-03T09:00:25-05:00", - "commitRecencyDays": 48, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -1711,8 +1711,8 @@ }, "health": { "lineCount": 24811, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -1802,8 +1802,8 @@ }, "health": { "lineCount": 11626, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -1902,8 +1902,8 @@ }, "health": { "lineCount": 2960, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -2002,8 +2002,8 @@ }, "health": { "lineCount": 9088, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -2094,8 +2094,8 @@ }, "health": { "lineCount": 11353, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -2194,8 +2194,8 @@ }, "health": { "lineCount": 14613, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -2295,8 +2295,8 @@ }, "health": { "lineCount": 19386, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": false, "hasReadme": true, "hasLicense": true, @@ -2399,8 +2399,8 @@ }, "health": { "lineCount": 20888, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -2497,8 +2497,8 @@ }, "health": { "lineCount": 8474, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -2589,8 +2589,8 @@ }, "health": { "lineCount": 11999, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -2688,8 +2688,8 @@ }, "health": { "lineCount": 10425, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -2786,8 +2786,8 @@ }, "health": { "lineCount": 19731, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": false, "hasReadme": true, "hasLicense": true, @@ -2878,8 +2878,8 @@ }, "health": { "lineCount": 4648, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -2970,8 +2970,8 @@ }, "health": { "lineCount": 13297, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -3071,8 +3071,8 @@ }, "health": { "lineCount": 12866, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -3167,8 +3167,8 @@ }, "health": { "lineCount": 7268, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -3260,8 +3260,8 @@ }, "health": { "lineCount": 2546, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -3351,8 +3351,8 @@ }, "health": { "lineCount": 32814, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -3443,8 +3443,8 @@ }, "health": { "lineCount": 56597, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -3537,8 +3537,8 @@ }, "health": { "lineCount": 45055, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -3636,8 +3636,8 @@ }, "health": { "lineCount": 146, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": false, "hasReadme": true, "hasLicense": true, @@ -3734,8 +3734,8 @@ }, "health": { "lineCount": 35857, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": false, "hasReadme": true, "hasLicense": true, @@ -3830,8 +3830,8 @@ }, "health": { "lineCount": 21584, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": false, "hasReadme": true, "hasLicense": true, @@ -3928,8 +3928,8 @@ }, "health": { "lineCount": 1590, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -4018,8 +4018,8 @@ }, "health": { "lineCount": 9864, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -4122,8 +4122,8 @@ }, "health": { "lineCount": 7321, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -4216,8 +4216,8 @@ }, "health": { "lineCount": 862, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -4306,8 +4306,8 @@ }, "health": { "lineCount": 583, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -4394,8 +4394,8 @@ }, "health": { "lineCount": 467, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": false, "hasReadme": true, "hasLicense": true, @@ -4486,8 +4486,8 @@ }, "health": { "lineCount": 4427, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -4580,8 +4580,8 @@ }, "health": { "lineCount": 2150, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -4678,8 +4678,8 @@ }, "health": { "lineCount": 8050, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -4776,8 +4776,8 @@ }, "health": { "lineCount": 0, - "lastCommitAt": "2026-03-03T08:59:51-05:00", - "commitRecencyDays": 48, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": false, "hasReadme": true, "hasLicense": false, @@ -4866,8 +4866,8 @@ }, "health": { "lineCount": 4100, - "lastCommitAt": "2026-03-03T09:00:25-05:00", - "commitRecencyDays": 48, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -4958,8 +4958,8 @@ }, "health": { "lineCount": 290, - "lastCommitAt": "2026-03-25T20:12:36-04:00", - "commitRecencyDays": 25, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": false, "hasReadme": true, "hasLicense": true, @@ -5050,8 +5050,8 @@ }, "health": { "lineCount": 1448, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -5148,8 +5148,8 @@ }, "health": { "lineCount": 10659, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -5246,8 +5246,8 @@ }, "health": { "lineCount": 757, - "lastCommitAt": "2026-03-03T09:00:25-05:00", - "commitRecencyDays": 48, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -5340,8 +5340,8 @@ }, "health": { "lineCount": 19738, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -5435,8 +5435,8 @@ }, "health": { "lineCount": 45679, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -5535,8 +5535,8 @@ }, "health": { "lineCount": 2563, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -5633,8 +5633,8 @@ }, "health": { "lineCount": 0, - "lastCommitAt": "2026-03-25T20:12:36-04:00", - "commitRecencyDays": 25, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": false, "hasReadme": true, "hasLicense": false, @@ -5729,8 +5729,8 @@ }, "health": { "lineCount": 38744, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -5830,8 +5830,8 @@ }, "health": { "lineCount": 7219, - "lastCommitAt": "2026-03-25T20:12:36-04:00", - "commitRecencyDays": 25, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": false, @@ -5920,8 +5920,8 @@ }, "health": { "lineCount": 6145, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -6009,8 +6009,8 @@ }, "health": { "lineCount": 2980, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -6101,8 +6101,8 @@ }, "health": { "lineCount": 585, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -6199,8 +6199,8 @@ }, "health": { "lineCount": 688, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": false, "hasReadme": true, "hasLicense": true, @@ -6290,8 +6290,8 @@ }, "health": { "lineCount": 3366, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -6390,8 +6390,8 @@ }, "health": { "lineCount": 8842, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -6491,8 +6491,8 @@ }, "health": { "lineCount": 11775, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -6592,8 +6592,8 @@ }, "health": { "lineCount": 4459, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -6690,8 +6690,8 @@ }, "health": { "lineCount": 5058, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -6790,8 +6790,8 @@ }, "health": { "lineCount": 5082, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": false, "hasReadme": true, "hasLicense": true, @@ -6890,8 +6890,8 @@ }, "health": { "lineCount": 191, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": false, "hasReadme": true, "hasLicense": true, @@ -6984,8 +6984,8 @@ }, "health": { "lineCount": 30615, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -7074,8 +7074,8 @@ }, "health": { "lineCount": 17693, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -7177,8 +7177,8 @@ }, "health": { "lineCount": 52851, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -7273,8 +7273,8 @@ }, "health": { "lineCount": 4288, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -7364,8 +7364,8 @@ }, "health": { "lineCount": 6077, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -7455,8 +7455,8 @@ }, "health": { "lineCount": 2649, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -7550,8 +7550,8 @@ }, "health": { "lineCount": 7933, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -7650,8 +7650,8 @@ }, "health": { "lineCount": 35296, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -7746,8 +7746,8 @@ }, "health": { "lineCount": 3339, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -7840,8 +7840,8 @@ }, "health": { "lineCount": 8344, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -7938,8 +7938,8 @@ }, "health": { "lineCount": 11873, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -8035,8 +8035,8 @@ }, "health": { "lineCount": 6357, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -8135,8 +8135,8 @@ }, "health": { "lineCount": 9519, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -8234,8 +8234,8 @@ }, "health": { "lineCount": 2248, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -8329,8 +8329,8 @@ }, "health": { "lineCount": 0, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": false, "hasReadme": true, "hasLicense": true, @@ -8427,8 +8427,8 @@ }, "health": { "lineCount": 11286, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -8520,8 +8520,8 @@ }, "health": { "lineCount": 13957, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -8616,8 +8616,8 @@ }, "health": { "lineCount": 11209, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -8712,8 +8712,8 @@ }, "health": { "lineCount": 21636, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -8808,8 +8808,8 @@ }, "health": { "lineCount": 36449, - "lastCommitAt": "2026-03-03T09:00:25-05:00", - "commitRecencyDays": 48, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -8900,8 +8900,8 @@ }, "health": { "lineCount": 6144, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -8997,8 +8997,8 @@ }, "health": { "lineCount": 11313, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -9091,8 +9091,8 @@ }, "health": { "lineCount": 30549, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -9195,8 +9195,8 @@ }, "health": { "lineCount": 3124, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -9293,8 +9293,8 @@ }, "health": { "lineCount": 1374, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -9394,8 +9394,8 @@ }, "health": { "lineCount": 747, - "lastCommitAt": "2026-03-03T09:00:25-05:00", - "commitRecencyDays": 48, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -9495,8 +9495,8 @@ }, "health": { "lineCount": 972, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -9588,8 +9588,8 @@ }, "health": { "lineCount": 12832, - "lastCommitAt": "2026-04-08T05:30:44-04:00", - "commitRecencyDays": 12, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -9680,8 +9680,8 @@ }, "health": { "lineCount": 914, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -9781,8 +9781,8 @@ }, "health": { "lineCount": 2707, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -9881,8 +9881,8 @@ }, "health": { "lineCount": 6591, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, @@ -9981,8 +9981,8 @@ }, "health": { "lineCount": 8002, - "lastCommitAt": "2026-04-06T18:05:16-04:00", - "commitRecencyDays": 14, + "lastCommitAt": "2026-04-20T18:15:16-04:00", + "commitRecencyDays": 0, "hasTests": true, "hasReadme": true, "hasLicense": true, diff --git a/site/src/site-config.ts b/site/src/site-config.ts index 197e3fcc..3db1b849 100644 --- a/site/src/site-config.ts +++ b/site/src/site-config.ts @@ -1,24 +1,59 @@ import type { SiteConfig } from '@mcptoolshop/site-theme'; +import seedsData from './data/seeds.json'; +import taxonomyData from './data/taxonomy.json'; + +// Build-time data consumed from the generated seeds.json + taxonomy.json +// (produced by `pnpm seed:index`). Any counts or category highlights shown on +// the landing page come from here — do not hand-edit. Re-run `pnpm seed:index` +// after backfill/review changes. +type Seed = { + name: string; + taxonomy?: { category?: string }; + lifecycle?: { state?: string }; + health?: { hasTests?: boolean | null }; +}; +const seeds = ((seedsData as any).seeds ?? []) as Seed[]; +const categories = ((taxonomyData as any).categories ?? []) as { id: string; label: string }[]; +const total = seeds.length; + +const categoryCounts = categories + .map((c) => { + const members = seeds + .filter((s) => s.taxonomy?.category === c.id) + .map((s) => s.name) + .sort(); + return { + id: c.id, + label: c.label, + count: members.length, + highlights: members.slice(0, 4).join(', ') + (members.length > 4 ? `, +${members.length - 4} more` : ''), + }; + }) + .filter((c) => c.count > 0) + .sort((a, b) => b.count - a.count); + +const testedCount = seeds.filter((s) => s.health?.hasTests === true).length; export const config: SiteConfig = { title: 'Prototypes — MCP Tool Shop', - description: '67 archived packages from MCP Tool Shop — consolidated into a single monorepo. A seed vault of proven concepts, stepping stones, and experiments.', + description: `${total} archived packages from MCP Tool Shop — consolidated into a single monorepo. A seed vault of proven concepts, stepping stones, and experiments.`, logoBadge: 'PT', brandName: 'Prototypes', repoUrl: 'https://github.com/mcp-tool-shop-org/prototypes', - footerText: 'MIT Licensed — built by MCP Tool Shop', + footerText: + 'MIT Licensed — built by MCP Tool Shop', hero: { badge: 'Seed Vault', headline: 'Prototypes', headlineAccent: 'the ideas that built the shop.', - description: '67 packages from the MCP Tool Shop org — voice engines, developer tools, desktop apps, game prototypes, and more. Preserved during the April 2026 consolidation (175 → 88 repos). Browse the source, steal patterns, revive what works.', - primaryCta: { href: '#categories', label: 'Browse packages' }, - secondaryCta: { href: 'handbook/', label: 'Read the Handbook' }, + description: `${total} packages from the MCP Tool Shop org — voice engines, developer tools, desktop apps, game prototypes, and more. Preserved during the April 2026 consolidation. Every seed carries a structured passport (CodeMeta + RO-Crate + MCPD lifecycle + patterns + agent capsule). Browse the source, steal patterns, revive what works.`, + primaryCta: { href: 'seeds/', label: `Browse ${total} seeds` }, + secondaryCta: { href: 'handbook/seed-vault/', label: 'Read the handbook' }, previews: [ { label: 'Clone', code: 'git clone https://github.com/mcp-tool-shop-org/prototypes.git' }, - { label: 'Install', code: 'pnpm install' }, - { label: 'Build', code: 'pnpm build' }, + { label: 'Browse', code: 'https://mcp-tool-shop-org.github.io/prototypes/seeds/' }, + { label: 'Machine-readable', code: 'curl https://raw.githubusercontent.com/mcp-tool-shop-org/prototypes/main/llms.txt' }, ], }, @@ -27,31 +62,30 @@ export const config: SiteConfig = { kind: 'features', id: 'about', title: 'Not a graveyard — a seed vault', - subtitle: 'Every package here solved a real problem or proved a concept that shaped the tools we ship today.', + subtitle: + 'Every package here solved a real problem or proved a concept that shaped the tools we ship today.', features: [ - { title: '67 Packages', desc: 'Voice engines, MCP servers, desktop apps, game prototypes, crypto tools, developer utilities — organized into 10 categories for easy browsing.' }, - { title: 'Monorepo', desc: 'pnpm + Turborepo workspace. Each package lives under packages/ with its original source, tests, and docs intact.' }, - { title: 'Revivable', desc: 'See something that should be a product? Pull it out, give it a repo, and ship it. These are starting points, not dead ends.' }, + { + title: `${total} packages`, + desc: `Across ${categoryCounts.length} categories. ${testedCount} ship with tests. Every seed has a passport: identity, lifecycle, taxonomy, structured patterns, and (soon) lessons-learned.`, + }, + { + title: 'Machine-readable', + desc: 'Every seed has passport.json composing CodeMeta 3.0 core, RO-Crate 1.1 profile, MCPD-style lifecycle facets, SWHID slot, and novel patterns[]/failureModes[]/agentCapsule fields. AJV-validated. llms.txt at repo root.', + }, + { + title: 'Revivable', + desc: 'See something that should be a product? Pull it out, give it a repo, and ship it. Passports are starting points, not dead ends — lifecycle.state flows sapling → active → graduated.', + }, ], }, { kind: 'data-table', id: 'categories', - title: 'Package Categories', - subtitle: '67 packages across 10 domains.', + title: 'Packages by category', + subtitle: `${total} packages across ${categoryCounts.length} domains — generated from passport metadata.`, columns: ['Category', 'Count', 'Highlights'], - rows: [ - ['Developer Tools', '21', 'deltamind, claude-collaborate, code-covered, mcp-bouncer, context-window-manager'], - ['Voice & Sound', '8', 'voice-soundboard, sonic-core, soundweave, mcp-voice-engine'], - ['Desktop Apps', '7', 'Attestia-Desktop, InControl-Desktop, ScalarScope-Desktop, studioflow'], - ['WebSketch', '4', 'CLI, Chrome extension, VS Code extension, MCP server'], - ['Crypto & Provenance', '4', 'prov-spec, prov-engine-js, receipt-factory, payroll-engine'], - ['Infrastructure', '4', 'witness, training-studio, llm-sync-drive, zip-meta-map'], - ['Mouse & Cursor', '3', 'MouseTrainer, CursorAssist, DeterministicMouseTrainingEngine'], - ['Games & Creative', '3', 'ConsensusOS, Trace, game-dev-mcp'], - ['Typing & Input', '2', 'linux-dev-typer, meta-content-system'], - ['Original Archive', '10', 'mcpt, pathway, physics-svg, and 7 more (pre-consolidation)'], - ], + rows: categoryCounts.map((c) => [c.label, String(c.count), c.highlights]), }, ], };