@minhduydev/mdpi 0.3.0
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 +31 -0
- package/dist/index.js +1187 -0
- package/dist/template/.pi/.env.example +28 -0
- package/dist/template/.pi/AGENTS.md +226 -0
- package/dist/template/.pi/QUALITY.md +13 -0
- package/dist/template/.pi/README.md +452 -0
- package/dist/template/.pi/VERSION +1 -0
- package/dist/template/.pi/agents/INDEX.md +54 -0
- package/dist/template/.pi/agents/build.md +194 -0
- package/dist/template/.pi/agents/explore.md +85 -0
- package/dist/template/.pi/agents/general.md +189 -0
- package/dist/template/.pi/agents/plan.md +407 -0
- package/dist/template/.pi/agents/review.md +198 -0
- package/dist/template/.pi/agents/scout.md +142 -0
- package/dist/template/.pi/agents/vision.md +157 -0
- package/dist/template/.pi/artifacts/example/plan.md +12 -0
- package/dist/template/.pi/artifacts/example/progress.md +4 -0
- package/dist/template/.pi/artifacts/example/research.md +4 -0
- package/dist/template/.pi/artifacts/example/spec.md +16 -0
- package/dist/template/.pi/context/architecture.md +141 -0
- package/dist/template/.pi/context/fallow.md +137 -0
- package/dist/template/.pi/extensions/templates-injector.ts +76 -0
- package/dist/template/.pi/extensions/workflows-runner.ts +301 -0
- package/dist/template/.pi/guard.example.json +75 -0
- package/dist/template/.pi/prompts/INDEX.md +78 -0
- package/dist/template/.pi/prompts/audit.md +109 -0
- package/dist/template/.pi/prompts/close.md +88 -0
- package/dist/template/.pi/prompts/create.md +197 -0
- package/dist/template/.pi/prompts/fix.md +117 -0
- package/dist/template/.pi/prompts/gc.md +112 -0
- package/dist/template/.pi/prompts/init.md +206 -0
- package/dist/template/.pi/prompts/loop-check.md +87 -0
- package/dist/template/.pi/prompts/loop-init.md +157 -0
- package/dist/template/.pi/prompts/loop-review.md +90 -0
- package/dist/template/.pi/prompts/plan.md +254 -0
- package/dist/template/.pi/prompts/research.md +136 -0
- package/dist/template/.pi/prompts/ship.md +219 -0
- package/dist/template/.pi/prompts/status.md +92 -0
- package/dist/template/.pi/prompts/verify.md +154 -0
- package/dist/template/.pi/scripts/gc-check.sh +86 -0
- package/dist/template/.pi/settings.json +15 -0
- package/dist/template/.pi/skills/INDEX.md +331 -0
- package/dist/template/.pi/skills/accessibility-audit/SKILL.md +205 -0
- package/dist/template/.pi/skills/accessibility-audit/references/accessibility-checklist.md +109 -0
- package/dist/template/.pi/skills/agent-code-quality-gate/SKILL.md +131 -0
- package/dist/template/.pi/skills/api-and-interface-design/SKILL.md +159 -0
- package/dist/template/.pi/skills/behavioral-kernel/SKILL.md +92 -0
- package/dist/template/.pi/skills/brainstorming/SKILL.md +138 -0
- package/dist/template/.pi/skills/browser-testing-with-devtools/SKILL.md +90 -0
- package/dist/template/.pi/skills/chrome-devtools/SKILL.md +129 -0
- package/dist/template/.pi/skills/ci-cd-and-automation/SKILL.md +199 -0
- package/dist/template/.pi/skills/cloudflare/SKILL.md +271 -0
- package/dist/template/.pi/skills/cloudflare/references/agents-sdk/README.md +35 -0
- package/dist/template/.pi/skills/cloudflare/references/agents-sdk/api.md +100 -0
- package/dist/template/.pi/skills/cloudflare/references/agents-sdk/configuration.md +99 -0
- package/dist/template/.pi/skills/cloudflare/references/agents-sdk/gotchas.md +59 -0
- package/dist/template/.pi/skills/cloudflare/references/agents-sdk/patterns.md +89 -0
- package/dist/template/.pi/skills/cloudflare/references/ai-gateway/README.md +695 -0
- package/dist/template/.pi/skills/cloudflare/references/ai-search/README.md +14 -0
- package/dist/template/.pi/skills/cloudflare/references/ai-search/api.md +38 -0
- package/dist/template/.pi/skills/cloudflare/references/ai-search/configuration.md +52 -0
- package/dist/template/.pi/skills/cloudflare/references/ai-search/gotchas.md +41 -0
- package/dist/template/.pi/skills/cloudflare/references/ai-search/patterns.md +45 -0
- package/dist/template/.pi/skills/cloudflare/references/analytics-engine/README.md +14 -0
- package/dist/template/.pi/skills/cloudflare/references/analytics-engine/api.md +27 -0
- package/dist/template/.pi/skills/cloudflare/references/analytics-engine/configuration.md +45 -0
- package/dist/template/.pi/skills/cloudflare/references/analytics-engine/gotchas.md +3 -0
- package/dist/template/.pi/skills/cloudflare/references/analytics-engine/patterns.md +36 -0
- package/dist/template/.pi/skills/cloudflare/references/api/README.md +21 -0
- package/dist/template/.pi/skills/cloudflare/references/api/api.md +31 -0
- package/dist/template/.pi/skills/cloudflare/references/api/configuration.md +20 -0
- package/dist/template/.pi/skills/cloudflare/references/api/gotchas.md +28 -0
- package/dist/template/.pi/skills/cloudflare/references/api/patterns.md +47 -0
- package/dist/template/.pi/skills/cloudflare/references/api-shield/README.md +20 -0
- package/dist/template/.pi/skills/cloudflare/references/api-shield/api.md +78 -0
- package/dist/template/.pi/skills/cloudflare/references/api-shield/configuration.md +128 -0
- package/dist/template/.pi/skills/cloudflare/references/api-shield/gotchas.md +51 -0
- package/dist/template/.pi/skills/cloudflare/references/api-shield/patterns.md +145 -0
- package/dist/template/.pi/skills/cloudflare/references/argo-smart-routing/README.md +16 -0
- package/dist/template/.pi/skills/cloudflare/references/argo-smart-routing/api.md +50 -0
- package/dist/template/.pi/skills/cloudflare/references/argo-smart-routing/configuration.md +53 -0
- package/dist/template/.pi/skills/cloudflare/references/argo-smart-routing/gotchas.md +16 -0
- package/dist/template/.pi/skills/cloudflare/references/argo-smart-routing/patterns.md +45 -0
- package/dist/template/.pi/skills/cloudflare/references/bindings/README.md +14 -0
- package/dist/template/.pi/skills/cloudflare/references/bindings/api.md +3 -0
- package/dist/template/.pi/skills/cloudflare/references/bindings/configuration.md +58 -0
- package/dist/template/.pi/skills/cloudflare/references/bindings/gotchas.md +35 -0
- package/dist/template/.pi/skills/cloudflare/references/bindings/patterns.md +37 -0
- package/dist/template/.pi/skills/cloudflare/references/bot-management/README.md +71 -0
- package/dist/template/.pi/skills/cloudflare/references/bot-management/api.md +168 -0
- package/dist/template/.pi/skills/cloudflare/references/bot-management/configuration.md +114 -0
- package/dist/template/.pi/skills/cloudflare/references/bot-management/gotchas.md +99 -0
- package/dist/template/.pi/skills/cloudflare/references/bot-management/patterns.md +125 -0
- package/dist/template/.pi/skills/cloudflare/references/browser-rendering/README.md +16 -0
- package/dist/template/.pi/skills/cloudflare/references/browser-rendering/api.md +54 -0
- package/dist/template/.pi/skills/cloudflare/references/browser-rendering/configuration.md +47 -0
- package/dist/template/.pi/skills/cloudflare/references/browser-rendering/gotchas.md +29 -0
- package/dist/template/.pi/skills/cloudflare/references/browser-rendering/patterns.md +29 -0
- package/dist/template/.pi/skills/cloudflare/references/c3/README.md +264 -0
- package/dist/template/.pi/skills/cloudflare/references/cache-reserve/README.md +93 -0
- package/dist/template/.pi/skills/cloudflare/references/cache-reserve/api.md +176 -0
- package/dist/template/.pi/skills/cloudflare/references/cache-reserve/configuration.md +164 -0
- package/dist/template/.pi/skills/cloudflare/references/cache-reserve/gotchas.md +203 -0
- package/dist/template/.pi/skills/cloudflare/references/cache-reserve/patterns.md +180 -0
- package/dist/template/.pi/skills/cloudflare/references/containers/README.md +16 -0
- package/dist/template/.pi/skills/cloudflare/references/containers/api.md +43 -0
- package/dist/template/.pi/skills/cloudflare/references/containers/configuration.md +56 -0
- package/dist/template/.pi/skills/cloudflare/references/containers/gotchas.md +21 -0
- package/dist/template/.pi/skills/cloudflare/references/containers/patterns.md +40 -0
- package/dist/template/.pi/skills/cloudflare/references/cron-triggers/README.md +85 -0
- package/dist/template/.pi/skills/cloudflare/references/cron-triggers/api.md +198 -0
- package/dist/template/.pi/skills/cloudflare/references/cron-triggers/configuration.md +151 -0
- package/dist/template/.pi/skills/cloudflare/references/cron-triggers/gotchas.md +129 -0
- package/dist/template/.pi/skills/cloudflare/references/cron-triggers/patterns.md +122 -0
- package/dist/template/.pi/skills/cloudflare/references/d1/README.md +92 -0
- package/dist/template/.pi/skills/cloudflare/references/d1/api.md +141 -0
- package/dist/template/.pi/skills/cloudflare/references/d1/configuration.md +127 -0
- package/dist/template/.pi/skills/cloudflare/references/d1/gotchas.md +70 -0
- package/dist/template/.pi/skills/cloudflare/references/d1/patterns.md +144 -0
- package/dist/template/.pi/skills/cloudflare/references/ddos/README.md +34 -0
- package/dist/template/.pi/skills/cloudflare/references/ddos/api.md +136 -0
- package/dist/template/.pi/skills/cloudflare/references/ddos/configuration.md +67 -0
- package/dist/template/.pi/skills/cloudflare/references/ddos/gotchas.md +114 -0
- package/dist/template/.pi/skills/cloudflare/references/ddos/patterns.md +158 -0
- package/dist/template/.pi/skills/cloudflare/references/do-storage/README.md +62 -0
- package/dist/template/.pi/skills/cloudflare/references/do-storage/api.md +89 -0
- package/dist/template/.pi/skills/cloudflare/references/do-storage/configuration.md +116 -0
- package/dist/template/.pi/skills/cloudflare/references/do-storage/gotchas.md +93 -0
- package/dist/template/.pi/skills/cloudflare/references/do-storage/patterns.md +112 -0
- package/dist/template/.pi/skills/cloudflare/references/durable-objects/README.md +125 -0
- package/dist/template/.pi/skills/cloudflare/references/durable-objects/api.md +152 -0
- package/dist/template/.pi/skills/cloudflare/references/durable-objects/configuration.md +148 -0
- package/dist/template/.pi/skills/cloudflare/references/durable-objects/gotchas.md +158 -0
- package/dist/template/.pi/skills/cloudflare/references/durable-objects/patterns.md +255 -0
- package/dist/template/.pi/skills/cloudflare/references/email-routing/README.md +18 -0
- package/dist/template/.pi/skills/cloudflare/references/email-routing/api.md +46 -0
- package/dist/template/.pi/skills/cloudflare/references/email-routing/configuration.md +63 -0
- package/dist/template/.pi/skills/cloudflare/references/email-routing/gotchas.md +16 -0
- package/dist/template/.pi/skills/cloudflare/references/email-routing/patterns.md +46 -0
- package/dist/template/.pi/skills/cloudflare/references/email-workers/README.md +598 -0
- package/dist/template/.pi/skills/cloudflare/references/hyperdrive/README.md +62 -0
- package/dist/template/.pi/skills/cloudflare/references/hyperdrive/api.md +137 -0
- package/dist/template/.pi/skills/cloudflare/references/hyperdrive/configuration.md +133 -0
- package/dist/template/.pi/skills/cloudflare/references/hyperdrive/gotchas.md +184 -0
- package/dist/template/.pi/skills/cloudflare/references/hyperdrive/patterns.md +176 -0
- package/dist/template/.pi/skills/cloudflare/references/images/README.md +14 -0
- package/dist/template/.pi/skills/cloudflare/references/images/api.md +3 -0
- package/dist/template/.pi/skills/cloudflare/references/images/configuration.md +45 -0
- package/dist/template/.pi/skills/cloudflare/references/images/gotchas.md +23 -0
- package/dist/template/.pi/skills/cloudflare/references/images/patterns.md +31 -0
- package/dist/template/.pi/skills/cloudflare/references/kv/README.md +60 -0
- package/dist/template/.pi/skills/cloudflare/references/kv/api.md +114 -0
- package/dist/template/.pi/skills/cloudflare/references/kv/configuration.md +92 -0
- package/dist/template/.pi/skills/cloudflare/references/kv/gotchas.md +117 -0
- package/dist/template/.pi/skills/cloudflare/references/kv/patterns.md +139 -0
- package/dist/template/.pi/skills/cloudflare/references/miniflare/README.md +64 -0
- package/dist/template/.pi/skills/cloudflare/references/miniflare/api.md +144 -0
- package/dist/template/.pi/skills/cloudflare/references/miniflare/configuration.md +203 -0
- package/dist/template/.pi/skills/cloudflare/references/miniflare/gotchas.md +187 -0
- package/dist/template/.pi/skills/cloudflare/references/miniflare/patterns.md +211 -0
- package/dist/template/.pi/skills/cloudflare/references/network-interconnect/README.md +60 -0
- package/dist/template/.pi/skills/cloudflare/references/network-interconnect/api.md +240 -0
- package/dist/template/.pi/skills/cloudflare/references/network-interconnect/configuration.md +127 -0
- package/dist/template/.pi/skills/cloudflare/references/network-interconnect/gotchas.md +171 -0
- package/dist/template/.pi/skills/cloudflare/references/network-interconnect/patterns.md +171 -0
- package/dist/template/.pi/skills/cloudflare/references/observability/README.md +18 -0
- package/dist/template/.pi/skills/cloudflare/references/observability/api.md +51 -0
- package/dist/template/.pi/skills/cloudflare/references/observability/configuration.md +60 -0
- package/dist/template/.pi/skills/cloudflare/references/observability/gotchas.md +36 -0
- package/dist/template/.pi/skills/cloudflare/references/observability/patterns.md +42 -0
- package/dist/template/.pi/skills/cloudflare/references/pages/README.md +76 -0
- package/dist/template/.pi/skills/cloudflare/references/pages/api.md +200 -0
- package/dist/template/.pi/skills/cloudflare/references/pages/configuration.md +228 -0
- package/dist/template/.pi/skills/cloudflare/references/pages/gotchas.md +161 -0
- package/dist/template/.pi/skills/cloudflare/references/pages/patterns.md +145 -0
- package/dist/template/.pi/skills/cloudflare/references/pages-functions/README.md +57 -0
- package/dist/template/.pi/skills/cloudflare/references/pages-functions/api.md +201 -0
- package/dist/template/.pi/skills/cloudflare/references/pages-functions/configuration.md +159 -0
- package/dist/template/.pi/skills/cloudflare/references/pages-functions/gotchas.md +151 -0
- package/dist/template/.pi/skills/cloudflare/references/pages-functions/patterns.md +190 -0
- package/dist/template/.pi/skills/cloudflare/references/pipelines/README.md +664 -0
- package/dist/template/.pi/skills/cloudflare/references/pulumi/README.md +107 -0
- package/dist/template/.pi/skills/cloudflare/references/pulumi/api.md +194 -0
- package/dist/template/.pi/skills/cloudflare/references/pulumi/configuration.md +216 -0
- package/dist/template/.pi/skills/cloudflare/references/pulumi/gotchas.md +223 -0
- package/dist/template/.pi/skills/cloudflare/references/pulumi/patterns.md +139 -0
- package/dist/template/.pi/skills/cloudflare/references/queues/README.md +69 -0
- package/dist/template/.pi/skills/cloudflare/references/queues/api.md +138 -0
- package/dist/template/.pi/skills/cloudflare/references/queues/configuration.md +125 -0
- package/dist/template/.pi/skills/cloudflare/references/queues/gotchas.md +112 -0
- package/dist/template/.pi/skills/cloudflare/references/queues/patterns.md +155 -0
- package/dist/template/.pi/skills/cloudflare/references/r2/README.md +61 -0
- package/dist/template/.pi/skills/cloudflare/references/r2/api.md +127 -0
- package/dist/template/.pi/skills/cloudflare/references/r2/configuration.md +76 -0
- package/dist/template/.pi/skills/cloudflare/references/r2/gotchas.md +94 -0
- package/dist/template/.pi/skills/cloudflare/references/r2/patterns.md +127 -0
- package/dist/template/.pi/skills/cloudflare/references/r2-data-catalog/README.md +18 -0
- package/dist/template/.pi/skills/cloudflare/references/r2-data-catalog/api.md +29 -0
- package/dist/template/.pi/skills/cloudflare/references/r2-data-catalog/configuration.md +39 -0
- package/dist/template/.pi/skills/cloudflare/references/r2-data-catalog/gotchas.md +20 -0
- package/dist/template/.pi/skills/cloudflare/references/r2-data-catalog/patterns.md +46 -0
- package/dist/template/.pi/skills/cloudflare/references/r2-sql/README.md +512 -0
- package/dist/template/.pi/skills/cloudflare/references/realtime-sfu/README.md +21 -0
- package/dist/template/.pi/skills/cloudflare/references/realtime-sfu/api.md +135 -0
- package/dist/template/.pi/skills/cloudflare/references/realtime-sfu/configuration.md +63 -0
- package/dist/template/.pi/skills/cloudflare/references/realtime-sfu/gotchas.md +75 -0
- package/dist/template/.pi/skills/cloudflare/references/realtime-sfu/patterns.md +102 -0
- package/dist/template/.pi/skills/cloudflare/references/realtimekit/README.md +81 -0
- package/dist/template/.pi/skills/cloudflare/references/realtimekit/api.md +164 -0
- package/dist/template/.pi/skills/cloudflare/references/realtimekit/configuration.md +147 -0
- package/dist/template/.pi/skills/cloudflare/references/realtimekit/gotchas.md +172 -0
- package/dist/template/.pi/skills/cloudflare/references/realtimekit/patterns.md +155 -0
- package/dist/template/.pi/skills/cloudflare/references/sandbox/README.md +90 -0
- package/dist/template/.pi/skills/cloudflare/references/sandbox/api.md +178 -0
- package/dist/template/.pi/skills/cloudflare/references/sandbox/configuration.md +131 -0
- package/dist/template/.pi/skills/cloudflare/references/sandbox/gotchas.md +156 -0
- package/dist/template/.pi/skills/cloudflare/references/sandbox/patterns.md +203 -0
- package/dist/template/.pi/skills/cloudflare/references/secrets-store/README.md +58 -0
- package/dist/template/.pi/skills/cloudflare/references/secrets-store/api.md +182 -0
- package/dist/template/.pi/skills/cloudflare/references/secrets-store/configuration.md +140 -0
- package/dist/template/.pi/skills/cloudflare/references/secrets-store/gotchas.md +129 -0
- package/dist/template/.pi/skills/cloudflare/references/secrets-store/patterns.md +218 -0
- package/dist/template/.pi/skills/cloudflare/references/smart-placement/README.md +91 -0
- package/dist/template/.pi/skills/cloudflare/references/smart-placement/api.md +139 -0
- package/dist/template/.pi/skills/cloudflare/references/smart-placement/configuration.md +129 -0
- package/dist/template/.pi/skills/cloudflare/references/smart-placement/gotchas.md +87 -0
- package/dist/template/.pi/skills/cloudflare/references/smart-placement/patterns.md +135 -0
- package/dist/template/.pi/skills/cloudflare/references/snippets/README.md +15 -0
- package/dist/template/.pi/skills/cloudflare/references/snippets/api.md +47 -0
- package/dist/template/.pi/skills/cloudflare/references/snippets/configuration.md +33 -0
- package/dist/template/.pi/skills/cloudflare/references/snippets/gotchas.md +21 -0
- package/dist/template/.pi/skills/cloudflare/references/snippets/patterns.md +34 -0
- package/dist/template/.pi/skills/cloudflare/references/spectrum/README.md +16 -0
- package/dist/template/.pi/skills/cloudflare/references/spectrum/api.md +24 -0
- package/dist/template/.pi/skills/cloudflare/references/spectrum/configuration.md +43 -0
- package/dist/template/.pi/skills/cloudflare/references/spectrum/gotchas.md +42 -0
- package/dist/template/.pi/skills/cloudflare/references/spectrum/patterns.md +40 -0
- package/dist/template/.pi/skills/cloudflare/references/static-assets/README.md +14 -0
- package/dist/template/.pi/skills/cloudflare/references/static-assets/api.md +3 -0
- package/dist/template/.pi/skills/cloudflare/references/static-assets/configuration.md +47 -0
- package/dist/template/.pi/skills/cloudflare/references/static-assets/gotchas.md +44 -0
- package/dist/template/.pi/skills/cloudflare/references/static-assets/patterns.md +42 -0
- package/dist/template/.pi/skills/cloudflare/references/stream/README.md +103 -0
- package/dist/template/.pi/skills/cloudflare/references/stream/api.md +204 -0
- package/dist/template/.pi/skills/cloudflare/references/stream/configuration.md +127 -0
- package/dist/template/.pi/skills/cloudflare/references/stream/gotchas.md +131 -0
- package/dist/template/.pi/skills/cloudflare/references/stream/patterns.md +152 -0
- package/dist/template/.pi/skills/cloudflare/references/tail-workers/README.md +640 -0
- package/dist/template/.pi/skills/cloudflare/references/terraform/README.md +76 -0
- package/dist/template/.pi/skills/cloudflare/references/terraform/api.md +159 -0
- package/dist/template/.pi/skills/cloudflare/references/terraform/configuration.md +156 -0
- package/dist/template/.pi/skills/cloudflare/references/terraform/gotchas.md +207 -0
- package/dist/template/.pi/skills/cloudflare/references/terraform/patterns.md +135 -0
- package/dist/template/.pi/skills/cloudflare/references/tunnel/README.md +82 -0
- package/dist/template/.pi/skills/cloudflare/references/tunnel/api.md +105 -0
- package/dist/template/.pi/skills/cloudflare/references/tunnel/configuration.md +113 -0
- package/dist/template/.pi/skills/cloudflare/references/tunnel/gotchas.md +115 -0
- package/dist/template/.pi/skills/cloudflare/references/tunnel/patterns.md +157 -0
- package/dist/template/.pi/skills/cloudflare/references/turn/README.md +699 -0
- package/dist/template/.pi/skills/cloudflare/references/turnstile/README.md +14 -0
- package/dist/template/.pi/skills/cloudflare/references/turnstile/api.md +3 -0
- package/dist/template/.pi/skills/cloudflare/references/turnstile/configuration.md +19 -0
- package/dist/template/.pi/skills/cloudflare/references/turnstile/gotchas.md +27 -0
- package/dist/template/.pi/skills/cloudflare/references/turnstile/patterns.md +41 -0
- package/dist/template/.pi/skills/cloudflare/references/vectorize/README.md +682 -0
- package/dist/template/.pi/skills/cloudflare/references/waf/README.md +14 -0
- package/dist/template/.pi/skills/cloudflare/references/waf/api.md +3 -0
- package/dist/template/.pi/skills/cloudflare/references/waf/configuration.md +44 -0
- package/dist/template/.pi/skills/cloudflare/references/waf/gotchas.md +24 -0
- package/dist/template/.pi/skills/cloudflare/references/waf/patterns.md +29 -0
- package/dist/template/.pi/skills/cloudflare/references/web-analytics/README.md +19 -0
- package/dist/template/.pi/skills/cloudflare/references/web-analytics/api.md +52 -0
- package/dist/template/.pi/skills/cloudflare/references/web-analytics/configuration.md +31 -0
- package/dist/template/.pi/skills/cloudflare/references/web-analytics/gotchas.md +28 -0
- package/dist/template/.pi/skills/cloudflare/references/web-analytics/patterns.md +52 -0
- package/dist/template/.pi/skills/cloudflare/references/workerd/README.md +47 -0
- package/dist/template/.pi/skills/cloudflare/references/workerd/api.md +199 -0
- package/dist/template/.pi/skills/cloudflare/references/workerd/configuration.md +185 -0
- package/dist/template/.pi/skills/cloudflare/references/workerd/gotchas.md +203 -0
- package/dist/template/.pi/skills/cloudflare/references/workerd/patterns.md +216 -0
- package/dist/template/.pi/skills/cloudflare/references/workers/README.md +96 -0
- package/dist/template/.pi/skills/cloudflare/references/workers/api.md +137 -0
- package/dist/template/.pi/skills/cloudflare/references/workers/configuration.md +147 -0
- package/dist/template/.pi/skills/cloudflare/references/workers/gotchas.md +99 -0
- package/dist/template/.pi/skills/cloudflare/references/workers/patterns.md +149 -0
- package/dist/template/.pi/skills/cloudflare/references/workers-ai/README.md +116 -0
- package/dist/template/.pi/skills/cloudflare/references/workers-for-platforms/README.md +48 -0
- package/dist/template/.pi/skills/cloudflare/references/workers-for-platforms/api.md +169 -0
- package/dist/template/.pi/skills/cloudflare/references/workers-for-platforms/configuration.md +136 -0
- package/dist/template/.pi/skills/cloudflare/references/workers-for-platforms/gotchas.md +130 -0
- package/dist/template/.pi/skills/cloudflare/references/workers-for-platforms/patterns.md +170 -0
- package/dist/template/.pi/skills/cloudflare/references/workers-playground/README.md +16 -0
- package/dist/template/.pi/skills/cloudflare/references/workers-playground/api.md +20 -0
- package/dist/template/.pi/skills/cloudflare/references/workers-playground/configuration.md +3 -0
- package/dist/template/.pi/skills/cloudflare/references/workers-playground/gotchas.md +35 -0
- package/dist/template/.pi/skills/cloudflare/references/workers-playground/patterns.md +42 -0
- package/dist/template/.pi/skills/cloudflare/references/workers-vpc/README.md +579 -0
- package/dist/template/.pi/skills/cloudflare/references/workflows/README.md +62 -0
- package/dist/template/.pi/skills/cloudflare/references/workflows/api.md +125 -0
- package/dist/template/.pi/skills/cloudflare/references/workflows/configuration.md +177 -0
- package/dist/template/.pi/skills/cloudflare/references/workflows/gotchas.md +136 -0
- package/dist/template/.pi/skills/cloudflare/references/workflows/patterns.md +132 -0
- package/dist/template/.pi/skills/cloudflare/references/wrangler/README.md +90 -0
- package/dist/template/.pi/skills/cloudflare/references/wrangler/api.md +140 -0
- package/dist/template/.pi/skills/cloudflare/references/wrangler/configuration.md +128 -0
- package/dist/template/.pi/skills/cloudflare/references/wrangler/gotchas.md +93 -0
- package/dist/template/.pi/skills/cloudflare/references/wrangler/patterns.md +150 -0
- package/dist/template/.pi/skills/cloudflare/references/zaraz/README.md +360 -0
- package/dist/template/.pi/skills/code-cleanup/SKILL.md +232 -0
- package/dist/template/.pi/skills/code-review-and-quality/SKILL.md +344 -0
- package/dist/template/.pi/skills/code-simplification/SKILL.md +348 -0
- package/dist/template/.pi/skills/context-engineering/SKILL.md +296 -0
- package/dist/template/.pi/skills/core-data-expert/SKILL.md +117 -0
- package/dist/template/.pi/skills/core-data-expert/references/batch-operations.md +543 -0
- package/dist/template/.pi/skills/core-data-expert/references/cloudkit-integration.md +259 -0
- package/dist/template/.pi/skills/core-data-expert/references/concurrency.md +522 -0
- package/dist/template/.pi/skills/core-data-expert/references/fetch-requests.md +643 -0
- package/dist/template/.pi/skills/core-data-expert/references/glossary.md +233 -0
- package/dist/template/.pi/skills/core-data-expert/references/migration.md +393 -0
- package/dist/template/.pi/skills/core-data-expert/references/model-configuration.md +597 -0
- package/dist/template/.pi/skills/core-data-expert/references/performance.md +300 -0
- package/dist/template/.pi/skills/core-data-expert/references/persistent-history.md +553 -0
- package/dist/template/.pi/skills/core-data-expert/references/project-audit.md +60 -0
- package/dist/template/.pi/skills/core-data-expert/references/saving.md +574 -0
- package/dist/template/.pi/skills/core-data-expert/references/stack-setup.md +625 -0
- package/dist/template/.pi/skills/core-data-expert/references/testing.md +300 -0
- package/dist/template/.pi/skills/core-data-expert/references/threading.md +589 -0
- package/dist/template/.pi/skills/debugging-and-error-recovery/SKILL.md +274 -0
- package/dist/template/.pi/skills/deep-module-design/SKILL.md +218 -0
- package/dist/template/.pi/skills/defense-in-depth/SKILL.md +161 -0
- package/dist/template/.pi/skills/deprecation-and-migration/SKILL.md +186 -0
- package/dist/template/.pi/skills/design-system-audit/SKILL.md +176 -0
- package/dist/template/.pi/skills/design-taste-frontend/SKILL.md +255 -0
- package/dist/template/.pi/skills/development-lifecycle/SKILL.md +285 -0
- package/dist/template/.pi/skills/documentation-and-adrs/SKILL.md +217 -0
- package/dist/template/.pi/skills/doubt-driven-development/SKILL.md +207 -0
- package/dist/template/.pi/skills/fallow/SKILL.md +457 -0
- package/dist/template/.pi/skills/fallow/references/cli-reference.md +1905 -0
- package/dist/template/.pi/skills/fallow/references/gotchas.md +644 -0
- package/dist/template/.pi/skills/fallow/references/patterns.md +791 -0
- package/dist/template/.pi/skills/figma/SKILL.md +241 -0
- package/dist/template/.pi/skills/frontend-design/SKILL.md +262 -0
- package/dist/template/.pi/skills/frontend-design/references/animation/motion-advanced.md +224 -0
- package/dist/template/.pi/skills/frontend-design/references/animation/motion-core.md +181 -0
- package/dist/template/.pi/skills/frontend-design/references/canvas/execution.md +90 -0
- package/dist/template/.pi/skills/frontend-design/references/canvas/philosophy.md +94 -0
- package/dist/template/.pi/skills/frontend-design/references/design/color-system.md +111 -0
- package/dist/template/.pi/skills/frontend-design/references/design/interaction.md +149 -0
- package/dist/template/.pi/skills/frontend-design/references/design/typography-rules.md +106 -0
- package/dist/template/.pi/skills/frontend-design/references/design/ux-writing.md +99 -0
- package/dist/template/.pi/skills/frontend-design/references/shadcn/accessibility.md +132 -0
- package/dist/template/.pi/skills/frontend-design/references/shadcn/core-components.md +153 -0
- package/dist/template/.pi/skills/frontend-design/references/shadcn/form-components.md +158 -0
- package/dist/template/.pi/skills/frontend-design/references/shadcn/setup.md +69 -0
- package/dist/template/.pi/skills/frontend-design/references/shadcn/theming.md +152 -0
- package/dist/template/.pi/skills/frontend-design/references/tailwind/responsive.md +112 -0
- package/dist/template/.pi/skills/frontend-design/references/tailwind/utilities-layout.md +134 -0
- package/dist/template/.pi/skills/frontend-design/references/tailwind/utilities-styling.md +165 -0
- package/dist/template/.pi/skills/frontend-design/references/tailwind/v4-config.md +147 -0
- package/dist/template/.pi/skills/frontend-design/references/tailwind/v4-features.md +128 -0
- package/dist/template/.pi/skills/frontend-ui-engineering/SKILL.md +217 -0
- package/dist/template/.pi/skills/gemini-large-context/SKILL.md +238 -0
- package/dist/template/.pi/skills/git-workflow-and-versioning/SKILL.md +217 -0
- package/dist/template/.pi/skills/grill-me/SKILL.md +162 -0
- package/dist/template/.pi/skills/high-end-visual-design/SKILL.md +128 -0
- package/dist/template/.pi/skills/idea-refine/SKILL.md +195 -0
- package/dist/template/.pi/skills/idea-refine/examples.md +62 -0
- package/dist/template/.pi/skills/idea-refine/frameworks.md +63 -0
- package/dist/template/.pi/skills/idea-refine/refinement-criteria.md +56 -0
- package/dist/template/.pi/skills/incremental-implementation/SKILL.md +190 -0
- package/dist/template/.pi/skills/industrial-brutalist-ui/SKILL.md +131 -0
- package/dist/template/.pi/skills/interview-me/SKILL.md +227 -0
- package/dist/template/.pi/skills/jira/SKILL.md +306 -0
- package/dist/template/.pi/skills/loop-audit/SKILL.md +141 -0
- package/dist/template/.pi/skills/loop-cost/SKILL.md +130 -0
- package/dist/template/.pi/skills/loop-engineering/SKILL.md +175 -0
- package/dist/template/.pi/skills/minimalist-ui/SKILL.md +124 -0
- package/dist/template/.pi/skills/mockup-to-code/SKILL.md +197 -0
- package/dist/template/.pi/skills/observability-and-instrumentation/SKILL.md +202 -0
- package/dist/template/.pi/skills/opensrc/SKILL.md +297 -0
- package/dist/template/.pi/skills/opensrc/references/architecture.md +176 -0
- package/dist/template/.pi/skills/opensrc/references/cli-usage.md +176 -0
- package/dist/template/.pi/skills/opensrc/references/registry-support.md +137 -0
- package/dist/template/.pi/skills/pdf-extract/SKILL.md +461 -0
- package/dist/template/.pi/skills/performance-optimization/SKILL.md +233 -0
- package/dist/template/.pi/skills/performance-optimization/references/performance-checklist.md +85 -0
- package/dist/template/.pi/skills/planning-and-task-breakdown/SKILL.md +204 -0
- package/dist/template/.pi/skills/playwright/SKILL.md +404 -0
- package/dist/template/.pi/skills/playwright/references/agent-browser-cli.md +405 -0
- package/dist/template/.pi/skills/polar/SKILL.md +125 -0
- package/dist/template/.pi/skills/react-best-practices/SKILL.md +156 -0
- package/dist/template/.pi/skills/react-best-practices/rules/_sections.md +46 -0
- package/dist/template/.pi/skills/react-best-practices/rules/_template.md +28 -0
- package/dist/template/.pi/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/dist/template/.pi/skills/react-best-practices/rules/advanced-use-latest.md +49 -0
- package/dist/template/.pi/skills/react-best-practices/rules/async-api-routes.md +38 -0
- package/dist/template/.pi/skills/react-best-practices/rules/async-defer-await.md +80 -0
- package/dist/template/.pi/skills/react-best-practices/rules/async-dependencies.md +36 -0
- package/dist/template/.pi/skills/react-best-practices/rules/async-parallel.md +28 -0
- package/dist/template/.pi/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/dist/template/.pi/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/dist/template/.pi/skills/react-best-practices/rules/bundle-conditional.md +31 -0
- package/dist/template/.pi/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/dist/template/.pi/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/dist/template/.pi/skills/react-best-practices/rules/bundle-preload.md +50 -0
- package/dist/template/.pi/skills/react-best-practices/rules/client-event-listeners.md +74 -0
- package/dist/template/.pi/skills/react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/dist/template/.pi/skills/react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/dist/template/.pi/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
- package/dist/template/.pi/skills/react-best-practices/rules/js-batch-dom-css.md +82 -0
- package/dist/template/.pi/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
- package/dist/template/.pi/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
- package/dist/template/.pi/skills/react-best-practices/rules/js-cache-storage.md +70 -0
- package/dist/template/.pi/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
- package/dist/template/.pi/skills/react-best-practices/rules/js-early-exit.md +50 -0
- package/dist/template/.pi/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/dist/template/.pi/skills/react-best-practices/rules/js-index-maps.md +37 -0
- package/dist/template/.pi/skills/react-best-practices/rules/js-length-check-first.md +49 -0
- package/dist/template/.pi/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
- package/dist/template/.pi/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/dist/template/.pi/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/dist/template/.pi/skills/react-best-practices/rules/rendering-activity.md +26 -0
- package/dist/template/.pi/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/dist/template/.pi/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/dist/template/.pi/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/dist/template/.pi/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/dist/template/.pi/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/dist/template/.pi/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/dist/template/.pi/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/dist/template/.pi/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
- package/dist/template/.pi/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
- package/dist/template/.pi/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/dist/template/.pi/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/dist/template/.pi/skills/react-best-practices/rules/rerender-memo.md +44 -0
- package/dist/template/.pi/skills/react-best-practices/rules/rerender-transitions.md +40 -0
- package/dist/template/.pi/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/dist/template/.pi/skills/react-best-practices/rules/server-cache-lru.md +41 -0
- package/dist/template/.pi/skills/react-best-practices/rules/server-cache-react.md +76 -0
- package/dist/template/.pi/skills/react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/dist/template/.pi/skills/react-best-practices/rules/server-serialization.md +38 -0
- package/dist/template/.pi/skills/redesign-existing-projects/SKILL.md +217 -0
- package/dist/template/.pi/skills/resend/SKILL.md +196 -0
- package/dist/template/.pi/skills/resend/references/react-email.md +287 -0
- package/dist/template/.pi/skills/resend/references/receive-email.md +248 -0
- package/dist/template/.pi/skills/resend/references/send-email.md +318 -0
- package/dist/template/.pi/skills/root-cause-tracing/SKILL.md +216 -0
- package/dist/template/.pi/skills/security-and-hardening/SKILL.md +293 -0
- package/dist/template/.pi/skills/security-and-hardening/references/security-checklist.md +105 -0
- package/dist/template/.pi/skills/shipping-and-launch/SKILL.md +101 -0
- package/dist/template/.pi/skills/source-driven-development/SKILL.md +108 -0
- package/dist/template/.pi/skills/spec-driven-development/SKILL.md +177 -0
- package/dist/template/.pi/skills/srcwalk/SKILL.md +182 -0
- package/dist/template/.pi/skills/subagent-driven-development/SKILL.md +253 -0
- package/dist/template/.pi/skills/supabase/SKILL.md +153 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/SKILL.md +88 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/advanced-full-text-search.md +55 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/advanced-jsonb-indexing.md +49 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/conn-idle-timeout.md +46 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/conn-limits.md +44 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/conn-pooling.md +41 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/conn-prepared-statements.md +46 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/data-batch-inserts.md +54 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/data-n-plus-one.md +53 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/data-pagination.md +50 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/data-upsert.md +50 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/lock-advisory.md +56 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/lock-deadlock-prevention.md +68 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/lock-short-transactions.md +50 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/lock-skip-locked.md +54 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/monitor-explain-analyze.md +45 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/monitor-pg-stat-statements.md +55 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/monitor-vacuum-analyze.md +55 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/query-composite-indexes.md +44 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/query-covering-indexes.md +40 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/query-index-types.md +45 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/query-missing-indexes.md +43 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/query-partial-indexes.md +45 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/schema-data-types.md +46 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/schema-foreign-key-indexes.md +59 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/schema-lowercase-identifiers.md +55 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/schema-partitioning.md +55 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/schema-primary-keys.md +61 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/security-privileges.md +54 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/security-rls-basics.md +50 -0
- package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/security-rls-performance.md +57 -0
- package/dist/template/.pi/skills/swift-concurrency/SKILL.md +290 -0
- package/dist/template/.pi/skills/swift-concurrency/references/actors.md +640 -0
- package/dist/template/.pi/skills/swift-concurrency/references/async-algorithms.md +822 -0
- package/dist/template/.pi/skills/swift-concurrency/references/async-await-basics.md +249 -0
- package/dist/template/.pi/skills/swift-concurrency/references/async-sequences.md +670 -0
- package/dist/template/.pi/skills/swift-concurrency/references/core-data.md +533 -0
- package/dist/template/.pi/skills/swift-concurrency/references/glossary.md +128 -0
- package/dist/template/.pi/skills/swift-concurrency/references/linting.md +142 -0
- package/dist/template/.pi/skills/swift-concurrency/references/memory-management.md +542 -0
- package/dist/template/.pi/skills/swift-concurrency/references/migration.md +1076 -0
- package/dist/template/.pi/skills/swift-concurrency/references/performance.md +574 -0
- package/dist/template/.pi/skills/swift-concurrency/references/sendable.md +578 -0
- package/dist/template/.pi/skills/swift-concurrency/references/tasks.md +604 -0
- package/dist/template/.pi/skills/swift-concurrency/references/testing.md +565 -0
- package/dist/template/.pi/skills/swift-concurrency/references/threading.md +452 -0
- package/dist/template/.pi/skills/swiftui-expert-skill/SKILL.md +343 -0
- package/dist/template/.pi/skills/swiftui-expert-skill/references/animation-advanced.md +351 -0
- package/dist/template/.pi/skills/swiftui-expert-skill/references/animation-basics.md +284 -0
- package/dist/template/.pi/skills/swiftui-expert-skill/references/animation-transitions.md +326 -0
- package/dist/template/.pi/skills/swiftui-expert-skill/references/image-optimization.md +286 -0
- package/dist/template/.pi/skills/swiftui-expert-skill/references/layout-best-practices.md +312 -0
- package/dist/template/.pi/skills/swiftui-expert-skill/references/liquid-glass.md +377 -0
- package/dist/template/.pi/skills/swiftui-expert-skill/references/list-patterns.md +153 -0
- package/dist/template/.pi/skills/swiftui-expert-skill/references/modern-apis.md +400 -0
- package/dist/template/.pi/skills/swiftui-expert-skill/references/performance-patterns.md +377 -0
- package/dist/template/.pi/skills/swiftui-expert-skill/references/scroll-patterns.md +305 -0
- package/dist/template/.pi/skills/swiftui-expert-skill/references/sheet-navigation-patterns.md +292 -0
- package/dist/template/.pi/skills/swiftui-expert-skill/references/state-management.md +447 -0
- package/dist/template/.pi/skills/swiftui-expert-skill/references/text-formatting.md +285 -0
- package/dist/template/.pi/skills/swiftui-expert-skill/references/view-structure.md +276 -0
- package/dist/template/.pi/skills/test-driven-development/SKILL.md +400 -0
- package/dist/template/.pi/skills/test-driven-development/references/testing-patterns.md +155 -0
- package/dist/template/.pi/skills/testing-anti-patterns/SKILL.md +339 -0
- package/dist/template/.pi/skills/using-agent-skills/SKILL.md +371 -0
- package/dist/template/.pi/skills/using-git-worktrees/SKILL.md +275 -0
- package/dist/template/.pi/skills/vercel-deploy-claimable/SKILL.md +144 -0
- package/dist/template/.pi/skills/vercel-deploy-claimable/scripts/deploy.sh +249 -0
- package/dist/template/.pi/skills/verification-before-completion/SKILL.md +348 -0
- package/dist/template/.pi/skills/webclaw/SKILL.md +188 -0
- package/dist/template/.pi/skills/writing-skills/SKILL.md +329 -0
- package/dist/template/.pi/skills/writing-skills/references/anti-patterns.md +25 -0
- package/dist/template/.pi/skills/writing-skills/references/claude-search-optimization.md +140 -0
- package/dist/template/.pi/skills/writing-skills/references/discovery-workflow.md +11 -0
- package/dist/template/.pi/skills/writing-skills/references/file-organization.md +32 -0
- package/dist/template/.pi/skills/writing-skills/references/flowcharts-and-examples.md +57 -0
- package/dist/template/.pi/skills/writing-skills/references/rationalization-hardening.md +75 -0
- package/dist/template/.pi/skills/writing-skills/references/testing-methodology.md +397 -0
- package/dist/template/.pi/skills/writing-skills/references/testing-skill-types.md +52 -0
- package/dist/template/.pi/subagents.json +10 -0
- package/dist/template/.pi/templates/adr.md +47 -0
- package/dist/template/.pi/templates/design.md +61 -0
- package/dist/template/.pi/templates/loop-github-action.yml +162 -0
- package/dist/template/.pi/templates/loop-orchestrator.sh +514 -0
- package/dist/template/.pi/templates/loop-orchestrator.test.ts +332 -0
- package/dist/template/.pi/templates/loop-orchestrator.ts +936 -0
- package/dist/template/.pi/templates/loop-state.json +24 -0
- package/dist/template/.pi/templates/loop-state.md +98 -0
- package/dist/template/.pi/templates/loop-vision.md +110 -0
- package/dist/template/.pi/templates/prd.md +204 -0
- package/dist/template/.pi/templates/progress.md +55 -0
- package/dist/template/.pi/templates/project.md +58 -0
- package/dist/template/.pi/templates/proposal.md +40 -0
- package/dist/template/.pi/templates/review-state.json +20 -0
- package/dist/template/.pi/templates/roadmap.md +93 -0
- package/dist/template/.pi/templates/state.md +97 -0
- package/dist/template/.pi/templates/tasks.md +202 -0
- package/dist/template/.pi/templates/tech-stack.md +85 -0
- package/dist/template/.pi/templates/user.md +26 -0
- package/dist/template/.pi/workflows/INDEX.md +63 -0
- package/dist/template/.pi/workflows/audit-pattern.md +84 -0
- package/dist/template/.pi/workflows/batch-implement.md +121 -0
- package/dist/template/.pi/workflows/deep-research.md +89 -0
- package/dist/template/.pi/workflows/development-lifecycle-workflow.md +175 -0
- package/dist/template/.pi/workflows/garbage-collection.md +144 -0
- package/dist/template/.pi/workflows/quality-loop.md +211 -0
- package/package.json +57 -0
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-driven-development
|
|
3
|
+
description: Guides agents from vague request to concrete specification before implementation. Use when starting a new feature, significant change, product idea, or when requirements are ambiguous.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Spec-Driven Development
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
A spec converts intent into testable truth. Code written before the target is clear becomes rework.
|
|
11
|
+
|
|
12
|
+
Core principle: define observable outcomes, constraints, non-goals, and verification before planning implementation.
|
|
13
|
+
|
|
14
|
+
**Define the vocabulary first.** Every concept in the spec should have one name — that name must match what the code will call it. This is Evans' "ubiquitous language": a shared vocabulary between developers, domain experts, code, and AI context files. Ambiguous language in the spec causes the "AI does the wrong thing" failure mode: the LLM implements what the words say, not what you meant.
|
|
15
|
+
|
|
16
|
+
After writing the spec, extract a glossary of terms. Every capitalized concept in the spec should correspond to exactly one code symbol (type, class, module, function, file). If two terms mean the same thing, pick one. If one term means two things, split it.
|
|
17
|
+
|
|
18
|
+
## When to Use
|
|
19
|
+
|
|
20
|
+
- User asks for a new feature or significant behavior change.
|
|
21
|
+
- Requirements are vague, conflicting, or missing edge cases.
|
|
22
|
+
- Multiple files/systems will be affected.
|
|
23
|
+
- The work needs acceptance criteria or user-visible behavior.
|
|
24
|
+
|
|
25
|
+
## When NOT to Use
|
|
26
|
+
|
|
27
|
+
- Tiny mechanical edits with obvious expected behavior.
|
|
28
|
+
- Emergency bug fixes where reproduction is already clear; use `debugging-and-error-recovery`.
|
|
29
|
+
- Pure research with no implementation decision; use `source-driven-development`.
|
|
30
|
+
|
|
31
|
+
## Gated Workflow
|
|
32
|
+
|
|
33
|
+
Every change passes through four locked gates. Do not open the next gate until the current one is approved.
|
|
34
|
+
|
|
35
|
+
1. **SPECIFY** — lock intent.
|
|
36
|
+
1. State the goal as an outcome, not a task.
|
|
37
|
+
2. **Establish vocabulary**: define the key terms and map them to code concepts.
|
|
38
|
+
3. Derive 3-7 observable truths from the user's perspective.
|
|
39
|
+
4. Identify constraints: technical, UX, security, performance, compatibility.
|
|
40
|
+
5. Define non-goals to prevent scope creep.
|
|
41
|
+
6. List affected surfaces: files, APIs, commands, UI screens, data models.
|
|
42
|
+
7. **Check vocabulary consistency**: does every spec term map to exactly one code symbol? Are any terms overloaded?
|
|
43
|
+
8. Reframe instructions as success criteria (see pattern below).
|
|
44
|
+
- **Gate**: spec approved or assumptions explicitly accepted.
|
|
45
|
+
2. **PLAN** — lock approach. Hand off to `planning-and-task-breakdown`.
|
|
46
|
+
- **Gate**: plan approved.
|
|
47
|
+
3. **TASKS** — lock units. Break plan into verifiable beads/tasks with owners.
|
|
48
|
+
- **Gate**: task list approved.
|
|
49
|
+
4. **IMPLEMENT** — lock behavior. Code against the spec; update spec when reality diverges.
|
|
50
|
+
- **Gate**: verification checklist passes.
|
|
51
|
+
|
|
52
|
+
Human gates are binary: approve, change, or cancel. Do not sneak work through an unapproved gate.
|
|
53
|
+
|
|
54
|
+
## Reframe Instructions as Success Criteria
|
|
55
|
+
|
|
56
|
+
Turn every "do X" request into a verifiable "X is true when..." statement. If the user says "make it faster", write "Page load time is under 1.0 s on 3G for the dashboard route". If the user says "support CSV import", write "A CSV with 10,000 rows is imported without OOM and produces a row-level error report".
|
|
57
|
+
|
|
58
|
+
Use this pattern inside the Spec Template under Acceptance Criteria.
|
|
59
|
+
|
|
60
|
+
## Spec Template
|
|
61
|
+
|
|
62
|
+
```markdown
|
|
63
|
+
# Spec: [Name]
|
|
64
|
+
|
|
65
|
+
## Goal
|
|
66
|
+
[Outcome in one sentence]
|
|
67
|
+
|
|
68
|
+
## Vocabulary
|
|
69
|
+
| Term | Definition | Code symbol |
|
|
70
|
+
|------|------------|-------------|
|
|
71
|
+
| ... | ... | ... |
|
|
72
|
+
|
|
73
|
+
Every concept should have one name. If two terms mean the same thing, consolidate. If one term means two things, split it.
|
|
74
|
+
|
|
75
|
+
## Observable Truths
|
|
76
|
+
- [User/system can observe X]
|
|
77
|
+
|
|
78
|
+
## Constraints
|
|
79
|
+
- [Hard constraint]
|
|
80
|
+
|
|
81
|
+
## Non-Goals
|
|
82
|
+
- [Explicitly out of scope]
|
|
83
|
+
|
|
84
|
+
## Affected Surfaces
|
|
85
|
+
- [File/API/UI/data area]
|
|
86
|
+
|
|
87
|
+
## Acceptance Criteria
|
|
88
|
+
- [Criterion] -> verify with [command/check/manual observation]
|
|
89
|
+
|
|
90
|
+
## Open Questions
|
|
91
|
+
- [Question or none]
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Six Core Areas
|
|
95
|
+
|
|
96
|
+
A complete spec covers these six areas. Use them as a final completeness check before the SPECIFY gate closes.
|
|
97
|
+
|
|
98
|
+
| Area | Question to answer |
|
|
99
|
+
| --- | --- |
|
|
100
|
+
| **Objective** | What user/system outcome must be true after this change? |
|
|
101
|
+
| **Commands** | What CLI/API/user commands are added, changed, or removed? |
|
|
102
|
+
| **Project Structure** | What files, modules, or packages move or appear? |
|
|
103
|
+
| **Code Style** | What patterns, naming, or formatting rules apply? |
|
|
104
|
+
| **Testing Strategy** | How will correctness be proven? Unit, integration, manual? |
|
|
105
|
+
| **Boundaries** | What is always in scope, ask-first, and never allowed? |
|
|
106
|
+
|
|
107
|
+
## Three-Tier Boundary System
|
|
108
|
+
|
|
109
|
+
Define boundaries before coding. Use the tiers to resolve "should I do this?" questions during implementation.
|
|
110
|
+
|
|
111
|
+
| Tier | Rule | Examples |
|
|
112
|
+
| --- | --- | --- |
|
|
113
|
+
| **Always do** | Required by the spec; no extra approval. | Input validation, error handling for listed edge cases, update affected tests. |
|
|
114
|
+
| **Ask first** | Changes design, scope, or risk; get user approval. | New dependency, schema change, new public API, removing a feature. |
|
|
115
|
+
| **Never do** | Explicitly out of scope. | Rewrite unrelated modules, change secrets, ship without verification. |
|
|
116
|
+
|
|
117
|
+
## Keeping the Spec Alive
|
|
118
|
+
|
|
119
|
+
A spec is not a tombstone. Update it when:
|
|
120
|
+
|
|
121
|
+
- Implementation reveals an edge case not in the original spec.
|
|
122
|
+
- The user changes a requirement mid-flight.
|
|
123
|
+
- A constraint turns out to be wrong or unnecessary.
|
|
124
|
+
- The glossary term-to-symbol mapping changes.
|
|
125
|
+
|
|
126
|
+
If the spec changes, re-validate the acceptance criteria and re-approve the SPECIFY gate before continuing.
|
|
127
|
+
|
|
128
|
+
## Common Rationalizations
|
|
129
|
+
|
|
130
|
+
| Rationalization | Rebuttal |
|
|
131
|
+
| --- | --- |
|
|
132
|
+
| "The user already explained it" | Explanation is not acceptance criteria. Write the target down. |
|
|
133
|
+
| "I'll discover requirements while coding" | Discovery during coding causes churn and hidden scope expansion. |
|
|
134
|
+
| "This is obvious" | Obvious to you is not a contract for the next agent or reviewer. |
|
|
135
|
+
| "The AI will figure out what I mean" | The AI will implement exactly what the spec says. Ambiguous language = wrong implementation. |
|
|
136
|
+
| "Questions slow us down" | One precise question is cheaper than implementing the wrong behavior. |
|
|
137
|
+
| "The spec is good enough, I'll add gates later" | Later rarely comes. Unapproved gates let scope and risk leak through. |
|
|
138
|
+
|
|
139
|
+
## Red Flags
|
|
140
|
+
|
|
141
|
+
- No explicit non-goals for a broad feature.
|
|
142
|
+
- Acceptance criteria are phrased as implementation tasks.
|
|
143
|
+
- Edge cases are deferred without user agreement.
|
|
144
|
+
- The plan starts before observable truths are defined.
|
|
145
|
+
- User-visible behavior has no verification method.
|
|
146
|
+
- **No vocabulary section** — missing ubiquitous language means AI will guess term meanings.
|
|
147
|
+
- **Same term used for different concepts** — e.g. "Order" means creation flow in one place and fulfillment in another.
|
|
148
|
+
- **Different terms for the same concept** — e.g. "User" vs "Account" vs "Profile" used interchangeably.
|
|
149
|
+
- Skipping a human gate because "the change is small".
|
|
150
|
+
- Boundaries are missing, so the agent must decide scope on the fly.
|
|
151
|
+
|
|
152
|
+
## Verification Checklist
|
|
153
|
+
|
|
154
|
+
- [ ] Goal is outcome-shaped, not task-shaped.
|
|
155
|
+
- [ ] Vocabulary table exists and every term maps to exactly one code symbol.
|
|
156
|
+
- [ ] No overloaded terms or synonyms in the glossary.
|
|
157
|
+
- [ ] Observable truths are human-verifiable.
|
|
158
|
+
- [ ] Constraints are explicit (technical, UX, security, performance, compatibility).
|
|
159
|
+
- [ ] Non-goals are listed and realistic.
|
|
160
|
+
- [ ] Affected surfaces are named with file/API/UI/data area paths.
|
|
161
|
+
- [ ] Acceptance criteria are reframed as success criteria with verification methods.
|
|
162
|
+
- [ ] Three-tier boundaries are defined.
|
|
163
|
+
- [ ] Open questions are resolved or recorded as assumptions with risk.
|
|
164
|
+
- [ ] At most 1-4 focused questions are pending.
|
|
165
|
+
- [ ] Human gate approval is recorded before moving to PLAN.
|
|
166
|
+
|
|
167
|
+
## Skill Result Contract
|
|
168
|
+
|
|
169
|
+
```xml
|
|
170
|
+
<skill_result>
|
|
171
|
+
<skill>spec-driven-development</skill>
|
|
172
|
+
<status>success|partial|blocked|failure</status>
|
|
173
|
+
<evidence>Spec sections completed and questions/assumptions recorded</evidence>
|
|
174
|
+
<artifacts>Spec path or inline spec summary</artifacts>
|
|
175
|
+
<risks>Unresolved assumptions or none</risks>
|
|
176
|
+
</skill_result>
|
|
177
|
+
```
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: srcwalk
|
|
3
|
+
description: Use when navigating code with srcwalk — repo maps, large-file reads, symbol search, callers/callees, flow slices, impact checks, and precise drill-ins.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Srcwalk — Code Navigation
|
|
7
|
+
|
|
8
|
+
Srcwalk is the project's code navigation engine (v1.0.0+). All Pi tools are backed by the installed `srcwalk` binary.
|
|
9
|
+
|
|
10
|
+
Run the embedded guide before non-trivial use — it is the version-matched source of truth:
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
srcwalk guide
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Do not pipe, truncate, or summarize `srcwalk guide`.
|
|
17
|
+
|
|
18
|
+
## When to Use
|
|
19
|
+
|
|
20
|
+
- Any code navigation task: symbol search, large-file reading, repo maps
|
|
21
|
+
- Tracing call graphs (callers, callees, transitive chains)
|
|
22
|
+
- Checking blast radius before breaking changes
|
|
23
|
+
- Understanding repo shape and token budgets
|
|
24
|
+
- Quick function orientation (flow slice)
|
|
25
|
+
- Heuristic impact triage
|
|
26
|
+
|
|
27
|
+
## When NOT to Use
|
|
28
|
+
|
|
29
|
+
- Non-code files where tree-sitter has no grammar → use `read` directly
|
|
30
|
+
- Simple one-off reads of small known files → use built-in `read`
|
|
31
|
+
|
|
32
|
+
## Pi Tool Surface
|
|
33
|
+
|
|
34
|
+
### Core navigation tools
|
|
35
|
+
|
|
36
|
+
| Tool | Srcwalk command | Purpose |
|
|
37
|
+
|---|---|---|
|
|
38
|
+
| `srcwalk_read` | `srcwalk <path>` | Smart file reading: outline or full with sections |
|
|
39
|
+
| `srcwalk_deps` | `srcwalk deps` + exact import scan | Blast-radius: importers + dep-aware dependents (v1.0.0) |
|
|
40
|
+
|
|
41
|
+
### Extended analysis tools
|
|
42
|
+
|
|
43
|
+
| Tool | Srcwalk command | Purpose |
|
|
44
|
+
|---|---|---|
|
|
45
|
+
| `srcwalk_map` | `srcwalk overview` | Token-annotated directory skeleton + dep groups (v1.0.0) |
|
|
46
|
+
| `srcwalk_callers` | `srcwalk trace callers` | Reverse call graph with BFS depth + filters |
|
|
47
|
+
| `srcwalk_callees` | `srcwalk trace callees` | Forward call graph with `--detailed` ordered call sites |
|
|
48
|
+
| `srcwalk_flow` | `srcwalk context` | Compact orientation slice |
|
|
49
|
+
| `srcwalk_impact` | `srcwalk assess` | Heuristic blast-radius triage |
|
|
50
|
+
|
|
51
|
+
## Command Routing
|
|
52
|
+
|
|
53
|
+
| Intent | Use first |
|
|
54
|
+
|---|---|
|
|
55
|
+
| Understand repo shape | `srcwalk_map` |
|
|
56
|
+
| Read or inspect a large file | `srcwalk_read` |
|
|
57
|
+
| Jump to exact line | `srcwalk_read({ path: "file:42" })` |
|
|
58
|
+
| Read a line range | `srcwalk_read({ path: "file:44-89" })` — v1.0.0 shortcut |
|
|
59
|
+
| Read by symbol name | `srcwalk_read({ section: "symbolName" })` |
|
|
60
|
+
| Find patterns and symbols | `grep` (exact), `csearch` (multi-keyword) |
|
|
61
|
+
| Find files by glob | `glob` |
|
|
62
|
+
| Multi-symbol search | `grep({ pattern: "A|B|C" })` |
|
|
63
|
+
| Who directly calls this? | `srcwalk_callers` |
|
|
64
|
+
| Who reaches this transitively? | `srcwalk_callers({ depth: 2 })` |
|
|
65
|
+
| What does this call? | `srcwalk_callees` |
|
|
66
|
+
| Ordered calls + arg slots | `srcwalk_callees({ detailed: true })` |
|
|
67
|
+
| Quick orientation slice | `srcwalk_flow` |
|
|
68
|
+
| File imports and dependents | `srcwalk_deps` |
|
|
69
|
+
| Heuristic blast-radius | `srcwalk_impact` (verify with callers) |
|
|
70
|
+
|
|
71
|
+
## Default Workflows
|
|
72
|
+
|
|
73
|
+
### Explore unfamiliar code
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
srcwalk_map({ scope: "." })
|
|
77
|
+
grep({ pattern: "likely_symbol", path: "src/" })
|
|
78
|
+
srcwalk_read({ path: "src/file.ts:42" }) // jump to line
|
|
79
|
+
srcwalk_read({ path: "src/file.ts:44-89" }) // range shortcut (v1.0.0)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Read a large file
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
srcwalk_read({ path: "src/file.ts" }) // structural outline
|
|
86
|
+
srcwalk_read({ path: "src/file.ts", section: "handleAuth" }) // drill into symbol
|
|
87
|
+
srcwalk_read({ path: "src/file.ts", section: "44-89" }) // exact range
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Prefer outline/section reads before `full: true`.
|
|
91
|
+
|
|
92
|
+
### Find and drill into symbols
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
grep({ pattern: "handleAuth", path: "src/" })
|
|
96
|
+
grep({ pattern: "A|B|C", path: "src/" }) // multi-symbol
|
|
97
|
+
csearch({ query: "auth token login middleware" }) // multi-keyword chunk search
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Trace call graph
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
// upstream
|
|
104
|
+
srcwalk_callers({ symbol: "handleAuth", scope: "src" })
|
|
105
|
+
srcwalk_callers({ symbol: "handleAuth", depth: 2, scope: "src" }) // transitive
|
|
106
|
+
srcwalk_callers({ symbol: "handleAuth", filter: "args:3", scope: "src" })
|
|
107
|
+
srcwalk_callers({ symbol: "handleAuth", countBy: "file", scope: "src" })
|
|
108
|
+
|
|
109
|
+
// downstream
|
|
110
|
+
srcwalk_callees({ symbol: "handleAuth", scope: "src" })
|
|
111
|
+
srcwalk_callees({ symbol: "handleAuth", detailed: true, scope: "src" }) // ordered sites
|
|
112
|
+
srcwalk_callees({ symbol: "handleAuth", depth: 2, scope: "src" }) // transitive
|
|
113
|
+
|
|
114
|
+
// quick orientation
|
|
115
|
+
srcwalk_flow({ symbol: "handleAuth", scope: "src" })
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Use `grep` for quick single-hop searches. Use `srcwalk_callers` when you need depth, filters, or aggregation.
|
|
119
|
+
|
|
120
|
+
> Note: `--count-by` and `--depth` are mutually exclusive in `srcwalk_callers` — use one or the other, not both.
|
|
121
|
+
|
|
122
|
+
### Check file blast radius
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
srcwalk_deps({ path: "src/auth.ts" })
|
|
126
|
+
srcwalk_impact({ symbol: "handleAuth", scope: "src" }) // heuristic; follow up with callers
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## v1.0.0 Features
|
|
130
|
+
|
|
131
|
+
- **Path range shortcut**: `srcwalk_read({ path: "file:start-end" })` reads a line range directly — no need to pass `section` separately
|
|
132
|
+
- **Dependency-aware map**: `srcwalk_map` now shows local relation groups and outbound dependency previews for narrowed scopes
|
|
133
|
+
- **JS/TS artifact navigation**: bundle anchors, artifact reads, artifact search snippets, and artifact caller/callee support
|
|
134
|
+
- **Improved UX**: more compact semantic rows, directory grouping, footer tips, and clearer scope/depth wording across all commands
|
|
135
|
+
|
|
136
|
+
## Critical Rules
|
|
137
|
+
|
|
138
|
+
- **Do NOT** use built-in `read`/`find` when srcwalk_* tools can answer; `grep` is preferred for text searches
|
|
139
|
+
- `srcwalk_impact` is heuristic, not proof — verify with `srcwalk_callers` or exact reads
|
|
140
|
+
- `srcwalk_flow` may collapse nested/fluent chains — drill with `srcwalk_callees({ detailed: true })` when inner calls matter
|
|
141
|
+
- Follow `> Next:` footers in output — they suggest the best next command
|
|
142
|
+
- Scope paths are **relative to Pi's CWD** (`.pi/` in this project). Use `scope: "extensions"` not `scope: ".pi/extensions"`
|
|
143
|
+
|
|
144
|
+
## Supported Languages
|
|
145
|
+
|
|
146
|
+
Rust, TypeScript, TSX, JavaScript, Python, Go, Java, Scala, C, C++, Ruby, PHP, C#, Swift, Elixir, Kotlin. Unsupported files still get smart text/outline reads.
|
|
147
|
+
|
|
148
|
+
## Setup
|
|
149
|
+
|
|
150
|
+
The srcwalk plugin is auto-discovered via `pi-srcwalk` (installed as `npm:@sting8k/pi-srcwalk`). See `## Pi Note` below for equivalent tools.
|
|
151
|
+
|
|
152
|
+
All scope paths are relative to the **project root directory**. The default scope resolves from the project root.
|
|
153
|
+
|
|
154
|
+
## Pi Note
|
|
155
|
+
|
|
156
|
+
In Pi, srcwalk is superseded by `pi-srcwalk` (auto-installed via `npm:@sting8k/pi-srcwalk` in `settings.json`). Use the equivalent semantic tools: `semantic_query`, `semantic_inspect`, `semantic_grep`, `semantic_show`.
|
|
157
|
+
|
|
158
|
+
## Common Rationalizations
|
|
159
|
+
|
|
160
|
+
| Rationalization | Reality |
|
|
161
|
+
|---|---|
|
|
162
|
+
| "I know the codebase well enough" | Codebases change faster than memory. Verify assumptions with actual code reads. |
|
|
163
|
+
| "Grep is faster than srcwalk" | Grep finds text. Srcwalk finds symbols, callers, impact — richer context for decisions. |
|
|
164
|
+
| "I'll just read the file directly" | Direct reads miss callers and impact. Srcwalk shows the blast radius. |
|
|
165
|
+
|
|
166
|
+
## Red Flags
|
|
167
|
+
|
|
168
|
+
- Code changes made without checking callers
|
|
169
|
+
- Symbol search skipped — relying on filename-based assumptions
|
|
170
|
+
- Impact analysis not run before breaking changes
|
|
171
|
+
- File reads without srcwalk context (missing caller/callee relationships)
|
|
172
|
+
- Large-scale refactors started without dependency graph check
|
|
173
|
+
|
|
174
|
+
## Verification
|
|
175
|
+
|
|
176
|
+
After navigating code with srcwalk:
|
|
177
|
+
|
|
178
|
+
- [ ] Callers of modified functions are identified and reviewed
|
|
179
|
+
- [ ] Impact analysis run for any breaking changes
|
|
180
|
+
- [ ] Symbol definitions verified (not assumed from filename)
|
|
181
|
+
- [ ] Dependency graph checked before large-scale restructuring
|
|
182
|
+
- [ ] File reads include surrounding context (callers + callees)
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: subagent-driven-development
|
|
3
|
+
description: Use when executing implementation plans with independent tasks in the current session - dispatches fresh subagent for each task with code review between tasks, enabling fast iteration with quality gates
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Subagent-Driven Development
|
|
7
|
+
|
|
8
|
+
> **Replaces** monolithic single-agent implementation sessions that grow stale — dispatches fresh subagents per task with code review gates between them
|
|
9
|
+
|
|
10
|
+
## When to Use
|
|
11
|
+
|
|
12
|
+
- Executing a plan with mostly independent tasks in the same session
|
|
13
|
+
- You want a fresh subagent per task plus review checkpoints
|
|
14
|
+
|
|
15
|
+
## When NOT to Use
|
|
16
|
+
|
|
17
|
+
- The plan requires review or revisions first (use `incremental-implementation`)
|
|
18
|
+
- Tasks are tightly coupled and need manual sequencing
|
|
19
|
+
|
|
20
|
+
## Overview
|
|
21
|
+
|
|
22
|
+
**vs. Executing Plans (parallel session):**
|
|
23
|
+
|
|
24
|
+
- Same session (no context switch)
|
|
25
|
+
- Fresh subagent per task (no context pollution)
|
|
26
|
+
- Code review after each task (catch issues early)
|
|
27
|
+
- Faster iteration (no human-in-loop between tasks)
|
|
28
|
+
|
|
29
|
+
## The Process
|
|
30
|
+
|
|
31
|
+
### 1. Load Plan
|
|
32
|
+
|
|
33
|
+
Read plan file, create TodoWrite with all tasks.
|
|
34
|
+
|
|
35
|
+
**Context file pattern:** If the plan exceeds ~500 tokens, write it to `.pi/artifacts/plan-context.md` and reference by path in subagent prompts instead of inlining. This saves tokens when dispatching multiple subagents from the same plan.
|
|
36
|
+
|
|
37
|
+
### 2. Execute Task with Subagent
|
|
38
|
+
|
|
39
|
+
For each task:
|
|
40
|
+
|
|
41
|
+
**Dispatch fresh subagent:**
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
Task tool (general-purpose):
|
|
45
|
+
description: "Implement Task N: [task name]"
|
|
46
|
+
prompt: |
|
|
47
|
+
You are implementing Task N from [plan-file].
|
|
48
|
+
|
|
49
|
+
Read that task carefully. Your job is to:
|
|
50
|
+
1. Implement exactly what the task specifies
|
|
51
|
+
2. Write tests (following TDD if task says to)
|
|
52
|
+
3. Verify implementation works
|
|
53
|
+
4. Commit your work
|
|
54
|
+
5. Report back
|
|
55
|
+
|
|
56
|
+
Work from: [directory]
|
|
57
|
+
|
|
58
|
+
[Include Structured Termination Contract from AGENTS.md]
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**After subagent reports back** — follow the **Worker Distrust Protocol** from AGENTS.md:
|
|
62
|
+
|
|
63
|
+
1. Read changed files directly (don't trust the report)
|
|
64
|
+
2. Run verification on modified files (typecheck + lint minimum)
|
|
65
|
+
3. Check acceptance criteria against original task spec
|
|
66
|
+
4. Only then mark the task as complete
|
|
67
|
+
|
|
68
|
+
### 3. Review Subagent's Work
|
|
69
|
+
|
|
70
|
+
**Dispatch review subagent:**
|
|
71
|
+
|
|
72
|
+
Use the review format from the `code-review-and-quality` skill (severity-ranked findings: P0/P1/P2/P3 with file:line + suggestion). Pass to the review subagent:
|
|
73
|
+
|
|
74
|
+
WHAT_WAS_IMPLEMENTED: [from subagent's report]
|
|
75
|
+
PLAN_OR_REQUIREMENTS: Task N from [plan-file]
|
|
76
|
+
BASE_SHA: [commit before task]
|
|
77
|
+
HEAD_SHA: [current commit]
|
|
78
|
+
DESCRIPTION: [task summary]
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Code reviewer returns:** Strengths, Issues (Critical/Important/Minor), Assessment
|
|
83
|
+
|
|
84
|
+
### 4. Apply Review Feedback
|
|
85
|
+
|
|
86
|
+
**If issues found:**
|
|
87
|
+
|
|
88
|
+
- Fix Critical issues immediately
|
|
89
|
+
- Fix Important issues before next task
|
|
90
|
+
- Note Minor issues
|
|
91
|
+
|
|
92
|
+
**Dispatch follow-up subagent if needed:**
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
"Fix issues from code review: [list issues]"
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### 5. Mark Complete, Next Task
|
|
101
|
+
|
|
102
|
+
- Mark task as completed in TodoWrite
|
|
103
|
+
- Move to next task
|
|
104
|
+
- Repeat steps 2-5
|
|
105
|
+
|
|
106
|
+
### 6. Final Review
|
|
107
|
+
|
|
108
|
+
After all tasks complete, dispatch final review:
|
|
109
|
+
|
|
110
|
+
- Reviews entire implementation
|
|
111
|
+
- Checks all plan requirements met
|
|
112
|
+
- Validates overall architecture
|
|
113
|
+
|
|
114
|
+
### 7. Complete Development
|
|
115
|
+
|
|
116
|
+
After final review passes:
|
|
117
|
+
|
|
118
|
+
- Announce: "I'm using `shipping-and-launch` skill to complete this work."
|
|
119
|
+
- **REQUIRED SUB-SKILL:** Load `shipping-and-launch` skill (auto-discovered from `.pi/skills/`)
|
|
120
|
+
- Follow that skill to verify tests, present options, execute choice
|
|
121
|
+
|
|
122
|
+
## Example Workflow
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
You: I'm using Subagent-Driven Development to execute this plan.
|
|
127
|
+
|
|
128
|
+
[Load plan, create TodoWrite]
|
|
129
|
+
|
|
130
|
+
Task 1: Hook installation script
|
|
131
|
+
|
|
132
|
+
[Dispatch implementation subagent]
|
|
133
|
+
Subagent: Implemented install-hook with tests, 5/5 passing
|
|
134
|
+
|
|
135
|
+
[Get git SHAs, dispatch review]
|
|
136
|
+
Reviewer: Strengths: Good test coverage. Issues: None. Ready.
|
|
137
|
+
|
|
138
|
+
[Mark Task 1 complete]
|
|
139
|
+
|
|
140
|
+
Task 2: Recovery modes
|
|
141
|
+
|
|
142
|
+
[Dispatch implementation subagent]
|
|
143
|
+
Subagent: Added verify/repair, 8/8 tests passing
|
|
144
|
+
|
|
145
|
+
[Dispatch review]
|
|
146
|
+
Reviewer: Strengths: Solid. Issues (Important): Missing progress reporting
|
|
147
|
+
|
|
148
|
+
[Dispatch fix subagent]
|
|
149
|
+
Fix subagent: Added progress every 100 conversations
|
|
150
|
+
|
|
151
|
+
[Verify fix, mark Task 2 complete]
|
|
152
|
+
|
|
153
|
+
...
|
|
154
|
+
|
|
155
|
+
[After all tasks]
|
|
156
|
+
[Dispatch final review]
|
|
157
|
+
Final reviewer: All requirements met, ready to merge
|
|
158
|
+
|
|
159
|
+
Done!
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Advantages
|
|
164
|
+
|
|
165
|
+
**vs. Manual execution:**
|
|
166
|
+
|
|
167
|
+
- Subagents follow TDD naturally
|
|
168
|
+
- Fresh context per task (no confusion)
|
|
169
|
+
- Parallel-safe (subagents don't interfere)
|
|
170
|
+
|
|
171
|
+
**vs. Executing Plans:**
|
|
172
|
+
|
|
173
|
+
- Same session (no handoff)
|
|
174
|
+
- Continuous progress (no waiting)
|
|
175
|
+
- Review checkpoints automatic
|
|
176
|
+
|
|
177
|
+
**Cost:**
|
|
178
|
+
|
|
179
|
+
- More subagent invocations
|
|
180
|
+
- But catches issues early (cheaper than debugging later)
|
|
181
|
+
|
|
182
|
+
## Red Flags
|
|
183
|
+
|
|
184
|
+
**Never:**
|
|
185
|
+
|
|
186
|
+
- Skip code review between tasks
|
|
187
|
+
- Proceed with unfixed Critical issues
|
|
188
|
+
- Dispatch multiple implementation subagents in parallel (conflicts)
|
|
189
|
+
- Implement without reading plan task
|
|
190
|
+
|
|
191
|
+
**If subagent fails task:**
|
|
192
|
+
|
|
193
|
+
- Dispatch fix subagent with specific instructions
|
|
194
|
+
- Don't try to fix manually (context pollution)
|
|
195
|
+
|
|
196
|
+
## Anti-Patterns
|
|
197
|
+
|
|
198
|
+
| Anti-Pattern | Why It Fails | Instead |
|
|
199
|
+
| --- | --- | --- |
|
|
200
|
+
| Dispatching subagents for tasks with shared state/files | Creates edit conflicts, race conditions, and unclear ownership | Keep shared-state work sequential under one subagent at a time |
|
|
201
|
+
| Skipping code review between subagent tasks | Lets defects accumulate and compounds later fixes | Run a review gate after each task before moving on |
|
|
202
|
+
| Giving subagents vague prompts without file paths or acceptance criteria | Produces off-target changes and repeated back-and-forth | Provide exact file paths, task scope, and acceptance criteria |
|
|
203
|
+
| Not verifying subagent output before moving to next task | Carries regressions forward into later tasks | Validate output immediately before starting the next task |
|
|
204
|
+
|
|
205
|
+
## Verification
|
|
206
|
+
|
|
207
|
+
- After each subagent completes: review its changes, run typecheck + lint on modified files
|
|
208
|
+
- After all tasks: run full test suite to catch integration issues
|
|
209
|
+
- Check: no conflicting edits between subagent outputs
|
|
210
|
+
|
|
211
|
+
## Integration
|
|
212
|
+
|
|
213
|
+
**Required workflow skills:**
|
|
214
|
+
|
|
215
|
+
- **planning-and-task-breakdown** - REQUIRED: Creates the plan that this skill executes
|
|
216
|
+
- **code-review-and-quality** - REQUIRED: Review after each task (see Step 3)
|
|
217
|
+
- **shipping-and-launch** - REQUIRED: Complete development after all tasks (see Step 7)
|
|
218
|
+
|
|
219
|
+
**Subagents must use:**
|
|
220
|
+
|
|
221
|
+
- **test-driven-development** - Subagents follow TDD for each task
|
|
222
|
+
|
|
223
|
+
**Alternative workflow:**
|
|
224
|
+
|
|
225
|
+
- **incremental-implementation** - Use for same-session slice-by-slice execution instead of parallel subagent dispatch
|
|
226
|
+
|
|
227
|
+
See review format in the `code-review-and-quality` skill.
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
## See Also
|
|
231
|
+
|
|
232
|
+
- **subagent-driven-development** — for parallel investigation (this skill)
|
|
233
|
+
- **incremental-implementation** — for batch execution with checkpoints
|
|
234
|
+
- **code-review-and-quality** — for review between subagent tasks
|
|
235
|
+
|
|
236
|
+
## Common Rationalizations
|
|
237
|
+
|
|
238
|
+
| Rationalization | Reality |
|
|
239
|
+
|---|---|
|
|
240
|
+
| "I'll just do it myself, faster than delegating" | Serial work hits context limits. Parallel subagents finish multi-file tasks faster. |
|
|
241
|
+
| "The subagent will figure out the details" | Subagents need explicit contracts. Vague prompts produce wrong implementations. |
|
|
242
|
+
| "I don't need to review subagent output" | Subagents hallucinate and drift. Every output needs verification. |
|
|
243
|
+
| "One subagent can handle the whole feature" | Large scope in one agent compounds errors. Split into independent tasks. |
|
|
244
|
+
|
|
245
|
+
## Verification
|
|
246
|
+
|
|
247
|
+
After completing subagent-driven implementation:
|
|
248
|
+
|
|
249
|
+
- [ ] Each task had explicit acceptance criteria before dispatch
|
|
250
|
+
- [ ] Subagent outputs were independently verified (diff reviewed, tests run)
|
|
251
|
+
- [ ] No file conflicts between parallel subagents
|
|
252
|
+
- [ ] Each subagent commit is atomic and reviewable
|
|
253
|
+
- [ ] The full feature passes integration testing
|