opencode-starterkit 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -0
- package/baseline/.env.example +196 -0
- package/baseline/.template-manifest.json +646 -0
- package/baseline/.version +1 -0
- package/baseline/AGENTS.md +410 -0
- package/baseline/AGENT_ALIGNMENT.md +564 -0
- package/baseline/README.md +79 -0
- package/baseline/agent/build.md +373 -0
- package/baseline/agent/explore.md +96 -0
- package/baseline/agent/general.md +186 -0
- package/baseline/agent/painter.md +74 -0
- package/baseline/agent/plan.md +435 -0
- package/baseline/agent/review.md +243 -0
- package/baseline/agent/runner.md +79 -0
- package/baseline/agent/scout.md +100 -0
- package/baseline/agent/vision.md +91 -0
- package/baseline/command/compound.md +143 -0
- package/baseline/command/create.md +213 -0
- package/baseline/command/design.md +112 -0
- package/baseline/command/handoff.md +147 -0
- package/baseline/command/init-context.md +273 -0
- package/baseline/command/init-user.md +105 -0
- package/baseline/command/init.md +117 -0
- package/baseline/command/lfg.md +170 -0
- package/baseline/command/plan.md +355 -0
- package/baseline/command/pr.md +161 -0
- package/baseline/command/research.md +125 -0
- package/baseline/command/resume.md +87 -0
- package/baseline/command/review-codebase.md +131 -0
- package/baseline/command/ship.md +342 -0
- package/baseline/command/start.md +158 -0
- package/baseline/command/status.md +117 -0
- package/baseline/command/ui-review.md +92 -0
- package/baseline/command/ui-slop-check.md +146 -0
- package/baseline/command/verify.md +160 -0
- package/baseline/context/README.md +29 -0
- package/baseline/dcp.jsonc +72 -0
- package/baseline/memory/README.md +89 -0
- package/baseline/memory/_templates/design.md +59 -0
- package/baseline/memory/_templates/prd.md +192 -0
- package/baseline/memory/_templates/project.md +58 -0
- package/baseline/memory/_templates/proposal.md +38 -0
- package/baseline/memory/_templates/roadmap.md +93 -0
- package/baseline/memory/_templates/state.md +89 -0
- package/baseline/memory/_templates/tasks.md +198 -0
- package/baseline/memory/_templates/tech-stack.md +85 -0
- package/baseline/memory/_templates/user.md +26 -0
- package/baseline/memory/project/gotchas.md +67 -0
- package/baseline/memory/project/project.md +92 -0
- package/baseline/memory/project/roadmap.md +142 -0
- package/baseline/memory/project/state.md +84 -0
- package/baseline/memory/project/tech-stack.md +53 -0
- package/baseline/memory/project/user.md +38 -0
- package/baseline/memory/research/benchmark-framework.md +162 -0
- package/baseline/memory/research/ccpm-analysis.md +334 -0
- package/baseline/memory/research/context-management-analysis.md +685 -0
- package/baseline/memory/research/effectiveness-audit.md +213 -0
- package/baseline/memory/research/opencode-mcp-bug-report.md +129 -0
- package/baseline/memory/research/openspec-analysis.md +226 -0
- package/baseline/memory/session-context.md +40 -0
- package/baseline/opencode.json +1431 -0
- package/baseline/opencode.json.tui-migration.bak +1380 -0
- package/baseline/package-lock.json +87 -0
- package/baseline/package.json +21 -0
- package/baseline/plans/1768385996691-silent-wizard.md +247 -0
- package/baseline/plans/1770006237537-mighty-otter.md +418 -0
- package/baseline/plans/1770006913647-glowing-forest.md +170 -0
- package/baseline/plans/1770013678126-witty-planet.md +278 -0
- package/baseline/plans/1770112267595-shiny-rocket.md +258 -0
- package/baseline/plans/swarm-protocol.md +123 -0
- package/baseline/plugin/README.md +70 -0
- package/baseline/plugin/copilot-auth.ts +607 -0
- package/baseline/plugin/lib/capture.ts +177 -0
- package/baseline/plugin/lib/context.ts +198 -0
- package/baseline/plugin/lib/curator.ts +234 -0
- package/baseline/plugin/lib/db/maintenance.ts +312 -0
- package/baseline/plugin/lib/db/observations.ts +299 -0
- package/baseline/plugin/lib/db/pipeline.ts +520 -0
- package/baseline/plugin/lib/db/schema.ts +356 -0
- package/baseline/plugin/lib/db/types.ts +211 -0
- package/baseline/plugin/lib/distill.ts +376 -0
- package/baseline/plugin/lib/inject.ts +126 -0
- package/baseline/plugin/lib/memory-admin-tools.ts +188 -0
- package/baseline/plugin/lib/memory-db.ts +58 -0
- package/baseline/plugin/lib/memory-helpers.ts +111 -0
- package/baseline/plugin/lib/memory-hooks.ts +195 -0
- package/baseline/plugin/lib/memory-tools.ts +341 -0
- package/baseline/plugin/lib/notify.ts +81 -0
- package/baseline/plugin/memory.ts +89 -0
- package/baseline/plugin/notification.ts.bak +64 -0
- package/baseline/plugin/package.json +7 -0
- package/baseline/plugin/sdk/copilot/chat/convert-to-openai-compatible-chat-messages.ts +178 -0
- package/baseline/plugin/sdk/copilot/chat/get-response-metadata.ts +15 -0
- package/baseline/plugin/sdk/copilot/chat/map-openai-compatible-finish-reason.ts +19 -0
- package/baseline/plugin/sdk/copilot/chat/openai-compatible-api-types.ts +72 -0
- package/baseline/plugin/sdk/copilot/chat/openai-compatible-chat-language-model.ts +833 -0
- package/baseline/plugin/sdk/copilot/chat/openai-compatible-chat-options.ts +30 -0
- package/baseline/plugin/sdk/copilot/chat/openai-compatible-metadata-extractor.ts +48 -0
- package/baseline/plugin/sdk/copilot/chat/openai-compatible-prepare-tools.ts +92 -0
- package/baseline/plugin/sdk/copilot/copilot-provider.ts +94 -0
- package/baseline/plugin/sdk/copilot/index.ts +5 -0
- package/baseline/plugin/sdk/copilot/openai-compatible-error.ts +30 -0
- package/baseline/plugin/sessions.ts +428 -0
- package/baseline/plugin/skill-mcp.ts +618 -0
- package/baseline/plugin/tsconfig.json +16 -0
- package/baseline/skill/accessibility-audit/SKILL.md +191 -0
- package/baseline/skill/agent-browser/SKILL.md +413 -0
- package/baseline/skill/agent-teams/SKILL.md +268 -0
- package/baseline/skill/augment-context-engine/SKILL.md +122 -0
- package/baseline/skill/augment-context-engine/mcp.json +6 -0
- package/baseline/skill/beads/SKILL.md +181 -0
- package/baseline/skill/beads/references/BEST_PRACTICES.md +27 -0
- package/baseline/skill/beads/references/BOUNDARIES.md +219 -0
- package/baseline/skill/beads/references/DEPENDENCIES.md +124 -0
- package/baseline/skill/beads/references/EXAMPLES.md +45 -0
- package/baseline/skill/beads/references/FILE_CLAIMING.md +101 -0
- package/baseline/skill/beads/references/GIT_SYNC.md +25 -0
- package/baseline/skill/beads/references/HIERARCHY.md +71 -0
- package/baseline/skill/beads/references/MULTI_AGENT.md +40 -0
- package/baseline/skill/beads/references/RESUMABILITY.md +177 -0
- package/baseline/skill/beads/references/SESSION_PROTOCOL.md +61 -0
- package/baseline/skill/beads/references/TASK_CREATION.md +38 -0
- package/baseline/skill/beads/references/TROUBLESHOOTING.md +38 -0
- package/baseline/skill/beads/references/WORKFLOWS.md +226 -0
- package/baseline/skill/beads-bridge/SKILL.md +321 -0
- package/baseline/skill/brainstorming/SKILL.md +114 -0
- package/baseline/skill/chrome-devtools/SKILL.md +76 -0
- package/baseline/skill/chrome-devtools/mcp.json +19 -0
- package/baseline/skill/cloudflare/SKILL.md +253 -0
- package/baseline/skill/cloudflare/references/agents-sdk/README.md +35 -0
- package/baseline/skill/cloudflare/references/agents-sdk/api.md +100 -0
- package/baseline/skill/cloudflare/references/agents-sdk/configuration.md +99 -0
- package/baseline/skill/cloudflare/references/agents-sdk/gotchas.md +59 -0
- package/baseline/skill/cloudflare/references/agents-sdk/patterns.md +89 -0
- package/baseline/skill/cloudflare/references/ai-gateway/README.md +695 -0
- package/baseline/skill/cloudflare/references/ai-search/README.md +14 -0
- package/baseline/skill/cloudflare/references/ai-search/api.md +38 -0
- package/baseline/skill/cloudflare/references/ai-search/configuration.md +52 -0
- package/baseline/skill/cloudflare/references/ai-search/gotchas.md +41 -0
- package/baseline/skill/cloudflare/references/ai-search/patterns.md +45 -0
- package/baseline/skill/cloudflare/references/analytics-engine/README.md +14 -0
- package/baseline/skill/cloudflare/references/analytics-engine/api.md +27 -0
- package/baseline/skill/cloudflare/references/analytics-engine/configuration.md +45 -0
- package/baseline/skill/cloudflare/references/analytics-engine/gotchas.md +3 -0
- package/baseline/skill/cloudflare/references/analytics-engine/patterns.md +36 -0
- package/baseline/skill/cloudflare/references/api/README.md +21 -0
- package/baseline/skill/cloudflare/references/api/api.md +31 -0
- package/baseline/skill/cloudflare/references/api/configuration.md +20 -0
- package/baseline/skill/cloudflare/references/api/gotchas.md +28 -0
- package/baseline/skill/cloudflare/references/api/patterns.md +47 -0
- package/baseline/skill/cloudflare/references/api-shield/README.md +20 -0
- package/baseline/skill/cloudflare/references/api-shield/api.md +78 -0
- package/baseline/skill/cloudflare/references/api-shield/configuration.md +128 -0
- package/baseline/skill/cloudflare/references/api-shield/gotchas.md +51 -0
- package/baseline/skill/cloudflare/references/api-shield/patterns.md +145 -0
- package/baseline/skill/cloudflare/references/argo-smart-routing/README.md +16 -0
- package/baseline/skill/cloudflare/references/argo-smart-routing/api.md +50 -0
- package/baseline/skill/cloudflare/references/argo-smart-routing/configuration.md +53 -0
- package/baseline/skill/cloudflare/references/argo-smart-routing/gotchas.md +16 -0
- package/baseline/skill/cloudflare/references/argo-smart-routing/patterns.md +45 -0
- package/baseline/skill/cloudflare/references/bindings/README.md +14 -0
- package/baseline/skill/cloudflare/references/bindings/api.md +3 -0
- package/baseline/skill/cloudflare/references/bindings/configuration.md +58 -0
- package/baseline/skill/cloudflare/references/bindings/gotchas.md +35 -0
- package/baseline/skill/cloudflare/references/bindings/patterns.md +37 -0
- package/baseline/skill/cloudflare/references/bot-management/README.md +71 -0
- package/baseline/skill/cloudflare/references/bot-management/api.md +168 -0
- package/baseline/skill/cloudflare/references/bot-management/configuration.md +114 -0
- package/baseline/skill/cloudflare/references/bot-management/gotchas.md +99 -0
- package/baseline/skill/cloudflare/references/bot-management/patterns.md +125 -0
- package/baseline/skill/cloudflare/references/browser-rendering/README.md +16 -0
- package/baseline/skill/cloudflare/references/browser-rendering/api.md +54 -0
- package/baseline/skill/cloudflare/references/browser-rendering/configuration.md +47 -0
- package/baseline/skill/cloudflare/references/browser-rendering/gotchas.md +29 -0
- package/baseline/skill/cloudflare/references/browser-rendering/patterns.md +29 -0
- package/baseline/skill/cloudflare/references/c3/README.md +264 -0
- package/baseline/skill/cloudflare/references/cache-reserve/README.md +93 -0
- package/baseline/skill/cloudflare/references/cache-reserve/api.md +176 -0
- package/baseline/skill/cloudflare/references/cache-reserve/configuration.md +164 -0
- package/baseline/skill/cloudflare/references/cache-reserve/gotchas.md +203 -0
- package/baseline/skill/cloudflare/references/cache-reserve/patterns.md +180 -0
- package/baseline/skill/cloudflare/references/containers/README.md +16 -0
- package/baseline/skill/cloudflare/references/containers/api.md +43 -0
- package/baseline/skill/cloudflare/references/containers/configuration.md +56 -0
- package/baseline/skill/cloudflare/references/containers/gotchas.md +21 -0
- package/baseline/skill/cloudflare/references/containers/patterns.md +40 -0
- package/baseline/skill/cloudflare/references/cron-triggers/README.md +85 -0
- package/baseline/skill/cloudflare/references/cron-triggers/api.md +198 -0
- package/baseline/skill/cloudflare/references/cron-triggers/configuration.md +151 -0
- package/baseline/skill/cloudflare/references/cron-triggers/gotchas.md +129 -0
- package/baseline/skill/cloudflare/references/cron-triggers/patterns.md +122 -0
- package/baseline/skill/cloudflare/references/d1/README.md +92 -0
- package/baseline/skill/cloudflare/references/d1/api.md +141 -0
- package/baseline/skill/cloudflare/references/d1/configuration.md +127 -0
- package/baseline/skill/cloudflare/references/d1/gotchas.md +70 -0
- package/baseline/skill/cloudflare/references/d1/patterns.md +144 -0
- package/baseline/skill/cloudflare/references/ddos/README.md +34 -0
- package/baseline/skill/cloudflare/references/ddos/api.md +136 -0
- package/baseline/skill/cloudflare/references/ddos/configuration.md +67 -0
- package/baseline/skill/cloudflare/references/ddos/gotchas.md +114 -0
- package/baseline/skill/cloudflare/references/ddos/patterns.md +158 -0
- package/baseline/skill/cloudflare/references/do-storage/README.md +62 -0
- package/baseline/skill/cloudflare/references/do-storage/api.md +89 -0
- package/baseline/skill/cloudflare/references/do-storage/configuration.md +116 -0
- package/baseline/skill/cloudflare/references/do-storage/gotchas.md +93 -0
- package/baseline/skill/cloudflare/references/do-storage/patterns.md +112 -0
- package/baseline/skill/cloudflare/references/durable-objects/README.md +125 -0
- package/baseline/skill/cloudflare/references/durable-objects/api.md +152 -0
- package/baseline/skill/cloudflare/references/durable-objects/configuration.md +148 -0
- package/baseline/skill/cloudflare/references/durable-objects/gotchas.md +158 -0
- package/baseline/skill/cloudflare/references/durable-objects/patterns.md +255 -0
- package/baseline/skill/cloudflare/references/email-routing/README.md +18 -0
- package/baseline/skill/cloudflare/references/email-routing/api.md +46 -0
- package/baseline/skill/cloudflare/references/email-routing/configuration.md +63 -0
- package/baseline/skill/cloudflare/references/email-routing/gotchas.md +16 -0
- package/baseline/skill/cloudflare/references/email-routing/patterns.md +46 -0
- package/baseline/skill/cloudflare/references/email-workers/README.md +598 -0
- package/baseline/skill/cloudflare/references/hyperdrive/README.md +62 -0
- package/baseline/skill/cloudflare/references/hyperdrive/api.md +137 -0
- package/baseline/skill/cloudflare/references/hyperdrive/configuration.md +133 -0
- package/baseline/skill/cloudflare/references/hyperdrive/gotchas.md +184 -0
- package/baseline/skill/cloudflare/references/hyperdrive/patterns.md +176 -0
- package/baseline/skill/cloudflare/references/images/README.md +14 -0
- package/baseline/skill/cloudflare/references/images/api.md +3 -0
- package/baseline/skill/cloudflare/references/images/configuration.md +45 -0
- package/baseline/skill/cloudflare/references/images/gotchas.md +23 -0
- package/baseline/skill/cloudflare/references/images/patterns.md +31 -0
- package/baseline/skill/cloudflare/references/kv/README.md +60 -0
- package/baseline/skill/cloudflare/references/kv/api.md +114 -0
- package/baseline/skill/cloudflare/references/kv/configuration.md +92 -0
- package/baseline/skill/cloudflare/references/kv/gotchas.md +117 -0
- package/baseline/skill/cloudflare/references/kv/patterns.md +139 -0
- package/baseline/skill/cloudflare/references/miniflare/README.md +64 -0
- package/baseline/skill/cloudflare/references/miniflare/api.md +144 -0
- package/baseline/skill/cloudflare/references/miniflare/configuration.md +203 -0
- package/baseline/skill/cloudflare/references/miniflare/gotchas.md +187 -0
- package/baseline/skill/cloudflare/references/miniflare/patterns.md +211 -0
- package/baseline/skill/cloudflare/references/network-interconnect/README.md +60 -0
- package/baseline/skill/cloudflare/references/network-interconnect/api.md +240 -0
- package/baseline/skill/cloudflare/references/network-interconnect/configuration.md +127 -0
- package/baseline/skill/cloudflare/references/network-interconnect/gotchas.md +171 -0
- package/baseline/skill/cloudflare/references/network-interconnect/patterns.md +171 -0
- package/baseline/skill/cloudflare/references/observability/README.md +18 -0
- package/baseline/skill/cloudflare/references/observability/api.md +51 -0
- package/baseline/skill/cloudflare/references/observability/configuration.md +60 -0
- package/baseline/skill/cloudflare/references/observability/gotchas.md +36 -0
- package/baseline/skill/cloudflare/references/observability/patterns.md +42 -0
- package/baseline/skill/cloudflare/references/pages/README.md +76 -0
- package/baseline/skill/cloudflare/references/pages/api.md +200 -0
- package/baseline/skill/cloudflare/references/pages/configuration.md +228 -0
- package/baseline/skill/cloudflare/references/pages/gotchas.md +161 -0
- package/baseline/skill/cloudflare/references/pages/patterns.md +145 -0
- package/baseline/skill/cloudflare/references/pages-functions/README.md +57 -0
- package/baseline/skill/cloudflare/references/pages-functions/api.md +201 -0
- package/baseline/skill/cloudflare/references/pages-functions/configuration.md +159 -0
- package/baseline/skill/cloudflare/references/pages-functions/gotchas.md +151 -0
- package/baseline/skill/cloudflare/references/pages-functions/patterns.md +190 -0
- package/baseline/skill/cloudflare/references/pipelines/README.md +664 -0
- package/baseline/skill/cloudflare/references/pulumi/README.md +107 -0
- package/baseline/skill/cloudflare/references/pulumi/api.md +194 -0
- package/baseline/skill/cloudflare/references/pulumi/configuration.md +216 -0
- package/baseline/skill/cloudflare/references/pulumi/gotchas.md +223 -0
- package/baseline/skill/cloudflare/references/pulumi/patterns.md +139 -0
- package/baseline/skill/cloudflare/references/queues/README.md +69 -0
- package/baseline/skill/cloudflare/references/queues/api.md +138 -0
- package/baseline/skill/cloudflare/references/queues/configuration.md +125 -0
- package/baseline/skill/cloudflare/references/queues/gotchas.md +112 -0
- package/baseline/skill/cloudflare/references/queues/patterns.md +155 -0
- package/baseline/skill/cloudflare/references/r2/README.md +61 -0
- package/baseline/skill/cloudflare/references/r2/api.md +127 -0
- package/baseline/skill/cloudflare/references/r2/configuration.md +76 -0
- package/baseline/skill/cloudflare/references/r2/gotchas.md +94 -0
- package/baseline/skill/cloudflare/references/r2/patterns.md +127 -0
- package/baseline/skill/cloudflare/references/r2-data-catalog/README.md +18 -0
- package/baseline/skill/cloudflare/references/r2-data-catalog/api.md +29 -0
- package/baseline/skill/cloudflare/references/r2-data-catalog/configuration.md +39 -0
- package/baseline/skill/cloudflare/references/r2-data-catalog/gotchas.md +20 -0
- package/baseline/skill/cloudflare/references/r2-data-catalog/patterns.md +46 -0
- package/baseline/skill/cloudflare/references/r2-sql/README.md +512 -0
- package/baseline/skill/cloudflare/references/realtime-sfu/README.md +21 -0
- package/baseline/skill/cloudflare/references/realtime-sfu/api.md +135 -0
- package/baseline/skill/cloudflare/references/realtime-sfu/configuration.md +63 -0
- package/baseline/skill/cloudflare/references/realtime-sfu/gotchas.md +75 -0
- package/baseline/skill/cloudflare/references/realtime-sfu/patterns.md +102 -0
- package/baseline/skill/cloudflare/references/realtimekit/README.md +81 -0
- package/baseline/skill/cloudflare/references/realtimekit/api.md +164 -0
- package/baseline/skill/cloudflare/references/realtimekit/configuration.md +147 -0
- package/baseline/skill/cloudflare/references/realtimekit/gotchas.md +172 -0
- package/baseline/skill/cloudflare/references/realtimekit/patterns.md +155 -0
- package/baseline/skill/cloudflare/references/sandbox/README.md +90 -0
- package/baseline/skill/cloudflare/references/sandbox/api.md +178 -0
- package/baseline/skill/cloudflare/references/sandbox/configuration.md +131 -0
- package/baseline/skill/cloudflare/references/sandbox/gotchas.md +156 -0
- package/baseline/skill/cloudflare/references/sandbox/patterns.md +203 -0
- package/baseline/skill/cloudflare/references/secrets-store/README.md +58 -0
- package/baseline/skill/cloudflare/references/secrets-store/api.md +182 -0
- package/baseline/skill/cloudflare/references/secrets-store/configuration.md +140 -0
- package/baseline/skill/cloudflare/references/secrets-store/gotchas.md +129 -0
- package/baseline/skill/cloudflare/references/secrets-store/patterns.md +218 -0
- package/baseline/skill/cloudflare/references/smart-placement/README.md +91 -0
- package/baseline/skill/cloudflare/references/smart-placement/api.md +139 -0
- package/baseline/skill/cloudflare/references/smart-placement/configuration.md +129 -0
- package/baseline/skill/cloudflare/references/smart-placement/gotchas.md +87 -0
- package/baseline/skill/cloudflare/references/smart-placement/patterns.md +135 -0
- package/baseline/skill/cloudflare/references/snippets/README.md +15 -0
- package/baseline/skill/cloudflare/references/snippets/api.md +47 -0
- package/baseline/skill/cloudflare/references/snippets/configuration.md +33 -0
- package/baseline/skill/cloudflare/references/snippets/gotchas.md +21 -0
- package/baseline/skill/cloudflare/references/snippets/patterns.md +34 -0
- package/baseline/skill/cloudflare/references/spectrum/README.md +16 -0
- package/baseline/skill/cloudflare/references/spectrum/api.md +24 -0
- package/baseline/skill/cloudflare/references/spectrum/configuration.md +43 -0
- package/baseline/skill/cloudflare/references/spectrum/gotchas.md +42 -0
- package/baseline/skill/cloudflare/references/spectrum/patterns.md +40 -0
- package/baseline/skill/cloudflare/references/static-assets/README.md +14 -0
- package/baseline/skill/cloudflare/references/static-assets/api.md +3 -0
- package/baseline/skill/cloudflare/references/static-assets/configuration.md +47 -0
- package/baseline/skill/cloudflare/references/static-assets/gotchas.md +44 -0
- package/baseline/skill/cloudflare/references/static-assets/patterns.md +42 -0
- package/baseline/skill/cloudflare/references/stream/README.md +103 -0
- package/baseline/skill/cloudflare/references/stream/api.md +204 -0
- package/baseline/skill/cloudflare/references/stream/configuration.md +127 -0
- package/baseline/skill/cloudflare/references/stream/gotchas.md +131 -0
- package/baseline/skill/cloudflare/references/stream/patterns.md +152 -0
- package/baseline/skill/cloudflare/references/tail-workers/README.md +640 -0
- package/baseline/skill/cloudflare/references/terraform/README.md +76 -0
- package/baseline/skill/cloudflare/references/terraform/api.md +159 -0
- package/baseline/skill/cloudflare/references/terraform/configuration.md +156 -0
- package/baseline/skill/cloudflare/references/terraform/gotchas.md +207 -0
- package/baseline/skill/cloudflare/references/terraform/patterns.md +135 -0
- package/baseline/skill/cloudflare/references/tunnel/README.md +82 -0
- package/baseline/skill/cloudflare/references/tunnel/api.md +105 -0
- package/baseline/skill/cloudflare/references/tunnel/configuration.md +113 -0
- package/baseline/skill/cloudflare/references/tunnel/gotchas.md +115 -0
- package/baseline/skill/cloudflare/references/tunnel/patterns.md +157 -0
- package/baseline/skill/cloudflare/references/turn/README.md +699 -0
- package/baseline/skill/cloudflare/references/turnstile/README.md +14 -0
- package/baseline/skill/cloudflare/references/turnstile/api.md +3 -0
- package/baseline/skill/cloudflare/references/turnstile/configuration.md +19 -0
- package/baseline/skill/cloudflare/references/turnstile/gotchas.md +27 -0
- package/baseline/skill/cloudflare/references/turnstile/patterns.md +41 -0
- package/baseline/skill/cloudflare/references/vectorize/README.md +682 -0
- package/baseline/skill/cloudflare/references/waf/README.md +14 -0
- package/baseline/skill/cloudflare/references/waf/api.md +3 -0
- package/baseline/skill/cloudflare/references/waf/configuration.md +44 -0
- package/baseline/skill/cloudflare/references/waf/gotchas.md +24 -0
- package/baseline/skill/cloudflare/references/waf/patterns.md +29 -0
- package/baseline/skill/cloudflare/references/web-analytics/README.md +19 -0
- package/baseline/skill/cloudflare/references/web-analytics/api.md +52 -0
- package/baseline/skill/cloudflare/references/web-analytics/configuration.md +31 -0
- package/baseline/skill/cloudflare/references/web-analytics/gotchas.md +28 -0
- package/baseline/skill/cloudflare/references/web-analytics/patterns.md +52 -0
- package/baseline/skill/cloudflare/references/workerd/README.md +47 -0
- package/baseline/skill/cloudflare/references/workerd/api.md +199 -0
- package/baseline/skill/cloudflare/references/workerd/configuration.md +185 -0
- package/baseline/skill/cloudflare/references/workerd/gotchas.md +203 -0
- package/baseline/skill/cloudflare/references/workerd/patterns.md +216 -0
- package/baseline/skill/cloudflare/references/workers/README.md +96 -0
- package/baseline/skill/cloudflare/references/workers/api.md +137 -0
- package/baseline/skill/cloudflare/references/workers/configuration.md +147 -0
- package/baseline/skill/cloudflare/references/workers/gotchas.md +99 -0
- package/baseline/skill/cloudflare/references/workers/patterns.md +149 -0
- package/baseline/skill/cloudflare/references/workers-ai/README.md +116 -0
- package/baseline/skill/cloudflare/references/workers-for-platforms/README.md +48 -0
- package/baseline/skill/cloudflare/references/workers-for-platforms/api.md +169 -0
- package/baseline/skill/cloudflare/references/workers-for-platforms/configuration.md +136 -0
- package/baseline/skill/cloudflare/references/workers-for-platforms/gotchas.md +130 -0
- package/baseline/skill/cloudflare/references/workers-for-platforms/patterns.md +170 -0
- package/baseline/skill/cloudflare/references/workers-playground/README.md +16 -0
- package/baseline/skill/cloudflare/references/workers-playground/api.md +20 -0
- package/baseline/skill/cloudflare/references/workers-playground/configuration.md +3 -0
- package/baseline/skill/cloudflare/references/workers-playground/gotchas.md +35 -0
- package/baseline/skill/cloudflare/references/workers-playground/patterns.md +42 -0
- package/baseline/skill/cloudflare/references/workers-vpc/README.md +579 -0
- package/baseline/skill/cloudflare/references/workflows/README.md +62 -0
- package/baseline/skill/cloudflare/references/workflows/api.md +125 -0
- package/baseline/skill/cloudflare/references/workflows/configuration.md +177 -0
- package/baseline/skill/cloudflare/references/workflows/gotchas.md +136 -0
- package/baseline/skill/cloudflare/references/workflows/patterns.md +132 -0
- package/baseline/skill/cloudflare/references/wrangler/README.md +90 -0
- package/baseline/skill/cloudflare/references/wrangler/api.md +140 -0
- package/baseline/skill/cloudflare/references/wrangler/configuration.md +128 -0
- package/baseline/skill/cloudflare/references/wrangler/gotchas.md +93 -0
- package/baseline/skill/cloudflare/references/wrangler/patterns.md +150 -0
- package/baseline/skill/cloudflare/references/zaraz/README.md +360 -0
- package/baseline/skill/code-navigation/SKILL.md +130 -0
- package/baseline/skill/compaction/SKILL.md +317 -0
- package/baseline/skill/condition-based-waiting/SKILL.md +123 -0
- package/baseline/skill/condition-based-waiting/example.ts +158 -0
- package/baseline/skill/context-engineering/SKILL.md +176 -0
- package/baseline/skill/context-initialization/SKILL.md +70 -0
- package/baseline/skill/context-management/SKILL.md +163 -0
- package/baseline/skill/core-data-expert/SKILL.md +93 -0
- package/baseline/skill/core-data-expert/references/batch-operations.md +543 -0
- package/baseline/skill/core-data-expert/references/cloudkit-integration.md +259 -0
- package/baseline/skill/core-data-expert/references/concurrency.md +522 -0
- package/baseline/skill/core-data-expert/references/fetch-requests.md +643 -0
- package/baseline/skill/core-data-expert/references/glossary.md +233 -0
- package/baseline/skill/core-data-expert/references/migration.md +393 -0
- package/baseline/skill/core-data-expert/references/model-configuration.md +597 -0
- package/baseline/skill/core-data-expert/references/performance.md +300 -0
- package/baseline/skill/core-data-expert/references/persistent-history.md +553 -0
- package/baseline/skill/core-data-expert/references/project-audit.md +60 -0
- package/baseline/skill/core-data-expert/references/saving.md +574 -0
- package/baseline/skill/core-data-expert/references/stack-setup.md +625 -0
- package/baseline/skill/core-data-expert/references/testing.md +300 -0
- package/baseline/skill/core-data-expert/references/threading.md +589 -0
- package/baseline/skill/deep-research/SKILL.md +384 -0
- package/baseline/skill/defense-in-depth/SKILL.md +166 -0
- package/baseline/skill/design-system-audit/SKILL.md +153 -0
- package/baseline/skill/development-lifecycle/SKILL.md +356 -0
- package/baseline/skill/dispatching-parallel-agents/SKILL.md +191 -0
- package/baseline/skill/executing-plans/SKILL.md +247 -0
- package/baseline/skill/figma/SKILL.md +224 -0
- package/baseline/skill/finishing-a-development-branch/SKILL.md +357 -0
- package/baseline/skill/frontend-design/SKILL.md +235 -0
- package/baseline/skill/frontend-design/references/animation/motion-advanced.md +224 -0
- package/baseline/skill/frontend-design/references/animation/motion-core.md +181 -0
- package/baseline/skill/frontend-design/references/canvas/execution.md +90 -0
- package/baseline/skill/frontend-design/references/canvas/philosophy.md +94 -0
- package/baseline/skill/frontend-design/references/design/color-system.md +111 -0
- package/baseline/skill/frontend-design/references/design/interaction.md +149 -0
- package/baseline/skill/frontend-design/references/design/typography-rules.md +106 -0
- package/baseline/skill/frontend-design/references/design/ux-writing.md +99 -0
- package/baseline/skill/frontend-design/references/shadcn/accessibility.md +132 -0
- package/baseline/skill/frontend-design/references/shadcn/core-components.md +153 -0
- package/baseline/skill/frontend-design/references/shadcn/form-components.md +158 -0
- package/baseline/skill/frontend-design/references/shadcn/setup.md +69 -0
- package/baseline/skill/frontend-design/references/shadcn/theming.md +152 -0
- package/baseline/skill/frontend-design/references/tailwind/responsive.md +112 -0
- package/baseline/skill/frontend-design/references/tailwind/utilities-layout.md +134 -0
- package/baseline/skill/frontend-design/references/tailwind/utilities-styling.md +165 -0
- package/baseline/skill/frontend-design/references/tailwind/v4-config.md +147 -0
- package/baseline/skill/frontend-design/references/tailwind/v4-features.md +128 -0
- package/baseline/skill/gemini-large-context/SKILL.md +216 -0
- package/baseline/skill/index-knowledge/SKILL.md +413 -0
- package/baseline/skill/jira/SKILL.md +283 -0
- package/baseline/skill/jira/mcp.json +6 -0
- package/baseline/skill/memory-system/SKILL.md +84 -0
- package/baseline/skill/mockup-to-code/SKILL.md +184 -0
- package/baseline/skill/mqdh/SKILL.md +171 -0
- package/baseline/skill/obsidian/SKILL.md +192 -0
- package/baseline/skill/obsidian/mcp.json +22 -0
- package/baseline/skill/opensrc/SKILL.md +127 -0
- package/baseline/skill/opensrc/references/architecture.md +176 -0
- package/baseline/skill/opensrc/references/cli-usage.md +176 -0
- package/baseline/skill/opensrc/references/registry-support.md +137 -0
- package/baseline/skill/pdf-extract/SKILL.md +438 -0
- package/baseline/skill/playwright/SKILL.md +320 -0
- package/baseline/skill/playwright/mcp.json +16 -0
- package/baseline/skill/playwriter/SKILL.md +158 -0
- package/baseline/skill/polar/SKILL.md +102 -0
- package/baseline/skill/prd/SKILL.md +146 -0
- package/baseline/skill/prd-task/SKILL.md +182 -0
- package/baseline/skill/prd-task/references/prd-schema.json +124 -0
- package/baseline/skill/ralph/SKILL.md +296 -0
- package/baseline/skill/react-best-practices/AGENTS.md +2410 -0
- package/baseline/skill/react-best-practices/README.md +123 -0
- package/baseline/skill/react-best-practices/SKILL.md +133 -0
- package/baseline/skill/react-best-practices/metadata.json +15 -0
- package/baseline/skill/react-best-practices/rules/_sections.md +46 -0
- package/baseline/skill/react-best-practices/rules/_template.md +28 -0
- package/baseline/skill/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/baseline/skill/react-best-practices/rules/advanced-use-latest.md +49 -0
- package/baseline/skill/react-best-practices/rules/async-api-routes.md +38 -0
- package/baseline/skill/react-best-practices/rules/async-defer-await.md +80 -0
- package/baseline/skill/react-best-practices/rules/async-dependencies.md +36 -0
- package/baseline/skill/react-best-practices/rules/async-parallel.md +28 -0
- package/baseline/skill/react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/baseline/skill/react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/baseline/skill/react-best-practices/rules/bundle-conditional.md +31 -0
- package/baseline/skill/react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/baseline/skill/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/baseline/skill/react-best-practices/rules/bundle-preload.md +50 -0
- package/baseline/skill/react-best-practices/rules/client-event-listeners.md +74 -0
- package/baseline/skill/react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/baseline/skill/react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/baseline/skill/react-best-practices/rules/client-swr-dedup.md +56 -0
- package/baseline/skill/react-best-practices/rules/js-batch-dom-css.md +82 -0
- package/baseline/skill/react-best-practices/rules/js-cache-function-results.md +80 -0
- package/baseline/skill/react-best-practices/rules/js-cache-property-access.md +28 -0
- package/baseline/skill/react-best-practices/rules/js-cache-storage.md +70 -0
- package/baseline/skill/react-best-practices/rules/js-combine-iterations.md +32 -0
- package/baseline/skill/react-best-practices/rules/js-early-exit.md +50 -0
- package/baseline/skill/react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/baseline/skill/react-best-practices/rules/js-index-maps.md +37 -0
- package/baseline/skill/react-best-practices/rules/js-length-check-first.md +49 -0
- package/baseline/skill/react-best-practices/rules/js-min-max-loop.md +82 -0
- package/baseline/skill/react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/baseline/skill/react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/baseline/skill/react-best-practices/rules/rendering-activity.md +26 -0
- package/baseline/skill/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/baseline/skill/react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/baseline/skill/react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/baseline/skill/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/baseline/skill/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/baseline/skill/react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/baseline/skill/react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/baseline/skill/react-best-practices/rules/rerender-dependencies.md +45 -0
- package/baseline/skill/react-best-practices/rules/rerender-derived-state.md +29 -0
- package/baseline/skill/react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/baseline/skill/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/baseline/skill/react-best-practices/rules/rerender-memo.md +44 -0
- package/baseline/skill/react-best-practices/rules/rerender-transitions.md +40 -0
- package/baseline/skill/react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/baseline/skill/react-best-practices/rules/server-cache-lru.md +41 -0
- package/baseline/skill/react-best-practices/rules/server-cache-react.md +76 -0
- package/baseline/skill/react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/baseline/skill/react-best-practices/rules/server-serialization.md +38 -0
- package/baseline/skill/receiving-code-review/SKILL.md +252 -0
- package/baseline/skill/requesting-code-review/SKILL.md +397 -0
- package/baseline/skill/requesting-code-review/review.md +160 -0
- package/baseline/skill/resend/SKILL.md +177 -0
- package/baseline/skill/resend/references/react-email.md +287 -0
- package/baseline/skill/resend/references/receive-email.md +248 -0
- package/baseline/skill/resend/references/send-email.md +318 -0
- package/baseline/skill/root-cause-tracing/SKILL.md +192 -0
- package/baseline/skill/root-cause-tracing/find-polluter.sh +63 -0
- package/baseline/skill/session-management/SKILL.md +9 -0
- package/baseline/skill/sharing-skills/SKILL.md +214 -0
- package/baseline/skill/skill-creator/SKILL.md +156 -0
- package/baseline/skill/source-code-research/SKILL.md +293 -0
- package/baseline/skill/source-code-research/references/analysis-tips.md +43 -0
- package/baseline/skill/source-code-research/references/anti-patterns.md +36 -0
- package/baseline/skill/source-code-research/references/common-patterns.md +57 -0
- package/baseline/skill/source-code-research/references/example-workflow.md +60 -0
- package/baseline/skill/source-code-research/references/further-reading.md +5 -0
- package/baseline/skill/source-code-research/references/source-structure.md +45 -0
- package/baseline/skill/stitch/SKILL.md +147 -0
- package/baseline/skill/stitch/mcp.json +9 -0
- package/baseline/skill/structured-edit/SKILL.md +181 -0
- package/baseline/skill/subagent-driven-development/SKILL.md +237 -0
- package/baseline/skill/supabase/SKILL.md +130 -0
- package/baseline/skill/supabase/mcp.json +27 -0
- package/baseline/skill/supabase-postgres-best-practices/AGENTS.md +1490 -0
- package/baseline/skill/supabase-postgres-best-practices/SKILL.md +65 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/advanced-full-text-search.md +55 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/advanced-jsonb-indexing.md +49 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/conn-idle-timeout.md +46 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/conn-limits.md +44 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/conn-pooling.md +41 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/conn-prepared-statements.md +46 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/data-batch-inserts.md +54 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/data-n-plus-one.md +53 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/data-pagination.md +50 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/data-upsert.md +50 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/lock-advisory.md +56 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/lock-deadlock-prevention.md +68 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/lock-short-transactions.md +50 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/lock-skip-locked.md +54 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/monitor-explain-analyze.md +45 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/monitor-pg-stat-statements.md +55 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/monitor-vacuum-analyze.md +55 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/query-composite-indexes.md +44 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/query-covering-indexes.md +40 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/query-index-types.md +45 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/query-missing-indexes.md +43 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/query-partial-indexes.md +45 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/schema-data-types.md +46 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/schema-foreign-key-indexes.md +59 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/schema-lowercase-identifiers.md +55 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/schema-partitioning.md +55 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/schema-primary-keys.md +61 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/security-privileges.md +54 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/security-rls-basics.md +50 -0
- package/baseline/skill/supabase-postgres-best-practices/rules/security-rls-performance.md +57 -0
- package/baseline/skill/swarm-coordination/SKILL.md +179 -0
- package/baseline/skill/swarm-coordination/references/architecture.md +39 -0
- package/baseline/skill/swarm-coordination/references/delegation-worker-protocol.md +145 -0
- package/baseline/skill/swarm-coordination/references/dependency-graph.md +50 -0
- package/baseline/skill/swarm-coordination/references/drift-check.md +90 -0
- package/baseline/skill/swarm-coordination/references/integration-beads.md +20 -0
- package/baseline/skill/swarm-coordination/references/launch-flow.md +186 -0
- package/baseline/skill/swarm-coordination/references/reconciler.md +172 -0
- package/baseline/skill/swarm-coordination/references/tier-enforcement.md +78 -0
- package/baseline/skill/swarm-coordination/references/tmux-integration.md +134 -0
- package/baseline/skill/swift-concurrency/SKILL.md +266 -0
- package/baseline/skill/swift-concurrency/references/actors.md +640 -0
- package/baseline/skill/swift-concurrency/references/async-algorithms.md +822 -0
- package/baseline/skill/swift-concurrency/references/async-await-basics.md +249 -0
- package/baseline/skill/swift-concurrency/references/async-sequences.md +670 -0
- package/baseline/skill/swift-concurrency/references/core-data.md +533 -0
- package/baseline/skill/swift-concurrency/references/glossary.md +128 -0
- package/baseline/skill/swift-concurrency/references/linting.md +142 -0
- package/baseline/skill/swift-concurrency/references/memory-management.md +542 -0
- package/baseline/skill/swift-concurrency/references/migration.md +1076 -0
- package/baseline/skill/swift-concurrency/references/performance.md +574 -0
- package/baseline/skill/swift-concurrency/references/sendable.md +578 -0
- package/baseline/skill/swift-concurrency/references/tasks.md +604 -0
- package/baseline/skill/swift-concurrency/references/testing.md +565 -0
- package/baseline/skill/swift-concurrency/references/threading.md +452 -0
- package/baseline/skill/swiftui-expert-skill/SKILL.md +329 -0
- package/baseline/skill/swiftui-expert-skill/references/animation-advanced.md +351 -0
- package/baseline/skill/swiftui-expert-skill/references/animation-basics.md +284 -0
- package/baseline/skill/swiftui-expert-skill/references/animation-transitions.md +326 -0
- package/baseline/skill/swiftui-expert-skill/references/image-optimization.md +286 -0
- package/baseline/skill/swiftui-expert-skill/references/layout-best-practices.md +312 -0
- package/baseline/skill/swiftui-expert-skill/references/liquid-glass.md +377 -0
- package/baseline/skill/swiftui-expert-skill/references/list-patterns.md +153 -0
- package/baseline/skill/swiftui-expert-skill/references/modern-apis.md +400 -0
- package/baseline/skill/swiftui-expert-skill/references/performance-patterns.md +377 -0
- package/baseline/skill/swiftui-expert-skill/references/scroll-patterns.md +305 -0
- package/baseline/skill/swiftui-expert-skill/references/sheet-navigation-patterns.md +292 -0
- package/baseline/skill/swiftui-expert-skill/references/state-management.md +447 -0
- package/baseline/skill/swiftui-expert-skill/references/text-formatting.md +285 -0
- package/baseline/skill/swiftui-expert-skill/references/view-structure.md +276 -0
- package/baseline/skill/systematic-debugging/SKILL.md +402 -0
- package/baseline/skill/test-driven-development/SKILL.md +388 -0
- package/baseline/skill/testing-anti-patterns/SKILL.md +333 -0
- package/baseline/skill/testing-skills-with-subagents/SKILL.md +405 -0
- package/baseline/skill/tilth-cli/SKILL.md +180 -0
- package/baseline/skill/tool-priority/SKILL.md +299 -0
- package/baseline/skill/ui-ux-research/SKILL.md +9 -0
- package/baseline/skill/using-git-worktrees/SKILL.md +259 -0
- package/baseline/skill/using-skills/SKILL.md +117 -0
- package/baseline/skill/v0/SKILL.md +158 -0
- package/baseline/skill/v1-run/SKILL.md +175 -0
- package/baseline/skill/v1-run/mcp.json +6 -0
- package/baseline/skill/vercel-deploy-claimable/SKILL.md +124 -0
- package/baseline/skill/vercel-deploy-claimable/scripts/deploy.sh +249 -0
- package/baseline/skill/verification-before-completion/SKILL.md +236 -0
- package/baseline/skill/verification-before-completion/references/VERIFICATION_PROTOCOL.md +171 -0
- package/baseline/skill/visual-analysis/SKILL.md +154 -0
- package/baseline/skill/web-design-guidelines/SKILL.md +46 -0
- package/baseline/skill/writing-plans/SKILL.md +320 -0
- package/baseline/skill/writing-skills/SKILL.md +287 -0
- package/baseline/skill/writing-skills/anthropic-best-practices.md +1173 -0
- package/baseline/skill/writing-skills/graphviz-conventions.dot +172 -0
- package/baseline/skill/writing-skills/persuasion-principles.md +220 -0
- package/baseline/skill/writing-skills/references/anti-patterns.md +25 -0
- package/baseline/skill/writing-skills/references/claude-search-optimization.md +140 -0
- package/baseline/skill/writing-skills/references/discovery-workflow.md +11 -0
- package/baseline/skill/writing-skills/references/file-organization.md +32 -0
- package/baseline/skill/writing-skills/references/flowcharts-and-examples.md +57 -0
- package/baseline/skill/writing-skills/references/rationalization-hardening.md +75 -0
- package/baseline/skill/writing-skills/references/testing-skill-types.md +52 -0
- package/baseline/tool/context7.ts +191 -0
- package/baseline/tool/grepsearch.ts +143 -0
- package/baseline/tsconfig.json +21 -0
- package/baseline/tui.json +15 -0
- package/bin/mrc-opc.mjs +25 -0
- package/bin/ocp.mjs +25 -0
- package/bin/opc.mjs +25 -0
- package/bin/opencode-starterkit.mjs +25 -0
- package/docs/reports/2026-03-18-memory-db-architecture-note.md +47 -0
- package/docs/reports/2026-03-18-vat-opencode-classification-matrix.md +180 -0
- package/package.json +25 -0
- package/src/cli.mjs +41 -0
- package/src/config-merge.mjs +61 -0
- package/src/constants.mjs +58 -0
- package/src/fs-utils.mjs +46 -0
- package/src/install-global.mjs +102 -0
- package/src/install-project.mjs +81 -0
- package/src/memory-bootstrap.mjs +29 -0
- package/src/prompt.mjs +31 -0
- package/src/templates.mjs +31 -0
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Vercel Deployment Script (via claimable deploy endpoint)
|
|
4
|
+
# Usage: ./deploy.sh [project-path]
|
|
5
|
+
# Returns: JSON with previewUrl, claimUrl, deploymentId, projectId
|
|
6
|
+
|
|
7
|
+
set -e
|
|
8
|
+
|
|
9
|
+
DEPLOY_ENDPOINT="https://claude-skills-deploy.vercel.com/api/deploy"
|
|
10
|
+
|
|
11
|
+
# Detect framework from package.json
|
|
12
|
+
detect_framework() {
|
|
13
|
+
local pkg_json="$1"
|
|
14
|
+
|
|
15
|
+
if [ ! -f "$pkg_json" ]; then
|
|
16
|
+
echo "null"
|
|
17
|
+
return
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
local content=$(cat "$pkg_json")
|
|
21
|
+
|
|
22
|
+
# Helper to check if a package exists in dependencies or devDependencies
|
|
23
|
+
has_dep() {
|
|
24
|
+
echo "$content" | grep -q "\"$1\""
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
# Order matters - check more specific frameworks first
|
|
28
|
+
|
|
29
|
+
# Blitz
|
|
30
|
+
if has_dep "blitz"; then echo "blitzjs"; return; fi
|
|
31
|
+
|
|
32
|
+
# Next.js
|
|
33
|
+
if has_dep "next"; then echo "nextjs"; return; fi
|
|
34
|
+
|
|
35
|
+
# Gatsby
|
|
36
|
+
if has_dep "gatsby"; then echo "gatsby"; return; fi
|
|
37
|
+
|
|
38
|
+
# Remix
|
|
39
|
+
if has_dep "@remix-run/"; then echo "remix"; return; fi
|
|
40
|
+
|
|
41
|
+
# React Router (v7 framework mode)
|
|
42
|
+
if has_dep "@react-router/"; then echo "react-router"; return; fi
|
|
43
|
+
|
|
44
|
+
# TanStack Start
|
|
45
|
+
if has_dep "@tanstack/start"; then echo "tanstack-start"; return; fi
|
|
46
|
+
|
|
47
|
+
# Astro
|
|
48
|
+
if has_dep "astro"; then echo "astro"; return; fi
|
|
49
|
+
|
|
50
|
+
# Hydrogen (Shopify)
|
|
51
|
+
if has_dep "@shopify/hydrogen"; then echo "hydrogen"; return; fi
|
|
52
|
+
|
|
53
|
+
# SvelteKit
|
|
54
|
+
if has_dep "@sveltejs/kit"; then echo "sveltekit-1"; return; fi
|
|
55
|
+
|
|
56
|
+
# Svelte (standalone)
|
|
57
|
+
if has_dep "svelte"; then echo "svelte"; return; fi
|
|
58
|
+
|
|
59
|
+
# Nuxt
|
|
60
|
+
if has_dep "nuxt"; then echo "nuxtjs"; return; fi
|
|
61
|
+
|
|
62
|
+
# Vue with Vitepress
|
|
63
|
+
if has_dep "vitepress"; then echo "vitepress"; return; fi
|
|
64
|
+
|
|
65
|
+
# Vue with Vuepress
|
|
66
|
+
if has_dep "vuepress"; then echo "vuepress"; return; fi
|
|
67
|
+
|
|
68
|
+
# Gridsome
|
|
69
|
+
if has_dep "gridsome"; then echo "gridsome"; return; fi
|
|
70
|
+
|
|
71
|
+
# SolidStart
|
|
72
|
+
if has_dep "@solidjs/start"; then echo "solidstart-1"; return; fi
|
|
73
|
+
|
|
74
|
+
# Docusaurus
|
|
75
|
+
if has_dep "@docusaurus/core"; then echo "docusaurus-2"; return; fi
|
|
76
|
+
|
|
77
|
+
# RedwoodJS
|
|
78
|
+
if has_dep "@redwoodjs/"; then echo "redwoodjs"; return; fi
|
|
79
|
+
|
|
80
|
+
# Hexo
|
|
81
|
+
if has_dep "hexo"; then echo "hexo"; return; fi
|
|
82
|
+
|
|
83
|
+
# Eleventy
|
|
84
|
+
if has_dep "@11ty/eleventy"; then echo "eleventy"; return; fi
|
|
85
|
+
|
|
86
|
+
# Angular / Ionic Angular
|
|
87
|
+
if has_dep "@ionic/angular"; then echo "ionic-angular"; return; fi
|
|
88
|
+
if has_dep "@angular/core"; then echo "angular"; return; fi
|
|
89
|
+
|
|
90
|
+
# Ionic React
|
|
91
|
+
if has_dep "@ionic/react"; then echo "ionic-react"; return; fi
|
|
92
|
+
|
|
93
|
+
# Create React App
|
|
94
|
+
if has_dep "react-scripts"; then echo "create-react-app"; return; fi
|
|
95
|
+
|
|
96
|
+
# Ember
|
|
97
|
+
if has_dep "ember-cli" || has_dep "ember-source"; then echo "ember"; return; fi
|
|
98
|
+
|
|
99
|
+
# Dojo
|
|
100
|
+
if has_dep "@dojo/framework"; then echo "dojo"; return; fi
|
|
101
|
+
|
|
102
|
+
# Polymer
|
|
103
|
+
if has_dep "@polymer/"; then echo "polymer"; return; fi
|
|
104
|
+
|
|
105
|
+
# Preact
|
|
106
|
+
if has_dep "preact"; then echo "preact"; return; fi
|
|
107
|
+
|
|
108
|
+
# Stencil
|
|
109
|
+
if has_dep "@stencil/core"; then echo "stencil"; return; fi
|
|
110
|
+
|
|
111
|
+
# UmiJS
|
|
112
|
+
if has_dep "umi"; then echo "umijs"; return; fi
|
|
113
|
+
|
|
114
|
+
# Sapper (legacy Svelte)
|
|
115
|
+
if has_dep "sapper"; then echo "sapper"; return; fi
|
|
116
|
+
|
|
117
|
+
# Saber
|
|
118
|
+
if has_dep "saber"; then echo "saber"; return; fi
|
|
119
|
+
|
|
120
|
+
# Sanity
|
|
121
|
+
if has_dep "sanity"; then echo "sanity-v3"; return; fi
|
|
122
|
+
if has_dep "@sanity/"; then echo "sanity"; return; fi
|
|
123
|
+
|
|
124
|
+
# Storybook
|
|
125
|
+
if has_dep "@storybook/"; then echo "storybook"; return; fi
|
|
126
|
+
|
|
127
|
+
# NestJS
|
|
128
|
+
if has_dep "@nestjs/core"; then echo "nestjs"; return; fi
|
|
129
|
+
|
|
130
|
+
# Elysia
|
|
131
|
+
if has_dep "elysia"; then echo "elysia"; return; fi
|
|
132
|
+
|
|
133
|
+
# Hono
|
|
134
|
+
if has_dep "hono"; then echo "hono"; return; fi
|
|
135
|
+
|
|
136
|
+
# Fastify
|
|
137
|
+
if has_dep "fastify"; then echo "fastify"; return; fi
|
|
138
|
+
|
|
139
|
+
# h3
|
|
140
|
+
if has_dep "h3"; then echo "h3"; return; fi
|
|
141
|
+
|
|
142
|
+
# Nitro
|
|
143
|
+
if has_dep "nitropack"; then echo "nitro"; return; fi
|
|
144
|
+
|
|
145
|
+
# Express
|
|
146
|
+
if has_dep "express"; then echo "express"; return; fi
|
|
147
|
+
|
|
148
|
+
# Vite (generic - check last among JS frameworks)
|
|
149
|
+
if has_dep "vite"; then echo "vite"; return; fi
|
|
150
|
+
|
|
151
|
+
# Parcel
|
|
152
|
+
if has_dep "parcel"; then echo "parcel"; return; fi
|
|
153
|
+
|
|
154
|
+
# No framework detected
|
|
155
|
+
echo "null"
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
# Parse arguments
|
|
159
|
+
INPUT_PATH="${1:-.}"
|
|
160
|
+
|
|
161
|
+
# Create temp directory for packaging
|
|
162
|
+
TEMP_DIR=$(mktemp -d)
|
|
163
|
+
TARBALL="$TEMP_DIR/project.tgz"
|
|
164
|
+
CLEANUP_TEMP=true
|
|
165
|
+
|
|
166
|
+
cleanup() {
|
|
167
|
+
if [ "$CLEANUP_TEMP" = true ]; then
|
|
168
|
+
rm -rf "$TEMP_DIR"
|
|
169
|
+
fi
|
|
170
|
+
}
|
|
171
|
+
trap cleanup EXIT
|
|
172
|
+
|
|
173
|
+
echo "Preparing deployment..." >&2
|
|
174
|
+
|
|
175
|
+
# Check if input is a .tgz file or a directory
|
|
176
|
+
FRAMEWORK="null"
|
|
177
|
+
|
|
178
|
+
if [ -f "$INPUT_PATH" ] && [[ "$INPUT_PATH" == *.tgz ]]; then
|
|
179
|
+
# Input is already a tarball, use it directly
|
|
180
|
+
echo "Using provided tarball..." >&2
|
|
181
|
+
TARBALL="$INPUT_PATH"
|
|
182
|
+
CLEANUP_TEMP=false
|
|
183
|
+
# Can't detect framework from tarball, leave as null
|
|
184
|
+
elif [ -d "$INPUT_PATH" ]; then
|
|
185
|
+
# Input is a directory, need to tar it
|
|
186
|
+
PROJECT_PATH=$(cd "$INPUT_PATH" && pwd)
|
|
187
|
+
|
|
188
|
+
# Detect framework from package.json
|
|
189
|
+
FRAMEWORK=$(detect_framework "$PROJECT_PATH/package.json")
|
|
190
|
+
|
|
191
|
+
# Check if this is a static HTML project (no package.json)
|
|
192
|
+
if [ ! -f "$PROJECT_PATH/package.json" ]; then
|
|
193
|
+
# Find HTML files in root
|
|
194
|
+
HTML_FILES=$(find "$PROJECT_PATH" -maxdepth 1 -name "*.html" -type f)
|
|
195
|
+
HTML_COUNT=$(echo "$HTML_FILES" | grep -c . || echo 0)
|
|
196
|
+
|
|
197
|
+
# If there's exactly one HTML file and it's not index.html, rename it
|
|
198
|
+
if [ "$HTML_COUNT" -eq 1 ]; then
|
|
199
|
+
HTML_FILE=$(echo "$HTML_FILES" | head -1)
|
|
200
|
+
BASENAME=$(basename "$HTML_FILE")
|
|
201
|
+
if [ "$BASENAME" != "index.html" ]; then
|
|
202
|
+
echo "Renaming $BASENAME to index.html..." >&2
|
|
203
|
+
mv "$HTML_FILE" "$PROJECT_PATH/index.html"
|
|
204
|
+
fi
|
|
205
|
+
fi
|
|
206
|
+
fi
|
|
207
|
+
|
|
208
|
+
# Create tarball of the project (excluding node_modules and .git)
|
|
209
|
+
echo "Creating deployment package..." >&2
|
|
210
|
+
tar -czf "$TARBALL" -C "$PROJECT_PATH" --exclude='node_modules' --exclude='.git' .
|
|
211
|
+
else
|
|
212
|
+
echo "Error: Input must be a directory or a .tgz file" >&2
|
|
213
|
+
exit 1
|
|
214
|
+
fi
|
|
215
|
+
|
|
216
|
+
if [ "$FRAMEWORK" != "null" ]; then
|
|
217
|
+
echo "Detected framework: $FRAMEWORK" >&2
|
|
218
|
+
fi
|
|
219
|
+
|
|
220
|
+
# Deploy
|
|
221
|
+
echo "Deploying..." >&2
|
|
222
|
+
RESPONSE=$(curl -s -X POST "$DEPLOY_ENDPOINT" -F "file=@$TARBALL" -F "framework=$FRAMEWORK")
|
|
223
|
+
|
|
224
|
+
# Check for error in response
|
|
225
|
+
if echo "$RESPONSE" | grep -q '"error"'; then
|
|
226
|
+
ERROR_MSG=$(echo "$RESPONSE" | grep -o '"error":"[^"]*"' | cut -d'"' -f4)
|
|
227
|
+
echo "Error: $ERROR_MSG" >&2
|
|
228
|
+
exit 1
|
|
229
|
+
fi
|
|
230
|
+
|
|
231
|
+
# Extract URLs from response
|
|
232
|
+
PREVIEW_URL=$(echo "$RESPONSE" | grep -o '"previewUrl":"[^"]*"' | cut -d'"' -f4)
|
|
233
|
+
CLAIM_URL=$(echo "$RESPONSE" | grep -o '"claimUrl":"[^"]*"' | cut -d'"' -f4)
|
|
234
|
+
|
|
235
|
+
if [ -z "$PREVIEW_URL" ]; then
|
|
236
|
+
echo "Error: Could not extract preview URL from response" >&2
|
|
237
|
+
echo "$RESPONSE" >&2
|
|
238
|
+
exit 1
|
|
239
|
+
fi
|
|
240
|
+
|
|
241
|
+
echo "" >&2
|
|
242
|
+
echo "Deployment successful!" >&2
|
|
243
|
+
echo "" >&2
|
|
244
|
+
echo "Preview URL: $PREVIEW_URL" >&2
|
|
245
|
+
echo "Claim URL: $CLAIM_URL" >&2
|
|
246
|
+
echo "" >&2
|
|
247
|
+
|
|
248
|
+
# Output JSON for programmatic use
|
|
249
|
+
echo "$RESPONSE"
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: verification-before-completion
|
|
3
|
+
description: Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
tags: [workflow, code-quality]
|
|
6
|
+
dependencies: []
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Verification Before Completion
|
|
10
|
+
|
|
11
|
+
## When to Use
|
|
12
|
+
|
|
13
|
+
- Before claiming tests/lint/build pass or a bug is fixed
|
|
14
|
+
- Before committing, opening PRs, or stating completion in a status update
|
|
15
|
+
|
|
16
|
+
## When NOT to Use
|
|
17
|
+
|
|
18
|
+
- While still actively coding without a completion claim
|
|
19
|
+
- When you cannot run verification commands yet (e.g., missing dependencies) — resolve first
|
|
20
|
+
|
|
21
|
+
## Overview
|
|
22
|
+
|
|
23
|
+
Claiming work is complete without verification is dishonesty, not efficiency.
|
|
24
|
+
|
|
25
|
+
**Core principle:** Evidence before claims, always.
|
|
26
|
+
|
|
27
|
+
**Violating the letter of this rule is violating the spirit of this rule.**
|
|
28
|
+
|
|
29
|
+
## The Iron Law
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
If you haven't run the verification command in this message, you cannot claim it passes.
|
|
36
|
+
|
|
37
|
+
## The Gate Function
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
BEFORE claiming any status or expressing satisfaction:
|
|
41
|
+
|
|
42
|
+
1. IDENTIFY: What command proves this claim?
|
|
43
|
+
2. RUN: Execute the FULL command (fresh, complete)
|
|
44
|
+
3. READ: Full output, check exit code, count failures
|
|
45
|
+
4. VERIFY: Does output confirm the claim?
|
|
46
|
+
- If NO: State actual status with evidence
|
|
47
|
+
- If YES: State claim WITH evidence
|
|
48
|
+
5. ONLY THEN: Make the claim
|
|
49
|
+
|
|
50
|
+
Skip any step = lying, not verifying
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Verification Checklist
|
|
55
|
+
|
|
56
|
+
- [ ] Identify the exact command that proves the claim
|
|
57
|
+
- [ ] Run the full command (fresh)
|
|
58
|
+
- [ ] Read the full output and exit code
|
|
59
|
+
- [ ] Confirm the output matches the claim
|
|
60
|
+
- [ ] Only then state the completion claim with evidence
|
|
61
|
+
|
|
62
|
+
## Common Failures
|
|
63
|
+
|
|
64
|
+
| Claim | Requires | Not Sufficient |
|
|
65
|
+
| --------------------- | ------------------------------- | ------------------------------ |
|
|
66
|
+
| Tests pass | Test command output: 0 failures | Previous run, "should pass" |
|
|
67
|
+
| Linter clean | Linter output: 0 errors | Partial check, extrapolation |
|
|
68
|
+
| Build succeeds | Build command: exit 0 | Linter passing, logs look good |
|
|
69
|
+
| Bug fixed | Test original symptom: passes | Code changed, assumed fixed |
|
|
70
|
+
| Regression test works | Red-green cycle verified | Test passes once |
|
|
71
|
+
| Agent completed | VCS diff shows changes | Agent reports "success" |
|
|
72
|
+
| Requirements met | Line-by-line checklist | Tests passing |
|
|
73
|
+
|
|
74
|
+
## Red Flags - STOP
|
|
75
|
+
|
|
76
|
+
- Using "should", "probably", "seems to"
|
|
77
|
+
- Expressing satisfaction before verification ("Great!", "Perfect!", "Done!", etc.)
|
|
78
|
+
- About to commit/push/PR without verification
|
|
79
|
+
- Trusting agent success reports
|
|
80
|
+
- Relying on partial verification
|
|
81
|
+
- Thinking "just this once"
|
|
82
|
+
- Tired and wanting work over
|
|
83
|
+
- **ANY wording implying success without having run verification**
|
|
84
|
+
|
|
85
|
+
## Rationalization Prevention
|
|
86
|
+
|
|
87
|
+
| Excuse | Reality |
|
|
88
|
+
| --------------------------------------- | ---------------------- |
|
|
89
|
+
| "Should work now" | RUN the verification |
|
|
90
|
+
| "I'm confident" | Confidence ≠ evidence |
|
|
91
|
+
| "Just this once" | No exceptions |
|
|
92
|
+
| "Linter passed" | Linter ≠ compiler |
|
|
93
|
+
| "Agent said success" | Verify independently |
|
|
94
|
+
| "I'm tired" | Exhaustion ≠ excuse |
|
|
95
|
+
| "Partial check is enough" | Partial proves nothing |
|
|
96
|
+
| "Different words so rule doesn't apply" | Spirit over letter |
|
|
97
|
+
|
|
98
|
+
## Key Patterns
|
|
99
|
+
|
|
100
|
+
**Tests:**
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
✅ [Run test command] [See: 34/34 pass] "All tests pass"
|
|
104
|
+
❌ "Should pass now" / "Looks correct"
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**Regression tests (TDD Red-Green):**
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
✅ Write → Run (pass) → Revert fix → Run (MUST FAIL) → Restore → Run (pass)
|
|
111
|
+
❌ "I've written a regression test" (without red-green verification)
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
**Build:**
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
✅ [Run build] [See: exit 0] "Build passes"
|
|
118
|
+
❌ "Linter passed" (linter doesn't check compilation)
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**Requirements:**
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
✅ Re-read plan → Create checklist → Verify each → Report gaps or completion
|
|
125
|
+
❌ "Tests pass, phase complete"
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**Agent delegation:**
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
✅ Agent reports success → Check VCS diff → Verify changes → Report actual state
|
|
132
|
+
❌ Trust agent report
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## Smart Verification
|
|
136
|
+
|
|
137
|
+
The Iron Law demands evidence, but evidence should be gathered efficiently.
|
|
138
|
+
|
|
139
|
+
### Incremental by Default
|
|
140
|
+
|
|
141
|
+
Unless shipping or `--full` is passed, verify only what changed:
|
|
142
|
+
|
|
143
|
+
- **Lint**: `oxlint <changed-files>` instead of linting the entire codebase
|
|
144
|
+
- **Test**: `vitest run --changed` instead of running all tests
|
|
145
|
+
- **Typecheck**: always full (type errors propagate across files)
|
|
146
|
+
|
|
147
|
+
See the [Verification Protocol](./references/VERIFICATION_PROTOCOL.md) for exact commands.
|
|
148
|
+
|
|
149
|
+
### Parallel Execution
|
|
150
|
+
|
|
151
|
+
Run independent gates simultaneously to reduce wall-clock time:
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
Parallel: typecheck + lint → both must pass
|
|
155
|
+
Sequential: test → build (ship only)
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
Total time = max(typecheck, lint) + test, not typecheck + lint + test.
|
|
159
|
+
|
|
160
|
+
### Verification Cache
|
|
161
|
+
|
|
162
|
+
If you just verified and nothing changed, don't re-verify:
|
|
163
|
+
|
|
164
|
+
1. After gates pass, record a stamp in `.beads/verify.log`
|
|
165
|
+
2. Before running gates, compare current state to last stamp
|
|
166
|
+
3. If match → report cached PASS, skip redundant work
|
|
167
|
+
4. Cache is always bypassed for `--full` and ship/release
|
|
168
|
+
|
|
169
|
+
This matters when other commands need verification (e.g., closing beads, `/ship`). If you verified 30 seconds ago and made no changes, the cache lets you skip.
|
|
170
|
+
|
|
171
|
+
## Enforcement Gates
|
|
172
|
+
|
|
173
|
+
Prompt-level rules get ignored under pressure. These gates are **hard blocks** — they must be checked at the tool/action level, not just remembered.
|
|
174
|
+
|
|
175
|
+
### Gate 1: Completion Claims Require verify.log
|
|
176
|
+
|
|
177
|
+
Before ANY completion claim (bead close, PR creation, `/ship`, task completion):
|
|
178
|
+
|
|
179
|
+
1. Check `.beads/verify.log` exists and contains a recent `PASS` stamp
|
|
180
|
+
2. If verify.log is missing or stale (older than last file change) → **BLOCK** — run verification first
|
|
181
|
+
3. If verify.log shows `FAIL` → **BLOCK** — do not proceed
|
|
182
|
+
|
|
183
|
+
```
|
|
184
|
+
✅ verify.log exists, PASS within last edit window → proceed
|
|
185
|
+
❌ verify.log missing → STOP: "Run verification first"
|
|
186
|
+
❌ verify.log shows FAIL → STOP: "Verification failed, fix before claiming complete"
|
|
187
|
+
❌ verify.log stale (files changed since last PASS) → STOP: "Re-run verification"
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Gate 2: Agent Delegation Requires Post-Verification
|
|
191
|
+
|
|
192
|
+
After ANY `task()` subagent returns with "success", follow the **Worker Distrust Protocol** from AGENTS.md — read changed files, run verification, check acceptance criteria. Do not trust agent self-reports.
|
|
193
|
+
|
|
194
|
+
### Enforcement Principle
|
|
195
|
+
|
|
196
|
+
> **Prompt rules fail under pressure. Gates fail safe.**
|
|
197
|
+
>
|
|
198
|
+
> When a constraint matters enough to be an iron law, enforce it at the action level:
|
|
199
|
+
> check a file, verify a condition, reject if unmet. Don't rely on the agent
|
|
200
|
+
> "remembering" to follow the rule.
|
|
201
|
+
|
|
202
|
+
## Why This Matters
|
|
203
|
+
|
|
204
|
+
From 24 failure memories:
|
|
205
|
+
|
|
206
|
+
- your human partner said "I don't believe you" - trust broken
|
|
207
|
+
- Undefined functions shipped - would crash
|
|
208
|
+
- Missing requirements shipped - incomplete features
|
|
209
|
+
- Time wasted on false completion → redirect → rework
|
|
210
|
+
- Violates: "Honesty is a core value. If you lie, you'll be replaced."
|
|
211
|
+
|
|
212
|
+
## When To Apply
|
|
213
|
+
|
|
214
|
+
**ALWAYS before:**
|
|
215
|
+
|
|
216
|
+
- ANY variation of success/completion claims
|
|
217
|
+
- ANY expression of satisfaction
|
|
218
|
+
- ANY positive statement about work state
|
|
219
|
+
- Committing, PR creation, task completion
|
|
220
|
+
- Moving to next task
|
|
221
|
+
- Delegating to agents
|
|
222
|
+
|
|
223
|
+
**Rule applies to:**
|
|
224
|
+
|
|
225
|
+
- Exact phrases
|
|
226
|
+
- Paraphrases and synonyms
|
|
227
|
+
- Implications of success
|
|
228
|
+
- ANY communication suggesting completion/correctness
|
|
229
|
+
|
|
230
|
+
## The Bottom Line
|
|
231
|
+
|
|
232
|
+
**No shortcuts for verification.**
|
|
233
|
+
|
|
234
|
+
Run the command. Read the output. THEN claim the result.
|
|
235
|
+
|
|
236
|
+
This is non-negotiable.
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# Verification Protocol
|
|
2
|
+
|
|
3
|
+
## Default: Incremental Mode
|
|
4
|
+
|
|
5
|
+
**Incremental is the default.** Only switch to full mode when:
|
|
6
|
+
|
|
7
|
+
- `--full` flag is explicitly passed
|
|
8
|
+
- Shipping/releasing (pre-merge, CI pipeline)
|
|
9
|
+
- More than 20 files changed
|
|
10
|
+
|
|
11
|
+
### Changed Files Detection
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Get changed files (uncommitted + staged + untracked)
|
|
15
|
+
CHANGED=$({
|
|
16
|
+
git diff --name-only --diff-filter=d HEAD -- '*.ts' '*.tsx' '*.js' '*.jsx'
|
|
17
|
+
git ls-files --others --exclude-standard -- '*.ts' '*.tsx' '*.js' '*.jsx'
|
|
18
|
+
} | sort -u)
|
|
19
|
+
|
|
20
|
+
# If in a bead worktree, diff against the branch point:
|
|
21
|
+
# CHANGED=$({
|
|
22
|
+
# git diff --name-only --diff-filter=d main...HEAD -- '*.ts' '*.tsx' '*.js' '*.jsx'
|
|
23
|
+
# git ls-files --others --exclude-standard -- '*.ts' '*.tsx' '*.js' '*.jsx'
|
|
24
|
+
# } | sort -u)
|
|
25
|
+
|
|
26
|
+
# Count for mode decision
|
|
27
|
+
FILE_COUNT=$(echo "$CHANGED" | grep -c .)
|
|
28
|
+
# > 20 files → switch to full mode automatically
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Standard Gates
|
|
32
|
+
|
|
33
|
+
### Gate Execution Order
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
┌─────────────────────────────────────┐
|
|
37
|
+
│ Parallel (run simultaneously) │
|
|
38
|
+
│ ┌─────────────┐ ┌───────────────┐ │
|
|
39
|
+
│ │ Typecheck │ │ Lint │ │
|
|
40
|
+
│ │ (always │ │ (changed │ │
|
|
41
|
+
│ │ full) │ │ files only) │ │
|
|
42
|
+
│ └──────┬──────┘ └──────┬────────┘ │
|
|
43
|
+
│ └───────┬───────┘ │
|
|
44
|
+
│ both must pass │
|
|
45
|
+
├─────────────────────────────────────┤
|
|
46
|
+
│ Sequential (after parallel passes) │
|
|
47
|
+
│ ┌─────────────┐ ┌───────────────┐ │
|
|
48
|
+
│ │ Test │ │ Build │ │
|
|
49
|
+
│ │ (--changed │ │ (ship/release│ │
|
|
50
|
+
│ │ or full) │ │ only) │ │
|
|
51
|
+
│ └─────────────┘ └───────────────┘ │
|
|
52
|
+
└─────────────────────────────────────┘
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Parallel Group (independent — run simultaneously)
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# Gate 1: Typecheck (always full — type errors propagate across files)
|
|
59
|
+
npm run typecheck 2>&1 &
|
|
60
|
+
PID_TC=$!
|
|
61
|
+
|
|
62
|
+
# Gate 2: Lint
|
|
63
|
+
# Incremental (default): lint only changed files
|
|
64
|
+
npx oxlint $CHANGED 2>&1 &
|
|
65
|
+
# Full mode: lint everything
|
|
66
|
+
# npm run lint 2>&1 &
|
|
67
|
+
PID_LINT=$!
|
|
68
|
+
|
|
69
|
+
wait $PID_TC $PID_LINT
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Sequential Group (depends on parallel group passing)
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# Gate 3: Tests
|
|
76
|
+
# Incremental (default): only tests affected by changed files
|
|
77
|
+
npx vitest run --changed
|
|
78
|
+
# Full mode: run all tests
|
|
79
|
+
# npm test
|
|
80
|
+
|
|
81
|
+
# Gate 4: Build (only if shipping/releasing)
|
|
82
|
+
# npm run build
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Gate Commands Summary
|
|
86
|
+
|
|
87
|
+
| Gate | Incremental (default) | Full (`--full`) | When |
|
|
88
|
+
| --------- | ---------------------------- | ------------------- | ----------------- |
|
|
89
|
+
| Typecheck | `npm run typecheck` | `npm run typecheck` | Always (parallel) |
|
|
90
|
+
| Lint | `npx oxlint <changed-files>` | `npm run lint` | Always (parallel) |
|
|
91
|
+
| Test | `npx vitest run --changed` | `npm test` | Always |
|
|
92
|
+
| Build | Skip | `npm run build` | Ship/release only |
|
|
93
|
+
|
|
94
|
+
## Verification Cache
|
|
95
|
+
|
|
96
|
+
Avoid redundant verification when nothing changed since the last successful run.
|
|
97
|
+
|
|
98
|
+
### Cache Protocol
|
|
99
|
+
|
|
100
|
+
After all gates pass, record a verification stamp:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
# Compute fingerprint: commit hash + full diff content + untracked files
|
|
104
|
+
# This ensures the stamp changes on ANY code change (commit, edit, or new file)
|
|
105
|
+
STAMP=$(printf '%s\n%s\n%s' \
|
|
106
|
+
"$(git rev-parse HEAD)" \
|
|
107
|
+
"$(git diff HEAD -- '*.ts' '*.tsx' '*.js' '*.jsx')" \
|
|
108
|
+
"$(git ls-files --others --exclude-standard -- '*.ts' '*.tsx' '*.js' '*.jsx' | xargs cat 2>/dev/null)" \
|
|
109
|
+
| shasum -a 256 | cut -d' ' -f1)
|
|
110
|
+
|
|
111
|
+
echo "$STAMP $(date -u +%Y-%m-%dT%H:%M:%SZ) PASS" >> .beads/verify.log
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Skip Check (before running gates)
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# Read last verification stamp
|
|
118
|
+
LAST_STAMP=$(tail -1 .beads/verify.log 2>/dev/null | awk '{print $1}')
|
|
119
|
+
|
|
120
|
+
# Recompute current fingerprint (same formula as recording)
|
|
121
|
+
CURRENT_STAMP=$(printf '%s\n%s\n%s' \
|
|
122
|
+
"$(git rev-parse HEAD)" \
|
|
123
|
+
"$(git diff HEAD -- '*.ts' '*.tsx' '*.js' '*.jsx')" \
|
|
124
|
+
"$(git ls-files --others --exclude-standard -- '*.ts' '*.tsx' '*.js' '*.jsx' | xargs cat 2>/dev/null)" \
|
|
125
|
+
| shasum -a 256 | cut -d' ' -f1)
|
|
126
|
+
|
|
127
|
+
if [ "$LAST_STAMP" = "$CURRENT_STAMP" ]; then
|
|
128
|
+
echo "Verification cached: no changes since last PASS"
|
|
129
|
+
# Skip gates — report cached result
|
|
130
|
+
else
|
|
131
|
+
# Run gates normally
|
|
132
|
+
fi
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### When Cache is Invalidated
|
|
136
|
+
|
|
137
|
+
- Any file edited, staged, or committed since last verification
|
|
138
|
+
- `--full` flag always bypasses cache
|
|
139
|
+
- Manual `--no-cache` flag bypasses cache
|
|
140
|
+
- Different bead context (bead ID changed)
|
|
141
|
+
|
|
142
|
+
### Agent Behavior
|
|
143
|
+
|
|
144
|
+
When another command needs verification (e.g., closing a bead, `/ship`):
|
|
145
|
+
|
|
146
|
+
1. **Check cache first** — if clean, report `"Verification: cached PASS (no changes since <timestamp>)"`
|
|
147
|
+
2. **If cache miss** — run incremental gates normally
|
|
148
|
+
3. **Always record** — append to `verify.log` after successful run
|
|
149
|
+
4. **Never skip on ship/release** — always run full mode regardless of cache
|
|
150
|
+
|
|
151
|
+
## Gate Results Format
|
|
152
|
+
|
|
153
|
+
Report results as:
|
|
154
|
+
|
|
155
|
+
```text
|
|
156
|
+
| Gate | Status | Mode | Time |
|
|
157
|
+
|-----------|--------|-------------|--------|
|
|
158
|
+
| Typecheck | PASS | full | 2.1s |
|
|
159
|
+
| Lint | PASS | incremental | 0.3s |
|
|
160
|
+
| Test | PASS | incremental | 1.2s |
|
|
161
|
+
| Build | SKIP | — | — |
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Include the mode column so it's clear whether incremental or full was used.
|
|
165
|
+
|
|
166
|
+
## Failure Handling
|
|
167
|
+
|
|
168
|
+
- If any gate fails, stop and fix before proceeding
|
|
169
|
+
- Show the FULL error output for failed gates
|
|
170
|
+
- After fixing, re-run ONLY the failed gate(s) + any downstream gates
|
|
171
|
+
- Cache is NOT written on failure — next run will execute gates normally
|