@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,206 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Initialize project setup — AGENTS.md, planning context, user profile, and tech stack
|
|
3
|
+
argument-hint: "[--deep] [--context|--user|--all] [--dry-run] [--help]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Init
|
|
7
|
+
|
|
8
|
+
Initialize project setup. Run once per project.
|
|
9
|
+
|
|
10
|
+
> **Next step for fresh projects:** `/create` to start first feature.
|
|
11
|
+
> **Next step for existing codebases:** `/research` for deep codebase analysis, or just describe what you want to build.
|
|
12
|
+
|
|
13
|
+
## Idempotency Rules
|
|
14
|
+
|
|
15
|
+
| File | Rule |
|
|
16
|
+
|------|------|
|
|
17
|
+
| `AGENTS.md` | Improve in-place — never overwrite blindly |
|
|
18
|
+
| `.pi/tech-stack.md` | Overwrite with detected values (auto-regenerated) |
|
|
19
|
+
| `.pi/roadmap.md` / `.pi/state.md` | Skip if exists, ask before overwrite |
|
|
20
|
+
| `.pi/user.md` | Skip if exists, ask before overwrite |
|
|
21
|
+
|
|
22
|
+
## Parse Arguments
|
|
23
|
+
|
|
24
|
+
| Argument | Default | Description |
|
|
25
|
+
|------------|---------|-------------|
|
|
26
|
+
| `--deep` | false | Comprehensive research for AGENTS.md (~100+ tool calls). **Context-heavy** — prefer a dedicated session, or split across phases (history → structure → patterns) |
|
|
27
|
+
| `--context`| false | Init planning context (roadmap.md, state.md) |
|
|
28
|
+
| `--user` | false | Init user profile (user.md) |
|
|
29
|
+
| `--all` | false | Full init: AGENTS.md + context + user profile |
|
|
30
|
+
| `--dry-run`| false | Preview detection results without writing files |
|
|
31
|
+
| `--help` | false | Show this usage |
|
|
32
|
+
|
|
33
|
+
**Mode rules:**
|
|
34
|
+
- No flags (default): Core project setup — AGENTS.md + tech-stack.md
|
|
35
|
+
- `--context`: Planning context (roadmap.md, state.md)
|
|
36
|
+
- `--user`: User profile (user.md)
|
|
37
|
+
- `--all`: Everything
|
|
38
|
+
- `--deep` applies to AGENTS.md generation only
|
|
39
|
+
|
|
40
|
+
**Brownfield auto-detection:** Existing codebase = any `src/`, `lib/`, or `app/` directory with `.ts`, `.js`, `.tsx`, `.jsx`, `.py`, `.go`, or `.rs` files.
|
|
41
|
+
|
|
42
|
+
**Mode 1 brownfield branch:** If brownfield auto-detected and no `--deep`/`--context` flag, before running default AGENTS.md generation, ask the user: "Detected existing codebase. (a) Deep-profile first — spawn parallel `subagent({ agent: "explore" })` + run `srcwalk`/`fallow` to enrich AGENTS.md and pre-fill context, or (b) continue with basic AGENTS.md only?" Default to (a) for repos with > 50 source files; (b) otherwise. Set `MODE:` in `.pi/state.md` accordingly (`greenfield` | `brownfield` | `mixed`). This closes the silent-greenfield-on-brownfield failure — never run the greenfield flow silently on an existing codebase.
|
|
43
|
+
|
|
44
|
+
## Guard Phase
|
|
45
|
+
|
|
46
|
+
Before initializing:
|
|
47
|
+
- Check if `AGENTS.md` already exists — if yes, improve in-place, never overwrite blindly
|
|
48
|
+
- Check if `.pi/tech-stack.md`, `.pi/roadmap.md`, `.pi/state.md`, `.pi/user.md` exist — ask before overwriting
|
|
49
|
+
- Validate the project's build, test, lint commands before documenting them
|
|
50
|
+
|
|
51
|
+
## Load Skills
|
|
52
|
+
|
|
53
|
+
| Skill | When | Why |
|
|
54
|
+
|-------|------|-----|
|
|
55
|
+
| `context-engineering` | Always (Mode 1) | AGENTS.md structure, context hierarchy, rules file best practices |
|
|
56
|
+
| `documentation-and-adrs` | Always (Mode 1) | Doc conventions, ADR format when architectural decisions arise |
|
|
57
|
+
| `verification-before-completion` | Before writing AGENTS.md | Validate commands before documenting them |
|
|
58
|
+
| `brainstorming` | Conditionally: when ambiguous requirements arise | Refine project vision before initializing |
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Mode 1: Core Setup (Default)
|
|
63
|
+
|
|
64
|
+
### Phase 1: Detect Project
|
|
65
|
+
|
|
66
|
+
Detect and validate:
|
|
67
|
+
- Package manager and dependencies (with versions)
|
|
68
|
+
- Build, test, lint, dev commands — **validate each actually works**
|
|
69
|
+
- CI/CD configuration
|
|
70
|
+
- Existing AI rules (`.cursor/rules/`, `.cursorrules`, `.github/copilot-instructions.md`)
|
|
71
|
+
- Top-level directory structure
|
|
72
|
+
|
|
73
|
+
With `--deep`:
|
|
74
|
+
- Analyze git history (last 50 commits for patterns)
|
|
75
|
+
- Map source directory structure and subsystem candidates
|
|
76
|
+
- Identify common patterns (error handling, logging, data flow)
|
|
77
|
+
- Detect testing patterns and coverage gaps
|
|
78
|
+
|
|
79
|
+
### Phase 2: Preview Detection
|
|
80
|
+
|
|
81
|
+
Show detected summary and ask for confirmation before writing. If `--dry-run`, stop here.
|
|
82
|
+
|
|
83
|
+
### Phase 3: Create AGENTS.md
|
|
84
|
+
|
|
85
|
+
Load `verification-before-completion` skill — validate all commands before documenting them.
|
|
86
|
+
|
|
87
|
+
Create `./AGENTS.md` — target <60 lines (max 150). Include:
|
|
88
|
+
- Tech stack with versions, file structure, validated commands
|
|
89
|
+
- Code example from actual codebase
|
|
90
|
+
- Testing conventions, boundaries, gotchas
|
|
91
|
+
|
|
92
|
+
**Principles:** Examples > explanations. Pointers > copies. If AGENTS.md exists, improve it — don't overwrite blindly.
|
|
93
|
+
|
|
94
|
+
**Architectural decisions:** If `--deep` surfaces a non-obvious architectural choice (framework selection, state strategy, data layer), load `documentation-and-adrs` and propose an ADR using `.pi/templates/adr.md`. Don't force it — only when a real decision worth recording exists.
|
|
95
|
+
|
|
96
|
+
### Phase 4: Create tech-stack.md
|
|
97
|
+
|
|
98
|
+
Write detected values to `.pi/tech-stack.md`. Then persist to long-term memory via the `memory` tool (pi-hermes-memory, action: `add`, target: `failure`, category: `convention`):
|
|
99
|
+
|
|
100
|
+
- content: "Project initialized — [tech stack summary]"
|
|
101
|
+
- (target `failure` holds ALL categorized memories; `convention` = project-specific setup norms)
|
|
102
|
+
|
|
103
|
+
### Phase 5: Setup Fallow (if available)
|
|
104
|
+
|
|
105
|
+
Check if fallow is available. If yes and no `.fallowrc.json` exists:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
npx fallow init --quiet 2>/dev/null || echo "Fallow not available — skipped"
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Report explicitly if skipped.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Mode 2: Planning Context (`--context`)
|
|
116
|
+
|
|
117
|
+
### Phase 1: Discovery (brownfield)
|
|
118
|
+
|
|
119
|
+
If the project has existing code (see auto-detection above), spawn parallel codebase analysis via `subagent({ agent: "explore" })`.
|
|
120
|
+
|
|
121
|
+
If greenfield (no existing code), skip to requirements gathering.
|
|
122
|
+
|
|
123
|
+
### Phase 2: Requirements Gathering
|
|
124
|
+
|
|
125
|
+
Ask questions:
|
|
126
|
+
- What is the project vision? (1-2 sentences)
|
|
127
|
+
- Who are the primary users?
|
|
128
|
+
- What defines success?
|
|
129
|
+
|
|
130
|
+
### Phase 3: Preview
|
|
131
|
+
|
|
132
|
+
Show structured outline and ask for confirmation before writing.
|
|
133
|
+
|
|
134
|
+
### Phase 4: Create Files
|
|
135
|
+
|
|
136
|
+
Create `.pi/roadmap.md` and `.pi/state.md` from templates in `.pi/templates/`.
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Mode 3: User Profile (`--user`)
|
|
141
|
+
|
|
142
|
+
### Phase 1: Gather Preferences
|
|
143
|
+
|
|
144
|
+
Ask about identity, communication style, git workflow preferences.
|
|
145
|
+
|
|
146
|
+
### Phase 2: Preview
|
|
147
|
+
|
|
148
|
+
Show captured preferences summary and ask for confirmation.
|
|
149
|
+
|
|
150
|
+
### Phase 3: Create user.md
|
|
151
|
+
|
|
152
|
+
Write to `.pi/user.md` with the captured preferences.
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Failure Handling
|
|
157
|
+
|
|
158
|
+
| Scenario | Action |
|
|
159
|
+
|----------|--------|
|
|
160
|
+
| Command validation fails | Report which command failed with actual error |
|
|
161
|
+
| AGENTS.md already exists | Improve in-place, don't overwrite blindly |
|
|
162
|
+
| Fallow not available | Skip fallow setup, note in output |
|
|
163
|
+
| Tech stack detection ambiguous | Ask user to confirm, don't guess |
|
|
164
|
+
|
|
165
|
+
## Stop Conditions
|
|
166
|
+
|
|
167
|
+
- User says no to AGENTS.md confirmation → stop, report detection only
|
|
168
|
+
- Roadmap/state/user.md exists and user says no to overwrite → skip, report
|
|
169
|
+
- AGENTS.md exceeds 150 lines → trim before writing
|
|
170
|
+
- Command validation fails → stop, report which command failed
|
|
171
|
+
|
|
172
|
+
## Output
|
|
173
|
+
|
|
174
|
+
Report what was created:
|
|
175
|
+
1. AGENTS.md (if core setup ran)
|
|
176
|
+
2. tech-stack.md (if core setup ran)
|
|
177
|
+
3. roadmap.md + state.md (if `--context`)
|
|
178
|
+
4. user.md (if `--user`)
|
|
179
|
+
5. Recommended next command: `/create` to start first feature, or `/research` to explore.
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
### Platform-Specific Skills
|
|
184
|
+
|
|
185
|
+
If you use a platform-specific technology, the matching skill is auto-discovered in `.pi/skills/`. Load via `/skill:<name>` when needed:
|
|
186
|
+
|
|
187
|
+
- `cloudflare` — Cloudflare Workers, Pages, KV, D1, R2, AI
|
|
188
|
+
- `react-best-practices` — React/Next.js performance patterns
|
|
189
|
+
- `supabase-postgres-best-practices` — Postgres query optimization
|
|
190
|
+
- `swiftui-expert-skill` — SwiftUI development
|
|
191
|
+
- `swift-concurrency` — Swift async/await patterns
|
|
192
|
+
- `core-data-expert` — Core Data on iOS/macOS
|
|
193
|
+
|
|
194
|
+
## Related Commands
|
|
195
|
+
|
|
196
|
+
| Need | Command |
|
|
197
|
+
| ----------------- | ------------- |
|
|
198
|
+
| Create first spec | `/create` |
|
|
199
|
+
| Research codebase | `/research` |
|
|
200
|
+
| Plan feature | `/plan` |
|
|
201
|
+
|
|
202
|
+
## Related Skills
|
|
203
|
+
|
|
204
|
+
- `context-engineering` — AGENTS.md structure and context hierarchy design
|
|
205
|
+
- `documentation-and-adrs` — doc conventions and ADR format
|
|
206
|
+
- `verification-before-completion` — command validation discipline
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: NO-GO qualification gate — decide whether a task is safe to run as an unattended loop
|
|
3
|
+
argument-hint: "<task description> [--help]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Loop-Check: $ARGUMENTS
|
|
7
|
+
|
|
8
|
+
Qualify a task before it is ever scheduled as an unattended loop. Emit a single GO/NO-GO verdict with the cited condition that produced it. This prompt is the gate *before* the gate — it refuses work a loop cannot honestly judge.
|
|
9
|
+
|
|
10
|
+
> Refuse first, test second, checklist last. Never let "looks automatable" override the refuse-list.
|
|
11
|
+
|
|
12
|
+
## Parse Arguments
|
|
13
|
+
|
|
14
|
+
| Argument | Default | Description |
|
|
15
|
+
| ------------- | -------- | ------------------------------------------------ |
|
|
16
|
+
| `<task>` | required | The task proposed for unattended looping |
|
|
17
|
+
| `--help` | false | Show this usage |
|
|
18
|
+
|
|
19
|
+
## Step 1 — Refuse-List (Immediate NO-GO)
|
|
20
|
+
|
|
21
|
+
If the task touches any of these, **stop here** and emit NO-GO. Do not proceed to the 2-condition test.
|
|
22
|
+
|
|
23
|
+
- **auth** — login, sessions, tokens, permissions, auth flows, auth module rewrites
|
|
24
|
+
- **payments** — billing, checkout, refunds, subscriptions, payment provider integration
|
|
25
|
+
- **architecture** — framework/library switches, schema migrations, new DB tables, new services, breaking API changes
|
|
26
|
+
|
|
27
|
+
> Rationale: these need human judgement a loop cannot provide. The refuse-list is the honest ceiling, not a configurable preference.
|
|
28
|
+
|
|
29
|
+
If a refuse-list category is hit → `CONDITION: <refused category> refused` (e.g. `CONDITION: architecture refused`).
|
|
30
|
+
|
|
31
|
+
## Step 2 — The 2-Condition Test
|
|
32
|
+
|
|
33
|
+
Both conditions must hold. If either fails, emit NO-GO citing the failed condition.
|
|
34
|
+
|
|
35
|
+
1. **Verification is automated.** There exists an objective command whose **exit code** decides pass/fail — `npm test`, `tsc --noEmit`, `eslint`, a custom gate script. The stop condition is computational (exit code), never an LLM's opinion. If the only "check" is "the agent says it looks good" → FAIL.
|
|
36
|
+
2. **The token budget absorbs the waste.** The cost of one wasted run (gate fails, no-op, early-exit) is small enough that running on the scheduled cadence does not blow the budget. If a single failed run is expensive (large model, long context, many turns) and there is no per-run cap → FAIL.
|
|
37
|
+
|
|
38
|
+
If condition 1 fails → `CONDITION: verification not automated (no exit-code gate)`.
|
|
39
|
+
If condition 2 fails → `CONDITION: budget does not absorb waste (uncapped/expensive failed run)`.
|
|
40
|
+
|
|
41
|
+
## Step 3 — 30-Second Checklist
|
|
42
|
+
|
|
43
|
+
Confirm every item. Any miss → NO-GO citing the missing item.
|
|
44
|
+
|
|
45
|
+
- [ ] **Objective gate exists** — a named command with a pass = exit 0 contract (write it down; "tests" without a command is not a gate).
|
|
46
|
+
- [ ] **Hard stop exists** — a non-negotiable exit condition: repeated gate failure, budget cap hit, or forbidden path touched. The loop exits; it does not improvise.
|
|
47
|
+
- [ ] **Human approves merge/deploy/dependency changes** — the loop may open PRs and stage work; a human merges, deploys, and changes deps. No auto-merge.
|
|
48
|
+
|
|
49
|
+
Missing gate → `CONDITION: no objective gate`.
|
|
50
|
+
Missing hard stop → `CONDITION: no hard stop`.
|
|
51
|
+
No human-approval boundary → `CONDITION: no human-approval boundary on merge/deploy/deps`.
|
|
52
|
+
|
|
53
|
+
## Step 4 — Emit Verdict
|
|
54
|
+
|
|
55
|
+
Output **exactly** these two lines and nothing else as the decision:
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
VERDICT: GO
|
|
59
|
+
CONDITION: verification automated + budget absorbs waste
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
or
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
VERDICT: NO-GO
|
|
66
|
+
CONDITION: <cited condition from Step 1, 2, or 3>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
- `VERDICT` is `GO` or `NO-GO` — no other values.
|
|
70
|
+
- `CONDITION` cites the specific condition that produced the verdict. For GO, cite both passing conditions. For NO-GO, cite the first failing condition (Step 1 overrides Step 2 overrides Step 3).
|
|
71
|
+
- Do not add rationale, recommendations, or next steps after the verdict lines. The verdict is the contract.
|
|
72
|
+
|
|
73
|
+
## Worked Examples
|
|
74
|
+
|
|
75
|
+
- **"triage failing CI nightly"** with `npm test` gate, no-op early-exit <5k tokens → `VERDICT: GO` / `CONDITION: verification automated + budget absorbs waste`
|
|
76
|
+
- **"rewrite auth module"** → `VERDICT: NO-GO` / `CONDITION: auth refused`
|
|
77
|
+
- **"migrate from REST to GraphQL"** → `VERDICT: NO-GO` / `CONDITION: architecture refused`
|
|
78
|
+
- **"keep docs in sync with code weekly"** with no gate command → `VERDICT: NO-GO` / `CONDITION: verification not automated (no exit-code gate)`
|
|
79
|
+
|
|
80
|
+
## Related
|
|
81
|
+
|
|
82
|
+
| Companion | Role |
|
|
83
|
+
|---|---|
|
|
84
|
+
| `loop-engineering` skill | The 2-condition test, refuse-list, and 5 building blocks this gate codifies |
|
|
85
|
+
| `/loop-init` | Scaffold `.pi/loops/<name>/` once a task is GO |
|
|
86
|
+
| `/loop-review` | Maker/checker verification — the gate *during* a run |
|
|
87
|
+
| `loop-audit` | Readiness scoring (L0-L3) for an already-GO loop |
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Scaffold a new unattended loop at .pi/loops/<name>/ with VISION, STATE, and a per-loop SKILL stub
|
|
3
|
+
argument-hint: "<name> [--help]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Loop Init: $ARGUMENTS
|
|
7
|
+
|
|
8
|
+
Scaffold a new loop-engineering harness at `.pi/loops/<name>/` from the templates shipped in `.pi/templates/`. Run once per loop. The scaffold is the contract + ledger + procedure the orchestrator (T9/T10) drives unattended.
|
|
9
|
+
|
|
10
|
+
> **Prerequisite:** `/loop-check <task>` returned GO. If not, refuse and tell the user to qualify the task first.
|
|
11
|
+
|
|
12
|
+
## Parse Arguments
|
|
13
|
+
|
|
14
|
+
| Argument | Default | Description |
|
|
15
|
+
| -------- | --------- | -------------------------------------------- |
|
|
16
|
+
| `<name>` | required | Loop slug; used as directory name `loop/<name>/<ts>` branch prefix |
|
|
17
|
+
| `--help` | false | Show this usage |
|
|
18
|
+
|
|
19
|
+
**Validation:** `<name>` must be a filesystem-safe slug (`^[a-z0-9][a-z0-9-]*$`, lowercase). Reject names containing `/`, spaces, or upper-case. Trim surrounding whitespace before use.
|
|
20
|
+
|
|
21
|
+
## When to Use
|
|
22
|
+
|
|
23
|
+
- You want to start a new unattended loop (nightly CI triage, dependency bumps, doc sync, PR babysitting).
|
|
24
|
+
- `/loop-check <task>` already returned GO (verification automated + token budget absorbs waste + human approves merge/deploy/deps).
|
|
25
|
+
- You need the contract (VISION.md), dedup ledger (STATE.json + STATE.md), and per-loop procedure (SKILL.md) that the orchestrator will drive.
|
|
26
|
+
|
|
27
|
+
Do NOT use for:
|
|
28
|
+
- One-off tasks (use `/create` or `/fix`).
|
|
29
|
+
- Tasks `/loop-check` refused (auth, payments, architecture) — refuse here too.
|
|
30
|
+
|
|
31
|
+
## The Scaffold Steps
|
|
32
|
+
|
|
33
|
+
### 1. Create the loop directory
|
|
34
|
+
|
|
35
|
+
Create `.pi/loops/<name>/` (parent `.pi/loops/` may not exist yet — create it).
|
|
36
|
+
|
|
37
|
+
### 2. Copy the four artifacts
|
|
38
|
+
|
|
39
|
+
Copy map (exact source → destination):
|
|
40
|
+
|
|
41
|
+
| Source (template) | Destination | Purpose |
|
|
42
|
+
| ----------------------------------------- | ------------------------------------ | ----------------------------------------- |
|
|
43
|
+
| `.pi/templates/loop-vision.md` | `.pi/loops/<name>/VISION.md` | Anti goal-drift contract (FR2) |
|
|
44
|
+
| `.pi/templates/loop-state.md` | `.pi/loops/<name>/STATE.md` | Human-readable state mirror (FR3) |
|
|
45
|
+
| `.pi/templates/loop-state.json` | `.pi/loops/<name>/STATE.json` | Machine dedup ledger (FR3, authoritative) |
|
|
46
|
+
| (new stub) | `.pi/loops/<name>/SKILL.md` | Per-loop procedure (classification + fix patterns) |
|
|
47
|
+
|
|
48
|
+
Copy the three templates byte-for-byte first (placeholders intact), then fill placeholders in the copied files. The `SKILL.md` stub is not a template — write a minimal seed:
|
|
49
|
+
|
|
50
|
+
```markdown
|
|
51
|
+
---
|
|
52
|
+
name: <name>
|
|
53
|
+
description: Per-loop procedure for <name> — classify, fix, escalate
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
# Loop Procedure: <name>
|
|
57
|
+
|
|
58
|
+
Reread `VISION.md` at the start of every run. Do not act outside it.
|
|
59
|
+
|
|
60
|
+
## Procedure
|
|
61
|
+
|
|
62
|
+
1. Reread `VISION.md` (boundaries authoritative).
|
|
63
|
+
2. Read `STATE.json` — build the dedup set from `processed[]`.
|
|
64
|
+
3. Fetch candidate items (per the loop's source: CI runs, PRs, packages, commits).
|
|
65
|
+
4. For each item: skip if in `processed[]`; else classify → fix / escalate / reject.
|
|
66
|
+
5. Run the Gate command (the ```bash block directly under `## Gate` in VISION.md); ship only on exit 0.
|
|
67
|
+
6. Append to `STATE.json.processed[]`, `completed[]`, `escalated[]`, or `failures[]`.
|
|
68
|
+
7. Enforce hard stops (see VISION.md "Hard stops").
|
|
69
|
+
|
|
70
|
+
## Classification rubric
|
|
71
|
+
|
|
72
|
+
<!-- Fill by hand after supervising the first manual runs. -->
|
|
73
|
+
|
|
74
|
+
## Fix patterns
|
|
75
|
+
|
|
76
|
+
<!-- Fill by hand as repeatable fixes are discovered. -->
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### 3. Fill `<name>` placeholders
|
|
80
|
+
|
|
81
|
+
In the copied `VISION.md`, `STATE.md`, and `STATE.json`, replace every placeholder occurrence with the actual loop name:
|
|
82
|
+
|
|
83
|
+
- `<loop-name>` → `<name>`
|
|
84
|
+
- Leave human-fill placeholders (`[Owner]`, `[Date]`, `[cron expression or "manual"]`, `[Allowed action 1]`, `<GATE_COMMAND>`, etc.) as bracketed prompts for the user to edit by hand — do NOT invent values.
|
|
85
|
+
|
|
86
|
+
Tell the user explicitly which placeholders still need their input.
|
|
87
|
+
|
|
88
|
+
### 4. Print the rollout order
|
|
89
|
+
|
|
90
|
+
After scaffolding, print this rollout order so the user knows the path from scaffold to unattended run:
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
Rollout order:
|
|
94
|
+
1. check — /loop-check <task> (already GO; re-run if scope changes)
|
|
95
|
+
2. init — /loop-init <name> (this step — scaffold created)
|
|
96
|
+
3. supervise — run the loop's SKILL.md manually in a session; refine classification/fix patterns
|
|
97
|
+
4. wire — copy loop-orchestrator.ts/.sh + loop-github-action.yml; set cadence + gate + scope
|
|
98
|
+
5. run — schedule cron/launchd (local) or GitHub Actions `on: schedule` (CI); loop runs unattended
|
|
99
|
+
6. review — /loop-review <name> for interactive maker/checker verify
|
|
100
|
+
7. audit/cost — loop-audit scores readiness (L0-L3); track cost-per-accepted-change; kill if acceptance < 50%
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Idempotency Guard
|
|
104
|
+
|
|
105
|
+
Before writing anything:
|
|
106
|
+
|
|
107
|
+
1. Check whether `.pi/loops/<name>/` already exists.
|
|
108
|
+
2. **If it exists:** STOP. Do not overwrite. Ask the user:
|
|
109
|
+
> `.pi/loops/<name>/` already exists. Overwrite all files (VISION.md, STATE.md, STATE.json, SKILL.md)? This destroys any hand-edited contract/state. (y/N)
|
|
110
|
+
3. **Refuse overwrite without explicit confirmation.** On `N` or no answer, abort and report the existing tree without modifying it.
|
|
111
|
+
4. **If it does not exist:** proceed with the scaffold.
|
|
112
|
+
|
|
113
|
+
This guard protects hand-edited VISION.md contracts and STATE.json dedup ledgers from being clobbered by a re-run.
|
|
114
|
+
|
|
115
|
+
## Output
|
|
116
|
+
|
|
117
|
+
Print:
|
|
118
|
+
|
|
119
|
+
1. **Created tree** (e.g.):
|
|
120
|
+
```
|
|
121
|
+
.pi/loops/<name>/
|
|
122
|
+
├── VISION.md (contract — fill [Owner], [Date], cadence, Scope, Gate)
|
|
123
|
+
├── STATE.md (human-readable state mirror)
|
|
124
|
+
├── STATE.json (machine dedup ledger — authoritative)
|
|
125
|
+
└── SKILL.md (per-loop procedure — fill classification + fix patterns by hand)
|
|
126
|
+
```
|
|
127
|
+
2. **Rollout order** (the 7-step block above).
|
|
128
|
+
3. **Placeholders still needing input** (list each `[...]` / `<GATE_COMMAND>` the user must fill by hand, with file:line where useful).
|
|
129
|
+
4. **Next step:** `supervise` — run the loop's `SKILL.md` manually in a session and refine classification/fix patterns before wiring the orchestrator.
|
|
130
|
+
|
|
131
|
+
## Failure Handling
|
|
132
|
+
|
|
133
|
+
| Scenario | Action |
|
|
134
|
+
| ------------------------------------- | ------------------------------------------------------------ |
|
|
135
|
+
| `<name>` missing or invalid slug | Abort with the validation regex and an example |
|
|
136
|
+
| `.pi/loops/<name>/` exists, no confirm| Abort, print existing tree, do not modify |
|
|
137
|
+
| Template missing from `.pi/templates/`| Abort, list which template is missing (T2 must be shipped first) |
|
|
138
|
+
| `<name>` would collide with a reserved path | Abort, suggest an alternate slug |
|
|
139
|
+
|
|
140
|
+
## Stop Conditions
|
|
141
|
+
|
|
142
|
+
- `<name>` invalid → stop, report the regex.
|
|
143
|
+
- Directory exists and user declines overwrite → stop, report existing tree.
|
|
144
|
+
- Any of the three templates missing → stop, report (T2 prerequisite unmet).
|
|
145
|
+
|
|
146
|
+
## Related Commands
|
|
147
|
+
|
|
148
|
+
| Need | Command |
|
|
149
|
+
| ------------------------ | ----------------- |
|
|
150
|
+
| Qualify a task first | `/loop-check` |
|
|
151
|
+
| Review a running loop | `/loop-review` |
|
|
152
|
+
| Audit loop readiness | `loop-audit` |
|
|
153
|
+
|
|
154
|
+
## Related Skills
|
|
155
|
+
|
|
156
|
+
- `loop-engineering` — 2-condition test, 5 building blocks, VISION/state contract, failure modes
|
|
157
|
+
- `planning-and-task-breakdown` — decompose the loop's procedure into verifiable steps
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Maker/checker review for a loop — spawns a verifier subagent that runs the gate and inspects the diff, then emits ACCEPT/REJECT with evidence
|
|
3
|
+
argument-hint: "<loop-name> [--help]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Loop Review: $ARGUMENTS
|
|
7
|
+
|
|
8
|
+
Run the maker/checker gate for `<loop-name>`: dispatch an independent **verifier subagent** that runs the `## Gate` command from the loop's `VISION.md` via bash and reads the exit code, inspect the working-tree diff for scope creep and forbidden touches, then emit exactly `DECISION: ACCEPT|REJECT` plus `EVIDENCE:`. The maker never self-approves — default to **REJECT** on any uncertainty.
|
|
9
|
+
|
|
10
|
+
## When to Use
|
|
11
|
+
|
|
12
|
+
- After a loop's maker (the `pi -p` capability-deprived agent) reports its work done and before the orchestrator ships.
|
|
13
|
+
- Interactive `/loop-review <loop-name>` to manually gate a loop cycle.
|
|
14
|
+
- Whenever you need an independent, computational gate decision — never trust the maker's self-report.
|
|
15
|
+
- Do **not** use for the orchestrator's own gate run (FR7); this prompt is the interactive maker/checker wrapper around the same gate-parse contract.
|
|
16
|
+
|
|
17
|
+
## The Verifier Subagent
|
|
18
|
+
|
|
19
|
+
Dispatch a **verifier** as an independent subagent so the maker cannot influence or self-approve the decision. The verifier's sole job: run the gate, read the exit code, collect diff findings, return raw evidence.
|
|
20
|
+
|
|
21
|
+
### Dispatch
|
|
22
|
+
|
|
23
|
+
Use the `subagent` tool with **type `review`**. Pass a prompt that instructs the verifier to:
|
|
24
|
+
|
|
25
|
+
1. Read `.pi/loops/<loop-name>/VISION.md` (or wherever the loop's VISION lives for this run) from disk — do not trust context-supplied copies.
|
|
26
|
+
2. Extract the gate command using the **exact gate-parse contract** below.
|
|
27
|
+
3. Run the gate via bash and capture the **exit code** (the computational signal — never an opinion).
|
|
28
|
+
4. Inspect the working-tree/staged diff for scope creep and forbidden paths (see The Diff Check).
|
|
29
|
+
5. Return raw evidence only: exit code, gate command run, diff findings (paths touched, any forbidden hits). **No verdict** — the maker (this agent) issues the verdict.
|
|
30
|
+
|
|
31
|
+
### Gate-parse contract (must match T2 exactly)
|
|
32
|
+
|
|
33
|
+
Extract the gate command from `VISION.md` as: **the SINGLE fenced ```bash block located directly under the `## Gate` heading** — require **EXACTLY ONE** such block directly under `## Gate` (zero or more-than-one → REJECT / hard fail). Take that single block's content, strip trailing whitespace, run it via `bash -c "<command>"`, and read the exit code.
|
|
34
|
+
|
|
35
|
+
- `exit 0` → PASS → ship (orchestrator pushes `loop/<name>/<ts>` + opens PR)
|
|
36
|
+
- non-zero → FAIL → no ship; record failure in `STATE.json.failures[]`; cleanup worktree
|
|
37
|
+
|
|
38
|
+
The gate decision is **computational (exit code), never an LLM's opinion**. If `## Gate` is missing, the fenced block is empty, or the block count under `## Gate` is not exactly one (zero or more-than-one), treat that as a hard fail: emit `DECISION: REJECT` with `EVIDENCE: gate not parseable` and do not run anything.
|
|
39
|
+
|
|
40
|
+
### Evidence to collect from the verifier
|
|
41
|
+
|
|
42
|
+
- The exact gate command extracted (verbatim, after whitespace strip).
|
|
43
|
+
- The bash exit code (integer).
|
|
44
|
+
- stdout/stderr tail (last ~20 lines) — enough to cite a concrete failure.
|
|
45
|
+
- List of paths touched in the diff (added/modified/deleted).
|
|
46
|
+
- Any forbidden-path hits (see The Diff Check).
|
|
47
|
+
|
|
48
|
+
## The Diff Check
|
|
49
|
+
|
|
50
|
+
Independently of the verifier (or have the verifier report and you confirm), inspect the diff against the loop's declared boundaries.
|
|
51
|
+
|
|
52
|
+
### Scope creep
|
|
53
|
+
|
|
54
|
+
Compare every path in the diff to `## Scope` and `## Out-of-scope` in `VISION.md`. Any touched path that is not clearly inside `## Scope` is scope creep → REJECT. When a path is ambiguous (not explicitly listed in either section), treat it as out-of-scope and escalate, do not approve.
|
|
55
|
+
|
|
56
|
+
### Forbidden touches (always REJECT)
|
|
57
|
+
|
|
58
|
+
Regardless of scope wording, REJECT immediately if the diff touches any of:
|
|
59
|
+
|
|
60
|
+
- `VISION.md` (the loop contract itself — protected path).
|
|
61
|
+
- The gate command / gate script referenced by `## Gate`.
|
|
62
|
+
- `package.json`, `package-lock.json`, `pnpm-lock.yaml`, `yarn.lock`, or any lockfile.
|
|
63
|
+
- Any path under `## Out-of-scope` in `VISION.md`.
|
|
64
|
+
- Auth, payments, or architectural-decision files (per `## Human-approval-required`).
|
|
65
|
+
|
|
66
|
+
Cite the offending path verbatim in `EVIDENCE:`.
|
|
67
|
+
|
|
68
|
+
## Output Contract
|
|
69
|
+
|
|
70
|
+
Emit exactly two lines (no prose around them, no extra fields):
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
DECISION: ACCEPT|REJECT
|
|
74
|
+
EVIDENCE: <exit code + diff findings>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
- `DECISION: ACCEPT` only when the verifier reports **exit code 0** AND the diff has zero scope-creep and zero forbidden-touch findings.
|
|
78
|
+
- `DECISION: REJECT` otherwise. `EVIDENCE:` must cite the concrete signal — e.g. `gate exit 1: npm test failed (see stderr tail)` or `forbidden touch: package.json` or `scope creep: src/auth/* not in VISION.md Scope`.
|
|
79
|
+
- The orchestrator consumes these two lines machine-readably; do not decorate them with markdown, prefixes, or commentary.
|
|
80
|
+
|
|
81
|
+
## Default-Reject Rule
|
|
82
|
+
|
|
83
|
+
**The maker never self-approves.** The verdict is issued here (the maker/checker prompt), but the *evidence* comes from the independent verifier subagent — never from the maker's own self-report. On any uncertainty — gate not parseable, exit code unreadable, diff not inspectable, scope ambiguous, verifier subagent failed to return — emit:
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
DECISION: REJECT
|
|
87
|
+
EVIDENCE: <what was uncertain — e.g. "verifier did not return exit code" / "scope ambiguous for src/foo.ts">
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Default-reject is the safe state; the orchestrator records it and retries or escalates. Never substitute opinion for the computational exit-code signal.
|