@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,131 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agent-code-quality-gate
|
|
3
|
+
description: Use before a coding agent claims implementation work is complete, especially after bugfixes, feature edits, refactors, or subagent changes - converts code quality into an operational gate for scope, duplication, behavior tests, verification evidence, and regressions.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Agent Code Quality Gate
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Code quality for an agent is not "clean-looking code." It is a small, reviewable, verified change that improves or preserves system health while solving the requested problem.
|
|
11
|
+
|
|
12
|
+
Core rule: **do not claim completion until the diff is scoped, integrated, tested for behavior, and freshly verified.**
|
|
13
|
+
|
|
14
|
+
## When to Use
|
|
15
|
+
|
|
16
|
+
Use before saying work is complete, fixed, passing, ready, or high quality after:
|
|
17
|
+
|
|
18
|
+
- implementing a feature or bugfix;
|
|
19
|
+
- editing production code or tests;
|
|
20
|
+
- receiving subagent/worker changes;
|
|
21
|
+
- refactoring, optimizing, or migrating code;
|
|
22
|
+
- touching security, auth, data, concurrency, payments, accessibility, performance, or public APIs.
|
|
23
|
+
|
|
24
|
+
Do not use as a substitute for specialist review. For final merge/security/API review, also load the relevant review/security/API skill.
|
|
25
|
+
|
|
26
|
+
## When NOT to Use
|
|
27
|
+
|
|
28
|
+
- The change is trivial (typo, rename, formatting) with no behavior impact
|
|
29
|
+
- You haven't implemented anything yet — the gate is for claiming completion, not starting
|
|
30
|
+
- For specialist review needs (security audit, API contract, merge approval) — load the dedicated review/security/API skill instead of relying on this gate alone
|
|
31
|
+
|
|
32
|
+
## Quality Gate
|
|
33
|
+
|
|
34
|
+
Answer every item. If any answer is "no" or "unknown," either fix it, verify it, or report the remaining risk explicitly.
|
|
35
|
+
|
|
36
|
+
| Gate | Pass condition | Reject if |
|
|
37
|
+
| --- | --- | --- |
|
|
38
|
+
| Goal | The change satisfies the user's actual request and acceptance criteria. | It solves a nearby or imagined problem. |
|
|
39
|
+
| Scope | Every changed line traces to the current request. | Drive-by cleanup, broad formatting, or speculative refactor is mixed in. |
|
|
40
|
+
| Design fit | The change belongs in the touched layer and follows existing architecture. | It adds a parallel pattern, hidden business logic, or misplaced abstraction. |
|
|
41
|
+
| Simplicity | The solution is the smallest clear working change. | It adds flexibility for hypothetical future needs. |
|
|
42
|
+
| Duplication | Existing helpers/components/patterns were searched and reused. | A second home for the same concept was created. |
|
|
43
|
+
| Behavior | Relevant happy path, edge cases, and failure path were considered. | Only the obvious path works. |
|
|
44
|
+
| Tests | Tests are meaningful for behavior and would fail if the behavior broke. | Tests only assert mocks, snapshots, implementation details, or coverage numbers. |
|
|
45
|
+
| Verification | Fresh relevant lint/typecheck/test/build/manual check evidence exists. | Success is inferred from code appearance or a subagent report. |
|
|
46
|
+
| Regressions | Security, reliability, performance, accessibility, compatibility, and developer workflow are not worsened. | Any regression is unexamined or hand-waved. |
|
|
47
|
+
| Reviewability | Diff is coherent and easy to review. | Reviewer must reverse-engineer why unrelated changes exist. |
|
|
48
|
+
|
|
49
|
+
## Agent-Specific Failure Modes
|
|
50
|
+
|
|
51
|
+
Brutally check for these before completion:
|
|
52
|
+
|
|
53
|
+
- **Hallucinated API:** Did you verify signatures/options against local types, source, or official docs?
|
|
54
|
+
- **Fake confidence:** Are you saying "should work" instead of citing command output or runtime evidence?
|
|
55
|
+
- **Subagent trust:** Did you read changed files and verify independently instead of trusting a summary?
|
|
56
|
+
- **Mock theater:** Do tests prove production behavior, or just that mocks were called?
|
|
57
|
+
- **Coverage worship:** Coverage can reveal untested code; it does not prove test quality.
|
|
58
|
+
- **Speculative abstraction:** Did you add generic hooks/options/classes before the actual need exists?
|
|
59
|
+
- **Duplicate utility:** Did you search before creating a helper/component/schema wrapper?
|
|
60
|
+
- **Generated-file edit:** Did you modify generated output instead of the canonical schema/generator/input?
|
|
61
|
+
- **Silent behavior change:** Did any external behavior, API shape, data format, or command contract change without explicit approval?
|
|
62
|
+
- **Unreviewable diff:** Did formatting churn or cleanup obscure the real behavior change?
|
|
63
|
+
|
|
64
|
+
## Minimal Completion Procedure
|
|
65
|
+
|
|
66
|
+
1. Re-read the user request and acceptance criteria.
|
|
67
|
+
2. Inspect the diff, not just the files.
|
|
68
|
+
3. Remove unrelated or speculative changes.
|
|
69
|
+
4. Search for existing concepts before keeping new helpers/components.
|
|
70
|
+
5. Check behavioral edges: invalid input, empty state, permission failure, error path, concurrency/race risk where relevant.
|
|
71
|
+
6. Run the smallest relevant verification first; expand only if risk requires it.
|
|
72
|
+
7. If tests were added or changed, run those tests directly and confirm they fail for the right reason when practical.
|
|
73
|
+
8. Record exact evidence in the final response: command/check + result + remaining risk.
|
|
74
|
+
|
|
75
|
+
## Source-Backed Principles
|
|
76
|
+
|
|
77
|
+
- Google Engineering Practices: approve changes that improve overall code health; reject changes that worsen it even if they appear functional. Review design, functionality, complexity, tests, names, comments, style, consistency, docs, and every relevant line.
|
|
78
|
+
- Martin Fowler on test coverage: coverage is useful for finding untested code, but high coverage is not proof of good tests.
|
|
79
|
+
- OWASP Secure Coding Practices: quality includes input validation, output encoding, auth/session/access control, cryptography, error handling/logging, data protection, database/file/memory safety, and general secure coding.
|
|
80
|
+
|
|
81
|
+
## Final Response Evidence Pattern
|
|
82
|
+
|
|
83
|
+
Use this shape when reporting completion:
|
|
84
|
+
|
|
85
|
+
```text
|
|
86
|
+
Changed <what> in <file:line> to satisfy <requirement>.
|
|
87
|
+
Verification: <command/check> passed/failed with <specific result>.
|
|
88
|
+
Risk: <none known | untested area and why>.
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Never say "done," "fixed," "passes," or "high quality" without fresh evidence.
|
|
92
|
+
|
|
93
|
+
## Skill Result Contract
|
|
94
|
+
|
|
95
|
+
```xml
|
|
96
|
+
<skill_result>
|
|
97
|
+
<skill>agent-code-quality-gate</skill>
|
|
98
|
+
<status>success|partial|blocked|failure</status>
|
|
99
|
+
<evidence>Diff reviewed, scope checked, tests/verification run, sources checked if APIs used</evidence>
|
|
100
|
+
<artifacts>Files reviewed or commands run</artifacts>
|
|
101
|
+
<risks>Remaining unverified paths or none</risks>
|
|
102
|
+
</skill_result>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Common Rationalizations
|
|
106
|
+
|
|
107
|
+
| Rationalization | Reality |
|
|
108
|
+
|---|---|
|
|
109
|
+
| "The tests pass, it's done" | Passing tests ≠ correct scope, clean diff, or safe behavior. |
|
|
110
|
+
| "The subagent said it was fine" | Subagent reports are self-assessments. Always verify independently. |
|
|
111
|
+
| "The changes are small, no gate needed" | Small changes introduce regressions too. The gate is proportional, not optional. |
|
|
112
|
+
| "I reviewed it myself" | Authors are blind to their own assumptions. Independent verification matters. |
|
|
113
|
+
|
|
114
|
+
## Red Flags
|
|
115
|
+
|
|
116
|
+
- Subagent completion claimed without diff review
|
|
117
|
+
- Verification evidence that doesn't match the reported changes
|
|
118
|
+
- Scope creep in implementation (touched files outside task description)
|
|
119
|
+
- No regression test for the changed behavior
|
|
120
|
+
- Duplication of existing patterns instead of reuse
|
|
121
|
+
|
|
122
|
+
## Verification
|
|
123
|
+
|
|
124
|
+
Before claiming implementation work is complete:
|
|
125
|
+
|
|
126
|
+
- [ ] All changes are within the agreed scope (no unrelated files touched)
|
|
127
|
+
- [ ] No code duplication was introduced that could reuse existing patterns
|
|
128
|
+
- [ ] Tests pass and cover the changed behavior with regression protection
|
|
129
|
+
- [ ] Diff review confirms changes match the task description
|
|
130
|
+
- [ ] Subagent-reported evidence was independently verified
|
|
131
|
+
- [ ] Lint, typecheck, and build pass
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: api-and-interface-design
|
|
3
|
+
description: Use when designing REST/GraphQL APIs, SDK interfaces, or public module boundaries — covers contract-first design, versioning, error shapes, and backward compatibility
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# API & Interface Design
|
|
7
|
+
|
|
8
|
+
> **Replaces** ad-hoc API creation where endpoints, error shapes, and versioning are afterthoughts
|
|
9
|
+
|
|
10
|
+
## When to Use
|
|
11
|
+
|
|
12
|
+
- Designing a new API endpoint, SDK method, or public module interface
|
|
13
|
+
- Reviewing or extending an existing API for backward compatibility
|
|
14
|
+
- Defining error responses, pagination, or authentication contracts
|
|
15
|
+
|
|
16
|
+
## When NOT to Use
|
|
17
|
+
|
|
18
|
+
- Internal-only helper functions that no external code calls
|
|
19
|
+
- Prototyping where the API shape will change frequently (use after stabilization)
|
|
20
|
+
|
|
21
|
+
## Overview
|
|
22
|
+
|
|
23
|
+
APIs are contracts. Once published, they're hard to change without breaking consumers. Design the contract first, implement second.
|
|
24
|
+
|
|
25
|
+
**Core principle:** Define the contract (types, errors, versioning) before writing implementation. Make breaking changes impossible through careful interface design.
|
|
26
|
+
|
|
27
|
+
## Contract-First Process
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
1. DEFINE — Write TypeScript types / OpenAPI schema for request & response
|
|
31
|
+
2. REVIEW — Check backward compatibility, error coverage, naming consistency
|
|
32
|
+
3. IMPLEMENT — Code against the contract, not the other way around
|
|
33
|
+
4. VERIFY — Validate implementation matches contract exactly
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## API Design Checklist
|
|
37
|
+
|
|
38
|
+
### Naming
|
|
39
|
+
|
|
40
|
+
- [ ] Resource-oriented URLs (nouns, not verbs): `/users/{id}` not `/getUser`
|
|
41
|
+
- [ ] Consistent casing (camelCase for JSON fields, kebab-case for URLs)
|
|
42
|
+
- [ ] Plural collection names: `/users` not `/user`
|
|
43
|
+
- [ ] Avoid abbreviations — `configuration` not `config` in public APIs
|
|
44
|
+
|
|
45
|
+
### Request Design
|
|
46
|
+
|
|
47
|
+
- [ ] Use appropriate HTTP methods (GET reads, POST creates, PUT replaces, PATCH updates, DELETE removes)
|
|
48
|
+
- [ ] Validate all input with schemas (zod, JSON Schema) at the boundary
|
|
49
|
+
- [ ] Accept only what you need — reject unknown fields
|
|
50
|
+
- [ ] Use query params for filtering/pagination, body for creation/mutation
|
|
51
|
+
|
|
52
|
+
### Response Design
|
|
53
|
+
|
|
54
|
+
- [ ] Consistent envelope: `{ data, error, meta }` or flat depending on convention
|
|
55
|
+
- [ ] Include pagination metadata: `{ total, page, pageSize, hasMore }`
|
|
56
|
+
- [ ] Return created/updated resource in mutation responses
|
|
57
|
+
- [ ] Use ISO 8601 for dates, UTC always
|
|
58
|
+
|
|
59
|
+
### Error Design
|
|
60
|
+
|
|
61
|
+
```typescript
|
|
62
|
+
// Consistent error shape
|
|
63
|
+
interface ApiError {
|
|
64
|
+
code: string; // machine-readable: "VALIDATION_ERROR", "NOT_FOUND"
|
|
65
|
+
message: string; // human-readable description
|
|
66
|
+
details?: unknown; // field-level errors, context
|
|
67
|
+
requestId?: string; // correlation ID for debugging
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
- [ ] Use standard HTTP status codes correctly (400 vs 422 vs 500)
|
|
72
|
+
- [ ] Never expose stack traces or internal errors to clients
|
|
73
|
+
- [ ] Include actionable error messages
|
|
74
|
+
- [ ] Document all possible error codes per endpoint
|
|
75
|
+
|
|
76
|
+
### Versioning
|
|
77
|
+
|
|
78
|
+
| Strategy | When | Example |
|
|
79
|
+
| ------------- | ---------------------------------- | ------------------------------------- |
|
|
80
|
+
| URL prefix | Breaking changes to resources | `/v1/users`, `/v2/users` |
|
|
81
|
+
| Header | Breaking changes, same URL desired | `Accept: application/vnd.api.v2+json` |
|
|
82
|
+
| Query param | Simple, low-ceremony | `/users?version=2` |
|
|
83
|
+
| No versioning | Internal APIs, single consumer | Direct updates |
|
|
84
|
+
|
|
85
|
+
**Default:** URL prefix versioning for public APIs, no versioning for internal.
|
|
86
|
+
|
|
87
|
+
### Backward Compatibility Rules
|
|
88
|
+
|
|
89
|
+
| Safe (Non-Breaking) | Unsafe (Breaking) |
|
|
90
|
+
| ------------------------- | ------------------------ |
|
|
91
|
+
| Add optional fields | Remove or rename fields |
|
|
92
|
+
| Add new endpoints | Change field types |
|
|
93
|
+
| Add new enum values | Remove enum values |
|
|
94
|
+
| Widen input validation | Tighten input validation |
|
|
95
|
+
| Add optional query params | Change URL structure |
|
|
96
|
+
|
|
97
|
+
## Common Rationalizations
|
|
98
|
+
|
|
99
|
+
| Excuse | Rebuttal |
|
|
100
|
+
| -------------------------------- | ------------------------------------------------------------------------ |
|
|
101
|
+
| "It's just an internal API" | Internal APIs become external. Design the contract now. |
|
|
102
|
+
| "We can change it later" | Every consumer you add makes changes harder. Get it right early. |
|
|
103
|
+
| "The frontend team will adapt" | Consumers shouldn't break because you didn't plan the interface. |
|
|
104
|
+
| "Error handling is boilerplate" | Inconsistent errors cause more debugging than any boilerplate saves. |
|
|
105
|
+
| "Versioning is overkill for now" | Adding versioning later requires migrating all consumers simultaneously. |
|
|
106
|
+
|
|
107
|
+
## TypeScript Patterns
|
|
108
|
+
|
|
109
|
+
### Strict Input/Output Types
|
|
110
|
+
|
|
111
|
+
```typescript
|
|
112
|
+
// [x] Separate input and output types
|
|
113
|
+
interface CreateUserInput {
|
|
114
|
+
name: string;
|
|
115
|
+
email: string;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
interface User {
|
|
119
|
+
id: string;
|
|
120
|
+
name: string;
|
|
121
|
+
email: string;
|
|
122
|
+
createdAt: string; // ISO 8601
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// [x] Validate at boundary
|
|
126
|
+
const createUserSchema = z.object({
|
|
127
|
+
name: z.string().min(1).max(100),
|
|
128
|
+
email: z.string().email(),
|
|
129
|
+
});
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Discriminated Unions for Results
|
|
133
|
+
|
|
134
|
+
```typescript
|
|
135
|
+
type ApiResult<T> = { success: true; data: T } | { success: false; error: ApiError };
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Red Flags — STOP
|
|
139
|
+
|
|
140
|
+
- Endpoint returns different shapes depending on internal state
|
|
141
|
+
- Error responses have no consistent structure
|
|
142
|
+
- URL contains verbs (`/createUser`, `/deleteItem`)
|
|
143
|
+
- No input validation at the API boundary
|
|
144
|
+
- Response includes internal database IDs or implementation details
|
|
145
|
+
- Breaking change deployed without version bump
|
|
146
|
+
|
|
147
|
+
## Verification
|
|
148
|
+
|
|
149
|
+
- [ ] All endpoints have typed request/response schemas
|
|
150
|
+
- [ ] Error responses follow the consistent error shape
|
|
151
|
+
- [ ] Breaking changes increment the API version
|
|
152
|
+
- [ ] Input validation rejects invalid/extra fields
|
|
153
|
+
- [ ] Response matches documented contract exactly
|
|
154
|
+
|
|
155
|
+
## See Also
|
|
156
|
+
|
|
157
|
+
- **defense-in-depth** — Validation at every layer, not just the API boundary
|
|
158
|
+
- **incremental-implementation** — Build API endpoints as thin vertical slices
|
|
159
|
+
- **test-driven-development** — Write API contract tests before implementation
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: behavioral-kernel
|
|
3
|
+
description: Use when work starts drifting into silent assumptions, overengineering, drive-by refactors, or vague completion claims. Re-centers the agent on a compact Pi-native execution kernel with concrete anti-pattern examples.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Behavioral Kernel
|
|
7
|
+
|
|
8
|
+
A short reset skill for non-trivial work when the larger prompt is getting noisy.
|
|
9
|
+
|
|
10
|
+
## When to Use
|
|
11
|
+
|
|
12
|
+
- Work is drifting into silent assumptions, overengineering, or drive-by refactors
|
|
13
|
+
- You're about to add abstraction for a single use case
|
|
14
|
+
- You're changing adjacent code "while you're here"
|
|
15
|
+
- Completion is being claimed without a named proof path
|
|
16
|
+
- You're silently picking one interpretation from multiple valid readings
|
|
17
|
+
|
|
18
|
+
## When NOT to Use
|
|
19
|
+
|
|
20
|
+
- The task is a trivial, single-step change with an obvious answer
|
|
21
|
+
- You already surfaced assumptions and named the verification path up front
|
|
22
|
+
- Pure lookup/reference questions (no decision or diff involved)
|
|
23
|
+
|
|
24
|
+
## Kernel
|
|
25
|
+
|
|
26
|
+
1. **Clarify before committing** — surface assumptions or ask instead of silently choosing.
|
|
27
|
+
2. **Choose the smallest working change** — solve today's problem directly before inventing flexibility.
|
|
28
|
+
3. **Keep diffs surgical** — change only what the request requires; log unrelated issues and keep moving.
|
|
29
|
+
4. **Define proof before acting** — say how success will be verified before implementation, then run that proof after.
|
|
30
|
+
|
|
31
|
+
## Apply the Kernel
|
|
32
|
+
|
|
33
|
+
Before coding, write down:
|
|
34
|
+
|
|
35
|
+
- the ambiguity or assumptions in 1-3 bullets
|
|
36
|
+
- the smallest acceptable diff
|
|
37
|
+
- what you are explicitly not touching
|
|
38
|
+
- the verification command, test path, or evidence you will use
|
|
39
|
+
|
|
40
|
+
## Drift Signals
|
|
41
|
+
|
|
42
|
+
Stop and reload this kernel if you catch yourself:
|
|
43
|
+
|
|
44
|
+
- adding abstraction for a single use case
|
|
45
|
+
- changing adjacent code "while you're here"
|
|
46
|
+
- postponing verification until the end
|
|
47
|
+
- claiming completion without a named proof path
|
|
48
|
+
- silently picking one interpretation from multiple valid readings
|
|
49
|
+
|
|
50
|
+
## Recovery Move
|
|
51
|
+
|
|
52
|
+
When drift is detected:
|
|
53
|
+
|
|
54
|
+
1. Re-state the request in one sentence.
|
|
55
|
+
2. Re-state the smallest working change.
|
|
56
|
+
3. Re-state the proof path.
|
|
57
|
+
4. Delete or avoid anything outside that boundary.
|
|
58
|
+
|
|
59
|
+
## Pi-Specific Notes
|
|
60
|
+
|
|
61
|
+
- pi-srcwalk tools (`semantic_query`, `semantic_inspect`, `semantic_grep`, `semantic_show`) replace srcwalk CLI
|
|
62
|
+
- pi-search tools (`websearch`, `codesearch`, `context7`, `grepsearch`, `web_fetch`) replace webclaw
|
|
63
|
+
- `memory_search` (pi-hermes-memory) = durable LTM across sessions; `vcc_recall` = active-session history (not LTM)
|
|
64
|
+
- `subagent` tool replaces `task()` for delegation
|
|
65
|
+
- Avoid building "infrastructure for infrastructure's sake" — Pi already has 13 npm extensions
|
|
66
|
+
|
|
67
|
+
## Common Rationalizations
|
|
68
|
+
|
|
69
|
+
| Rationalization | Reality |
|
|
70
|
+
|---|---|
|
|
71
|
+
| "I know what to do without reading the skill" | Drift happens silently. Re-read the kernel before it compounds. |
|
|
72
|
+
| "This edge case isn't important right now" | Edge cases ignored become edge-case bugs in production later. |
|
|
73
|
+
| "I'll just make this one quick change" | "Quick changes" outside scope are the primary vector for entropy. |
|
|
74
|
+
| "The skill is too restrictive for this task" | The restrictions exist because they prevent known failure modes. |
|
|
75
|
+
|
|
76
|
+
## Red Flags
|
|
77
|
+
|
|
78
|
+
- Adding abstraction for a single use case
|
|
79
|
+
- Changing adjacent code "while you're here"
|
|
80
|
+
- Postponing verification until the end
|
|
81
|
+
- Claiming completion without a named proof path
|
|
82
|
+
- Silently picking one interpretation from multiple valid readings
|
|
83
|
+
|
|
84
|
+
## Verification
|
|
85
|
+
|
|
86
|
+
After applying the behavioral kernel:
|
|
87
|
+
|
|
88
|
+
- [ ] The task scope is clearly defined and bounded
|
|
89
|
+
- [ ] No unrelated code was modified "while you're here"
|
|
90
|
+
- [ ] The smallest working change was chosen for each step
|
|
91
|
+
- [ ] Verification evidence exists before any completion claim
|
|
92
|
+
- [ ] Assumptions were surfaced and confirmed, not silently acted on
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: brainstorming
|
|
3
|
+
description: Use when creating or developing, before writing code or implementation plans - refines rough ideas into fully-formed designs through collaborative questioning, alternative exploration, and incremental validation. Don't use during clear 'mechanical' processes
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Brainstorming Ideas Into Designs
|
|
7
|
+
|
|
8
|
+
> **Replaces** jumping straight to implementation without exploring alternatives, constraints, or edge cases
|
|
9
|
+
## When to Use
|
|
10
|
+
|
|
11
|
+
- You have a rough idea that needs clarification into a design or spec
|
|
12
|
+
- You need to explore multiple approaches and validate trade-offs before coding
|
|
13
|
+
|
|
14
|
+
## When NOT to Use
|
|
15
|
+
|
|
16
|
+
- Requirements are already clear and execution is mechanical
|
|
17
|
+
- You are already in implementation with a validated plan or PRD
|
|
18
|
+
|
|
19
|
+
## Overview
|
|
20
|
+
|
|
21
|
+
Help turn ideas into fully formed designs and specs through natural collaborative dialogue.
|
|
22
|
+
|
|
23
|
+
Start by understanding the current project context, then ask questions one at a time to refine the idea. Once you understand what you're building, present the design in small sections (200-300 words), checking after each section whether it looks right so far.
|
|
24
|
+
|
|
25
|
+
**Part of:** `development-lifecycle` skill (Phase 1: Ideation)
|
|
26
|
+
|
|
27
|
+
**Output template:** `.pi/templates/design.md`
|
|
28
|
+
|
|
29
|
+
## The Process
|
|
30
|
+
|
|
31
|
+
**Understanding the idea:**
|
|
32
|
+
|
|
33
|
+
- Check out the current project state first (files, docs, recent commits)
|
|
34
|
+
- Ask questions one at a time to refine the idea
|
|
35
|
+
- Prefer multiple choice questions when possible, but open-ended is fine too
|
|
36
|
+
- Only one question per message - if a topic needs more exploration, break it into multiple questions
|
|
37
|
+
- Focus on understanding: purpose, constraints, success criteria
|
|
38
|
+
|
|
39
|
+
**Exploring approaches:**
|
|
40
|
+
|
|
41
|
+
- Propose 2-3 different approaches with trade-offs
|
|
42
|
+
- Present options conversationally with your recommendation and reasoning
|
|
43
|
+
- Lead with your recommended option and explain why
|
|
44
|
+
|
|
45
|
+
**Presenting the design:**
|
|
46
|
+
|
|
47
|
+
- Once you believe you understand what you're building, present the design
|
|
48
|
+
- Break it into sections of 200-300 words
|
|
49
|
+
- Ask after each section whether it looks right so far
|
|
50
|
+
- Cover: architecture, components, data flow, error handling, testing
|
|
51
|
+
- Be ready to go back and clarify if something doesn't make sense
|
|
52
|
+
|
|
53
|
+
## After the Design
|
|
54
|
+
|
|
55
|
+
**Documentation:**
|
|
56
|
+
|
|
57
|
+
- Write the validated design to `.pi/artifacts/<slug>/design.md`
|
|
58
|
+
- Use template from `.pi/templates/design.md`
|
|
59
|
+
- Use elements-of-style:writing-clearly-and-concisely skill if available
|
|
60
|
+
- Commit the design document to git
|
|
61
|
+
|
|
62
|
+
**Next Phase (if continuing):**
|
|
63
|
+
|
|
64
|
+
- Ask: "Ready to create the PRD?"
|
|
65
|
+
- Load next skill: `spec-driven-development` (auto-discovered from `.pi/skills/`)
|
|
66
|
+
- This moves to Phase 2: Specification
|
|
67
|
+
|
|
68
|
+
**Alternative paths:**
|
|
69
|
+
|
|
70
|
+
- Use `using-git-worktrees` skill to create isolated workspace first
|
|
71
|
+
- Use `planning-and-task-breakdown` skill if skipping formal PRD
|
|
72
|
+
|
|
73
|
+
**Full lifecycle reference:**
|
|
74
|
+
|
|
75
|
+
- Use `development-lifecycle` skill to see all phases
|
|
76
|
+
|
|
77
|
+
## Key Principles
|
|
78
|
+
|
|
79
|
+
- **One question at a time** - Don't overwhelm with multiple questions
|
|
80
|
+
- **Multiple choice preferred** - Easier to answer than open-ended when possible
|
|
81
|
+
- **YAGNI ruthlessly** - Remove unnecessary features from all designs
|
|
82
|
+
- **Explore alternatives** - Always propose 2-3 approaches before settling
|
|
83
|
+
- **Incremental validation** - Present design in sections, validate each
|
|
84
|
+
- **Be flexible** - Go back and clarify when something doesn't make sense
|
|
85
|
+
|
|
86
|
+
## Example Flow
|
|
87
|
+
|
|
88
|
+
**User request**: "Add dark mode to the app"
|
|
89
|
+
|
|
90
|
+
**Good brainstorming questions**:
|
|
91
|
+
1. "Should dark mode be system-preference-aware, manual toggle, or both?"
|
|
92
|
+
2. "Where does theme state live — CSS variables, React context, localStorage?"
|
|
93
|
+
3. "Are there existing color tokens, or do we need to create a design token system?"
|
|
94
|
+
4. "What about images/icons — do they need dark variants?"
|
|
95
|
+
|
|
96
|
+
**Bad brainstorming** (jumping to solution):
|
|
97
|
+
1. "I'll add a ThemeContext with useState and toggle button" ← skipped alternatives
|
|
98
|
+
|
|
99
|
+
## Anti-Patterns
|
|
100
|
+
|
|
101
|
+
| Anti-Pattern | Why It Fails | Instead |
|
|
102
|
+
| --- | --- | --- |
|
|
103
|
+
| Asking questions the codebase can answer (search first) | Wastes turns and slows decisions; signals weak preparation | Do quick repo/docs lookup first, then ask only unresolved questions |
|
|
104
|
+
| Brainstorming during mechanical/routine tasks | Adds overhead when execution is already clear | Skip to execution using the relevant implementation skill |
|
|
105
|
+
| Generating 10+ alternatives without narrowing criteria | Creates analysis paralysis and no decision pressure | Present 2-3 viable options with explicit decision criteria |
|
|
106
|
+
| Continuing to brainstorm after a clear direction emerges | Burns time and erodes momentum | Confirm direction, summarize decisions, transition to PRD/plan |
|
|
107
|
+
|
|
108
|
+
## See Also
|
|
109
|
+
|
|
110
|
+
- `planning-and-task-breakdown` - Turn validated direction into zero-ambiguity implementation tasks
|
|
111
|
+
- `spec-driven-development` - Capture behavioral requirements before implementation
|
|
112
|
+
|
|
113
|
+
## Common Rationalizations
|
|
114
|
+
|
|
115
|
+
| Rationalization | Reality |
|
|
116
|
+
|---|---|
|
|
117
|
+
| "I already know what to build" | Premature convergence is the #1 cause of wrong solutions. Explore alternatives first. |
|
|
118
|
+
| "Asking too many questions wastes time" | 10 questions now saves 10 hours of rework later. |
|
|
119
|
+
| "We'll figure out edge cases during implementation" | Edge cases discovered late become hacks. Surface them during design. |
|
|
120
|
+
| "The first idea is usually the best" | First ideas are biased by recency and familiarity. Generate alternatives. |
|
|
121
|
+
|
|
122
|
+
## Red Flags
|
|
123
|
+
|
|
124
|
+
- Jumping to implementation without exploring alternatives
|
|
125
|
+
- Asking zero clarification questions before proposing a design
|
|
126
|
+
- The design is a single paragraph with no trade-offs discussed
|
|
127
|
+
- User's first idea accepted as final without alternatives explored
|
|
128
|
+
- Design doesn't reference existing codebase patterns or constraints
|
|
129
|
+
|
|
130
|
+
## Verification
|
|
131
|
+
|
|
132
|
+
After completing a brainstorming session:
|
|
133
|
+
|
|
134
|
+
- [ ] At least 2-3 distinct approaches were explored and compared
|
|
135
|
+
- [ ] Trade-offs for each approach are documented
|
|
136
|
+
- [ ] The recommended approach has clear rationale
|
|
137
|
+
- [ ] Key assumptions are surfaced and validated
|
|
138
|
+
- [ ] The design is written to `.pi/artifacts/<slug>/design.md`
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: browser-testing-with-devtools
|
|
3
|
+
description: "Use when verifying or debugging browser behavior with live runtime evidence: DOM state, console errors, network requests, screenshots, performance traces, or end-to-end user flows. Routes between Chrome DevTools and Playwright."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Browser Testing with DevTools
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Browser testing proves what users actually experience. Use runtime evidence instead of assuming UI code works from static inspection.
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
- Building, debugging, or reviewing anything that runs in a browser.
|
|
15
|
+
- Validating forms, navigation, responsive layout, accessibility-visible state, or screenshots.
|
|
16
|
+
- Investigating console errors, network failures, hydration issues, or performance regressions.
|
|
17
|
+
- Reproducing bugs that only appear in a real browser runtime.
|
|
18
|
+
|
|
19
|
+
## When NOT to Use
|
|
20
|
+
|
|
21
|
+
- Pure backend or CLI-only changes.
|
|
22
|
+
- Unit-level logic that is faster and clearer to test without a browser.
|
|
23
|
+
|
|
24
|
+
## Tool Routing
|
|
25
|
+
|
|
26
|
+
| Need | Use |
|
|
27
|
+
| --- | --- |
|
|
28
|
+
| Cross-browser automation, screenshots, repeatable flows | `playwright` |
|
|
29
|
+
| Live Chrome inspection, console/network/runtime state | `chrome-devtools` |
|
|
30
|
+
| Bot-protected docs or static page extraction | `webclaw` (load via `/skill:webclaw`) |
|
|
31
|
+
| UI implementation guidance | `frontend-design` |
|
|
32
|
+
|
|
33
|
+
## Process
|
|
34
|
+
|
|
35
|
+
1. Define the user-visible behavior to prove.
|
|
36
|
+
2. Start the app or identify the target URL.
|
|
37
|
+
3. Choose the lightest browser tool that can produce evidence.
|
|
38
|
+
4. Capture initial state: page URL, screenshot or DOM snapshot, console/network baseline if relevant.
|
|
39
|
+
5. Exercise the user flow with stable selectors or accessible labels.
|
|
40
|
+
6. Capture final evidence: screenshot, DOM state, response status, console output, or trace.
|
|
41
|
+
7. If a bug appears, hand off to `debugging-and-error-recovery` with reproduction steps.
|
|
42
|
+
8. Record exact commands/tool actions and observed result.
|
|
43
|
+
|
|
44
|
+
## Common Rationalizations
|
|
45
|
+
|
|
46
|
+
| Rationalization | Rebuttal |
|
|
47
|
+
| --- | --- |
|
|
48
|
+
| "The component compiles, so the browser is fine." | Runtime integration, CSS, hydration, and network behavior fail outside compilation. |
|
|
49
|
+
| "A screenshot is enough." | Screenshots miss console errors, failed requests, and inaccessible states. |
|
|
50
|
+
| "Manual clicking is faster." | Repeatable scripted flows create evidence and prevent regression. |
|
|
51
|
+
| "The test is flaky, just wait longer." | Use condition-based waiting and prove the actual state changed. |
|
|
52
|
+
|
|
53
|
+
## Red Flags
|
|
54
|
+
|
|
55
|
+
- No browser evidence for UI behavior changes.
|
|
56
|
+
- Ignored console errors or failed network requests.
|
|
57
|
+
- Arbitrary sleeps instead of waiting for conditions.
|
|
58
|
+
- Screenshots captured before animations/data loading settle.
|
|
59
|
+
- Selectors coupled to fragile layout instead of accessible names or stable IDs.
|
|
60
|
+
|
|
61
|
+
## Verification
|
|
62
|
+
|
|
63
|
+
Before declaring browser work complete, provide:
|
|
64
|
+
|
|
65
|
+
- URL or local command used.
|
|
66
|
+
- Browser tool used and why.
|
|
67
|
+
- Screenshots, traces, console/network output, or test result.
|
|
68
|
+
- Any untested browsers/devices and residual risk.
|
|
69
|
+
|
|
70
|
+
## Skill Result Contract
|
|
71
|
+
|
|
72
|
+
```xml
|
|
73
|
+
<skill_result>
|
|
74
|
+
<skill>browser-testing-with-devtools</skill>
|
|
75
|
+
<status>completed|blocked|skipped</status>
|
|
76
|
+
<artifacts>Screenshot, trace, test file, console/network log, or none</artifacts>
|
|
77
|
+
<evidence>Commands/tool actions and observed browser result</evidence>
|
|
78
|
+
<risks>Untested browsers, flaky state, missing app server, or none</risks>
|
|
79
|
+
</skill_result>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Verification
|
|
83
|
+
|
|
84
|
+
After browser testing:
|
|
85
|
+
|
|
86
|
+
- [ ] All console errors are investigated and resolved or documented
|
|
87
|
+
- [ ] Network requests return expected status codes
|
|
88
|
+
- [ ] DOM state matches expected UI state at each step
|
|
89
|
+
- [ ] Performance trace shows acceptable metrics for key flows
|
|
90
|
+
- [ ] Cross-browser testing completed (Chrome, Firefox, Safari)
|