opencodekit 0.15.20 → 0.15.21
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/dist/index.js +3 -1
- package/dist/template/.opencode/agent/build.md +270 -0
- package/dist/template/.opencode/{commands → command}/finish.md +18 -0
- package/dist/template/.opencode/{commands → command}/handoff.md +36 -1
- package/dist/template/.opencode/{commands → command}/implement.md +32 -30
- package/dist/template/.opencode/{commands → command}/new-feature.md +3 -2
- package/dist/template/.opencode/{commands → command}/research.md +4 -10
- package/dist/template/.opencode/{commands → command}/resume.md +36 -9
- package/dist/template/.opencode/{commands → command}/start.md +12 -0
- package/dist/template/.opencode/memory/observations/2026-01-31-decision-created-dedicated-worker-agent-for-swarm.md +20 -0
- package/dist/template/.opencode/memory/observations/2026-01-31-decision-rollback-to-v1-1-47-for-copilot-claude-r.md +21 -0
- package/dist/template/.opencode/memory/observations/2026-01-31-decision-simplified-swarm-to-task-tool-pattern.md +44 -0
- package/dist/template/.opencode/memory/observations/2026-01-31-decision-swarm-architecture-task-tool-over-tmux.md +33 -0
- package/dist/template/.opencode/memory/observations/2026-01-31-decision-worker-skills-defined-for-swarm-delegati.md +30 -0
- package/dist/template/.opencode/memory/observations/2026-01-31-learning-gpt-reasoning-config-for-github-copilot.md +51 -0
- package/dist/template/.opencode/memory/observations/2026-01-31-learning-opencode-custom-tools-api.md +48 -0
- package/dist/template/.opencode/memory/observations/2026-01-31-learning-opencode-v1-1-48-skills-as-slash-command.md +21 -0
- package/dist/template/.opencode/memory/observations/2026-01-31-learning-swarm-system-simplified-removed-mailbox-.md +30 -0
- package/dist/template/.opencode/memory/observations/2026-01-31-learning-v1-1-48-native-copilot-reasoning-via-pr-.md +45 -0
- package/dist/template/.opencode/memory/observations/2026-01-31-warning-cannot-add-custom-config-to-opencode-jso.md +18 -0
- package/dist/template/.opencode/memory/observations/2026-01-31-warning-opencode-v1-1-48-claude-thinking-block-s.md +51 -0
- package/dist/template/.opencode/opencode.json +803 -805
- package/dist/template/.opencode/package.json +2 -2
- package/dist/template/.opencode/{plugins → plugin}/copilot-auth.ts +107 -177
- package/dist/template/.opencode/{plugins → plugin}/sdk/copilot/chat/openai-compatible-chat-language-model.ts +12 -2
- package/dist/template/.opencode/{plugins → plugin}/sdk/copilot/chat/openai-compatible-chat-options.ts +1 -1
- package/dist/template/.opencode/{plugins → plugin}/sdk/copilot/openai-compatible-error.ts +1 -1
- package/dist/template/.opencode/{plugins → plugin}/swarm-enforcer.ts +18 -23
- package/dist/template/.opencode/{skills → skill}/beads/SKILL.md +41 -0
- package/dist/template/.opencode/skill/beads-bridge/SKILL.md +294 -0
- package/dist/template/.opencode/skill/resend/SKILL.md +167 -0
- package/dist/template/.opencode/skill/resend/references/react-email.md +287 -0
- package/dist/template/.opencode/skill/resend/references/receive-email.md +248 -0
- package/dist/template/.opencode/skill/resend/references/send-email.md +318 -0
- package/dist/template/.opencode/skill/swarm-coordination/SKILL.md +690 -0
- package/dist/template/.opencode/skill/tool-priority/SKILL.md +259 -0
- package/dist/template/.opencode/tool/beads-sync.ts +657 -0
- package/dist/template/.opencode/{tools → tool}/swarm-delegate.ts +13 -8
- package/dist/template/.opencode/{tools → tool}/swarm-monitor.ts +14 -170
- package/dist/template/.opencode/{tools → tool}/swarm-plan.ts +232 -1
- package/package.json +3 -1
- package/dist/template/.opencode/agents/build.md +0 -584
- package/dist/template/.opencode/skills/swarm-coordination/SKILL.md +0 -548
- package/dist/template/.opencode/skills/tool-priority/SKILL.md +0 -190
- /package/dist/template/.opencode/{agents → agent}/explore.md +0 -0
- /package/dist/template/.opencode/{agents → agent}/general.md +0 -0
- /package/dist/template/.opencode/{agents → agent}/looker.md +0 -0
- /package/dist/template/.opencode/{agents → agent}/painter.md +0 -0
- /package/dist/template/.opencode/{agents → agent}/plan.md +0 -0
- /package/dist/template/.opencode/{agents → agent}/review.md +0 -0
- /package/dist/template/.opencode/{agents → agent}/scout.md +0 -0
- /package/dist/template/.opencode/{agents → agent}/vision.md +0 -0
- /package/dist/template/.opencode/{commands → command}/accessibility-check.md +0 -0
- /package/dist/template/.opencode/{commands → command}/agent-browser.md +0 -0
- /package/dist/template/.opencode/{commands → command}/analyze-mockup.md +0 -0
- /package/dist/template/.opencode/{commands → command}/analyze-project.md +0 -0
- /package/dist/template/.opencode/{commands → command}/brainstorm.md +0 -0
- /package/dist/template/.opencode/{commands → command}/cloudflare.md +0 -0
- /package/dist/template/.opencode/{commands → command}/commit.md +0 -0
- /package/dist/template/.opencode/{commands → command}/complete-next-task.md +0 -0
- /package/dist/template/.opencode/{commands → command}/create.md +0 -0
- /package/dist/template/.opencode/{commands → command}/design-audit.md +0 -0
- /package/dist/template/.opencode/{commands → command}/design.md +0 -0
- /package/dist/template/.opencode/{commands → command}/edit-image.md +0 -0
- /package/dist/template/.opencode/{commands → command}/fix-ci.md +0 -0
- /package/dist/template/.opencode/{commands → command}/fix-types.md +0 -0
- /package/dist/template/.opencode/{commands → command}/fix-ui.md +0 -0
- /package/dist/template/.opencode/{commands → command}/fix.md +0 -0
- /package/dist/template/.opencode/{commands → command}/frontend-design.md +0 -0
- /package/dist/template/.opencode/{commands → command}/generate-diagram.md +0 -0
- /package/dist/template/.opencode/{commands → command}/generate-icon.md +0 -0
- /package/dist/template/.opencode/{commands → command}/generate-image.md +0 -0
- /package/dist/template/.opencode/{commands → command}/generate-pattern.md +0 -0
- /package/dist/template/.opencode/{commands → command}/generate-storyboard.md +0 -0
- /package/dist/template/.opencode/{commands → command}/import-plan.md +0 -0
- /package/dist/template/.opencode/{commands → command}/index-knowledge.md +0 -0
- /package/dist/template/.opencode/{commands → command}/init.md +0 -0
- /package/dist/template/.opencode/{commands → command}/integration-test.md +0 -0
- /package/dist/template/.opencode/{commands → command}/issue.md +0 -0
- /package/dist/template/.opencode/{commands → command}/opensrc.md +0 -0
- /package/dist/template/.opencode/{commands → command}/plan.md +0 -0
- /package/dist/template/.opencode/{commands → command}/pr.md +0 -0
- /package/dist/template/.opencode/{commands → command}/quick-build.md +0 -0
- /package/dist/template/.opencode/{commands → command}/ralph.md +0 -0
- /package/dist/template/.opencode/{commands → command}/research-and-implement.md +0 -0
- /package/dist/template/.opencode/{commands → command}/research-ui.md +0 -0
- /package/dist/template/.opencode/{commands → command}/restore-image.md +0 -0
- /package/dist/template/.opencode/{commands → command}/revert-feature.md +0 -0
- /package/dist/template/.opencode/{commands → command}/review-codebase.md +0 -0
- /package/dist/template/.opencode/{commands → command}/skill-create.md +0 -0
- /package/dist/template/.opencode/{commands → command}/skill-optimize.md +0 -0
- /package/dist/template/.opencode/{commands → command}/status.md +0 -0
- /package/dist/template/.opencode/{commands → command}/summarize.md +0 -0
- /package/dist/template/.opencode/{commands → command}/triage.md +0 -0
- /package/dist/template/.opencode/{commands → command}/ui-review.md +0 -0
- /package/dist/template/.opencode/{plugins → plugin}/README.md +0 -0
- /package/dist/template/.opencode/{plugins → plugin}/compaction.ts +0 -0
- /package/dist/template/.opencode/{plugins → plugin}/env-ctx.ts +0 -0
- /package/dist/template/.opencode/{plugins → plugin}/lib/notify.ts +0 -0
- /package/dist/template/.opencode/{plugins → plugin}/lsp.ts +0 -0
- /package/dist/template/.opencode/{plugins → plugin}/memory.ts +0 -0
- /package/dist/template/.opencode/{plugins → plugin}/notification.ts.bak +0 -0
- /package/dist/template/.opencode/{plugins → plugin}/package.json +0 -0
- /package/dist/template/.opencode/{plugins → plugin}/sdk/copilot/chat/convert-to-openai-compatible-chat-messages.ts +0 -0
- /package/dist/template/.opencode/{plugins → plugin}/sdk/copilot/chat/get-response-metadata.ts +0 -0
- /package/dist/template/.opencode/{plugins → plugin}/sdk/copilot/chat/map-openai-compatible-finish-reason.ts +0 -0
- /package/dist/template/.opencode/{plugins → plugin}/sdk/copilot/chat/openai-compatible-api-types.ts +0 -0
- /package/dist/template/.opencode/{plugins → plugin}/sdk/copilot/chat/openai-compatible-metadata-extractor.ts +0 -0
- /package/dist/template/.opencode/{plugins → plugin}/sdk/copilot/chat/openai-compatible-prepare-tools.ts +0 -0
- /package/dist/template/.opencode/{plugins → plugin}/sdk/copilot/copilot-provider.ts +0 -0
- /package/dist/template/.opencode/{plugins → plugin}/sdk/copilot/index.ts +0 -0
- /package/dist/template/.opencode/{plugins → plugin}/sessions.ts +0 -0
- /package/dist/template/.opencode/{plugins → plugin}/skill-mcp.ts +0 -0
- /package/dist/template/.opencode/{plugins → plugin}/truncator.ts +0 -0
- /package/dist/template/.opencode/{plugins → plugin}/tsconfig.json +0 -0
- /package/dist/template/.opencode/{skills → skill}/accessibility-audit/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/agent-browser/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/beads/references/BOUNDARIES.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/beads/references/DEPENDENCIES.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/beads/references/RESUMABILITY.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/beads/references/WORKFLOWS.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/brainstorming/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/chrome-devtools/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/chrome-devtools/mcp.json +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/agents-sdk/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/agents-sdk/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/agents-sdk/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/agents-sdk/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/agents-sdk/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ai-gateway/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ai-search/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ai-search/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ai-search/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ai-search/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ai-search/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/analytics-engine/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/analytics-engine/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/analytics-engine/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/analytics-engine/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/analytics-engine/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api-shield/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api-shield/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api-shield/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api-shield/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/api-shield/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/argo-smart-routing/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/argo-smart-routing/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/argo-smart-routing/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/argo-smart-routing/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/argo-smart-routing/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bindings/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bindings/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bindings/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bindings/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bindings/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bot-management/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bot-management/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bot-management/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bot-management/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/bot-management/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/browser-rendering/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/browser-rendering/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/browser-rendering/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/browser-rendering/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/browser-rendering/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/c3/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cache-reserve/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cache-reserve/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cache-reserve/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cache-reserve/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cache-reserve/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/containers/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/containers/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/containers/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/containers/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/containers/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cron-triggers/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cron-triggers/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cron-triggers/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cron-triggers/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/cron-triggers/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/d1/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/d1/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/d1/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/d1/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/d1/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ddos/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ddos/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ddos/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ddos/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/ddos/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/do-storage/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/do-storage/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/do-storage/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/do-storage/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/do-storage/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/durable-objects/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/durable-objects/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/durable-objects/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/durable-objects/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/durable-objects/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/email-routing/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/email-routing/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/email-routing/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/email-routing/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/email-routing/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/email-workers/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/hyperdrive/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/hyperdrive/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/hyperdrive/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/hyperdrive/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/hyperdrive/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/images/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/images/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/images/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/images/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/images/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/kv/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/kv/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/kv/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/kv/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/kv/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/miniflare/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/miniflare/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/miniflare/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/miniflare/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/miniflare/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/network-interconnect/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/network-interconnect/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/network-interconnect/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/network-interconnect/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/network-interconnect/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/observability/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/observability/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/observability/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/observability/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/observability/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages-functions/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages-functions/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages-functions/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages-functions/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pages-functions/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pipelines/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pulumi/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pulumi/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pulumi/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pulumi/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/pulumi/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/queues/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/queues/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/queues/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/queues/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/queues/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2-data-catalog/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2-data-catalog/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2-data-catalog/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2-data-catalog/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2-data-catalog/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/r2-sql/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtime-sfu/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtime-sfu/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtime-sfu/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtime-sfu/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtime-sfu/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtimekit/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtimekit/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtimekit/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtimekit/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/realtimekit/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/sandbox/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/sandbox/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/sandbox/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/sandbox/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/sandbox/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/secrets-store/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/secrets-store/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/secrets-store/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/secrets-store/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/secrets-store/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/smart-placement/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/smart-placement/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/smart-placement/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/smart-placement/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/smart-placement/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/snippets/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/snippets/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/snippets/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/snippets/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/snippets/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/spectrum/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/spectrum/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/spectrum/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/spectrum/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/spectrum/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/static-assets/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/static-assets/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/static-assets/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/static-assets/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/static-assets/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/stream/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/stream/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/stream/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/stream/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/stream/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/tail-workers/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/terraform/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/terraform/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/terraform/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/terraform/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/terraform/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/tunnel/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/tunnel/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/tunnel/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/tunnel/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/tunnel/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/turn/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/turnstile/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/turnstile/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/turnstile/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/turnstile/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/turnstile/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/vectorize/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/waf/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/waf/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/waf/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/waf/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/waf/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/web-analytics/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/web-analytics/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/web-analytics/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/web-analytics/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/web-analytics/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workerd/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workerd/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workerd/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workerd/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workerd/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-ai/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-for-platforms/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-for-platforms/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-for-platforms/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-for-platforms/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-for-platforms/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-playground/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-playground/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-playground/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-playground/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-playground/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workers-vpc/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workflows/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workflows/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workflows/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workflows/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/workflows/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/wrangler/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/wrangler/api.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/wrangler/configuration.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/wrangler/gotchas.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/wrangler/patterns.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/cloudflare/references/zaraz/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/condition-based-waiting/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/condition-based-waiting/example.ts +0 -0
- /package/dist/template/.opencode/{skills → skill}/context-engineering/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/deep-research/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/defense-in-depth/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/design-system-audit/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/dispatching-parallel-agents/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/executing-plans/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/figma/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/finishing-a-development-branch/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/frontend-design/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/frontend-design/references/animation/motion-advanced.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/frontend-design/references/animation/motion-core.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/frontend-design/references/canvas/execution.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/frontend-design/references/canvas/philosophy.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/frontend-design/references/shadcn/accessibility.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/frontend-design/references/shadcn/core-components.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/frontend-design/references/shadcn/form-components.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/frontend-design/references/shadcn/setup.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/frontend-design/references/shadcn/theming.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/frontend-design/references/tailwind/responsive.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/frontend-design/references/tailwind/utilities-layout.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/frontend-design/references/tailwind/utilities-styling.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/frontend-design/references/tailwind/v4-config.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/frontend-design/references/tailwind/v4-features.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/gemini-large-context/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/index-knowledge/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/memory-system/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/mockup-to-code/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/mqdh/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/notebooklm/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/notebooklm/references/setup.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/opensrc/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/opensrc/references/architecture.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/opensrc/references/cli-usage.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/opensrc/references/registry-support.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/playwright/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/playwright/mcp.json +0 -0
- /package/dist/template/.opencode/{skills → skill}/playwriter/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/polar/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/prd/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/prd-task/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/prd-task/references/prd-schema.json +0 -0
- /package/dist/template/.opencode/{skills → skill}/ralph/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/AGENTS.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/README.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/metadata.json +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/_sections.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/_template.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/advanced-event-handler-refs.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/advanced-use-latest.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/async-api-routes.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/async-defer-await.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/async-dependencies.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/async-parallel.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/async-suspense-boundaries.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/bundle-barrel-imports.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/bundle-conditional.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/bundle-defer-third-party.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/bundle-dynamic-imports.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/bundle-preload.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/client-event-listeners.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/client-localstorage-schema.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/client-passive-event-listeners.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/client-swr-dedup.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-batch-dom-css.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-cache-function-results.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-cache-property-access.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-cache-storage.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-combine-iterations.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-early-exit.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-hoist-regexp.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-index-maps.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-length-check-first.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-min-max-loop.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-set-map-lookups.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/js-tosorted-immutable.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rendering-activity.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rendering-conditional-render.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rendering-content-visibility.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rendering-hoist-jsx.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rendering-hydration-no-flicker.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rendering-svg-precision.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rerender-defer-reads.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rerender-dependencies.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rerender-derived-state.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rerender-functional-setstate.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rerender-lazy-state-init.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rerender-memo.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/rerender-transitions.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/server-after-nonblocking.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/server-cache-lru.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/server-cache-react.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/server-parallel-fetching.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/react-best-practices/rules/server-serialization.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/receiving-code-review/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/requesting-code-review/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/requesting-code-review/review.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/root-cause-tracing/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/root-cause-tracing/find-polluter.sh +0 -0
- /package/dist/template/.opencode/{skills → skill}/session-management/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/sharing-skills/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/skill-creator/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/source-code-research/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/stitch/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/stitch/mcp.json +0 -0
- /package/dist/template/.opencode/{skills → skill}/subagent-driven-development/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase/mcp.json +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/AGENTS.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/advanced-full-text-search.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/advanced-jsonb-indexing.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/conn-idle-timeout.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/conn-limits.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/conn-pooling.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/conn-prepared-statements.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/data-batch-inserts.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/data-n-plus-one.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/data-pagination.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/data-upsert.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/lock-advisory.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/lock-deadlock-prevention.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/lock-short-transactions.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/lock-skip-locked.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/monitor-explain-analyze.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/monitor-pg-stat-statements.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/monitor-vacuum-analyze.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/query-composite-indexes.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/query-covering-indexes.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/query-index-types.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/query-missing-indexes.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/query-partial-indexes.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/schema-data-types.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/schema-foreign-key-indexes.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/schema-lowercase-identifiers.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/schema-partitioning.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/schema-primary-keys.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/security-privileges.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/security-rls-basics.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/supabase-postgres-best-practices/rules/security-rls-performance.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/systematic-debugging/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/test-driven-development/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/testing-anti-patterns/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/testing-skills-with-subagents/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/ui-ux-research/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/using-git-worktrees/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/using-skills/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/v0/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/vercel-deploy-claimable/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/vercel-deploy-claimable/scripts/deploy.sh +0 -0
- /package/dist/template/.opencode/{skills → skill}/verification-before-completion/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/visual-analysis/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/web-design-guidelines/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/writing-plans/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/writing-skills/SKILL.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/writing-skills/anthropic-best-practices.md +0 -0
- /package/dist/template/.opencode/{skills → skill}/writing-skills/graphviz-conventions.dot +0 -0
- /package/dist/template/.opencode/{skills → skill}/writing-skills/persuasion-principles.md +0 -0
- /package/dist/template/.opencode/{tools → tool}/context7-query-docs.ts +0 -0
- /package/dist/template/.opencode/{tools → tool}/context7-resolve-library-id.ts +0 -0
- /package/dist/template/.opencode/{tools → tool}/grepsearch.ts +0 -0
- /package/dist/template/.opencode/{tools → tool}/memory-read.ts +0 -0
- /package/dist/template/.opencode/{tools → tool}/memory-search.ts +0 -0
- /package/dist/template/.opencode/{tools → tool}/memory-update.ts +0 -0
- /package/dist/template/.opencode/{tools → tool}/notebooklm.ts +0 -0
- /package/dist/template/.opencode/{tools → tool}/observation.ts +0 -0
- /package/dist/template/.opencode/{tools → tool}/oracle.ts +0 -0
|
@@ -0,0 +1,690 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: swarm-coordination
|
|
3
|
+
description: >
|
|
4
|
+
Use when implementing plans with multiple independent tasks that can run in parallel.
|
|
5
|
+
Enables leader agents to spawn, coordinate, and monitor worker swarms using Kimi K2.5 PARL patterns.
|
|
6
|
+
Covers task classification, anti-serial-collapse detection, delegation packets, progress tracking,
|
|
7
|
+
and graceful shutdown patterns.
|
|
8
|
+
version: "2.1.0"
|
|
9
|
+
license: MIT
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Swarm Coordination - Kimi K2.5 PARL Multi-Agent Execution
|
|
13
|
+
|
|
14
|
+
Coordinate multiple agents working on independent tasks in parallel using Kimi K2.5 PARL (Parallel-Agent Reinforcement Learning) patterns.
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
|
|
18
|
+
**Swarm = Leader + Workers + Progress Tracking + Todo Persistence**
|
|
19
|
+
|
|
20
|
+
- **Leader (build agent)**: Orchestrates the swarm - analyzes tasks, spawns workers, monitors progress, synthesizes results
|
|
21
|
+
- **Workers (general/explore/review/plan agents)**: Execute independent tasks - read delegation, make changes, report progress
|
|
22
|
+
- **Progress Tracker (swarm-progress.jsonl)**: Real-time progress updates with TUI visualization
|
|
23
|
+
- **Todo Persistence (swarm-todos.json)**: Cross-session recovery for interrupted swarms
|
|
24
|
+
|
|
25
|
+
**Key Tools**:
|
|
26
|
+
|
|
27
|
+
| Tool | Purpose | When to Use |
|
|
28
|
+
| ---------------- | -------------------------------------- | ---------------------------- |
|
|
29
|
+
| `swarm-plan` | Task classification & dependency graph | Before spawning workers |
|
|
30
|
+
| `swarm-delegate` | Create delegation packets | Assigning work to workers |
|
|
31
|
+
| `swarm-monitor` | Progress tracking + todo persistence | During swarm execution |
|
|
32
|
+
| `beads-sync` | Sync Beads ↔ OpenCode todos | Session start, cross-session |
|
|
33
|
+
|
|
34
|
+
**Key Distinction**:
|
|
35
|
+
|
|
36
|
+
- **Swarm**: Parallel execution of independent tasks with dynamic allocation
|
|
37
|
+
- **Beads**: Task tracking and dependency management across sessions
|
|
38
|
+
- **Task tool**: Spawning individual subagents for research/execution
|
|
39
|
+
- **swarm-plan tool**: Task classification, dependency graphs, anti-serial-collapse
|
|
40
|
+
- **swarm-monitor tool**: Progress tracking, TUI visualization, todo persistence
|
|
41
|
+
|
|
42
|
+
**When to Use Swarm Coordination**:
|
|
43
|
+
|
|
44
|
+
- "Does this plan have 3+ independent tasks?" → **YES** = Swarm
|
|
45
|
+
- "Can multiple tasks run in parallel without conflicts?" → **YES** = Swarm
|
|
46
|
+
- "Do I need to coordinate multiple agents?" → **YES** = Swarm
|
|
47
|
+
- "Is this a single task or sequential dependency chain?" → **NO** = Single agent
|
|
48
|
+
|
|
49
|
+
**Kimi K2.5 PARL Patterns**:
|
|
50
|
+
|
|
51
|
+
- **Task Classification**: Auto-detect parallelization potential
|
|
52
|
+
- **Anti-Serial-Collapse**: Prevent forced sequential execution
|
|
53
|
+
- **Dynamic Allocation**: Conservative start, scale based on bottlenecks
|
|
54
|
+
- **Progress Visualization**: Real-time TUI with beautiful markdown blocks
|
|
55
|
+
- **Dependency Graphs**: DAG-based task scheduling with critical path analysis
|
|
56
|
+
|
|
57
|
+
## Architecture
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
61
|
+
│ BUILD AGENT (Leader) │
|
|
62
|
+
│ - Parses plan into tasks │
|
|
63
|
+
│ - Creates delegation packets │
|
|
64
|
+
│ - Spawns worker agents via Task tool │
|
|
65
|
+
│ - Monitors progress via swarm-monitor │
|
|
66
|
+
│ - Synthesizes final results │
|
|
67
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
68
|
+
│ │ │
|
|
69
|
+
▼ ▼ ▼
|
|
70
|
+
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
71
|
+
│ WORKER-1 │ │ WORKER-2 │ │ WORKER-3 │
|
|
72
|
+
│ (general) │ │ (general) │ │ (general) │
|
|
73
|
+
│ │ │ │ │ │
|
|
74
|
+
│ - Read │ │ - Read │ │ - Read │
|
|
75
|
+
│ delegation│ │ delegation│ │ delegation│
|
|
76
|
+
│ - Execute │ │ - Execute │ │ - Execute │
|
|
77
|
+
│ - Report │ │ - Report │ │ - Report │
|
|
78
|
+
└─────────────┘ └─────────────┘ └─────────────┘
|
|
79
|
+
│ │ │
|
|
80
|
+
└────────────────────┼────────────────────┘
|
|
81
|
+
▼
|
|
82
|
+
┌─────────────────┐
|
|
83
|
+
│ PROGRESS + │
|
|
84
|
+
│ TODO PERSIST │
|
|
85
|
+
└─────────────────┘
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Swarm Launch Flow - PARL Pattern (7 Steps)
|
|
89
|
+
|
|
90
|
+
### Step 0: Task Analysis (Anti-Serial-Collapse + Dependency Graph)
|
|
91
|
+
|
|
92
|
+
Analyze the user's actual task to determine optimal swarm strategy:
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
// 1. Classify the task and build dependency graph
|
|
96
|
+
const analysis = await swarm_plan({
|
|
97
|
+
operation: "analyze",
|
|
98
|
+
task: "<user's request from input>",
|
|
99
|
+
files: "<detected files from glob/grep>",
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
// Returns:
|
|
103
|
+
// - type: "search" | "batch" | "writing" | "sequential" | "mixed"
|
|
104
|
+
// - recommended_agents: number
|
|
105
|
+
// - phases: [{ name, role, agent_count, dependencies }]
|
|
106
|
+
// - coupling: "high" | "medium" | "low"
|
|
107
|
+
// - confidence: "high" | "medium" | "low"
|
|
108
|
+
// - dependency_graph: { nodes, edges, critical_path, parallelizable_groups }
|
|
109
|
+
|
|
110
|
+
const plan = JSON.parse(analysis);
|
|
111
|
+
|
|
112
|
+
// 2. Check for serial collapse
|
|
113
|
+
const check = await swarm_plan({
|
|
114
|
+
operation: "check",
|
|
115
|
+
task: "<user's request>",
|
|
116
|
+
files: String(plan.file_count),
|
|
117
|
+
recommended_agents: plan.classification.recommended_agents,
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
// If serial collapse detected, force parallelization
|
|
121
|
+
if (check.serial_collapse_detected) {
|
|
122
|
+
console.log(`⚠️ Serial collapse detected: ${check.warning_signs.join(", ")}`);
|
|
123
|
+
console.log(`✓ Adjusting to ${check.suggested_agents} agents`);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// 3. Use dependency graph for spawn ordering
|
|
127
|
+
const { parallelizable_groups, critical_path } = plan.dependency_graph;
|
|
128
|
+
console.log(`Critical path: ${critical_path.join(" → ")}`);
|
|
129
|
+
console.log(`Parallel groups: ${parallelizable_groups.length}`);
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Step 1: Session Setup (Push Beads to Todos)
|
|
133
|
+
|
|
134
|
+
Make Beads tasks visible to subagents:
|
|
135
|
+
|
|
136
|
+
```typescript
|
|
137
|
+
// Push Beads to OpenCode todos (subagents see via todoread)
|
|
138
|
+
await beads_sync({ operation: "push", filter: "open" });
|
|
139
|
+
|
|
140
|
+
// Check for existing swarm state
|
|
141
|
+
const status = await swarm_monitor({
|
|
142
|
+
operation: "status",
|
|
143
|
+
team_name: "plan-implementation",
|
|
144
|
+
});
|
|
145
|
+
const stats = JSON.parse(status).summary;
|
|
146
|
+
|
|
147
|
+
if (stats.total_workers > 0) {
|
|
148
|
+
console.log(`Found existing swarm with ${stats.total_workers} workers`);
|
|
149
|
+
// Render current progress
|
|
150
|
+
const ui = await swarm_monitor({
|
|
151
|
+
operation: "render_block",
|
|
152
|
+
team_name: "plan-implementation",
|
|
153
|
+
});
|
|
154
|
+
console.log(ui);
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Step 2: Create Delegation Packets
|
|
159
|
+
|
|
160
|
+
For each task, create a delegation packet:
|
|
161
|
+
|
|
162
|
+
```typescript
|
|
163
|
+
swarm_delegate({
|
|
164
|
+
bead_id: "task-1",
|
|
165
|
+
title: "Implement auth service",
|
|
166
|
+
expected_outcome: "Auth service with JWT tokens, tests pass",
|
|
167
|
+
required_tools: "read, grep, lsp, edit, bash",
|
|
168
|
+
must_do: "LSP before edits, run npm test after changes",
|
|
169
|
+
must_not_do: "No new dependencies, don't edit config files",
|
|
170
|
+
acceptance_checks: "typecheck: npm run typecheck, lint: npm run lint, test: npm test",
|
|
171
|
+
context: "See .beads/artifacts/task-1/spec.md for requirements",
|
|
172
|
+
write: true,
|
|
173
|
+
});
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Step 3: Spawn Worker Agents (Using Dependency Groups)
|
|
177
|
+
|
|
178
|
+
Use parallelizable_groups from dependency graph for proper ordering:
|
|
179
|
+
|
|
180
|
+
```typescript
|
|
181
|
+
// Spawn workers in dependency order
|
|
182
|
+
for (const group of plan.dependency_graph.parallelizable_groups) {
|
|
183
|
+
// All tasks in this group can run in parallel
|
|
184
|
+
const spawnPromises = group.map((taskId) => {
|
|
185
|
+
const node = plan.dependency_graph.nodes.find((n) => n.id === taskId);
|
|
186
|
+
return Task({
|
|
187
|
+
subagent_type: "general",
|
|
188
|
+
description: `Execute ${taskId}`,
|
|
189
|
+
prompt: `Execute bead ${taskId}: ${node.content}
|
|
190
|
+
|
|
191
|
+
Read delegation packet at: .beads/artifacts/${taskId}/delegation.md
|
|
192
|
+
|
|
193
|
+
Files: ${node.assignedFiles.join(", ")}
|
|
194
|
+
Phase: ${node.phase}
|
|
195
|
+
Worker: ${node.worker}
|
|
196
|
+
Team: plan-implementation
|
|
197
|
+
|
|
198
|
+
Requirements:
|
|
199
|
+
1. Follow all MUST DO constraints
|
|
200
|
+
2. Avoid all MUST NOT DO items
|
|
201
|
+
3. Run acceptance checks before claiming done
|
|
202
|
+
4. Report progress via swarm-monitor`,
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
// Wait for parallel group to complete before starting next
|
|
207
|
+
await Promise.all(spawnPromises);
|
|
208
|
+
}
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Step 4: Monitor Progress (Real-time TUI + Persistence)
|
|
212
|
+
|
|
213
|
+
Monitor with beautiful block UI, progress tracking, and auto-persistence:
|
|
214
|
+
|
|
215
|
+
```typescript
|
|
216
|
+
let allComplete = false;
|
|
217
|
+
while (!allComplete) {
|
|
218
|
+
// Option A: Render beautiful TUI block
|
|
219
|
+
const ui = await swarm_monitor({
|
|
220
|
+
operation: "render_block",
|
|
221
|
+
team_name: "plan-implementation",
|
|
222
|
+
});
|
|
223
|
+
console.log(ui); // Markdown block with tables, emojis, progress
|
|
224
|
+
|
|
225
|
+
// Option B: Get detailed status
|
|
226
|
+
const status = await swarm_monitor({
|
|
227
|
+
operation: "status",
|
|
228
|
+
team_name: "plan-implementation",
|
|
229
|
+
});
|
|
230
|
+
const stats = JSON.parse(status).summary;
|
|
231
|
+
// Returns: total_workers, completed, working, errors, messages
|
|
232
|
+
|
|
233
|
+
// Check completion
|
|
234
|
+
allComplete = stats.completed === stats.total_workers;
|
|
235
|
+
|
|
236
|
+
if (!allComplete) {
|
|
237
|
+
// Wait before checking again
|
|
238
|
+
await new Promise((r) => setTimeout(r, 2000)); // Wait 2s
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### Step 5: Synthesize Results
|
|
244
|
+
|
|
245
|
+
When all workers complete:
|
|
246
|
+
|
|
247
|
+
```typescript
|
|
248
|
+
// 1. Get final status
|
|
249
|
+
const finalStatus = await swarm_monitor({
|
|
250
|
+
operation: "status",
|
|
251
|
+
team_name: "plan-implementation",
|
|
252
|
+
});
|
|
253
|
+
|
|
254
|
+
// 2. Run full verification
|
|
255
|
+
await bash("npm run typecheck && npm run lint && npm test");
|
|
256
|
+
|
|
257
|
+
// 3. Pull completed todos back to Beads
|
|
258
|
+
await beads_sync({ operation: "pull" });
|
|
259
|
+
|
|
260
|
+
// 4. Clear swarm data
|
|
261
|
+
await swarm_monitor({
|
|
262
|
+
operation: "clear",
|
|
263
|
+
team_name: "plan-implementation",
|
|
264
|
+
});
|
|
265
|
+
|
|
266
|
+
// 5. Close parent bead
|
|
267
|
+
await bash("bd close parent-task --reason 'Swarm completed all subtasks'");
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
## Dependency Graph Features
|
|
271
|
+
|
|
272
|
+
The `swarm-plan` tool now includes full dependency graph analysis:
|
|
273
|
+
|
|
274
|
+
### Structure
|
|
275
|
+
|
|
276
|
+
```typescript
|
|
277
|
+
interface DependencyGraph {
|
|
278
|
+
nodes: TaskNode[]; // Individual tasks
|
|
279
|
+
edges: Edge[]; // Dependencies between tasks
|
|
280
|
+
critical_path: string[]; // Longest dependency chain
|
|
281
|
+
parallelizable_groups: string[][]; // Tasks that can run in parallel
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
interface TaskNode {
|
|
285
|
+
id: string;
|
|
286
|
+
content: string;
|
|
287
|
+
phase: string;
|
|
288
|
+
worker: string;
|
|
289
|
+
status: "pending" | "in_progress" | "completed";
|
|
290
|
+
priority: "high" | "medium" | "low";
|
|
291
|
+
blockedBy: string[]; // Tasks this depends on
|
|
292
|
+
blocks: string[]; // Tasks that depend on this
|
|
293
|
+
assignedFiles: string[]; // Files assigned to this task
|
|
294
|
+
}
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
### Usage
|
|
298
|
+
|
|
299
|
+
```typescript
|
|
300
|
+
const analysis = await swarm_plan({
|
|
301
|
+
operation: "analyze",
|
|
302
|
+
task: "Refactor API layer",
|
|
303
|
+
files: "src/api/users.ts,src/api/posts.ts,src/api/auth.ts",
|
|
304
|
+
});
|
|
305
|
+
|
|
306
|
+
const plan = JSON.parse(analysis);
|
|
307
|
+
|
|
308
|
+
// Critical path shows the longest dependency chain
|
|
309
|
+
// Focus attention here for optimal completion time
|
|
310
|
+
console.log(`Critical path: ${plan.dependency_graph.critical_path.join(" → ")}`);
|
|
311
|
+
|
|
312
|
+
// Parallelizable groups show which tasks can run simultaneously
|
|
313
|
+
// Each group must complete before starting the next
|
|
314
|
+
for (let i = 0; i < plan.dependency_graph.parallelizable_groups.length; i++) {
|
|
315
|
+
const group = plan.dependency_graph.parallelizable_groups[i];
|
|
316
|
+
console.log(`Wave ${i + 1}: ${group.join(", ")} (${group.length} parallel tasks)`);
|
|
317
|
+
}
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
## Todo Persistence for Cross-Session Recovery
|
|
321
|
+
|
|
322
|
+
## Delegation Packet Structure
|
|
323
|
+
|
|
324
|
+
```markdown
|
|
325
|
+
# Delegation Packet
|
|
326
|
+
|
|
327
|
+
- TASK: task-1 - Implement auth service
|
|
328
|
+
- EXPECTED OUTCOME: Auth service with JWT tokens, tests pass
|
|
329
|
+
- REQUIRED TOOLS:
|
|
330
|
+
- read
|
|
331
|
+
- grep
|
|
332
|
+
- lsp
|
|
333
|
+
- edit
|
|
334
|
+
- bash
|
|
335
|
+
- MUST DO:
|
|
336
|
+
- LSP before edits
|
|
337
|
+
- Run npm test after changes
|
|
338
|
+
- Follow existing code patterns
|
|
339
|
+
- MUST NOT DO:
|
|
340
|
+
- No new dependencies
|
|
341
|
+
- Don't edit config files
|
|
342
|
+
- Don't modify shared utilities
|
|
343
|
+
- ACCEPTANCE CHECKS:
|
|
344
|
+
- typecheck: npm run typecheck
|
|
345
|
+
- lint: npm run lint
|
|
346
|
+
- test: npm test
|
|
347
|
+
- CONTEXT:
|
|
348
|
+
See .beads/artifacts/task-1/spec.md for requirements
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
## Worker Protocol (Updated with Progress Tracking)
|
|
352
|
+
|
|
353
|
+
Workers follow this execution pattern:
|
|
354
|
+
|
|
355
|
+
### 1. Read Delegation
|
|
356
|
+
|
|
357
|
+
```typescript
|
|
358
|
+
// First action: read the delegation packet
|
|
359
|
+
read({ filePath: ".beads/artifacts/<task-id>/delegation.md" });
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
### 2. Announce Start with Progress
|
|
363
|
+
|
|
364
|
+
```typescript
|
|
365
|
+
await swarm_monitor({
|
|
366
|
+
operation: "progress_update",
|
|
367
|
+
team_name: "plan-implementation",
|
|
368
|
+
worker_id: "worker-1",
|
|
369
|
+
phase: "explore", // or "generate", "reflect", etc.
|
|
370
|
+
progress: 0,
|
|
371
|
+
status: "working",
|
|
372
|
+
file: "src/api/users.ts", // current file being worked on
|
|
373
|
+
});
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
### 3. Execute Task with Progress Updates
|
|
377
|
+
|
|
378
|
+
Follow the MUST DO constraints. Avoid MUST NOT DO items. Use required tools only.
|
|
379
|
+
|
|
380
|
+
Report progress every 25%:
|
|
381
|
+
|
|
382
|
+
```typescript
|
|
383
|
+
// At 25%, 50%, 75% completion
|
|
384
|
+
await swarm_monitor({
|
|
385
|
+
operation: "progress_update",
|
|
386
|
+
team_name: "plan-implementation",
|
|
387
|
+
worker_id: "worker-1",
|
|
388
|
+
phase: "explore",
|
|
389
|
+
progress: 25, // or 50, 75
|
|
390
|
+
status: "working",
|
|
391
|
+
file: "src/api/users.ts",
|
|
392
|
+
});
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
### 4. Run Acceptance Checks
|
|
396
|
+
|
|
397
|
+
```bash
|
|
398
|
+
# Run each check from the delegation packet
|
|
399
|
+
npm run typecheck
|
|
400
|
+
npm run lint
|
|
401
|
+
npm test
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
### 5. Report Completion
|
|
405
|
+
|
|
406
|
+
```typescript
|
|
407
|
+
// Mark as completed
|
|
408
|
+
await swarm_monitor({
|
|
409
|
+
operation: "progress_update",
|
|
410
|
+
team_name: "plan-implementation",
|
|
411
|
+
worker_id: "worker-1",
|
|
412
|
+
phase: "explore",
|
|
413
|
+
progress: 100,
|
|
414
|
+
status: "completed",
|
|
415
|
+
file: "src/api/users.ts",
|
|
416
|
+
});
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
## Error Handling
|
|
420
|
+
|
|
421
|
+
### Worker Fails Acceptance Checks
|
|
422
|
+
|
|
423
|
+
Workers report failures via progress updates with error status:
|
|
424
|
+
|
|
425
|
+
```typescript
|
|
426
|
+
// Worker reports error via progress update
|
|
427
|
+
await swarm_monitor({
|
|
428
|
+
operation: "progress_update",
|
|
429
|
+
team_name: "plan-implementation",
|
|
430
|
+
worker_id: "worker-1",
|
|
431
|
+
phase: "explore",
|
|
432
|
+
progress: 75,
|
|
433
|
+
status: "error",
|
|
434
|
+
message: "typecheck failed: missing type for AuthToken",
|
|
435
|
+
});
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
### Leader Response
|
|
439
|
+
|
|
440
|
+
1. Check worker status via `swarm_monitor({ operation: "status" })`
|
|
441
|
+
2. Review error details in progress entries
|
|
442
|
+
3. Decide: fix locally or reassign to new worker
|
|
443
|
+
|
|
444
|
+
### Worker Gets Blocked
|
|
445
|
+
|
|
446
|
+
Workers should report blockers via progress updates:
|
|
447
|
+
|
|
448
|
+
```typescript
|
|
449
|
+
// Worker reports blocker via progress update
|
|
450
|
+
await swarm_monitor({
|
|
451
|
+
operation: "progress_update",
|
|
452
|
+
team_name: "plan-implementation",
|
|
453
|
+
worker_id: "worker-2",
|
|
454
|
+
phase: "explore",
|
|
455
|
+
progress: 50,
|
|
456
|
+
status: "blocked",
|
|
457
|
+
message: "Need auth service types from worker-1",
|
|
458
|
+
});
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
## When to Use Swarm vs Single Agent
|
|
462
|
+
|
|
463
|
+
| Scenario | Approach |
|
|
464
|
+
| ----------------------------- | ------------ |
|
|
465
|
+
| 1-2 file changes | Single agent |
|
|
466
|
+
| Sequential dependencies | Single agent |
|
|
467
|
+
| 3+ independent parallel tasks | Swarm |
|
|
468
|
+
| Cross-domain work (FE/BE/DB) | Swarm |
|
|
469
|
+
| Time-sensitive parallel work | Swarm |
|
|
470
|
+
|
|
471
|
+
## Integration with Beads
|
|
472
|
+
|
|
473
|
+
Swarm works on top of Beads:
|
|
474
|
+
|
|
475
|
+
1. **Session start**: `beads-sync push` to make tasks visible
|
|
476
|
+
2. **Leader claims parent** bead
|
|
477
|
+
3. **Workers claim child** beads (via delegation packets)
|
|
478
|
+
4. **Progress tracked** via `swarm-monitor progress_update`
|
|
479
|
+
5. **Completion syncs** back via `beads-sync pull`
|
|
480
|
+
6. **Close parent** bead with `bd close`
|
|
481
|
+
|
|
482
|
+
```typescript
|
|
483
|
+
// Full integration workflow
|
|
484
|
+
await beads_sync({ operation: "push" }); // Make Beads visible
|
|
485
|
+
// ... spawn swarm ...
|
|
486
|
+
await swarm_monitor({ operation: "render_block", team_name: "..." }); // Monitor progress
|
|
487
|
+
// ... monitor completion ...
|
|
488
|
+
await beads_sync({ operation: "pull" }); // Sync completed back
|
|
489
|
+
await bash("bd close parent-task --reason 'Swarm completed'");
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
## Quick Reference - Kimi K2.5 PARL Pattern
|
|
493
|
+
|
|
494
|
+
```
|
|
495
|
+
SWARM LAUNCH (PARL):
|
|
496
|
+
0. SETUP: beads-sync({ operation: "push" })
|
|
497
|
+
→ Make Beads visible to subagents
|
|
498
|
+
1. ANALYZE: swarm-plan({ operation: "analyze", task: userRequest, files: detectedFiles })
|
|
499
|
+
→ Get classification, phases, dependency_graph
|
|
500
|
+
2. CHECK: swarm-plan({ operation: "check", ... })
|
|
501
|
+
→ Detect/prevent serial collapse
|
|
502
|
+
3. DELEGATE: swarm_delegate({ ... })
|
|
503
|
+
→ Create packets for each worker
|
|
504
|
+
4. SPAWN: Task({ subagent_type: "general" })
|
|
505
|
+
→ Launch workers using parallelizable_groups order
|
|
506
|
+
5. MONITOR: swarm_monitor({ operation: "render_block" })
|
|
507
|
+
→ Real-time TUI progress
|
|
508
|
+
6. VERIFY: npm run typecheck && npm run lint && npm test
|
|
509
|
+
7. CLOSE: beads-sync({ operation: "pull" }) && bd close <bead>
|
|
510
|
+
|
|
511
|
+
WORKER EXECUTION:
|
|
512
|
+
1. Read delegation packet
|
|
513
|
+
2. Report START: swarm_monitor({ operation: "progress_update", progress: 0, status: "working" })
|
|
514
|
+
3. Execute with constraints
|
|
515
|
+
4. Report PROGRESS (every 25%): swarm_monitor({ operation: "progress_update", progress: 25/50/75 })
|
|
516
|
+
5. Run acceptance checks
|
|
517
|
+
6. Report DONE: swarm_monitor({ operation: "progress_update", progress: 100, status: "completed" })
|
|
518
|
+
|
|
519
|
+
COORDINATION:
|
|
520
|
+
- Progress: .beads/swarm-progress.jsonl (via swarm-monitor)
|
|
521
|
+
- Delegation: .beads/artifacts/<id>/delegation.md (via swarm-delegate)
|
|
522
|
+
- Analysis: swarm-plan tool for classification + dependency graphs
|
|
523
|
+
|
|
524
|
+
RECOVERY:
|
|
525
|
+
- Check: swarm_monitor({ operation: "status" })
|
|
526
|
+
- Use shared task lists: beads_sync({ operation: "create_shared" })
|
|
527
|
+
- Continue with remaining workers
|
|
528
|
+
|
|
529
|
+
SHUTDOWN:
|
|
530
|
+
- All workers done → swarm_monitor({ operation: "clear" })
|
|
531
|
+
- Run full test suite
|
|
532
|
+
- beads-sync({ operation: "pull" })
|
|
533
|
+
- Close parent bead
|
|
534
|
+
```
|
|
535
|
+
|
|
536
|
+
## Tools Reference
|
|
537
|
+
|
|
538
|
+
| Tool | Purpose | Key Operations |
|
|
539
|
+
| ------------------ | --------------------------------- | ----------------------------------------------------------------------------- |
|
|
540
|
+
| **swarm-plan** | Task analysis + dependency DAG | `analyze`, `classify`, `check`, `allocate` |
|
|
541
|
+
| **swarm-delegate** | Create delegation packets | `swarm_delegate({ ... })` |
|
|
542
|
+
| **swarm-monitor** | Progress tracking + visualization | `progress_update`, `render_block`, `status`, `clear` |
|
|
543
|
+
| **beads-sync** | Beads ↔ OpenCode todos | `push`, `pull`, `create_shared`, `get_shared`, `update_shared`, `list_shared` |
|
|
544
|
+
|
|
545
|
+
## Tmux Integration (Visual Swarm Monitoring)
|
|
546
|
+
|
|
547
|
+
Enable real-time visualization of swarm workers in separate tmux panes.
|
|
548
|
+
|
|
549
|
+
### Setup
|
|
550
|
+
|
|
551
|
+
1. Start OpenCode inside tmux:
|
|
552
|
+
|
|
553
|
+
```bash
|
|
554
|
+
tmux new -s opencode
|
|
555
|
+
opencode
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
2. The tmux tool auto-detects when running inside tmux and uses these defaults:
|
|
559
|
+
- Layout: `main-vertical` (leader left, workers right)
|
|
560
|
+
- Main pane size: 60%
|
|
561
|
+
- Auto-cleanup: enabled
|
|
562
|
+
|
|
563
|
+
### Detecting Tmux
|
|
564
|
+
|
|
565
|
+
```typescript
|
|
566
|
+
// Check if running inside tmux
|
|
567
|
+
const status = await tmux({ operation: "detect" });
|
|
568
|
+
const { available, inside_session } = JSON.parse(status);
|
|
569
|
+
|
|
570
|
+
if (!inside_session) {
|
|
571
|
+
console.log("Tip: Run inside tmux for visual swarm monitoring");
|
|
572
|
+
console.log("Start with: tmux new -s opencode");
|
|
573
|
+
}
|
|
574
|
+
```
|
|
575
|
+
|
|
576
|
+
### Spawning Worker Panes
|
|
577
|
+
|
|
578
|
+
When spawning workers, create visual panes:
|
|
579
|
+
|
|
580
|
+
```typescript
|
|
581
|
+
// Before spawning worker via Task tool
|
|
582
|
+
if (inside_session) {
|
|
583
|
+
// Create pane for this worker
|
|
584
|
+
const pane = await tmux({
|
|
585
|
+
operation: "spawn",
|
|
586
|
+
worker_id: "worker-1",
|
|
587
|
+
title: "Explorer: auth.ts",
|
|
588
|
+
size: 40, // 40% width
|
|
589
|
+
});
|
|
590
|
+
|
|
591
|
+
const { pane_id } = JSON.parse(pane);
|
|
592
|
+
|
|
593
|
+
// Send command to pane (optional - for visual feedback)
|
|
594
|
+
await tmux({
|
|
595
|
+
operation: "send",
|
|
596
|
+
pane_id,
|
|
597
|
+
command: `echo "🔍 Worker-1: Exploring auth.ts..."`,
|
|
598
|
+
});
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
// Spawn the actual worker
|
|
602
|
+
await Task({
|
|
603
|
+
subagent_type: "general",
|
|
604
|
+
description: "Execute worker-1",
|
|
605
|
+
prompt: `...`,
|
|
606
|
+
});
|
|
607
|
+
```
|
|
608
|
+
|
|
609
|
+
### Layout Options
|
|
610
|
+
|
|
611
|
+
| Layout | Description | Best For |
|
|
612
|
+
| ----------------- | ------------------------------------- | ----------------------------- |
|
|
613
|
+
| `main-vertical` | Main pane left, workers stacked right | Default, good for 2-4 workers |
|
|
614
|
+
| `main-horizontal` | Main pane top, workers below | Wide monitors |
|
|
615
|
+
| `tiled` | Equal grid for all panes | Many workers (5+) |
|
|
616
|
+
| `even-horizontal` | Equal width columns | 2-3 workers |
|
|
617
|
+
| `even-vertical` | Equal height rows | 2-3 workers |
|
|
618
|
+
|
|
619
|
+
```typescript
|
|
620
|
+
// Change layout dynamically
|
|
621
|
+
await tmux({
|
|
622
|
+
operation: "layout",
|
|
623
|
+
layout: "tiled", // When many workers spawn
|
|
624
|
+
});
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
### Monitoring Worker Output
|
|
628
|
+
|
|
629
|
+
```typescript
|
|
630
|
+
// Capture output from a worker's pane
|
|
631
|
+
const output = await tmux({
|
|
632
|
+
operation: "capture",
|
|
633
|
+
pane_id: "%5",
|
|
634
|
+
});
|
|
635
|
+
|
|
636
|
+
// Check what the worker is doing
|
|
637
|
+
console.log(JSON.parse(output).output);
|
|
638
|
+
```
|
|
639
|
+
|
|
640
|
+
### Cleanup
|
|
641
|
+
|
|
642
|
+
```typescript
|
|
643
|
+
// Kill specific pane when worker completes
|
|
644
|
+
await tmux({
|
|
645
|
+
operation: "kill",
|
|
646
|
+
pane_id: "%5",
|
|
647
|
+
});
|
|
648
|
+
|
|
649
|
+
// Or cleanup all spawned panes at end of swarm
|
|
650
|
+
await tmux({
|
|
651
|
+
operation: "cleanup",
|
|
652
|
+
});
|
|
653
|
+
```
|
|
654
|
+
|
|
655
|
+
### User Commands
|
|
656
|
+
|
|
657
|
+
| Action | Keys |
|
|
658
|
+
| ----------------------- | ------------- |
|
|
659
|
+
| Switch to next pane | `Ctrl+B →` |
|
|
660
|
+
| Switch to previous pane | `Ctrl+B ←` |
|
|
661
|
+
| Zoom current pane | `Ctrl+B z` |
|
|
662
|
+
| Detach (keep running) | `Ctrl+B d` |
|
|
663
|
+
| Reattach | `tmux attach` |
|
|
664
|
+
| List all panes | `Ctrl+B w` |
|
|
665
|
+
|
|
666
|
+
### Watch Command
|
|
667
|
+
|
|
668
|
+
Use `/swarm-watch` for real-time progress monitoring:
|
|
669
|
+
|
|
670
|
+
```bash
|
|
671
|
+
/swarm-watch my-swarm-team
|
|
672
|
+
```
|
|
673
|
+
|
|
674
|
+
This renders the beautiful TUI block and shows:
|
|
675
|
+
|
|
676
|
+
- Worker progress percentages
|
|
677
|
+
- Current files being worked on
|
|
678
|
+
- Completion status
|
|
679
|
+
|
|
680
|
+
## Rules
|
|
681
|
+
|
|
682
|
+
1. **Leader spawns, workers execute** - Clear role separation
|
|
683
|
+
2. **Delegation packets are contracts** - Workers follow them strictly
|
|
684
|
+
3. **Progress tracking for coordination** - All status via swarm-monitor progress updates
|
|
685
|
+
4. **Non-overlapping assignments** - Ensure workers edit different files
|
|
686
|
+
5. **Acceptance checks required** - Workers verify before reporting done
|
|
687
|
+
6. **Persist periodically** - Enable cross-session recovery
|
|
688
|
+
7. **Use dependency graph** - Spawn workers in parallelizable_groups order
|
|
689
|
+
8. **Graceful shutdown** - Leader waits for all workers, syncs back to Beads
|
|
690
|
+
9. **Use tmux for visibility** - Enable visual monitoring when available
|