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,384 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: deep-research
|
|
3
|
+
description: >
|
|
4
|
+
Use when analyzing unfamiliar code, implementing complex features, or entering thorough research mode.
|
|
5
|
+
Provides structured LSP exploration (all 9 operations), memory-first protocol, and confidence-scored findings.
|
|
6
|
+
Integrates with scout agent deep mode and research command --thorough flag.
|
|
7
|
+
version: 1.0.0
|
|
8
|
+
tags: [research, workflow]
|
|
9
|
+
dependencies: []
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Deep Research - Comprehensive Code Understanding
|
|
13
|
+
|
|
14
|
+
## When to Use
|
|
15
|
+
|
|
16
|
+
- **Complex implementation**: Feature touches 3+ files or unfamiliar modules
|
|
17
|
+
- **Thorough mode**: `/research <topic> --thorough` or scout deep mode
|
|
18
|
+
- **Pre-edit understanding**: Before modifying code you don't fully understand
|
|
19
|
+
- **Architecture exploration**: Understanding how systems connect
|
|
20
|
+
- **Debugging**: Tracing behavior through multiple layers
|
|
21
|
+
|
|
22
|
+
## When NOT to Use
|
|
23
|
+
|
|
24
|
+
- Quick syntax lookup (use quick mode instead)
|
|
25
|
+
- Well-understood code with obvious changes
|
|
26
|
+
- Time-constrained fixes (accept lower confidence)
|
|
27
|
+
|
|
28
|
+
## Core Protocol
|
|
29
|
+
|
|
30
|
+
### Phase 1: Memory First (Skip External If Found)
|
|
31
|
+
|
|
32
|
+
```typescript
|
|
33
|
+
// Search past research on this topic
|
|
34
|
+
memory_search({ query: "<topic keywords>", limit: 5 });
|
|
35
|
+
|
|
36
|
+
// Check for related observations
|
|
37
|
+
memory_search({ query: "<topic> gotchas patterns", limit: 3 });
|
|
38
|
+
|
|
39
|
+
// Load relevant project context
|
|
40
|
+
memory_read({ file: "project/architecture" });
|
|
41
|
+
memory_read({ file: "project/gotchas" });
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Stop condition**: If memory returns high-confidence findings on this exact topic, synthesize and skip to documentation. Only proceed to exploration if:
|
|
45
|
+
|
|
46
|
+
- No relevant memory found
|
|
47
|
+
- Memory findings are outdated or incomplete
|
|
48
|
+
- Question requires fresh analysis
|
|
49
|
+
|
|
50
|
+
### Phase 2: LSP Exploration (Delegate to Explore Agent)
|
|
51
|
+
|
|
52
|
+
**Delegate to explore agent** for comprehensive LSP analysis instead of manual operations:
|
|
53
|
+
|
|
54
|
+
```typescript
|
|
55
|
+
task({
|
|
56
|
+
subagent_type: "explore",
|
|
57
|
+
description: "LSP analysis of <target>",
|
|
58
|
+
prompt: `Very thorough LSP analysis of <symbol/module>.
|
|
59
|
+
|
|
60
|
+
Target files:
|
|
61
|
+
- src/path/to/file.ts
|
|
62
|
+
- src/related/module.ts
|
|
63
|
+
|
|
64
|
+
Questions to answer:
|
|
65
|
+
1. What is the type signature of <symbol>?
|
|
66
|
+
2. What calls this function? (incoming calls)
|
|
67
|
+
3. What does this function call? (outgoing calls)
|
|
68
|
+
4. Where is this symbol referenced across the codebase?
|
|
69
|
+
5. Are there interface implementations to consider?
|
|
70
|
+
|
|
71
|
+
Return structured findings with file:line references.`,
|
|
72
|
+
});
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
The explore agent will run:
|
|
76
|
+
|
|
77
|
+
- `documentSymbol` - File structure overview
|
|
78
|
+
- `goToDefinition` - Symbol definitions
|
|
79
|
+
- `findReferences` - All usages across codebase
|
|
80
|
+
- `hover` - Type info and documentation
|
|
81
|
+
- `workspaceSymbol` - Workspace-wide search
|
|
82
|
+
- Call hierarchy (incoming/outgoing calls)
|
|
83
|
+
|
|
84
|
+
**When to run LSP manually instead:**
|
|
85
|
+
|
|
86
|
+
- Single symbol lookup (quick mode)
|
|
87
|
+
- Explore agent unavailable
|
|
88
|
+
- Need specific operation only
|
|
89
|
+
|
|
90
|
+
### Phase 3: Pattern Discovery
|
|
91
|
+
|
|
92
|
+
```typescript
|
|
93
|
+
// Find similar patterns in codebase (use project's file extension: *.ts, *.py, *.rs, *.go, *.java, etc.)
|
|
94
|
+
grep({ pattern: "<relevant pattern>", include: "*.<ext>" });
|
|
95
|
+
|
|
96
|
+
// Locate related files
|
|
97
|
+
glob({ pattern: "src/**/*<topic>*" });
|
|
98
|
+
|
|
99
|
+
// Check tests for usage examples (adapt glob to project conventions)
|
|
100
|
+
// JS/TS: **/*.test.ts, **/*.spec.ts | Python: **/test_*.py | Rust: **/tests/**
|
|
101
|
+
// Go: **/*_test.go | Java: **/src/test/**/*.java
|
|
102
|
+
glob({ pattern: "**/*test*" });
|
|
103
|
+
grep({ pattern: "<function name>", include: "*test*" });
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Phase 4: External Research (If Needed)
|
|
107
|
+
|
|
108
|
+
Only if internal exploration doesn't answer the question:
|
|
109
|
+
|
|
110
|
+
```typescript
|
|
111
|
+
// Official docs
|
|
112
|
+
context7({ operation: "resolve", libraryName: "<lib>" });
|
|
113
|
+
context7({ operation: "query", libraryId: "<id>", topic: "<specific question>" });
|
|
114
|
+
|
|
115
|
+
// Real-world patterns (adapt language parameter to project)
|
|
116
|
+
codesearch({ query: "<API usage pattern>", tokensNum: 5000 });
|
|
117
|
+
grepsearch({ query: "<code pattern>", language: "<project language>" });
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Confidence Levels
|
|
121
|
+
|
|
122
|
+
Score every finding:
|
|
123
|
+
|
|
124
|
+
| Level | Criteria | Action |
|
|
125
|
+
| ---------- | ------------------------------------------ | -------------------- |
|
|
126
|
+
| **High** | LSP confirmed + tests exist + docs match | Proceed confidently |
|
|
127
|
+
| **Medium** | LSP confirmed but untested or undocumented | Proceed with caution |
|
|
128
|
+
| **Low** | Inference only, no LSP/test confirmation | Verify before using |
|
|
129
|
+
| **None** | Speculation without evidence | Discard |
|
|
130
|
+
|
|
131
|
+
## Stop Conditions
|
|
132
|
+
|
|
133
|
+
Stop research when ANY of these are true:
|
|
134
|
+
|
|
135
|
+
- All questions answered with Medium+ confidence
|
|
136
|
+
- Tool budget exhausted (~100 calls for thorough)
|
|
137
|
+
- Last 5 tool calls yielded no new insights
|
|
138
|
+
- Blocked and need human input
|
|
139
|
+
|
|
140
|
+
## Tool Budget Guidelines
|
|
141
|
+
|
|
142
|
+
| Mode | Tool Calls | Use Case |
|
|
143
|
+
| -------- | ---------- | ---------------------------------- |
|
|
144
|
+
| Quick | ~10 | Single question, syntax lookup |
|
|
145
|
+
| Default | ~30 | Moderate exploration |
|
|
146
|
+
| Thorough | ~100+ | Comprehensive analysis, new domain |
|
|
147
|
+
|
|
148
|
+
Track your tool count and stop at budget.
|
|
149
|
+
|
|
150
|
+
## Output Template
|
|
151
|
+
|
|
152
|
+
Document findings in structured format:
|
|
153
|
+
|
|
154
|
+
```markdown
|
|
155
|
+
# Deep Research: [Topic]
|
|
156
|
+
|
|
157
|
+
**Mode:** thorough
|
|
158
|
+
**Tool calls:** [N]
|
|
159
|
+
**Duration:** [time]
|
|
160
|
+
|
|
161
|
+
## Questions Addressed
|
|
162
|
+
|
|
163
|
+
1. [Q1] → Answered (High confidence)
|
|
164
|
+
2. [Q2] → Partial (Medium confidence)
|
|
165
|
+
3. [Q3] → Unanswered (needs: [what would resolve])
|
|
166
|
+
|
|
167
|
+
## LSP Findings
|
|
168
|
+
|
|
169
|
+
### Symbol: [name]
|
|
170
|
+
|
|
171
|
+
**Location:** `src/path/file.ts:42`
|
|
172
|
+
**Type:** [type signature from hover]
|
|
173
|
+
|
|
174
|
+
**Callers (incoming):**
|
|
175
|
+
|
|
176
|
+
- `src/a.ts:10` - [context]
|
|
177
|
+
- `src/b.ts:25` - [context]
|
|
178
|
+
|
|
179
|
+
**Dependencies (outgoing):**
|
|
180
|
+
|
|
181
|
+
- `src/utils.ts:15` - [what it calls]
|
|
182
|
+
|
|
183
|
+
**References:** [N] usages across [M] files
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Pattern Analysis
|
|
188
|
+
|
|
189
|
+
### Pattern 1: [Name]
|
|
190
|
+
|
|
191
|
+
**Files:** `src/a.ts`, `src/b.ts`
|
|
192
|
+
**Confidence:** High
|
|
193
|
+
**Evidence:** [LSP + grep findings]
|
|
194
|
+
|
|
195
|
+
[Description of pattern]
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Key Findings
|
|
200
|
+
|
|
201
|
+
### [Finding 1]
|
|
202
|
+
|
|
203
|
+
**Confidence:** High
|
|
204
|
+
**Sources:** LSP goToDefinition, findReferences
|
|
205
|
+
**Evidence:** `src/file.ts:42-56`
|
|
206
|
+
|
|
207
|
+
[Finding with code evidence]
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## Recommendations
|
|
212
|
+
|
|
213
|
+
Based on LSP analysis:
|
|
214
|
+
|
|
215
|
+
1. [Recommendation 1] - because [LSP evidence]
|
|
216
|
+
2. [Recommendation 2] - because [pattern found]
|
|
217
|
+
|
|
218
|
+
## Open Items
|
|
219
|
+
|
|
220
|
+
- [Remaining question] - needs: [specific tool/info]
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
## Integration Points
|
|
224
|
+
|
|
225
|
+
### Scout Agent Deep Mode
|
|
226
|
+
|
|
227
|
+
When scout enters deep mode, load this skill:
|
|
228
|
+
|
|
229
|
+
```typescript
|
|
230
|
+
skill({ name: "deep-research" });
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
Scout then follows the protocol for external + internal analysis.
|
|
234
|
+
|
|
235
|
+
### Research Command --thorough
|
|
236
|
+
|
|
237
|
+
When `/research <topic> --thorough` is invoked:
|
|
238
|
+
|
|
239
|
+
```typescript
|
|
240
|
+
skill({ name: "deep-research" });
|
|
241
|
+
// Follow full protocol with ~100 tool budget
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### Pre-Edit Verification
|
|
245
|
+
|
|
246
|
+
Before any complex edit:
|
|
247
|
+
|
|
248
|
+
```typescript
|
|
249
|
+
skill({ name: "deep-research" });
|
|
250
|
+
// Run Phase 2 (LSP) on all symbols being modified
|
|
251
|
+
// Proceed only when all 9 operations complete
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
## Workflow Example
|
|
255
|
+
|
|
256
|
+
**Scenario:** Understanding authentication middleware before adding rate limiting.
|
|
257
|
+
|
|
258
|
+
```typescript
|
|
259
|
+
// Phase 1: Memory check
|
|
260
|
+
memory_search({ query: "authentication middleware rate limiting" });
|
|
261
|
+
memory_read({ file: "project/architecture" });
|
|
262
|
+
|
|
263
|
+
// Phase 2: Delegate LSP exploration to explore agent
|
|
264
|
+
task({
|
|
265
|
+
subagent_type: "explore",
|
|
266
|
+
description: "Analyze auth middleware",
|
|
267
|
+
prompt: `Very thorough LSP analysis of authentication middleware.
|
|
268
|
+
|
|
269
|
+
Target: src/middleware/auth.ts
|
|
270
|
+
|
|
271
|
+
Questions:
|
|
272
|
+
1. What functions are exported from auth.ts?
|
|
273
|
+
2. What calls the auth middleware? (incoming calls)
|
|
274
|
+
3. What does it depend on? (outgoing calls)
|
|
275
|
+
4. Are there existing rate limiting patterns?
|
|
276
|
+
|
|
277
|
+
Return file:line references for all findings.`,
|
|
278
|
+
});
|
|
279
|
+
|
|
280
|
+
// Phase 3: Pattern discovery (parallel with Phase 2)
|
|
281
|
+
grep({ pattern: "middleware", include: "*.<ext>" });
|
|
282
|
+
grep({ pattern: "rateLimit", include: "*.<ext>" });
|
|
283
|
+
glob({ pattern: "src/middleware/*" });
|
|
284
|
+
|
|
285
|
+
// Phase 4: External (if patterns unclear)
|
|
286
|
+
context7({ operation: "resolve", libraryName: "express" });
|
|
287
|
+
context7({ operation: "query", libraryId: "/expressjs/express", topic: "middleware" });
|
|
288
|
+
|
|
289
|
+
// Document findings
|
|
290
|
+
write({
|
|
291
|
+
filePath: ".beads/artifacts/<id>/research.md",
|
|
292
|
+
content: "# Deep Research: Auth Middleware...",
|
|
293
|
+
});
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
## Anti-Patterns
|
|
297
|
+
|
|
298
|
+
### DON'T: Skip LSP Exploration
|
|
299
|
+
|
|
300
|
+
```typescript
|
|
301
|
+
// Bad: Reading file without LSP analysis
|
|
302
|
+
read({ filePath: "src/auth.ts" });
|
|
303
|
+
// Then immediately editing...
|
|
304
|
+
|
|
305
|
+
// Good: Delegate to explore agent first
|
|
306
|
+
task({
|
|
307
|
+
subagent_type: "explore",
|
|
308
|
+
description: "Analyze auth.ts",
|
|
309
|
+
prompt: "Very thorough LSP analysis of src/auth.ts...",
|
|
310
|
+
});
|
|
311
|
+
// Then edit with understanding
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
### DON'T: Ignore Memory
|
|
315
|
+
|
|
316
|
+
```typescript
|
|
317
|
+
// Bad: Jumping straight to exploration
|
|
318
|
+
grep({ pattern: "auth", include: "*.ts" });
|
|
319
|
+
|
|
320
|
+
// Good: Check memory first
|
|
321
|
+
memory_search({ query: "authentication patterns" });
|
|
322
|
+
// Only explore if memory doesn't answer
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
### DON'T: Mix Confidence Levels
|
|
326
|
+
|
|
327
|
+
```typescript
|
|
328
|
+
// Bad: Treating speculation as fact
|
|
329
|
+
"This function definitely handles X"; // Without LSP verification
|
|
330
|
+
|
|
331
|
+
// Good: Explicit confidence
|
|
332
|
+
"Based on LSP findReferences (High confidence): This function is called from...";
|
|
333
|
+
"Inference (Low confidence): This might also handle X, needs verification";
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
### DON'T: Exceed Budget Without Stopping
|
|
337
|
+
|
|
338
|
+
```typescript
|
|
339
|
+
// Bad: 150 tool calls on thorough mode
|
|
340
|
+
// Keep going indefinitely...
|
|
341
|
+
|
|
342
|
+
// Good: Track and stop
|
|
343
|
+
// Tool call 95: Still finding new insights, continue
|
|
344
|
+
// Tool call 100: Stopping at budget, documenting partial findings
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
## Success Criteria
|
|
348
|
+
|
|
349
|
+
Research is complete when:
|
|
350
|
+
|
|
351
|
+
- [ ] Memory checked before exploration
|
|
352
|
+
- [ ] All 9 LSP operations run on target symbols
|
|
353
|
+
- [ ] Confidence scores assigned to all findings
|
|
354
|
+
- [ ] Tool budget respected
|
|
355
|
+
- [ ] Findings documented with evidence
|
|
356
|
+
- [ ] Open items listed with resolution paths
|
|
357
|
+
|
|
358
|
+
## Quick Reference
|
|
359
|
+
|
|
360
|
+
```
|
|
361
|
+
PROTOCOL:
|
|
362
|
+
1. Memory first → skip if found
|
|
363
|
+
2. Delegate LSP to @explore (very thorough)
|
|
364
|
+
3. Patterns → grep + glob (parallel)
|
|
365
|
+
4. External → only if needed
|
|
366
|
+
|
|
367
|
+
DELEGATION:
|
|
368
|
+
task({ subagent_type: "explore", prompt: "Very thorough LSP analysis..." })
|
|
369
|
+
|
|
370
|
+
CONFIDENCE:
|
|
371
|
+
High = LSP + tests + docs
|
|
372
|
+
Medium = LSP only
|
|
373
|
+
Low = inference
|
|
374
|
+
None = discard
|
|
375
|
+
|
|
376
|
+
BUDGET:
|
|
377
|
+
quick ~10 | default ~30 | thorough ~100
|
|
378
|
+
|
|
379
|
+
STOP WHEN:
|
|
380
|
+
- Questions answered (Medium+)
|
|
381
|
+
- Budget exhausted
|
|
382
|
+
- 5 calls with no new insights
|
|
383
|
+
- Blocked on human input
|
|
384
|
+
```
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: defense-in-depth
|
|
3
|
+
description: Use when invalid data causes failures deep in execution, requiring validation at multiple system layers - validates at every layer data passes through to make bugs structurally impossible
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
tags: [code-quality, debugging]
|
|
6
|
+
dependencies: []
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Defense-in-Depth Validation
|
|
10
|
+
|
|
11
|
+
> **Replaces** single-layer validation where bad data propagates silently until it causes cryptic failures deep in execution
|
|
12
|
+
|
|
13
|
+
## When to Use
|
|
14
|
+
|
|
15
|
+
- A bug is caused by invalid data flowing through multiple layers
|
|
16
|
+
- One validation check is insufficient because data crosses boundaries
|
|
17
|
+
|
|
18
|
+
## When NOT to Use
|
|
19
|
+
|
|
20
|
+
- Simple, single-layer validation at an obvious entry point is enough
|
|
21
|
+
- The issue is unrelated to invalid data or boundary checks
|
|
22
|
+
|
|
23
|
+
## Anti-Patterns
|
|
24
|
+
|
|
25
|
+
| Anti-Pattern | Why It Fails | Instead |
|
|
26
|
+
| --- | --- | --- |
|
|
27
|
+
| Validating only at the entry point (trusting downstream) | Alternate paths and refactors bypass one gate | Add independent checks at each boundary |
|
|
28
|
+
| Duplicating identical validation at every layer | Creates noise without improving safety | Tailor each layer to boundary-specific invariants |
|
|
29
|
+
| Catching and swallowing errors silently | Hides failures and delays detection | Raise explicit errors with actionable context |
|
|
30
|
+
| Mixing validation with business logic | Makes behavior hard to reason about and test | Keep validation checks explicit and separate from core logic |
|
|
31
|
+
|
|
32
|
+
## Overview
|
|
33
|
+
|
|
34
|
+
When you fix a bug caused by invalid data, adding validation at one place feels sufficient. But that single check can be bypassed by different code paths, refactoring, or mocks.
|
|
35
|
+
|
|
36
|
+
**Core principle:** Validate at EVERY layer data passes through. Make the bug structurally impossible.
|
|
37
|
+
|
|
38
|
+
## Why Multiple Layers
|
|
39
|
+
|
|
40
|
+
Single validation: "We fixed the bug"
|
|
41
|
+
Multiple layers: "We made the bug impossible"
|
|
42
|
+
|
|
43
|
+
Different layers catch different cases:
|
|
44
|
+
|
|
45
|
+
- Entry validation catches most bugs
|
|
46
|
+
- Business logic catches edge cases
|
|
47
|
+
- Environment guards prevent context-specific dangers
|
|
48
|
+
- Debug logging helps when other layers fail
|
|
49
|
+
|
|
50
|
+
## The Four Layers
|
|
51
|
+
|
|
52
|
+
### Layer 1: Entry Point Validation
|
|
53
|
+
|
|
54
|
+
**Purpose:** Reject obviously invalid input at API boundary
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
function createProject(name: string, workingDirectory: string) {
|
|
58
|
+
if (!workingDirectory || workingDirectory.trim() === "") {
|
|
59
|
+
throw new Error("workingDirectory cannot be empty");
|
|
60
|
+
}
|
|
61
|
+
if (!existsSync(workingDirectory)) {
|
|
62
|
+
throw new Error(`workingDirectory does not exist: ${workingDirectory}`);
|
|
63
|
+
}
|
|
64
|
+
if (!statSync(workingDirectory).isDirectory()) {
|
|
65
|
+
throw new Error(`workingDirectory is not a directory: ${workingDirectory}`);
|
|
66
|
+
}
|
|
67
|
+
// ... proceed
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Layer 2: Business Logic Validation
|
|
72
|
+
|
|
73
|
+
**Purpose:** Ensure data makes sense for this operation
|
|
74
|
+
|
|
75
|
+
```typescript
|
|
76
|
+
function initializeWorkspace(projectDir: string, sessionId: string) {
|
|
77
|
+
if (!projectDir) {
|
|
78
|
+
throw new Error("projectDir required for workspace initialization");
|
|
79
|
+
}
|
|
80
|
+
// ... proceed
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Layer 3: Environment Guards
|
|
85
|
+
|
|
86
|
+
**Purpose:** Prevent dangerous operations in specific contexts
|
|
87
|
+
|
|
88
|
+
```typescript
|
|
89
|
+
async function gitInit(directory: string) {
|
|
90
|
+
// In tests, refuse git init outside temp directories
|
|
91
|
+
if (process.env.NODE_ENV === "test") {
|
|
92
|
+
const normalized = normalize(resolve(directory));
|
|
93
|
+
const tmpDir = normalize(resolve(tmpdir()));
|
|
94
|
+
|
|
95
|
+
if (!normalized.startsWith(tmpDir)) {
|
|
96
|
+
throw new Error(`Refusing git init outside temp dir during tests: ${directory}`);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// ... proceed
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Layer 4: Debug Instrumentation
|
|
104
|
+
|
|
105
|
+
**Purpose:** Capture context for forensics
|
|
106
|
+
|
|
107
|
+
```typescript
|
|
108
|
+
async function gitInit(directory: string) {
|
|
109
|
+
const stack = new Error().stack;
|
|
110
|
+
logger.debug("About to git init", {
|
|
111
|
+
directory,
|
|
112
|
+
cwd: process.cwd(),
|
|
113
|
+
stack,
|
|
114
|
+
});
|
|
115
|
+
// ... proceed
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## Applying the Pattern
|
|
120
|
+
|
|
121
|
+
When you find a bug:
|
|
122
|
+
|
|
123
|
+
1. **Trace the data flow** - Where does bad value originate? Where used?
|
|
124
|
+
2. **Map all checkpoints** - List every point data passes through
|
|
125
|
+
3. **Add validation at each layer** - Entry, business, environment, debug
|
|
126
|
+
4. **Test each layer** - Try to bypass layer 1, verify layer 2 catches it
|
|
127
|
+
|
|
128
|
+
## Example from Session
|
|
129
|
+
|
|
130
|
+
Bug: Empty `projectDir` caused `git init` in source code
|
|
131
|
+
|
|
132
|
+
**Data flow:**
|
|
133
|
+
|
|
134
|
+
1. Test setup → empty string
|
|
135
|
+
2. `Project.create(name, '')`
|
|
136
|
+
3. `WorkspaceManager.createWorkspace('')`
|
|
137
|
+
4. `git init` runs in `process.cwd()`
|
|
138
|
+
|
|
139
|
+
**Four layers added:**
|
|
140
|
+
|
|
141
|
+
- Layer 1: `Project.create()` validates not empty/exists/writable
|
|
142
|
+
- Layer 2: `WorkspaceManager` validates projectDir not empty
|
|
143
|
+
- Layer 3: `WorktreeManager` refuses git init outside tmpdir in tests
|
|
144
|
+
- Layer 4: Stack trace logging before git init
|
|
145
|
+
|
|
146
|
+
**Result:** All 1847 tests passed, bug impossible to reproduce
|
|
147
|
+
|
|
148
|
+
## Key Insight
|
|
149
|
+
|
|
150
|
+
All four layers were necessary. During testing, each layer caught bugs the others missed:
|
|
151
|
+
|
|
152
|
+
- Different code paths bypassed entry validation
|
|
153
|
+
- Mocks bypassed business logic checks
|
|
154
|
+
- Edge cases on different platforms needed environment guards
|
|
155
|
+
- Debug logging identified structural misuse
|
|
156
|
+
|
|
157
|
+
**Don't stop at one validation point.** Add checks at every layer.
|
|
158
|
+
|
|
159
|
+
## Verification
|
|
160
|
+
|
|
161
|
+
- Test with invalid input at each layer boundary — each should reject independently.
|
|
162
|
+
- Remove one validation layer — the next layer should still catch the error.
|
|
163
|
+
|
|
164
|
+
## See Also
|
|
165
|
+
|
|
166
|
+
- **structured-edit** - Reliable read/verify/edit workflow when changing validation code across layers
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: design-system-audit
|
|
3
|
+
description: Unified design audit workflow for UI pattern analysis, design token auditing, and visual comparison against specs
|
|
4
|
+
version: 2.0.0
|
|
5
|
+
tags: [design, audit, ui]
|
|
6
|
+
dependencies: []
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Design System Audit
|
|
10
|
+
|
|
11
|
+
> **Replaces** separate, overlapping design review skills — unified design analysis covering UI patterns, design tokens, and visual properties
|
|
12
|
+
|
|
13
|
+
Use this skill for end-to-end design analysis across code, screenshots, and design specs.
|
|
14
|
+
|
|
15
|
+
## When to Use
|
|
16
|
+
|
|
17
|
+
- Auditing UI consistency across a component library or app
|
|
18
|
+
- Documenting existing patterns before refactor or migration
|
|
19
|
+
- Extracting/validating design tokens from implementation and visuals
|
|
20
|
+
- Comparing rendered output against mockups/Figma/screenshots
|
|
21
|
+
|
|
22
|
+
## When NOT to Use
|
|
23
|
+
|
|
24
|
+
- Pure backend work with no user-facing UI
|
|
25
|
+
- One-off micro tweak where system-level consistency is irrelevant
|
|
26
|
+
|
|
27
|
+
## Modes
|
|
28
|
+
|
|
29
|
+
### UI Pattern Analysis
|
|
30
|
+
Analyze component patterns, identify inconsistencies, document undocumented patterns.
|
|
31
|
+
|
|
32
|
+
Focus areas:
|
|
33
|
+
|
|
34
|
+
- Component variants and usage drift
|
|
35
|
+
- Repeated interaction patterns (forms, tables, dialogs, navigation)
|
|
36
|
+
- Pattern ownership (where canonical implementation should live)
|
|
37
|
+
- Inconsistent states (hover/focus/disabled/error/loading)
|
|
38
|
+
|
|
39
|
+
Deliverables:
|
|
40
|
+
|
|
41
|
+
- Pattern inventory with file references
|
|
42
|
+
- Consolidation candidates
|
|
43
|
+
- Priority fixes by user impact
|
|
44
|
+
|
|
45
|
+
### Design Token Audit
|
|
46
|
+
Extract and verify color, typography, spacing tokens against implementation.
|
|
47
|
+
|
|
48
|
+
Focus areas:
|
|
49
|
+
|
|
50
|
+
- Color token usage vs one-off literals
|
|
51
|
+
- Typography scale consistency (size/weight/line-height)
|
|
52
|
+
- Spacing/radius/shadow value normalization
|
|
53
|
+
- Semantic token gaps (text-muted, border-subtle, success, warning, etc.)
|
|
54
|
+
|
|
55
|
+
Deliverables:
|
|
56
|
+
|
|
57
|
+
- Token map (source of truth + current usage)
|
|
58
|
+
- Drift report (where implementation diverges)
|
|
59
|
+
- Proposed canonical token set and migration order
|
|
60
|
+
|
|
61
|
+
### Visual Comparison
|
|
62
|
+
Compare rendered output against mockups/specs with specific measurements.
|
|
63
|
+
|
|
64
|
+
Focus areas:
|
|
65
|
+
|
|
66
|
+
- Pixel-level spacing/sizing mismatches
|
|
67
|
+
- Color differences (hex-level)
|
|
68
|
+
- Typography mismatches (font, size, weight, line height)
|
|
69
|
+
- Layout/responsive behavior across breakpoints
|
|
70
|
+
|
|
71
|
+
Deliverables:
|
|
72
|
+
|
|
73
|
+
- Spec-vs-implementation discrepancy list
|
|
74
|
+
- Severity-ranked visual defects
|
|
75
|
+
- Concrete fix list with measurable targets
|
|
76
|
+
|
|
77
|
+
## Recommended Workflow
|
|
78
|
+
|
|
79
|
+
1. **Scope**
|
|
80
|
+
- Identify target surfaces (pages/components/states/breakpoints)
|
|
81
|
+
- Gather artifacts (code paths, screenshots, mockups)
|
|
82
|
+
|
|
83
|
+
2. **Inventory**
|
|
84
|
+
- Capture pattern and token inventory from code + visuals
|
|
85
|
+
- Note duplicates, drift, and undocumented conventions
|
|
86
|
+
|
|
87
|
+
3. **Cross-Reference**
|
|
88
|
+
- Validate findings against design system tokens/components
|
|
89
|
+
- Distinguish intentional exceptions from accidental drift
|
|
90
|
+
|
|
91
|
+
4. **Measure**
|
|
92
|
+
- Record measurable values for each issue:
|
|
93
|
+
- hex color
|
|
94
|
+
- px/rem size
|
|
95
|
+
- spacing/gap/padding values
|
|
96
|
+
- breakpoint-specific behavior
|
|
97
|
+
|
|
98
|
+
5. **Report**
|
|
99
|
+
- Produce actionable findings with file:line and target value
|
|
100
|
+
- Group by severity and migration effort
|
|
101
|
+
|
|
102
|
+
## Audit Output Template
|
|
103
|
+
|
|
104
|
+
```markdown
|
|
105
|
+
## Design Audit: [Scope]
|
|
106
|
+
|
|
107
|
+
### Findings
|
|
108
|
+
1. [Severity] [Issue]
|
|
109
|
+
- File: `path/to/file.tsx:123`
|
|
110
|
+
- Current: `#6B7280`, `14px`, `gap: 10px`
|
|
111
|
+
- Expected: `var(--color-text-muted)`, `13px`, `gap: 8px`
|
|
112
|
+
- Impact: [consistency/accessibility/brand mismatch]
|
|
113
|
+
|
|
114
|
+
### Token Drift Summary
|
|
115
|
+
- Colors: X one-offs, Y missing semantic mappings
|
|
116
|
+
- Typography: X non-scale values
|
|
117
|
+
- Spacing: X non-token values
|
|
118
|
+
|
|
119
|
+
### Priority Actions
|
|
120
|
+
- P0: [high impact, low effort]
|
|
121
|
+
- P1: [high impact, medium effort]
|
|
122
|
+
- P2: [design debt cleanup]
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Anti-Patterns
|
|
126
|
+
|
|
127
|
+
| Anti-Pattern | Why It Hurts | Better Approach |
|
|
128
|
+
| --- | --- | --- |
|
|
129
|
+
| Vague feedback ("looks good") instead of specific measurements | Not actionable, impossible to verify | Report concrete values (hex, px/rem, exact delta) |
|
|
130
|
+
| Not checking existing design tokens before proposing new values | Creates token sprawl and inconsistency | Map to existing tokens first; add new tokens only when justified |
|
|
131
|
+
| Auditing in isolation without cross-referencing the design system | Flags intentional patterns as bugs | Validate each finding against canonical component/token sources |
|
|
132
|
+
| Reporting visual issues without checking responsive breakpoints | Misses major UX regressions on mobile/tablet | Verify each issue across defined breakpoints and states |
|
|
133
|
+
|
|
134
|
+
## Verification
|
|
135
|
+
|
|
136
|
+
After audit: every finding should reference a specific file:line and measurable value (hex color, px size, etc.)
|
|
137
|
+
|
|
138
|
+
Minimum quality gate:
|
|
139
|
+
|
|
140
|
+
- Each finding has location + current value + expected value
|
|
141
|
+
- Each recommendation maps to token/system guidance
|
|
142
|
+
- Responsive states checked for impacted components
|
|
143
|
+
|
|
144
|
+
## Storage
|
|
145
|
+
|
|
146
|
+
- Save audits to `.opencode/memory/design/audits/`
|
|
147
|
+
- Save extracted token snapshots to `.opencode/memory/design/tokens/`
|
|
148
|
+
|
|
149
|
+
## See Also
|
|
150
|
+
|
|
151
|
+
- `mockup-to-code`
|
|
152
|
+
- `frontend-design`
|
|
153
|
+
- `accessibility-audit`
|