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,278 @@
|
|
|
1
|
+
# Plan: Implement `/init` Command for OpenCodeKit
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Implement the `/init` slash command that provides one-command project onboarding. This command creates project-root `AGENTS.md` and populates memory files with detected project information. The command is defined in `.opencode/command/init.md` and executed by the `@plan` agent.
|
|
6
|
+
|
|
7
|
+
## Current State
|
|
8
|
+
|
|
9
|
+
- **CLI `ock init`**: Already exists in `src/commands/init.ts` - bootstraps `.opencode/` directory
|
|
10
|
+
- **Slash `/init`**: Defined in `.opencode/command/init.md` - AI-assisted project analysis workflow
|
|
11
|
+
- **Templates**: Exist in `.opencode/memory/_templates/` (user.md, tech-stack.md)
|
|
12
|
+
- **Memory system**: SQLite-based with tools in `.opencode/tool/`
|
|
13
|
+
|
|
14
|
+
## Phases
|
|
15
|
+
|
|
16
|
+
### Phase 1: Verify Command Registration
|
|
17
|
+
|
|
18
|
+
**Owner**: @build
|
|
19
|
+
**Deliverable**: Ensure `/init` command is properly registered and accessible
|
|
20
|
+
**Files**:
|
|
21
|
+
|
|
22
|
+
- `.opencode/command/init.md` (exists, verify content)
|
|
23
|
+
- `.opencode/opencode.json` (verify command registration)
|
|
24
|
+
|
|
25
|
+
**Validation**:
|
|
26
|
+
|
|
27
|
+
- [ ] Command appears in `ock command list`
|
|
28
|
+
- [ ] Command has correct frontmatter (agent: plan, subtask: true)
|
|
29
|
+
- [ ] Command description is accurate
|
|
30
|
+
|
|
31
|
+
### Phase 2: Enhance Project Detection Logic
|
|
32
|
+
|
|
33
|
+
**Owner**: @build
|
|
34
|
+
**Deliverable**: Robust project detection with comprehensive tech stack identification
|
|
35
|
+
**Files**:
|
|
36
|
+
|
|
37
|
+
- `.opencode/command/init.md` (enhance Phase 2 section)
|
|
38
|
+
- Create utility functions for detection if needed
|
|
39
|
+
|
|
40
|
+
**Implementation Details**:
|
|
41
|
+
|
|
42
|
+
1. Detect tech stack from:
|
|
43
|
+
- `package.json` → Node.js/Bun/JavaScript projects
|
|
44
|
+
- `go.mod` → Go projects
|
|
45
|
+
- `pyproject.toml`, `requirements.txt` → Python projects
|
|
46
|
+
- `Cargo.toml` → Rust projects
|
|
47
|
+
- `composer.json` → PHP projects
|
|
48
|
+
- `Gemfile` → Ruby projects
|
|
49
|
+
- `pom.xml`, `build.gradle` → Java projects
|
|
50
|
+
|
|
51
|
+
2. Extract key information:
|
|
52
|
+
- Language & version
|
|
53
|
+
- Framework & version
|
|
54
|
+
- Build tool
|
|
55
|
+
- Test command
|
|
56
|
+
- Lint command
|
|
57
|
+
- Key dependencies
|
|
58
|
+
|
|
59
|
+
3. Validate commands by attempting to run them
|
|
60
|
+
|
|
61
|
+
**Validation**:
|
|
62
|
+
|
|
63
|
+
- [ ] Correctly detects this project's stack (Bun, TypeScript)
|
|
64
|
+
- [ ] Correctly detects various project types in test scenarios
|
|
65
|
+
- [ ] Command validation works (build, test, lint)
|
|
66
|
+
|
|
67
|
+
### Phase 3: Implement AGENTS.md Generation
|
|
68
|
+
|
|
69
|
+
**Owner**: @build
|
|
70
|
+
**Deliverable**: Template-based AGENTS.md generation with project-specific content
|
|
71
|
+
**Files**:
|
|
72
|
+
|
|
73
|
+
- `.opencode/command/init.md` (enhance Phase 3 section)
|
|
74
|
+
- Potentially create template files
|
|
75
|
+
|
|
76
|
+
**Implementation Details**:
|
|
77
|
+
|
|
78
|
+
1. Create AGENTS.md template structure:
|
|
79
|
+
- Project name (from package.json or directory name)
|
|
80
|
+
- Tech stack section (from Phase 2 detection)
|
|
81
|
+
- File structure section
|
|
82
|
+
- Commands section (validated commands)
|
|
83
|
+
- Code examples section (extract from actual codebase)
|
|
84
|
+
- Testing section
|
|
85
|
+
- Boundaries section (Always/Ask First/Never rules)
|
|
86
|
+
- Gotchas section
|
|
87
|
+
|
|
88
|
+
2. Target: <60 lines (max 150 lines)
|
|
89
|
+
|
|
90
|
+
3. If AGENTS.md exists:
|
|
91
|
+
- Read existing content
|
|
92
|
+
- Merge/improve rather than overwrite
|
|
93
|
+
- Preserve user-added sections
|
|
94
|
+
|
|
95
|
+
**Validation**:
|
|
96
|
+
|
|
97
|
+
- [ ] Generated AGENTS.md is <60 lines
|
|
98
|
+
- [ ] Contains accurate tech stack
|
|
99
|
+
- [ ] Commands are validated and working
|
|
100
|
+
- [ ] Includes at least one code example from codebase
|
|
101
|
+
- [ ] Has proper Boundaries section with Never rules
|
|
102
|
+
|
|
103
|
+
### Phase 4: Implement Memory File Population
|
|
104
|
+
|
|
105
|
+
**Owner**: @build
|
|
106
|
+
**Deliverable**: Populate `.opencode/memory/project/user.md` and `tech-stack.md`
|
|
107
|
+
**Files**:
|
|
108
|
+
|
|
109
|
+
- `.opencode/command/init.md` (enhance Phase 5 section)
|
|
110
|
+
- `.opencode/memory/_templates/user.md`
|
|
111
|
+
- `.opencode/memory/_templates/tech-stack.md`
|
|
112
|
+
|
|
113
|
+
**Implementation Details**:
|
|
114
|
+
|
|
115
|
+
1. Load templates from `_templates/`
|
|
116
|
+
|
|
117
|
+
2. Populate `user.md` from Phase 1 answers:
|
|
118
|
+
- Identity (name, git contributor)
|
|
119
|
+
- Communication preferences (terse/detailed)
|
|
120
|
+
- Workflow preferences (auto-commit/ask-first)
|
|
121
|
+
- Custom rules
|
|
122
|
+
|
|
123
|
+
3. Populate `tech-stack.md` from Phase 2 detection:
|
|
124
|
+
- Framework & version
|
|
125
|
+
- Language & runtime
|
|
126
|
+
- Key dependencies with versions
|
|
127
|
+
- Key constraints
|
|
128
|
+
- Active integrations
|
|
129
|
+
|
|
130
|
+
**Validation**:
|
|
131
|
+
|
|
132
|
+
- [ ] user.md created with accurate information
|
|
133
|
+
- [ ] tech-stack.md created with detected stack
|
|
134
|
+
- [ ] Templates are properly used as base
|
|
135
|
+
|
|
136
|
+
### Phase 5: Implement Optional Beads Initialization
|
|
137
|
+
|
|
138
|
+
**Owner**: @build
|
|
139
|
+
**Deliverable**: Initialize `.beads/` directory when user opts in
|
|
140
|
+
**Files**:
|
|
141
|
+
|
|
142
|
+
- `.opencode/command/init.md` (enhance Phase 6 section)
|
|
143
|
+
|
|
144
|
+
**Implementation Details**:
|
|
145
|
+
|
|
146
|
+
1. If user says yes to beads:
|
|
147
|
+
- Run `br init` if available
|
|
148
|
+
- Or create basic structure manually:
|
|
149
|
+
- `.beads/config.yaml`
|
|
150
|
+
- `.beads/issues.jsonl`
|
|
151
|
+
- `.beads/metadata.json`
|
|
152
|
+
|
|
153
|
+
**Validation**:
|
|
154
|
+
|
|
155
|
+
- [ ] Beads initializes correctly when requested
|
|
156
|
+
- [ ] No errors if beads already exists
|
|
157
|
+
|
|
158
|
+
### Phase 6: Add --deep Mode Support
|
|
159
|
+
|
|
160
|
+
**Owner**: @build
|
|
161
|
+
**Deliverable**: Comprehensive research mode with subsystem detection
|
|
162
|
+
**Files**:
|
|
163
|
+
|
|
164
|
+
- `.opencode/command/init.md` (enhance Phase 4 section)
|
|
165
|
+
|
|
166
|
+
**Implementation Details**:
|
|
167
|
+
|
|
168
|
+
1. When `--deep` flag is passed:
|
|
169
|
+
- Git history analysis (contributors, commit conventions)
|
|
170
|
+
- Branching strategy detection
|
|
171
|
+
- Source file pattern analysis
|
|
172
|
+
- Subsystem identification for nested AGENTS.md
|
|
173
|
+
|
|
174
|
+
2. Suggest nested AGENTS.md for:
|
|
175
|
+
- `packages/*/` in monorepos
|
|
176
|
+
- `src/` vs `tests/` if patterns differ
|
|
177
|
+
- `frontend/` vs `backend/` directories
|
|
178
|
+
|
|
179
|
+
**Validation**:
|
|
180
|
+
|
|
181
|
+
- [ ] --deep flag triggers additional research
|
|
182
|
+
- [ ] Subsystem detection works for monorepos
|
|
183
|
+
- [ ] Suggestions are relevant and actionable
|
|
184
|
+
|
|
185
|
+
### Phase 7: Testing & Validation
|
|
186
|
+
|
|
187
|
+
**Owner**: @build
|
|
188
|
+
**Deliverable**: End-to-end testing of the `/init` command
|
|
189
|
+
**Files**:
|
|
190
|
+
|
|
191
|
+
- Test in a fresh project directory
|
|
192
|
+
- Test in existing project with AGENTS.md
|
|
193
|
+
- Test with --deep flag
|
|
194
|
+
|
|
195
|
+
**Test Scenarios**:
|
|
196
|
+
|
|
197
|
+
1. Fresh project (no AGENTS.md):
|
|
198
|
+
- [ ] Asks upfront questions
|
|
199
|
+
- [ ] Detects tech stack correctly
|
|
200
|
+
- [ ] Creates AGENTS.md
|
|
201
|
+
- [ ] Populates memory files
|
|
202
|
+
- [ ] Shows completion summary
|
|
203
|
+
|
|
204
|
+
2. Existing project (with AGENTS.md):
|
|
205
|
+
- [ ] Reads existing AGENTS.md
|
|
206
|
+
- [ ] Merges/improves rather than overwriting
|
|
207
|
+
- [ ] Preserves user content
|
|
208
|
+
|
|
209
|
+
3. With --deep flag:
|
|
210
|
+
- [ ] Performs git analysis
|
|
211
|
+
- [ ] Detects subsystems
|
|
212
|
+
- [ ] Suggests nested AGENTS.md
|
|
213
|
+
|
|
214
|
+
4. With --skip-questions:
|
|
215
|
+
- [ ] Skips upfront questions
|
|
216
|
+
- [ ] Infers identity from git config
|
|
217
|
+
|
|
218
|
+
**Validation**:
|
|
219
|
+
|
|
220
|
+
- [ ] All test scenarios pass
|
|
221
|
+
- [ ] Generated files are valid and useful
|
|
222
|
+
- [ ] Command completes without errors
|
|
223
|
+
|
|
224
|
+
## Dependencies
|
|
225
|
+
|
|
226
|
+
- Phase 2 depends on Phase 1 (command registration verification)
|
|
227
|
+
- Phase 3 depends on Phase 2 (tech stack detection)
|
|
228
|
+
- Phase 4 depends on Phase 1 (templates exist) and Phase 2 (detection data)
|
|
229
|
+
- Phase 5 is independent but uses Phase 1 answers
|
|
230
|
+
- Phase 6 is optional enhancement
|
|
231
|
+
- Phase 7 depends on all previous phases
|
|
232
|
+
|
|
233
|
+
## Risks
|
|
234
|
+
|
|
235
|
+
| Risk | Likelihood | Impact | Mitigation |
|
|
236
|
+
| ------------------------------------------------- | ---------- | ------ | ---------------------------------------------------- |
|
|
237
|
+
| Command detection fails for exotic project types | Medium | Medium | Fallback to generic templates, allow manual override |
|
|
238
|
+
| AGENTS.md generation produces stale code examples | Low | Medium | Use pointers instead of inline code where possible |
|
|
239
|
+
| Memory file templates change structure | Low | Low | Version templates, update command accordingly |
|
|
240
|
+
| User preferences not captured correctly | Low | Medium | Validate with user before writing files |
|
|
241
|
+
| --deep mode takes too long | Medium | Low | Add progress indicators, allow cancellation |
|
|
242
|
+
|
|
243
|
+
## Acceptance Criteria
|
|
244
|
+
|
|
245
|
+
- [ ] `/init` command is accessible and runs without errors
|
|
246
|
+
- [ ] Creates `./AGENTS.md` with project-specific information (<60 lines target)
|
|
247
|
+
- [ ] Populates `.opencode/memory/project/user.md` with user preferences
|
|
248
|
+
- [ ] Populates `.opencode/memory/project/tech-stack.md` with detected stack
|
|
249
|
+
- [ ] Validates commands (build, test, lint) actually work
|
|
250
|
+
- [ ] Handles existing AGENTS.md gracefully (merges/improves)
|
|
251
|
+
- [ ] Supports `--deep` flag for comprehensive analysis
|
|
252
|
+
- [ ] Supports `--skip-questions` flag for non-interactive use
|
|
253
|
+
- [ ] Optional beads initialization works
|
|
254
|
+
- [ ] Shows clear completion summary with next steps
|
|
255
|
+
|
|
256
|
+
## Questions
|
|
257
|
+
|
|
258
|
+
1. Should we add a `--dry-run` flag to preview what would be created without writing files?
|
|
259
|
+
2. Should we support importing from existing `.cursorrules` or `.github/copilot-instructions.md` files?
|
|
260
|
+
3. Should the command suggest running `/review-codebase` after initialization?
|
|
261
|
+
|
|
262
|
+
## Implementation Notes
|
|
263
|
+
|
|
264
|
+
The `/init` command is already defined in `.opencode/command/init.md`. The implementation involves:
|
|
265
|
+
|
|
266
|
+
1. **Verifying** the command definition is complete and accurate
|
|
267
|
+
2. **Enhancing** the command instructions with robust detection logic
|
|
268
|
+
3. **Testing** the command end-to-end in various scenarios
|
|
269
|
+
|
|
270
|
+
The command uses the `@plan` agent (subtask: true) which means it runs as a separate planning task. The instructions in the markdown file guide the AI through the 8-phase process.
|
|
271
|
+
|
|
272
|
+
Key files to verify/modify:
|
|
273
|
+
|
|
274
|
+
- `.opencode/command/init.md` - Main command definition
|
|
275
|
+
- `.opencode/memory/_templates/user.md` - User profile template
|
|
276
|
+
- `.opencode/memory/_templates/tech-stack.md` - Tech stack template
|
|
277
|
+
|
|
278
|
+
No new CLI commands needed - this is a slash command enhancement.
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
# Plan: Patch-Package Style Feature for Template File Modifications
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Add a patch system that preserves user modifications to template files across upgrades. When users edit built-in skills, commands, agents, or tools, their changes are saved as patches and automatically reapplied after template updates.
|
|
6
|
+
|
|
7
|
+
## Problem
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
User edits .opencode/skill/beads/skill.md (built-in template file)
|
|
11
|
+
User runs `ock upgrade`
|
|
12
|
+
→ Current behavior: Template file overwrites OR user version preserved forever (never gets template updates)
|
|
13
|
+
→ User loses customizations OR misses template improvements
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Solution
|
|
17
|
+
|
|
18
|
+
Save user modifications as unified diff patches. On upgrade:
|
|
19
|
+
|
|
20
|
+
1. Apply new template files
|
|
21
|
+
2. Automatically reapply user patches
|
|
22
|
+
3. Handle conflicts gracefully
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## File Structure
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
.opencode/
|
|
30
|
+
├── patches/
|
|
31
|
+
│ ├── .patches.json # Metadata index (hashes, versions)
|
|
32
|
+
│ ├── skill-beads-skill.md.patch # Unified diff patches
|
|
33
|
+
│ ├── command-ship.md.patch
|
|
34
|
+
│ └── *.patch.rej # Failed patches (conflicts)
|
|
35
|
+
├── .version # Already exists
|
|
36
|
+
└── ... (other template files)
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## New Commands
|
|
42
|
+
|
|
43
|
+
### `ock patch save <file>`
|
|
44
|
+
|
|
45
|
+
Save current modifications as a patch.
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
$ ock patch save .opencode/skill/beads/skill.md
|
|
49
|
+
|
|
50
|
+
✓ Saved patch: .opencode/patches/skill-beads-skill.md.patch
|
|
51
|
+
Original: a1b2c3d4 → Current: e5f6g7h8
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### `ock patch list`
|
|
55
|
+
|
|
56
|
+
List all saved patches with status.
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
$ ock patch list
|
|
60
|
+
|
|
61
|
+
Active Patches (3):
|
|
62
|
+
skill/beads/skill.md ✓ Clean
|
|
63
|
+
command/ship.md ⚠ Stale (template changed)
|
|
64
|
+
agent/build.md ✗ Conflict
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### `ock patch apply` (automatic during upgrade)
|
|
68
|
+
|
|
69
|
+
Reapply patches after template update.
|
|
70
|
+
|
|
71
|
+
### `ock patch remove <file>`
|
|
72
|
+
|
|
73
|
+
Remove a saved patch.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## `.patches.json` Schema
|
|
78
|
+
|
|
79
|
+
```json
|
|
80
|
+
{
|
|
81
|
+
"version": "1.0.0",
|
|
82
|
+
"patches": {
|
|
83
|
+
"skill/beads/skill.md": {
|
|
84
|
+
"originalHash": "sha256:a1b2c3d4...",
|
|
85
|
+
"currentHash": "sha256:e5f6g7h8...",
|
|
86
|
+
"patchFile": "skill-beads-skill.md.patch",
|
|
87
|
+
"createdAt": "2026-02-03T10:00:00Z",
|
|
88
|
+
"templateVersion": "1.2.3"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Upgrade Flow (Modified)
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
1. User runs: ock upgrade
|
|
100
|
+
2. Check version (existing logic)
|
|
101
|
+
3. For PRESERVE_DIRS files that exist in template:
|
|
102
|
+
- Copy template file (overwrite user's version)
|
|
103
|
+
- Check if patch exists in .patches.json
|
|
104
|
+
- If patch exists, apply it
|
|
105
|
+
- If patch fails, save conflict to .patch.rej
|
|
106
|
+
4. Report: "✓ Updated X files, reapplied Y patches, Z conflicts"
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Conflict Resolution
|
|
112
|
+
|
|
113
|
+
| Scenario | Action |
|
|
114
|
+
| ------------------------------- | ----------------------------------------- |
|
|
115
|
+
| Template unchanged | Auto-apply patch |
|
|
116
|
+
| Template changed, patch applies | Auto-apply with info message |
|
|
117
|
+
| Template changed, patch fails | Save `.patch.rej`, skip file, notify user |
|
|
118
|
+
|
|
119
|
+
**Conflict UI:**
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
⚠ CONFLICT: skill/beads/skill.md
|
|
123
|
+
|
|
124
|
+
Template changed in v1.3.0 and your patch no longer applies.
|
|
125
|
+
|
|
126
|
+
Options:
|
|
127
|
+
[1] View diff between versions
|
|
128
|
+
[2] Keep new template (discard patch)
|
|
129
|
+
[3] Keep your version (skip update)
|
|
130
|
+
[4] Manually merge (edit patch.rej)
|
|
131
|
+
|
|
132
|
+
Saved: .opencode/patches/skill-beads-skill.md.patch.rej
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Implementation Phases
|
|
138
|
+
|
|
139
|
+
### Phase 1: Core Patch Infrastructure
|
|
140
|
+
|
|
141
|
+
**Files to create:**
|
|
142
|
+
|
|
143
|
+
- `src/commands/patch.ts` - Patch save/list/apply/remove commands
|
|
144
|
+
- `src/utils/patch.ts` - Diff generation, hash calculation, patch application
|
|
145
|
+
|
|
146
|
+
**Files to modify:**
|
|
147
|
+
|
|
148
|
+
- `src/index.ts` - Register `patch` command
|
|
149
|
+
|
|
150
|
+
**Key functions:**
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
// src/utils/patch.ts
|
|
154
|
+
export function generatePatch(templatePath: string, userPath: string): string;
|
|
155
|
+
export function applyPatch(filePath: string, patchContent: string): boolean;
|
|
156
|
+
export function calculateHash(content: string): string;
|
|
157
|
+
export function loadPatchMetadata(opencodeDir: string): PatchMetadata;
|
|
158
|
+
export function savePatchMetadata(opencodeDir: string, metadata: PatchMetadata): void;
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Phase 2: Upgrade Integration
|
|
162
|
+
|
|
163
|
+
**Files to modify:**
|
|
164
|
+
|
|
165
|
+
- `src/commands/upgrade.ts` - Integrate patch apply after template copy
|
|
166
|
+
|
|
167
|
+
**Changes:**
|
|
168
|
+
|
|
169
|
+
1. After `copyDirWithPreserve()`, call `applyPatches()`
|
|
170
|
+
2. Modify `PRESERVE_DIRS` logic: still preserve, but ALSO check for patches
|
|
171
|
+
3. Add patch status to upgrade summary
|
|
172
|
+
|
|
173
|
+
### Phase 3: CLI Polish
|
|
174
|
+
|
|
175
|
+
- Interactive conflict resolution
|
|
176
|
+
- `--dry-run` flag for patch apply
|
|
177
|
+
- Pretty diff viewer for conflicts
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Dependencies
|
|
182
|
+
|
|
183
|
+
Use existing Node.js capabilities:
|
|
184
|
+
|
|
185
|
+
- `crypto.createHash('sha256')` - Hash calculation
|
|
186
|
+
- **diff** library (`npm:diff`) - Generate unified diffs
|
|
187
|
+
- **patch-package** or custom parser - Apply patches
|
|
188
|
+
|
|
189
|
+
Alternative: Shell out to `git diff` and `git apply` (simpler, but requires git).
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Critical Files
|
|
194
|
+
|
|
195
|
+
| File | Purpose |
|
|
196
|
+
| ------------------------- | -------------------------- |
|
|
197
|
+
| `src/commands/patch.ts` | New - Patch commands |
|
|
198
|
+
| `src/utils/patch.ts` | New - Patch utilities |
|
|
199
|
+
| `src/commands/upgrade.ts` | Modify - Integrate patches |
|
|
200
|
+
| `src/index.ts` | Modify - Register command |
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## Verification
|
|
205
|
+
|
|
206
|
+
1. **Unit tests**: `src/commands/patch.test.ts`
|
|
207
|
+
- Test patch generation from diff
|
|
208
|
+
- Test patch application
|
|
209
|
+
- Test conflict detection
|
|
210
|
+
|
|
211
|
+
2. **Integration test**:
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
# Setup
|
|
215
|
+
ock init
|
|
216
|
+
echo "# Custom section" >> .opencode/skill/beads/skill.md
|
|
217
|
+
ock patch save .opencode/skill/beads/skill.md
|
|
218
|
+
|
|
219
|
+
# Simulate upgrade
|
|
220
|
+
ock upgrade --force
|
|
221
|
+
|
|
222
|
+
# Verify
|
|
223
|
+
grep "Custom section" .opencode/skill/beads/skill.md # Should exist
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
3. **Conflict test**:
|
|
227
|
+
- Modify template file in dist/template
|
|
228
|
+
- Run upgrade
|
|
229
|
+
- Verify conflict detection and `.patch.rej` creation
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## Complexity Estimate
|
|
234
|
+
|
|
235
|
+
| Component | Effort | Notes |
|
|
236
|
+
| ------------------- | ------ | ------------------------------ |
|
|
237
|
+
| Hash/diff utilities | 2h | Use `diff` library |
|
|
238
|
+
| Patch save command | 2h | Generate + store patch |
|
|
239
|
+
| Patch list command | 1h | Read metadata, show status |
|
|
240
|
+
| Patch apply logic | 3h | Apply patches, handle failures |
|
|
241
|
+
| Upgrade integration | 2h | Hook into existing flow |
|
|
242
|
+
| Conflict UI | 2h | Interactive resolution |
|
|
243
|
+
| Tests | 2h | Unit + integration |
|
|
244
|
+
|
|
245
|
+
**Total: ~14 hours (2 days)**
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
## Open Questions
|
|
250
|
+
|
|
251
|
+
1. **Git dependency?** Should we require git for `git diff`/`git apply` or use pure JS?
|
|
252
|
+
- Recommendation: Pure JS (`diff` library) for portability
|
|
253
|
+
|
|
254
|
+
2. **Auto-save patches?** Should we auto-detect modifications on upgrade?
|
|
255
|
+
- Recommendation: Manual `ock patch save` for now (explicit is better)
|
|
256
|
+
|
|
257
|
+
3. **Nested directories?** How to handle `skill/beads/skill.md` path → filename conversion?
|
|
258
|
+
- Recommendation: Replace `/` with `-` → `skill-beads-skill.md.patch`
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Swarm Protocol (Beads-as-Board)
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
|
|
5
|
+
Use `.beads/` as the single source of truth for task state + dependencies, while agents coordinate through structured artifacts (not freeform chatter) and verification gates.
|
|
6
|
+
|
|
7
|
+
## Roles (Strict)
|
|
8
|
+
|
|
9
|
+
- Lead: Owns scope, prioritization, and all Beads state transitions.
|
|
10
|
+
- Planner: Turns intent into Beads tasks + dependency DAG; no code changes.
|
|
11
|
+
- Worker: Executes exactly one claimed task; posts a structured report.
|
|
12
|
+
- Verifier: Independently validates acceptance checks; blocks close on missing evidence.
|
|
13
|
+
|
|
14
|
+
## Board = Beads
|
|
15
|
+
|
|
16
|
+
Canonical state lives in `.beads/issues.jsonl` (tasks) and `.beads/artifacts/<id>/` (task artifacts).
|
|
17
|
+
|
|
18
|
+
- Create tasks: `br create "Title" -p <1-3>`
|
|
19
|
+
- See unblocked work: `br ready`
|
|
20
|
+
- Inspect context: `br show <id>`
|
|
21
|
+
- Claim work: `br update <id> --status=in_progress`
|
|
22
|
+
- Close work: `br close <id> --reason="..."` then `br sync --flush-only`
|
|
23
|
+
|
|
24
|
+
## Task Artifact Contract
|
|
25
|
+
|
|
26
|
+
Every task MUST have `.beads/artifacts/<id>/spec.md`.
|
|
27
|
+
|
|
28
|
+
Optional supporting files:
|
|
29
|
+
|
|
30
|
+
- `.beads/artifacts/<id>/plan.md`: multi-step implementation plan, files touched, and gates
|
|
31
|
+
- `.beads/artifacts/<id>/review.md`: verifier notes + evidence summary
|
|
32
|
+
|
|
33
|
+
### spec.md (Minimum Template)
|
|
34
|
+
|
|
35
|
+
- Context: why this exists
|
|
36
|
+
- Scope: in / out
|
|
37
|
+
- Constraints: MUST / MUST NOT (security, deps, dist/, etc.)
|
|
38
|
+
- Acceptance Criteria: checkboxes, each with a verification method
|
|
39
|
+
- Evidence Required: exact commands and expected signals (e.g. "typecheck command passes")
|
|
40
|
+
|
|
41
|
+
#### Verification Defaults (Language-Agnostic)
|
|
42
|
+
|
|
43
|
+
Do NOT assume npm/pnpm/pytest/etc. Prefer this pattern:
|
|
44
|
+
|
|
45
|
+
- `typecheck`: `<command>`
|
|
46
|
+
- `lint`: `<command>`
|
|
47
|
+
- `test`: `<command>`
|
|
48
|
+
- `build` (optional): `<command>`
|
|
49
|
+
|
|
50
|
+
If the repository has a canonical list of commands, reference it (e.g. `.opencode/memory/project/commands.md`).
|
|
51
|
+
|
|
52
|
+
Common stacks (examples only):
|
|
53
|
+
|
|
54
|
+
| Stack | typecheck | lint | test |
|
|
55
|
+
| ------- | ------------------------------------------ | ---------------------------- | ---------------------- |
|
|
56
|
+
| Node/TS | `npm run typecheck` or `npm run typecheck` | `npm run lint` | `vitest` or `npm test` |
|
|
57
|
+
| Python | `python -m mypy .` | `ruff check .` | `pytest` |
|
|
58
|
+
| Go | `go test ./...` (compile+test) | `golangci-lint run` | `go test ./...` |
|
|
59
|
+
| Rust | `cargo check` | `cargo fmt --check` (format) | `cargo test` |
|
|
60
|
+
|
|
61
|
+
## Delegation Packet (Worker Input)
|
|
62
|
+
|
|
63
|
+
Every delegated task MUST include the following envelope:
|
|
64
|
+
|
|
65
|
+
- TASK: `<id> - <title>`
|
|
66
|
+
- EXPECTED OUTCOME: measurable end state
|
|
67
|
+
- REQUIRED TOOLS: e.g. `read`, `grep`, `lsp`, `bash`
|
|
68
|
+
- MUST DO: e.g. LSP-before-edits, run typecheck, run lint
|
|
69
|
+
- MUST NOT DO: e.g. no new deps, no dist/ edits, no git push
|
|
70
|
+
- ACCEPTANCE CHECKS: list of commands + pass criteria
|
|
71
|
+
- CONTEXT: links to `.beads/artifacts/<id>/spec.md` + relevant files
|
|
72
|
+
|
|
73
|
+
### Helper Tool
|
|
74
|
+
|
|
75
|
+
If available, use the custom tool `swarm-delegate` to generate (and optionally write) a delegation packet:
|
|
76
|
+
|
|
77
|
+
```ts
|
|
78
|
+
swarm -
|
|
79
|
+
delegate({
|
|
80
|
+
bead_id: "opencodekit-template-xyz",
|
|
81
|
+
expected_outcome: "<measurable end state>",
|
|
82
|
+
required_tools: "read, grep, lsp, bash",
|
|
83
|
+
must_do: "LSP before edits, run project verification commands",
|
|
84
|
+
must_not_do: "no new deps, don't edit dist/",
|
|
85
|
+
acceptance_checks: "typecheck: <command>, lint: <command>, test: <command>",
|
|
86
|
+
context: "See .beads/artifacts/<id>/spec.md",
|
|
87
|
+
write: true,
|
|
88
|
+
});
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Worker Report (Worker Output)
|
|
92
|
+
|
|
93
|
+
Workers MUST respond with a structured report:
|
|
94
|
+
|
|
95
|
+
- Result: done / blocked / needs replan
|
|
96
|
+
- Changes: file list + what changed (with file references)
|
|
97
|
+
- Verification: commands run + pass/fail summary
|
|
98
|
+
- Risks/Notes: edge cases, follow-ups
|
|
99
|
+
- Confidence: high / medium / low
|
|
100
|
+
|
|
101
|
+
## Gates (Non-Negotiable)
|
|
102
|
+
|
|
103
|
+
- Planning gate: `.beads/artifacts/<id>/spec.md` exists with acceptance criteria BEFORE implementation starts
|
|
104
|
+
- Execution gate: worker provides verification evidence BEFORE close
|
|
105
|
+
- Review gate (risk-based): verifier signs off in `review.md` BEFORE close
|
|
106
|
+
|
|
107
|
+
## Replan Triggers
|
|
108
|
+
|
|
109
|
+
Immediately stop execution and return to planning if:
|
|
110
|
+
|
|
111
|
+
- Scope expands to 4+ files unexpectedly
|
|
112
|
+
- Requirement ambiguity changes implementation choice
|
|
113
|
+
- Two-strike tool failures
|
|
114
|
+
- New dependency or `.opencode/` structure change would be needed
|
|
115
|
+
|
|
116
|
+
## Lead Checklist
|
|
117
|
+
|
|
118
|
+
1. `br ready` -> pick task -> `br show <id>`
|
|
119
|
+
2. Ensure `.beads/artifacts/<id>/spec.md` has acceptance checks
|
|
120
|
+
3. `br update <id> --status=in_progress`
|
|
121
|
+
4. Delegate with the packet format
|
|
122
|
+
5. Require worker report + evidence
|
|
123
|
+
6. `br close <id> --reason="..."` + `br sync --flush-only`
|