@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,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Fan out web searches across multiple angles, cross-check sources for contradictions, produce a cited report with confidence levels
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# deep-research
|
|
6
|
+
|
|
7
|
+
Fan out web searches across multiple angles on a question, cross-check sources for contradictions, and produce a cited report with confidence levels. Use when you need multi-source verification or current-events coverage.
|
|
8
|
+
|
|
9
|
+
## Args
|
|
10
|
+
|
|
11
|
+
- `question` (required) — The research question or topic
|
|
12
|
+
|
|
13
|
+
## Phases
|
|
14
|
+
|
|
15
|
+
### Phase 1: research
|
|
16
|
+
|
|
17
|
+
- **Agent:** scout
|
|
18
|
+
- **Concurrency:** Dynamic (1 agent per distinct angle, min 3, max 10)
|
|
19
|
+
- **Depends on:** —
|
|
20
|
+
- **Tool:** `subagent` (parallel mode)
|
|
21
|
+
|
|
22
|
+
**Prompt:**
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
Search for different perspectives on the question: {question}. Cover opposing viewpoints, authoritative sources, and recent developments. For each finding, include the URL and publication date. Return findings grouped by angle in this format:
|
|
26
|
+
|
|
27
|
+
## Angle: [angle name]
|
|
28
|
+
- **Finding:** [summary]
|
|
29
|
+
- **Source:** [URL]
|
|
30
|
+
- **Date:** [publication date]
|
|
31
|
+
- **Confidence:** [high/medium/low]
|
|
32
|
+
|
|
33
|
+
Keep each finding under 200 words.
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Phase 2: cross-check
|
|
37
|
+
|
|
38
|
+
- **Depends on:** Phase 1
|
|
39
|
+
- **Agent:** review
|
|
40
|
+
- **Concurrency:** Dynamic (estimate ~5 findings per agent, min 2, max 10)
|
|
41
|
+
- **Tool:** `subagent` (parallel mode)
|
|
42
|
+
|
|
43
|
+
**Prompt:**
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
Cross-check these findings: {phase_1_output}. Flag contradictions between sources, identify confirmable facts with supporting citations, and note where sources disagree or lack evidence. Return a verified fact set in this format:
|
|
47
|
+
|
|
48
|
+
## Verified Facts
|
|
49
|
+
- **Fact:** [statement]
|
|
50
|
+
- **Confidence:** [high/medium/low]
|
|
51
|
+
- **Supporting sources:** [list of URLs]
|
|
52
|
+
|
|
53
|
+
## Contradictions
|
|
54
|
+
- **Claim A:** [statement]
|
|
55
|
+
- **Claim B:** [contradicting statement]
|
|
56
|
+
- **Resolution:** [which is more credible and why]
|
|
57
|
+
|
|
58
|
+
Keep each item under 150 words.
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Final Synthesis (Main Agent)
|
|
62
|
+
|
|
63
|
+
After Phase 2 completes, synthesize the final report directly from {phase_2_output}.
|
|
64
|
+
|
|
65
|
+
Write a final cited report using markdown with sections:
|
|
66
|
+
1. **Executive Summary** — Brief overview of key findings
|
|
67
|
+
2. **Key Findings** — Detailed findings with inline citations
|
|
68
|
+
3. **Contradictions & Uncertainties** — Areas of disagreement or low confidence
|
|
69
|
+
4. **Sources** — Complete list of all sources consulted
|
|
70
|
+
|
|
71
|
+
Annotate each claim with confidence level (high/medium/low). Keep the report under 2000 words.
|
|
72
|
+
|
|
73
|
+
## Invocation Example
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
/research <topic> # When complexity is detected as complex
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Or directly:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
subagent({
|
|
83
|
+
chain: [
|
|
84
|
+
{ agent: "scout", task: "Phase 1 prompt per angle for: {question}" },
|
|
85
|
+
{ agent: "review", task: "Phase 2 prompt cross-checking findings" },
|
|
86
|
+
// Main agent synthesizes
|
|
87
|
+
]
|
|
88
|
+
});
|
|
89
|
+
```
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Multi-agent development lifecycle — research → validate → plan → implement → verify (with sub-workflow composition)
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# development-lifecycle-workflow
|
|
6
|
+
|
|
7
|
+
Multi-agent workflow that chains the development lifecycle phases with parallelism. Uses specialized agents (scouts, reviewers, planners) and composes with the batch-implement workflow for parallel implementation.
|
|
8
|
+
|
|
9
|
+
## Args
|
|
10
|
+
|
|
11
|
+
- `feature` (required) — The feature or change to implement
|
|
12
|
+
|
|
13
|
+
## Phases
|
|
14
|
+
|
|
15
|
+
### Phase 1: Research Approaches
|
|
16
|
+
|
|
17
|
+
- **Agent:** scout
|
|
18
|
+
- **Concurrency:** Dynamic (1 agent per approach, min 2, max 5)
|
|
19
|
+
- **Tool:** `subagent` (parallel mode)
|
|
20
|
+
|
|
21
|
+
**Prompt:**
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
Research different approaches to implementing: {feature}. For each approach, analyze:
|
|
25
|
+
1. Technical feasibility
|
|
26
|
+
2. Trade-offs and risks
|
|
27
|
+
3. Implementation complexity
|
|
28
|
+
4. Dependencies and constraints
|
|
29
|
+
|
|
30
|
+
Return findings in this format:
|
|
31
|
+
|
|
32
|
+
## Approach 1: [name]
|
|
33
|
+
- **Description:** [summary]
|
|
34
|
+
- **Pros:** [list]
|
|
35
|
+
- **Cons:** [list]
|
|
36
|
+
- **Complexity:** [low/medium/high]
|
|
37
|
+
- **Risks:** [list]
|
|
38
|
+
|
|
39
|
+
Keep each approach under 300 words.
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Phase 2: Validate Requirements
|
|
43
|
+
|
|
44
|
+
- **Depends on:** Phase 1
|
|
45
|
+
- **Agent:** review
|
|
46
|
+
- **Concurrency:** Dynamic (1 agent per approach, min 1, max 5)
|
|
47
|
+
- **Tool:** `subagent` (parallel mode)
|
|
48
|
+
|
|
49
|
+
**Prompt:**
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
Review these approaches: {phase_1_output}. Validate the requirements and constraints for each approach. Check for:
|
|
53
|
+
1. Technical accuracy
|
|
54
|
+
2. Feasibility given project constraints
|
|
55
|
+
3. Alignment with existing patterns
|
|
56
|
+
4. Missing considerations
|
|
57
|
+
|
|
58
|
+
Return validated requirements in this format:
|
|
59
|
+
|
|
60
|
+
## Validated Requirements
|
|
61
|
+
- **Approach 1:** [validated requirements]
|
|
62
|
+
- **Approach 2:** [validated requirements]
|
|
63
|
+
- **Approach 3:** [validated requirements]
|
|
64
|
+
|
|
65
|
+
## Recommendations
|
|
66
|
+
- **Recommended approach:** [which approach and why]
|
|
67
|
+
- **Critical constraints:** [list]
|
|
68
|
+
|
|
69
|
+
Keep each section under 200 words.
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Phase 3: Create Implementation Plan
|
|
73
|
+
|
|
74
|
+
- **Depends on:** Phase 2
|
|
75
|
+
- **Agent:** plan
|
|
76
|
+
- **Concurrency:** 1
|
|
77
|
+
- **Tool:** `subagent` (single mode)
|
|
78
|
+
|
|
79
|
+
**Prompt:**
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
Based on the validated requirements: {phase_2_output}, create a detailed implementation plan for the recommended approach. Break down into independent tasks that can be implemented in parallel.
|
|
83
|
+
|
|
84
|
+
If the recommended approach has structural implications (new components, data flow changes, boundary shifts), also produce a design doc using `.pi/templates/design.md` written to `.pi/artifacts/$SLUG/design.md`.
|
|
85
|
+
|
|
86
|
+
Return the plan in this format:
|
|
87
|
+
|
|
88
|
+
## Implementation Plan
|
|
89
|
+
|
|
90
|
+
### Overview
|
|
91
|
+
[Brief description of the approach]
|
|
92
|
+
|
|
93
|
+
### Tasks
|
|
94
|
+
- **Task 1:** [description]
|
|
95
|
+
- Files: [list]
|
|
96
|
+
- Dependencies: [none or task names]
|
|
97
|
+
- **Task 2:** [description]
|
|
98
|
+
- Files: [list]
|
|
99
|
+
- Dependencies: [none or task names]
|
|
100
|
+
|
|
101
|
+
Keep each task description under 100 words.
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Phase 4: Parallel Implementation
|
|
105
|
+
|
|
106
|
+
- **Depends on:** Phase 3
|
|
107
|
+
- **Workflow:** batch-implement
|
|
108
|
+
- **Args:** plan from Phase 3
|
|
109
|
+
|
|
110
|
+
Execute the `batch-implement` workflow via recursive composition:
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
run_workflow({ name: "batch-implement", args: { plan: phase_3_output } })
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
This will: 1) review the plan for task independence, 2) implement tasks in parallel, 3) verify each implementation, 4) merge the results.
|
|
117
|
+
|
|
118
|
+
**Implementation note**: This composes with the batch-implement workflow by passing the plan output from Phase 3 as input.
|
|
119
|
+
|
|
120
|
+
### Phase 5: Verify Different Aspects
|
|
121
|
+
|
|
122
|
+
- **Depends on:** Phase 4
|
|
123
|
+
- **Agent:** review
|
|
124
|
+
- **Concurrency:** 3 (one per aspect: correctness, code-quality, performance-security)
|
|
125
|
+
- **Tool:** `subagent` (parallel mode)
|
|
126
|
+
|
|
127
|
+
**Prompt:**
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
Verify the implementation from different aspects: {phase_4_output}. Each reviewer should focus on a different aspect:
|
|
131
|
+
|
|
132
|
+
**Reviewer 1: Correctness**
|
|
133
|
+
- Verify all requirements are met
|
|
134
|
+
- Check for logic errors
|
|
135
|
+
- Validate edge cases
|
|
136
|
+
|
|
137
|
+
**Reviewer 2: Code Quality**
|
|
138
|
+
- Check for code style and patterns
|
|
139
|
+
- Identify code smells
|
|
140
|
+
- Verify test coverage
|
|
141
|
+
|
|
142
|
+
**Reviewer 3: Performance & Security**
|
|
143
|
+
- Check for performance bottlenecks
|
|
144
|
+
- Identify security vulnerabilities
|
|
145
|
+
- Validate error handling
|
|
146
|
+
|
|
147
|
+
Return findings in this format:
|
|
148
|
+
|
|
149
|
+
## Aspect: [correctness/code-quality/performance-security]
|
|
150
|
+
- **Status:** [pass/fail]
|
|
151
|
+
- **Issues:** [list with file:line refs]
|
|
152
|
+
- **Recommendations:** [list]
|
|
153
|
+
|
|
154
|
+
Keep each finding under 150 words.
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Invocation
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
run_workflow({ name: "development-lifecycle-workflow", args: { feature: "<feature>" } })
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Or compose manually:
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
subagent({
|
|
167
|
+
chain: [
|
|
168
|
+
{ agent: "scout", task: "Phase 1 prompt per approach for: {feature}" },
|
|
169
|
+
{ agent: "review", task: "Phase 2 prompt validating approaches" },
|
|
170
|
+
{ agent: "plan", task: "Phase 3 prompt creating implementation plan" },
|
|
171
|
+
// Phase 4 composes batch-implement via run_workflow({ name: "batch-implement", ... })
|
|
172
|
+
{ agent: "review", task: "Phase 5 verifying implementation" },
|
|
173
|
+
]
|
|
174
|
+
});
|
|
175
|
+
```
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Fallow structural analysis, quality grade update, prioritized findings, and optional cleanup PRs
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# garbage-collection
|
|
6
|
+
|
|
7
|
+
**Pattern:** Fallow analysis → review findings → file issues → optional auto-fix PRs
|
|
8
|
+
**Trigger:** Manual via `/gc` command or scheduled cadence
|
|
9
|
+
|
|
10
|
+
## Phases
|
|
11
|
+
|
|
12
|
+
### Phase 1: Fallow Scan
|
|
13
|
+
|
|
14
|
+
- **Agent:** general
|
|
15
|
+
- **Concurrency:** 1
|
|
16
|
+
- **Depends on:** —
|
|
17
|
+
|
|
18
|
+
**Prompt:**
|
|
19
|
+
|
|
20
|
+
Run full structural analysis:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npx fallow --format json --quiet > .pi/artifacts/gc-fallow.json
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Extract key findings:
|
|
27
|
+
- Dead code (unused exports, files, dependencies)
|
|
28
|
+
- Code duplication (clone groups)
|
|
29
|
+
- Complexity hotspots (high cyclomatic complexity)
|
|
30
|
+
- Architecture boundary violations
|
|
31
|
+
|
|
32
|
+
Report findings as structured JSON to {phase_1_output}.
|
|
33
|
+
|
|
34
|
+
### Phase 2: Quality Grade Update
|
|
35
|
+
|
|
36
|
+
- **Agent:** general
|
|
37
|
+
- **Concurrency:** 1
|
|
38
|
+
- **Depends on:** Phase 1
|
|
39
|
+
|
|
40
|
+
**Prompt:**
|
|
41
|
+
|
|
42
|
+
Grade each domain by scanning findings from {phase_1_output}:
|
|
43
|
+
|
|
44
|
+
| Domain | Definition | Source |
|
|
45
|
+
|--------|------------|--------|
|
|
46
|
+
| Plugin layer | `.pi/extensions/*.ts` | Fallow + structural check |
|
|
47
|
+
| Command layer | `.pi/prompts/*.md` | Manual assessment |
|
|
48
|
+
| Skills layer | `.pi/skills/*/SKILL.md` | Fallow |
|
|
49
|
+
| Documentation | `.pi/context/*.md` | Manual + link checker |
|
|
50
|
+
| Agent layer | `.pi/agents/*.md` | Manual assessment |
|
|
51
|
+
| Templates | `.pi/templates/*.md` | Manual assessment |
|
|
52
|
+
|
|
53
|
+
For each domain, assign grade:
|
|
54
|
+
- **A** — No issues, well-maintained
|
|
55
|
+
- **B** — Minor issues, no blockers
|
|
56
|
+
- **C** — Notable decay, needs cleanup
|
|
57
|
+
- **D** — Significant decay, priority cleanup
|
|
58
|
+
|
|
59
|
+
Update `.pi/QUALITY.md` with current grades.
|
|
60
|
+
|
|
61
|
+
Report grade table to {phase_2_output}.
|
|
62
|
+
|
|
63
|
+
### Phase 3: Prioritize Findings
|
|
64
|
+
|
|
65
|
+
- **Agent:** general
|
|
66
|
+
- **Concurrency:** 1
|
|
67
|
+
- **Depends on:** Phase 2
|
|
68
|
+
|
|
69
|
+
**Prompt:**
|
|
70
|
+
|
|
71
|
+
Using {phase_2_output} grades and {phase_1_output} findings, classify each finding by severity:
|
|
72
|
+
|
|
73
|
+
| Severity | Criteria | Action |
|
|
74
|
+
|----------|----------|--------|
|
|
75
|
+
| P0 | Dead code in critical path, security hazard | Immediate fix PR |
|
|
76
|
+
| P1 | Duplication >5 instances, complexity >20 | File issue / schedule PR |
|
|
77
|
+
| P2 | Minor style drift, stale docs | Log for next GC cycle |
|
|
78
|
+
| P3 | Informational | Note only |
|
|
79
|
+
|
|
80
|
+
Report prioritized findings to {phase_3_output}.
|
|
81
|
+
|
|
82
|
+
### Phase 4: Open Cleanup PRs (Optional)
|
|
83
|
+
|
|
84
|
+
- **Agent:** general
|
|
85
|
+
- **Concurrency:** Dynamic (estimate 1-2 per P0/P1, min 1, max 5)
|
|
86
|
+
- **Depends on:** Phase 3
|
|
87
|
+
- **Gate:** Defaults to dry-run. Only opens PRs when invoked with `--apply`. Without `--apply`, report what would be cleaned and stop.
|
|
88
|
+
|
|
89
|
+
**Prompt:**
|
|
90
|
+
|
|
91
|
+
For each P0 and P1 finding from {phase_3_output}, spawn a `general` agent per finding using subagent (parallel mode). **Only run this phase when invoked with `apply: true`; otherwise report what would be cleaned and skip.**
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
subagent({
|
|
95
|
+
agent: "general",
|
|
96
|
+
prompt: `
|
|
97
|
+
Understand this Fallow finding: [detail]
|
|
98
|
+
Create a fix branch
|
|
99
|
+
Apply the fix
|
|
100
|
+
Verify with: npm run typecheck && npm run lint
|
|
101
|
+
Open PR with conventional commit message (requires user confirmation before push)
|
|
102
|
+
`
|
|
103
|
+
});
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Report list of opened PRs to {phase_4_output}. When `apply` is false/absent, emit the planned cleanup list only.
|
|
107
|
+
|
|
108
|
+
### Phase 5: Report
|
|
109
|
+
|
|
110
|
+
- **Agent:** general
|
|
111
|
+
- **Concurrency:** 1
|
|
112
|
+
- **Depends on:** Phase 4
|
|
113
|
+
|
|
114
|
+
**Prompt:**
|
|
115
|
+
|
|
116
|
+
Generate final GC report by aggregating {phase_1_output}, {phase_2_output}, {phase_3_output}, {phase_4_output}:
|
|
117
|
+
|
|
118
|
+
```text
|
|
119
|
+
## GC Report — $(date -u +%Y-%m-%d)
|
|
120
|
+
|
|
121
|
+
| Domain | Grade | Issues | Trend |
|
|
122
|
+
|--------|-------|--------|-------|
|
|
123
|
+
| Plugins | A | 0 | → |
|
|
124
|
+
| Commands | B | 2 | ↓ |
|
|
125
|
+
| Skills | A | 0 | → |
|
|
126
|
+
| Docs | B | 1 | ↓ |
|
|
127
|
+
| Agents | A | 0 | → |
|
|
128
|
+
| Templates | A | 0 | → |
|
|
129
|
+
|
|
130
|
+
**P0:** 0 | **P1:** 2 | **P2:** 1 | **P3:** 3
|
|
131
|
+
**PRs opened:** 1
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Final Synthesis (Main Agent)
|
|
135
|
+
|
|
136
|
+
Aggregate all phase outputs into a single cleanup report. Highlight any P0/P1 issues that did not get auto-fixed and need human review.
|
|
137
|
+
|
|
138
|
+
## Invocation
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
/gc
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Or as part of CI/scheduled task.
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Score-gated review-driven feedback loop for high-risk features; iterates review cycles until quality threshold (5/5) or escalation
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Quality Loop Workflow
|
|
6
|
+
|
|
7
|
+
Score-gated, review-driven feedback loop for high-risk features. Runs iterative review cycles until the implementation reaches quality threshold (5/5) or escalation is triggered.
|
|
8
|
+
|
|
9
|
+
> **When to use:** High-risk features, explicit user quality gating requests, complex cross-cutting changes.
|
|
10
|
+
> **Invoked by:** `/ship` Phase 5 (Iterative Quality Loop mode)
|
|
11
|
+
|
|
12
|
+
## Phases
|
|
13
|
+
|
|
14
|
+
### Phase 1: Setup
|
|
15
|
+
- **Agent:** general
|
|
16
|
+
- **Concurrency:** 1
|
|
17
|
+
- **Depends on:** —
|
|
18
|
+
- **Prompt:**
|
|
19
|
+
Initialize the review loop state. Create or update `.pi/artifacts/$SLUG/review-state.json`:
|
|
20
|
+
|
|
21
|
+
```json
|
|
22
|
+
{
|
|
23
|
+
"slug": "$SLUG",
|
|
24
|
+
"rounds": 0,
|
|
25
|
+
"maxRounds": 5,
|
|
26
|
+
"lastScore": 0,
|
|
27
|
+
"sameScoreCount": 0,
|
|
28
|
+
"findingsResolved": 0,
|
|
29
|
+
"findingsRemaining": 0,
|
|
30
|
+
"status": "active"
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Confirm: review-state.json initialized for slug `$SLUG`.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
### Phase 2: Review
|
|
39
|
+
- **Agent:** review
|
|
40
|
+
- **Concurrency:** 1
|
|
41
|
+
- **Depends on:** Phase 1
|
|
42
|
+
- **Prompt:**
|
|
43
|
+
You are a quality-gate reviewer. Your job is to produce a confidence score and categorized findings.
|
|
44
|
+
|
|
45
|
+
**Context:**
|
|
46
|
+
- Read the spec from `.pi/artifacts/$SLUG/spec.md`
|
|
47
|
+
- Read the current diff: `git diff origin/main...HEAD`
|
|
48
|
+
- Read the review state from `.pi/artifacts/$SLUG/review-state.json`
|
|
49
|
+
|
|
50
|
+
**Score (X/5):**
|
|
51
|
+
| Score | Criteria |
|
|
52
|
+
|-------|----------|
|
|
53
|
+
| 5/5 | Perfect — all acceptance criteria met, no issues |
|
|
54
|
+
| 4/5 | Good — minor issues only, safe to ship |
|
|
55
|
+
| 3/5 | Needs work — important issues remain |
|
|
56
|
+
| 2/5 | Significant gaps — critical issues or missing features |
|
|
57
|
+
| 1/5 | Fundamentally wrong — does not address the spec |
|
|
58
|
+
|
|
59
|
+
**Findings:** Return an array of findings, each with:
|
|
60
|
+
- `severity`: "critical" | "important" | "minor"
|
|
61
|
+
- `file`: path with line number
|
|
62
|
+
- `finding`: description of the issue
|
|
63
|
+
- `suggestion`: concrete fix suggestion
|
|
64
|
+
|
|
65
|
+
**Return format:**
|
|
66
|
+
```json
|
|
67
|
+
{
|
|
68
|
+
"score": 3,
|
|
69
|
+
"findings": [
|
|
70
|
+
{ "severity": "critical", "file": "src/auth.ts:42", "finding": "...", "suggestion": "..." }
|
|
71
|
+
],
|
|
72
|
+
"suggested_action": "fix" | "ask_user" | "proceed"
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
### Phase 3: Gate
|
|
79
|
+
- **Agent:** general
|
|
80
|
+
- **Concurrency:** 1
|
|
81
|
+
- **Depends on:** Phase 2
|
|
82
|
+
- **Prompt:**
|
|
83
|
+
Evaluate the review score from Phase 2:
|
|
84
|
+
|
|
85
|
+
| Score | Action |
|
|
86
|
+
|-------|--------|
|
|
87
|
+
| 5/5 | Update review-state.json: `status: "passed"`. Exit loop. Mark as DONE. |
|
|
88
|
+
| 4/5 | Present findings to user. Ask: "Minor issues only. Ship as-is or fix?" |
|
|
89
|
+
| <4/5 | Continue to Phase 4 (Stall Check) |
|
|
90
|
+
|
|
91
|
+
Update review-state.json:
|
|
92
|
+
- Increment `rounds` by 1
|
|
93
|
+
- Set `lastScore` to current score
|
|
94
|
+
- If score unchanged from previous round, increment `sameScoreCount`
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### Phase 4: Stall Check
|
|
99
|
+
- **Agent:** general
|
|
100
|
+
- **Concurrency:** 1
|
|
101
|
+
- **Depends on:** Phase 3
|
|
102
|
+
- **Prompt:**
|
|
103
|
+
Read `.pi/artifacts/$SLUG/review-state.json`.
|
|
104
|
+
|
|
105
|
+
**Stall detection:**
|
|
106
|
+
- If `sameScoreCount ≥ 2`: ESCALATE — fixes are not improving quality. Surface accumulated findings to user with the message:
|
|
107
|
+
> "Quality loop stalled — same score ({score}/5) for 2 consecutive rounds. Accumulated findings may indicate a design issue. Options:
|
|
108
|
+
> 1. Accept current state and proceed
|
|
109
|
+
> 2. Revisit the spec/plan
|
|
110
|
+
> 3. Manual intervention"
|
|
111
|
+
|
|
112
|
+
**Max rounds:**
|
|
113
|
+
- If `rounds ≥ maxRounds (5)`: ESCALATE — maximum iterations reached. Report all unresolved findings.
|
|
114
|
+
> "Quality loop reached maximum rounds (5). Current score: {score}/5. Unresolved findings: [list]."
|
|
115
|
+
|
|
116
|
+
If no stall and not maxed, continue to Phase 5 (Filter).
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
### Phase 5: Filter
|
|
121
|
+
- **Agent:** general
|
|
122
|
+
- **Concurrency:** 1
|
|
123
|
+
- **Depends on:** Phase 4
|
|
124
|
+
- **Prompt:**
|
|
125
|
+
Split Phase 2 findings into three categories:
|
|
126
|
+
|
|
127
|
+
| Category | Criteria | Action |
|
|
128
|
+
|----------|----------|--------|
|
|
129
|
+
| **Actionable** | Concrete fix with clear file:line and suggestion | Route to Phase 6 fixer |
|
|
130
|
+
| **Informational** | Observation, convention note, style preference | Log to progress.md, no fix needed |
|
|
131
|
+
| **Architecture** | Structural or design concern | Stop — escalate to user with options |
|
|
132
|
+
|
|
133
|
+
If any architecture findings exist, stop and present to user:
|
|
134
|
+
> "Architecture finding: [description] at [file:line]. This may require plan/spec revision. Options:
|
|
135
|
+
> 1. Proceed despite concern
|
|
136
|
+
> 2. Revise spec/plan
|
|
137
|
+
> 3. Manual review"
|
|
138
|
+
|
|
139
|
+
Update review-state.json: `findingsRemaining` = count of actionable findings.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
### Phase 6: Fix
|
|
144
|
+
- **Agent:** general
|
|
145
|
+
- **Concurrency:** Dynamic (1 per actionable finding, max 3 parallel)
|
|
146
|
+
- **Depends on:** Phase 5
|
|
147
|
+
- **Prompt:**
|
|
148
|
+
You are fixing review finding: **{finding.severity}: {finding.finding}**
|
|
149
|
+
|
|
150
|
+
**Context:**
|
|
151
|
+
- File: `{finding.file}`
|
|
152
|
+
- Suggestion: `{finding.suggestion}`
|
|
153
|
+
|
|
154
|
+
**Instructions:**
|
|
155
|
+
1. Read the file at `{finding.file}`
|
|
156
|
+
2. Apply the fix
|
|
157
|
+
3. Run typecheck + lint on the changed file
|
|
158
|
+
4. Report: status (fixed/unable), what was changed, verification result
|
|
159
|
+
|
|
160
|
+
**Guard:** Stay within the file scope. Do not touch unrelated code.
|
|
161
|
+
|
|
162
|
+
After all fixers complete, the orchestrator:
|
|
163
|
+
- Updates review-state.json: `findingsResolved` += count of successful fixes
|
|
164
|
+
- Re-runs full verification gates (typecheck + lint + test)
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
### Phase 7: Re-Review
|
|
169
|
+
- **Agent:** general
|
|
170
|
+
- **Concurrency:** 1
|
|
171
|
+
- **Depends on:** Phase 6
|
|
172
|
+
- **Prompt:**
|
|
173
|
+
Loop back to Phase 2. The implementation has been updated based on review findings. Spawn a fresh review agent with the updated diff and spec.
|
|
174
|
+
|
|
175
|
+
```typescript
|
|
176
|
+
subagent({
|
|
177
|
+
agent: "review",
|
|
178
|
+
prompt: "[Phase 2 prompt, with updated diff]"
|
|
179
|
+
});
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Continue the loop until exit condition (score ≥ 5, stall, or max rounds).
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## Exit Conditions
|
|
187
|
+
|
|
188
|
+
| Condition | Trigger | Action |
|
|
189
|
+
|-----------|---------|--------|
|
|
190
|
+
| **PASS** | Score 5/5 | Mark review-state.json status "passed". Report completion. |
|
|
191
|
+
| **USER ACCEPT** | Score 4/5, user accepts | Mark review-state.json status "accepted". Proceed. |
|
|
192
|
+
| **STALL** | sameScoreCount ≥ 2 | Escalate with accumulated findings. |
|
|
193
|
+
| **MAX ROUNDS** | rounds ≥ 5 | Escalate with unresolved findings. |
|
|
194
|
+
| **ARCHITECTURE** | Architecture-level finding | Escalate to user for design decision. |
|
|
195
|
+
|
|
196
|
+
## Output
|
|
197
|
+
|
|
198
|
+
After loop exit, report:
|
|
199
|
+
1. Final score (X/5)
|
|
200
|
+
2. Rounds completed
|
|
201
|
+
3. Findings resolved / remaining
|
|
202
|
+
4. Exit reason
|
|
203
|
+
5. Recommendation: proceed, revise, or manual review
|
|
204
|
+
|
|
205
|
+
## Invocation
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
run_workflow({ name: "quality-loop", args: { slug: "<slug>" } })
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Typically invoked by `/ship` Phase 5 when high-risk mode is selected.
|
package/package.json
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@minhduydev/mdpi",
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "CLI to scaffold and manage a Pi coding-agent kit (.pi/) in any repo",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"pi",
|
|
7
|
+
"pi-coding-agent",
|
|
8
|
+
"cli",
|
|
9
|
+
"scaffold",
|
|
10
|
+
"template",
|
|
11
|
+
"agent-kit"
|
|
12
|
+
],
|
|
13
|
+
"homepage": "https://github.com/MinhDuyDEV/ockit-mapping#readme",
|
|
14
|
+
"bugs": {
|
|
15
|
+
"url": "https://github.com/MinhDuyDEV/ockit-mapping/issues"
|
|
16
|
+
},
|
|
17
|
+
"license": "MIT",
|
|
18
|
+
"author": "MinhDuyDEV <buub1309120@gmail.com>",
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "git+https://github.com/MinhDuyDEV/ockit-mapping.git"
|
|
22
|
+
},
|
|
23
|
+
"publishConfig": {
|
|
24
|
+
"access": "public"
|
|
25
|
+
},
|
|
26
|
+
"type": "module",
|
|
27
|
+
"bin": {
|
|
28
|
+
"mdpi": "dist/index.js"
|
|
29
|
+
},
|
|
30
|
+
"files": [
|
|
31
|
+
"dist",
|
|
32
|
+
"README.md"
|
|
33
|
+
],
|
|
34
|
+
"engines": {
|
|
35
|
+
"node": ">=20"
|
|
36
|
+
},
|
|
37
|
+
"scripts": {
|
|
38
|
+
"build": "tsdown && node scripts/bundle-template.mjs",
|
|
39
|
+
"typecheck": "tsc --noEmit",
|
|
40
|
+
"prepublishOnly": "npm run build && npm run typecheck",
|
|
41
|
+
"test": "vitest run",
|
|
42
|
+
"test:watch": "vitest",
|
|
43
|
+
"dev": "tsx src/index.ts"
|
|
44
|
+
},
|
|
45
|
+
"dependencies": {
|
|
46
|
+
"@clack/prompts": "^0.7.0",
|
|
47
|
+
"cac": "^6.7.14",
|
|
48
|
+
"picocolors": "^1.1.1"
|
|
49
|
+
},
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"@types/node": "^22.19.11",
|
|
52
|
+
"tsdown": "latest",
|
|
53
|
+
"tsx": "latest",
|
|
54
|
+
"typescript": "^5.9.3",
|
|
55
|
+
"vitest": "^4.1.9"
|
|
56
|
+
}
|
|
57
|
+
}
|