@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,371 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: using-agent-skills
|
|
3
|
+
description: "Meta-skill for discovering and routing to the right skill. Auto-load when editing .pi/skills/ or when user asks 'which skill' / 'what should I use' / 'how do I do X'. Use when starting a session, when task phase changes, or when intent is ambiguous. Provides routing tree, multi-skill composition (pipeline/parallel/compose), disambiguation protocol, and fallback behavior."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Using Agent Skills
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Agent Skills is a collection of 67 engineering workflow skills organized by development phase. Each skill encodes a specific process that senior engineers follow. This meta-skill helps you discover and apply the right skill for your current task.
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
- Starting a session and unsure which skill applies
|
|
15
|
+
- Task phase changes (Define → Plan → Build → Verify → Ship)
|
|
16
|
+
- Intent is ambiguous across multiple candidate skills
|
|
17
|
+
- You are editing `.pi/skills/*/SKILL.md` (auto-load trigger)
|
|
18
|
+
- User asks "which skill", "what should I use", "how do I do X"
|
|
19
|
+
|
|
20
|
+
## When NOT to Use
|
|
21
|
+
|
|
22
|
+
- A single skill clearly matches the task — load it directly instead of routing
|
|
23
|
+
- The task is too small to warrant any skill (trivial one-liner)
|
|
24
|
+
- You need the deep content of a specific skill — jump straight to it; this skill only routes
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Skill Discovery (Routing Tree)
|
|
29
|
+
|
|
30
|
+
When a task arrives, identify the development phase and apply the corresponding skill:
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
Task arrives
|
|
34
|
+
│
|
|
35
|
+
├── Don't know what you want yet? ──────→ brainstorming
|
|
36
|
+
├── Have a rough concept, need structure? → spec-driven-development
|
|
37
|
+
├── New project/feature/change? ─────────→ spec-driven-development
|
|
38
|
+
├── Have a spec, need tasks? ────────────→ planning-and-task-breakdown
|
|
39
|
+
├── Implementing code? ──────────────────→ incremental-implementation
|
|
40
|
+
│ ├── UI work? ────────────────────────→ frontend-design
|
|
41
|
+
│ │ ├── Need aesthetic baseline? ────→ design-taste-frontend
|
|
42
|
+
│ │ ├── Premium/luxury look? ────────→ high-end-visual-design
|
|
43
|
+
│ │ ├── Minimalist? ────────────────→ minimalist-ui
|
|
44
|
+
│ │ └── Brutalist/industrial? ──────→ industrial-brutalist-ui
|
|
45
|
+
│ ├── API work? ───────────────────────→ api-and-interface-design
|
|
46
|
+
│ ├── React/Next.js specific? ─────────→ react-best-practices
|
|
47
|
+
│ ├── Module design/structure? ────────→ deep-module-design
|
|
48
|
+
│ ├── Need better context? ────────────→ context-engineering
|
|
49
|
+
│ ├── Need doc-verified code? ─────────→ source-driven-development
|
|
50
|
+
│ └── Stakes high / unfamiliar code? ──→ doubt-driven-development
|
|
51
|
+
├── Writing/running tests? ──────────────→ test-driven-development
|
|
52
|
+
│ ├── Avoiding test anti-patterns? ────→ testing-anti-patterns
|
|
53
|
+
│ └── Browser-based testing? ──────────→ browser-testing-with-devtools | playwright
|
|
54
|
+
├── Something broke? ────────────────────→ debugging-and-error-recovery
|
|
55
|
+
│ └── Need to trace root cause? ───────→ root-cause-tracing
|
|
56
|
+
├── Reviewing code? ─────────────────────→ code-review-and-quality
|
|
57
|
+
│ ├── Too complex? ────────────────────→ code-simplification | code-cleanup
|
|
58
|
+
│ ├── Security concerns? ─────────────→ security-and-hardening
|
|
59
|
+
│ └── Performance concerns? ───────────→ performance-optimization
|
|
60
|
+
├── Committing/branching? ───────────────→ git-workflow-and-versioning
|
|
61
|
+
│ └── Need isolated workspace? ────────→ using-git-worktrees
|
|
62
|
+
├── CI/CD pipeline work? ────────────────→ ci-cd-and-automation
|
|
63
|
+
├── Deprecating/migrating? ──────────────→ deprecation-and-migration
|
|
64
|
+
├── Writing docs/ADRs? ──────────────────→ documentation-and-adrs
|
|
65
|
+
├── Adding logs/metrics/alerts? ─────────→ observability-and-instrumentation
|
|
66
|
+
├── Deploying/launching? ────────────────→ shipping-and-launch
|
|
67
|
+
│ ├── To Cloudflare? ──────────────────→ cloudflare
|
|
68
|
+
│ └── To Vercel? ──────────────────────→ vercel-deploy-claimable
|
|
69
|
+
├── Working with Supabase? ─────────────→ supabase | supabase-postgres-best-practices
|
|
70
|
+
├── Sending emails? ────────────────────→ resend
|
|
71
|
+
├── Handling payments? ──────────────────→ polar
|
|
72
|
+
├── Figma/mockup to code? ───────────────→ figma → mockup-to-code → frontend-design
|
|
73
|
+
├── Accessibility audit? ────────────────→ accessibility-audit
|
|
74
|
+
├── Creating/editing skills? ────────────→ writing-skills
|
|
75
|
+
├── Codebase health check? ──────────────→ fallow
|
|
76
|
+
└── Large codebase analysis? ────────────→ gemini-large-context
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Multi-Skill Composition
|
|
82
|
+
|
|
83
|
+
Not every task fits one skill. Use these composition patterns to combine skills effectively:
|
|
84
|
+
|
|
85
|
+
### Sequential Pipeline (`→`)
|
|
86
|
+
Execute skills in order — each phase's output feeds the next. Typical for full features.
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
brainstorming → spec-driven-development → planning-and-task-breakdown → incremental-implementation → test-driven-development → code-review-and-quality → shipping-and-launch
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Parallel Load (`+`)
|
|
93
|
+
Load multiple skills simultaneously when concerns are independent. Reduces context round-trips.
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
# Code review from multiple angles
|
|
97
|
+
code-review-and-quality + performance-optimization + security-and-hardening
|
|
98
|
+
|
|
99
|
+
# UI with accessibility
|
|
100
|
+
frontend-design + design-taste-frontend + accessibility-audit
|
|
101
|
+
|
|
102
|
+
# Database work
|
|
103
|
+
supabase + supabase-postgres-best-practices
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Compose (Pipeline + Parallel)
|
|
107
|
+
Mix sequential phases with parallel execution within each phase.
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
Phase 1 (Define): brainstorming + spec-driven-development [parallel]
|
|
111
|
+
Phase 2 (Plan): planning-and-task-breakdown [sequential]
|
|
112
|
+
Phase 3 (Build): incremental-implementation + test-driven-development [parallel]
|
|
113
|
+
Phase 4 (Review): code-review-and-quality + code-simplification [parallel]
|
|
114
|
+
Phase 5 (Ship): verification-before-completion → shipping-and-launch [sequential]
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Conditional (`|`)
|
|
118
|
+
Pick one based on context. The agent evaluates and selects the best fit.
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
# Hosting
|
|
122
|
+
cloudflare | vercel-deploy-claimable
|
|
123
|
+
|
|
124
|
+
# Testing tool
|
|
125
|
+
playwright | chrome-devtools | browser-testing-with-devtools
|
|
126
|
+
|
|
127
|
+
# Visual style
|
|
128
|
+
high-end-visual-design | minimalist-ui | industrial-brutalist-ui
|
|
129
|
+
|
|
130
|
+
# Code quality
|
|
131
|
+
code-simplification | code-cleanup
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Risk Gating
|
|
137
|
+
|
|
138
|
+
Skills have risk levels that determine invocation behavior:
|
|
139
|
+
|
|
140
|
+
| Risk | Meaning | Auto-invoke? | Examples |
|
|
141
|
+
|------|---------|-------------|----------|
|
|
142
|
+
| **Low** | Safe — reads code, provides guidance, no side effects | Yes, automatically | `brainstorming`, `srcwalk`, `documentation-and-adrs`, `code-simplification` |
|
|
143
|
+
| **Medium** | Writes code, modifies files — verify before committing | Auto-load but confirm writes | `test-driven-development`, `frontend-design`, `git-workflow-and-versioning` |
|
|
144
|
+
| **High** | Infrastructure, deployment, payments, security — requires user approval | Manual invoke only | `shipping-and-launch`, `cloudflare`, `polar`, `security-and-hardening`, `deprecation-and-migration` |
|
|
145
|
+
|
|
146
|
+
**Rule**: High-risk skills must have `user-invocable: true` (user types `/skill` explicitly). Never auto-invoke a High-risk skill.
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Disambiguation Protocol
|
|
151
|
+
|
|
152
|
+
When intent maps to **multiple candidate skills** and none is clearly the best match:
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
1. Narrow by Phase
|
|
156
|
+
├── Is the task in Define, Plan, Build, Verify, Review, or Ship phase?
|
|
157
|
+
└── Filter to skills matching that phase.
|
|
158
|
+
|
|
159
|
+
2. Narrow by Risk
|
|
160
|
+
├── Prefer lower-risk skills for exploration/analysis tasks.
|
|
161
|
+
└── Only involve High-risk skills when the task explicitly requires infrastructure changes.
|
|
162
|
+
|
|
163
|
+
3. Check File Context
|
|
164
|
+
├── What files are currently open or being edited?
|
|
165
|
+
└── Does a File Match trigger point to a specific skill?
|
|
166
|
+
|
|
167
|
+
4. Count Keyword Overlap
|
|
168
|
+
├── Which skill's description has the most keyword matches with the user's request?
|
|
169
|
+
└── Highest overlap wins.
|
|
170
|
+
|
|
171
|
+
5. Check Composition
|
|
172
|
+
├── Can the skills compose? (See Composition section above)
|
|
173
|
+
└── If complementary, load both in parallel.
|
|
174
|
+
|
|
175
|
+
6. STILL ambiguous? → Ask ONE question:
|
|
176
|
+
"I see [Skill A] and [Skill B] could apply here.
|
|
177
|
+
[Skill A] handles [X concern]. [Skill B] handles [Y concern].
|
|
178
|
+
Which fits better for this task?"
|
|
179
|
+
|
|
180
|
+
Do NOT guess. Do NOT load all candidates speculatively.
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Fallback Behavior
|
|
186
|
+
|
|
187
|
+
When no skill matches the user's intent:
|
|
188
|
+
|
|
189
|
+
```
|
|
190
|
+
1. Check Quick Routing Table in .pi/skills/INDEX.md
|
|
191
|
+
└── User intent might be phrased differently than expected.
|
|
192
|
+
|
|
193
|
+
2. Try behavioral-kernel
|
|
194
|
+
└── If the issue is about process, methodology, or "how to approach"
|
|
195
|
+
|
|
196
|
+
3. Try using-agent-skills (this skill)
|
|
197
|
+
└── Re-run the routing tree with fresh interpretation of user intent.
|
|
198
|
+
|
|
199
|
+
4. Surface to user:
|
|
200
|
+
"I don't have a specific skill for [task]. I can:
|
|
201
|
+
a) Handle this without a skill (general approach)
|
|
202
|
+
b) Help you create a new skill for this pattern (→ writing-skills)
|
|
203
|
+
c) Point you to relevant documentation
|
|
204
|
+
Which would you prefer?"
|
|
205
|
+
|
|
206
|
+
5. Skill gap detected?
|
|
207
|
+
└── Flag for future skill creation. Common repeated gaps should become new skills.
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Core Operating Behaviors
|
|
213
|
+
|
|
214
|
+
These behaviors apply at all times, across all skills. They are non-negotiable.
|
|
215
|
+
|
|
216
|
+
### 1. Surface Assumptions
|
|
217
|
+
|
|
218
|
+
Before implementing anything non-trivial, explicitly state your assumptions:
|
|
219
|
+
|
|
220
|
+
```
|
|
221
|
+
ASSUMPTIONS I'M MAKING:
|
|
222
|
+
1. [assumption about requirements]
|
|
223
|
+
2. [assumption about architecture]
|
|
224
|
+
3. [assumption about scope]
|
|
225
|
+
→ Correct me now or I'll proceed with these.
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Don't silently fill in ambiguous requirements. The most common failure mode is making wrong assumptions and running with them unchecked. Surface uncertainty early — it's cheaper than rework.
|
|
229
|
+
|
|
230
|
+
### 2. Manage Confusion Actively
|
|
231
|
+
|
|
232
|
+
When you encounter inconsistencies, conflicting requirements, or unclear specifications:
|
|
233
|
+
|
|
234
|
+
1. **STOP.** Do not proceed with a guess.
|
|
235
|
+
2. Name the specific confusion.
|
|
236
|
+
3. Present the tradeoff or ask the clarifying question.
|
|
237
|
+
4. Wait for resolution before continuing.
|
|
238
|
+
|
|
239
|
+
**Bad:** Silently picking one interpretation and hoping it's right.
|
|
240
|
+
**Good:** "I see X in the spec but Y in the existing code. Which takes precedence?"
|
|
241
|
+
|
|
242
|
+
### 3. Push Back When Warranted
|
|
243
|
+
|
|
244
|
+
You are not a yes-machine. When an approach has clear problems:
|
|
245
|
+
|
|
246
|
+
- Point out the issue directly
|
|
247
|
+
- Explain the concrete downside (quantify when possible — "this adds ~200ms latency" not "this might be slower")
|
|
248
|
+
- Propose an alternative
|
|
249
|
+
- Accept the human's decision if they override with full information
|
|
250
|
+
|
|
251
|
+
Sycophancy is a failure mode. "Of course!" followed by implementing a bad idea helps no one. Honest technical disagreement is more valuable than false agreement.
|
|
252
|
+
|
|
253
|
+
### 4. Enforce Simplicity
|
|
254
|
+
|
|
255
|
+
Your natural tendency is to overcomplicate. Actively resist it.
|
|
256
|
+
|
|
257
|
+
Before finishing any implementation, ask:
|
|
258
|
+
- Can this be done in fewer lines?
|
|
259
|
+
- Are these abstractions earning their complexity?
|
|
260
|
+
- Would a staff engineer look at this and say "why didn't you just..."?
|
|
261
|
+
|
|
262
|
+
If you build 1000 lines and 100 would suffice, you have failed. Prefer the boring, obvious solution. Cleverness is expensive.
|
|
263
|
+
|
|
264
|
+
### 5. Maintain Scope Discipline
|
|
265
|
+
|
|
266
|
+
Touch only what you're asked to touch.
|
|
267
|
+
|
|
268
|
+
Do NOT:
|
|
269
|
+
- Remove comments you don't understand
|
|
270
|
+
- "Clean up" code orthogonal to the task
|
|
271
|
+
- Refactor adjacent systems as a side effect
|
|
272
|
+
- Delete code that seems unused without explicit approval
|
|
273
|
+
- Add features not in the spec because they "seem useful"
|
|
274
|
+
|
|
275
|
+
Your job is surgical precision, not unsolicited renovation.
|
|
276
|
+
|
|
277
|
+
### 6. Verify, Don't Assume
|
|
278
|
+
|
|
279
|
+
Every skill includes a verification step. A task is not complete until verification passes. "Seems right" is never sufficient — there must be evidence (passing tests, build output, runtime data).
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## Failure Modes to Avoid
|
|
284
|
+
|
|
285
|
+
These are the subtle errors that look like productivity but create problems:
|
|
286
|
+
|
|
287
|
+
1. Making wrong assumptions without checking
|
|
288
|
+
2. Not managing your own confusion — plowing ahead when lost
|
|
289
|
+
3. Not surfacing inconsistencies you notice
|
|
290
|
+
4. Not presenting tradeoffs on non-obvious decisions
|
|
291
|
+
5. Being sycophantic ("Of course!") to approaches with clear problems
|
|
292
|
+
6. Overcomplicating code and APIs
|
|
293
|
+
7. Modifying code or comments orthogonal to the task
|
|
294
|
+
8. Removing things you don't fully understand
|
|
295
|
+
9. Building without a spec because "it's obvious"
|
|
296
|
+
10. Skipping verification because "it looks right"
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
## Skill Rules
|
|
301
|
+
|
|
302
|
+
1. **Check INDEX.md first.** The Quick Routing Table in `.pi/skills/INDEX.md` provides intent → skill mappings. Use it before running the routing tree.
|
|
303
|
+
|
|
304
|
+
2. **File Match > Keyword Match > Intent Match.** The strongest routing signal is the file being edited. Second is the user's explicit keywords. Third is inferred intent.
|
|
305
|
+
|
|
306
|
+
3. **Skills are workflows, not suggestions.** Follow the steps in order. Don't skip verification steps.
|
|
307
|
+
|
|
308
|
+
4. **Multiple skills can apply.** Use composition patterns (Pipeline, Parallel, Compose, Conditional) — don't force one-skill-per-task.
|
|
309
|
+
|
|
310
|
+
5. **When in doubt, start with a spec.** If the task is non-trivial and there's no spec, begin with `spec-driven-development`.
|
|
311
|
+
|
|
312
|
+
6. **High-risk = manual invoke only.** Shipping, deployment, security, and payment skills require explicit user invocation. Never auto-load them.
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
## Lifecycle Sequence
|
|
317
|
+
|
|
318
|
+
For a complete feature, the typical skill sequence is:
|
|
319
|
+
|
|
320
|
+
```
|
|
321
|
+
1. brainstorming → Extract and refine what the user actually wants
|
|
322
|
+
2. spec-driven-development → Define what we're building
|
|
323
|
+
3. planning-and-task-breakdown → Break into verifiable chunks
|
|
324
|
+
4. context-engineering → Load the right context
|
|
325
|
+
5. source-driven-development → Verify against official docs
|
|
326
|
+
6. incremental-implementation → Build slice by slice
|
|
327
|
+
7. observability-and-instrumentation → Instrument as you build (runs parallel with 6-8)
|
|
328
|
+
8. doubt-driven-development → Cross-examine non-trivial decisions in-flight
|
|
329
|
+
9. test-driven-development → Prove each slice works
|
|
330
|
+
10. code-review-and-quality → Review before merge
|
|
331
|
+
11. code-simplification → Reduce complexity while preserving behavior
|
|
332
|
+
12. git-workflow-and-versioning → Clean commit history
|
|
333
|
+
13. documentation-and-adrs → Document decisions
|
|
334
|
+
14. deprecation-and-migration → Retire old systems safely when needed
|
|
335
|
+
15. shipping-and-launch → Deploy safely
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
Not every task needs every skill. A bug fix might only need: `debugging-and-error-recovery` → `test-driven-development` → `code-review-and-quality`.
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
## Quick Reference
|
|
343
|
+
|
|
344
|
+
| Phase | Skill | Risk | One-Line Summary |
|
|
345
|
+
|-------|-------|------|-----------------|
|
|
346
|
+
| Define | brainstorming | Low | Surface what the user actually wants before any plan, spec, or code exists |
|
|
347
|
+
| Define | spec-driven-development | Low | Requirements and acceptance criteria before code |
|
|
348
|
+
| Define | grill-me | Low | Adversarial interrogation of ideas before implementation |
|
|
349
|
+
| Plan | planning-and-task-breakdown | Low | Decompose into small, verifiable tasks |
|
|
350
|
+
| Plan | source-driven-development | Low | Verify against official docs before implementing |
|
|
351
|
+
| Build | incremental-implementation | Low | Thin vertical slices, test each before expanding |
|
|
352
|
+
| Build | doubt-driven-development | Medium | Adversarial fresh-context review of every non-trivial decision |
|
|
353
|
+
| Build | context-engineering | Low | Right context at the right time |
|
|
354
|
+
| Build | frontend-design | Medium | Production-quality UI with accessibility |
|
|
355
|
+
| Build | api-and-interface-design | Medium | Stable interfaces with clear contracts |
|
|
356
|
+
| Build | deep-module-design | Low | Deep modules with small interfaces |
|
|
357
|
+
| Verify | test-driven-development | Medium | Failing test first, then make it pass |
|
|
358
|
+
| Verify | browser-testing-with-devtools | Medium | Chrome DevTools for runtime verification |
|
|
359
|
+
| Verify | debugging-and-error-recovery | Medium | Reproduce → localize → fix → guard |
|
|
360
|
+
| Verify | root-cause-tracing | Medium | Trace backward through call stack to origin |
|
|
361
|
+
| Review | code-review-and-quality | Medium | Multi-axis review with quality gates |
|
|
362
|
+
| Review | code-simplification | Low | Preserve behavior while reducing unnecessary complexity |
|
|
363
|
+
| Review | security-and-hardening | High | OWASP prevention, input validation, least privilege |
|
|
364
|
+
| Review | performance-optimization | Medium | Measure first, optimize only what matters |
|
|
365
|
+
| Review | accessibility-audit | Medium | WCAG conformance, keyboard nav, color contrast |
|
|
366
|
+
| Ship | git-workflow-and-versioning | Medium | Atomic commits, clean history |
|
|
367
|
+
| Ship | ci-cd-and-automation | High | Automated quality gates on every change |
|
|
368
|
+
| Ship | deprecation-and-migration | High | Remove old systems and migrate users safely |
|
|
369
|
+
| Ship | documentation-and-adrs | Low | Document the why, not just the what |
|
|
370
|
+
| Ship | observability-and-instrumentation | Medium | Structured logs, RED metrics, traces, alerts |
|
|
371
|
+
| Ship | shipping-and-launch | High | Pre-launch checklist, monitoring, rollback plan |
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: using-git-worktrees
|
|
3
|
+
description: Use when starting feature work that needs isolation from current workspace or before executing implementation plans - creates isolated git worktrees with smart directory selection and safety verification
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Using Git Worktrees
|
|
7
|
+
|
|
8
|
+
## When to Use
|
|
9
|
+
|
|
10
|
+
- When starting feature work that needs an isolated workspace or before executing an implementation plan.
|
|
11
|
+
|
|
12
|
+
## When NOT to Use
|
|
13
|
+
|
|
14
|
+
- When a simple change can safely be done in the current working tree or the repo does not allow worktrees.
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
|
|
18
|
+
Git worktrees create isolated workspaces sharing the same repository, allowing work on multiple branches simultaneously without switching.
|
|
19
|
+
|
|
20
|
+
**Core principle:** Systematic directory selection + safety verification = reliable isolation.
|
|
21
|
+
|
|
22
|
+
**Announce at start:** "I'm using the using-git-worktrees skill to set up an isolated workspace."
|
|
23
|
+
|
|
24
|
+
## Directory Selection Process
|
|
25
|
+
|
|
26
|
+
Follow this priority order:
|
|
27
|
+
|
|
28
|
+
### 1. Check Existing Directories
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# Check in priority order
|
|
32
|
+
ls -d .worktrees 2>/dev/null # Preferred (hidden)
|
|
33
|
+
ls -d worktrees 2>/dev/null # Alternative
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**If found:** Use that directory. If both exist, `.worktrees` wins.
|
|
37
|
+
|
|
38
|
+
### 2. Check AGENTS.md
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
grep -i "worktree.*director" AGENTS.md 2>/dev/null
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**If preference specified:** Use it without asking.
|
|
45
|
+
|
|
46
|
+
### 3. Ask User
|
|
47
|
+
|
|
48
|
+
If no directory exists and no AGENTS.md preference:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
No worktree directory found. Where should I create worktrees?
|
|
52
|
+
|
|
53
|
+
1. .worktrees/ (project-local, hidden)
|
|
54
|
+
2. ~/.pi/worktrees/<project-name>/ (global location)
|
|
55
|
+
|
|
56
|
+
Which would you prefer?
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Safety Verification
|
|
60
|
+
|
|
61
|
+
### For Project-Local Directories (.worktrees or worktrees)
|
|
62
|
+
|
|
63
|
+
**MUST verify .gitignore before creating worktree:**
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# Check if directory pattern in .gitignore
|
|
67
|
+
grep -q "^\.worktrees/$" .gitignore || grep -q "^worktrees/$" .gitignore
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**If NOT in .gitignore:**
|
|
71
|
+
|
|
72
|
+
Per Jesse's rule "Fix broken things immediately":
|
|
73
|
+
|
|
74
|
+
1. Add appropriate line to .gitignore
|
|
75
|
+
2. Commit the change
|
|
76
|
+
3. Proceed with worktree creation
|
|
77
|
+
|
|
78
|
+
**Why critical:** Prevents accidentally committing worktree contents to repository.
|
|
79
|
+
|
|
80
|
+
### For Global Directory (~/.pi/worktrees)
|
|
81
|
+
|
|
82
|
+
No .gitignore verification needed - outside project entirely.
|
|
83
|
+
|
|
84
|
+
## Creation Steps
|
|
85
|
+
|
|
86
|
+
### 1. Detect Project Name
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
project=$(basename "$(git rev-parse --show-toplevel)")
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### 2. Create Worktree
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
# Determine full path
|
|
96
|
+
case $LOCATION in
|
|
97
|
+
.worktrees|worktrees)
|
|
98
|
+
path="$LOCATION/$BRANCH_NAME"
|
|
99
|
+
;;
|
|
100
|
+
~/.pi/worktrees/*)
|
|
101
|
+
path="~/.pi/worktrees/$project/$BRANCH_NAME"
|
|
102
|
+
;;
|
|
103
|
+
esac
|
|
104
|
+
|
|
105
|
+
# Create worktree with new branch
|
|
106
|
+
git worktree add "$path" -b "$BRANCH_NAME"
|
|
107
|
+
cd "$path"
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Worktree Tracking
|
|
111
|
+
|
|
112
|
+
After creating a worktree, persist its absolute path for session resume:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
# After creating worktree
|
|
116
|
+
mkdir -p .pi/artifacts/
|
|
117
|
+
echo "/absolute/path/to/worktree" > .pi/artifacts/worktree.txt
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
On session resume, restore the active worktree if tracking exists:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
# Check if worktree exists for active plan
|
|
124
|
+
if [ -f .pi/artifacts/worktree.txt ]; then
|
|
125
|
+
WORKTREE_PATH=$(cat .pi/artifacts/worktree.txt)
|
|
126
|
+
cd "$WORKTREE_PATH"
|
|
127
|
+
fi
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
On worktree cleanup (after merge), remove the tracking file:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
rm -f .pi/artifacts/worktree.txt
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### 3. Run Project Setup
|
|
137
|
+
|
|
138
|
+
Auto-detect and run appropriate setup:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
# Node.js
|
|
142
|
+
if [ -f package.json ]; then npm install; fi
|
|
143
|
+
|
|
144
|
+
# Rust
|
|
145
|
+
if [ -f Cargo.toml ]; then cargo build; fi
|
|
146
|
+
|
|
147
|
+
# Python
|
|
148
|
+
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
|
149
|
+
if [ -f pyproject.toml ]; then poetry install; fi
|
|
150
|
+
|
|
151
|
+
# Go
|
|
152
|
+
if [ -f go.mod ]; then go mod download; fi
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### 4. Verify Clean Baseline
|
|
156
|
+
|
|
157
|
+
Run tests to ensure worktree starts clean:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
# Examples - use project-appropriate command
|
|
161
|
+
npm test
|
|
162
|
+
cargo test
|
|
163
|
+
pytest
|
|
164
|
+
go test ./...
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
**If tests fail:** Report failures, ask whether to proceed or investigate.
|
|
168
|
+
|
|
169
|
+
**If tests pass:** Report ready.
|
|
170
|
+
|
|
171
|
+
### 5. Report Location
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
Worktree ready at <full-path>
|
|
175
|
+
Tests passing (<N> tests, 0 failures)
|
|
176
|
+
Ready to implement <feature-name>
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## Quick Reference
|
|
180
|
+
|
|
181
|
+
| Situation | Action |
|
|
182
|
+
| --------------------------- | --------------------------- |
|
|
183
|
+
| `.worktrees/` exists | Use it (verify .gitignore) |
|
|
184
|
+
| `worktrees/` exists | Use it (verify .gitignore) |
|
|
185
|
+
| Both exist | Use `.worktrees/` |
|
|
186
|
+
| Neither exists | Check AGENTS.md → Ask user |
|
|
187
|
+
| Directory not in .gitignore | Add it immediately + commit |
|
|
188
|
+
| Tests fail during baseline | Report failures + ask |
|
|
189
|
+
| No package.json/Cargo.toml | Skip dependency install |
|
|
190
|
+
|
|
191
|
+
## Common Mistakes
|
|
192
|
+
|
|
193
|
+
**Skipping .gitignore verification**
|
|
194
|
+
|
|
195
|
+
- **Problem:** Worktree contents get tracked, pollute git status
|
|
196
|
+
- **Fix:** Always grep .gitignore before creating project-local worktree
|
|
197
|
+
|
|
198
|
+
**Assuming directory location**
|
|
199
|
+
|
|
200
|
+
- **Problem:** Creates inconsistency, violates project conventions
|
|
201
|
+
- **Fix:** Follow priority: existing > AGENTS.md > ask
|
|
202
|
+
|
|
203
|
+
**Proceeding with failing tests**
|
|
204
|
+
|
|
205
|
+
- **Problem:** Can't distinguish new bugs from pre-existing issues
|
|
206
|
+
- **Fix:** Report failures, get explicit permission to proceed
|
|
207
|
+
|
|
208
|
+
**Hardcoding setup commands**
|
|
209
|
+
|
|
210
|
+
- **Problem:** Breaks on projects using different tools
|
|
211
|
+
- **Fix:** Auto-detect from project files (package.json, etc.)
|
|
212
|
+
|
|
213
|
+
## Example Workflow
|
|
214
|
+
|
|
215
|
+
```
|
|
216
|
+
You: I'm using the using-git-worktrees skill to set up an isolated workspace.
|
|
217
|
+
|
|
218
|
+
[Check .worktrees/ - exists]
|
|
219
|
+
[Verify .gitignore - contains .worktrees/]
|
|
220
|
+
[Create worktree: git worktree add .worktrees/auth -b feature/auth]
|
|
221
|
+
[Run npm install]
|
|
222
|
+
[Run npm test - 47 passing]
|
|
223
|
+
|
|
224
|
+
Worktree ready at /Users/jesse/myproject/.worktrees/auth
|
|
225
|
+
Tests passing (47 tests, 0 failures)
|
|
226
|
+
Ready to implement auth feature
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
## Red Flags
|
|
230
|
+
|
|
231
|
+
**Never:**
|
|
232
|
+
|
|
233
|
+
- Create worktree without .gitignore verification (project-local)
|
|
234
|
+
- Skip baseline test verification
|
|
235
|
+
- Proceed with failing tests without asking
|
|
236
|
+
- Assume directory location when ambiguous
|
|
237
|
+
- Skip AGENTS.md check
|
|
238
|
+
|
|
239
|
+
**Always:**
|
|
240
|
+
|
|
241
|
+
- Follow directory priority: existing > AGENTS.md > ask
|
|
242
|
+
- Verify .gitignore for project-local
|
|
243
|
+
- Auto-detect and run project setup
|
|
244
|
+
- Verify clean test baseline
|
|
245
|
+
|
|
246
|
+
## Integration
|
|
247
|
+
|
|
248
|
+
**Called by:**
|
|
249
|
+
|
|
250
|
+
- **brainstorming** (Phase 4) - REQUIRED when design is approved and implementation follows
|
|
251
|
+
- Any skill needing isolated workspace
|
|
252
|
+
|
|
253
|
+
**Pairs with:**
|
|
254
|
+
|
|
255
|
+
- **shipping-and-launch** - REQUIRED for cleanup after work complete
|
|
256
|
+
- **incremental-implementation** or **subagent-driven-development** - Work happens in this worktree
|
|
257
|
+
|
|
258
|
+
## Common Rationalizations
|
|
259
|
+
|
|
260
|
+
| Rationalization | Reality |
|
|
261
|
+
|---|---|
|
|
262
|
+
| "I'll just switch branches" | Branch switching with dirty state loses context. Worktrees provide clean isolation. |
|
|
263
|
+
| "Worktrees are overkill for one feature" | One feature today, three tomorrow. Worktrees scale with your parallelism. |
|
|
264
|
+
| "I don't need isolation, I'm careful" | Accidental cross-contamination between branches is silent and hard to detect. |
|
|
265
|
+
| "I'll clean up old worktrees later" | Stale worktrees consume disk and cause confusion. Clean up after every merge. |
|
|
266
|
+
|
|
267
|
+
## Verification
|
|
268
|
+
|
|
269
|
+
After using git worktrees:
|
|
270
|
+
|
|
271
|
+
- [ ] Worktree was created in an appropriate directory
|
|
272
|
+
- [ ] Work was committed before leaving the worktree
|
|
273
|
+
- [ ] `git worktree remove` was run after merge (no orphaned worktrees)
|
|
274
|
+
- [ ] No cross-contamination between worktrees
|
|
275
|
+
- [ ] Main worktree is clean after all feature worktrees are merged
|