@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.
Files changed (561) hide show
  1. package/README.md +31 -0
  2. package/dist/index.js +1187 -0
  3. package/dist/template/.pi/.env.example +28 -0
  4. package/dist/template/.pi/AGENTS.md +226 -0
  5. package/dist/template/.pi/QUALITY.md +13 -0
  6. package/dist/template/.pi/README.md +452 -0
  7. package/dist/template/.pi/VERSION +1 -0
  8. package/dist/template/.pi/agents/INDEX.md +54 -0
  9. package/dist/template/.pi/agents/build.md +194 -0
  10. package/dist/template/.pi/agents/explore.md +85 -0
  11. package/dist/template/.pi/agents/general.md +189 -0
  12. package/dist/template/.pi/agents/plan.md +407 -0
  13. package/dist/template/.pi/agents/review.md +198 -0
  14. package/dist/template/.pi/agents/scout.md +142 -0
  15. package/dist/template/.pi/agents/vision.md +157 -0
  16. package/dist/template/.pi/artifacts/example/plan.md +12 -0
  17. package/dist/template/.pi/artifacts/example/progress.md +4 -0
  18. package/dist/template/.pi/artifacts/example/research.md +4 -0
  19. package/dist/template/.pi/artifacts/example/spec.md +16 -0
  20. package/dist/template/.pi/context/architecture.md +141 -0
  21. package/dist/template/.pi/context/fallow.md +137 -0
  22. package/dist/template/.pi/extensions/templates-injector.ts +76 -0
  23. package/dist/template/.pi/extensions/workflows-runner.ts +301 -0
  24. package/dist/template/.pi/guard.example.json +75 -0
  25. package/dist/template/.pi/prompts/INDEX.md +78 -0
  26. package/dist/template/.pi/prompts/audit.md +109 -0
  27. package/dist/template/.pi/prompts/close.md +88 -0
  28. package/dist/template/.pi/prompts/create.md +197 -0
  29. package/dist/template/.pi/prompts/fix.md +117 -0
  30. package/dist/template/.pi/prompts/gc.md +112 -0
  31. package/dist/template/.pi/prompts/init.md +206 -0
  32. package/dist/template/.pi/prompts/loop-check.md +87 -0
  33. package/dist/template/.pi/prompts/loop-init.md +157 -0
  34. package/dist/template/.pi/prompts/loop-review.md +90 -0
  35. package/dist/template/.pi/prompts/plan.md +254 -0
  36. package/dist/template/.pi/prompts/research.md +136 -0
  37. package/dist/template/.pi/prompts/ship.md +219 -0
  38. package/dist/template/.pi/prompts/status.md +92 -0
  39. package/dist/template/.pi/prompts/verify.md +154 -0
  40. package/dist/template/.pi/scripts/gc-check.sh +86 -0
  41. package/dist/template/.pi/settings.json +15 -0
  42. package/dist/template/.pi/skills/INDEX.md +331 -0
  43. package/dist/template/.pi/skills/accessibility-audit/SKILL.md +205 -0
  44. package/dist/template/.pi/skills/accessibility-audit/references/accessibility-checklist.md +109 -0
  45. package/dist/template/.pi/skills/agent-code-quality-gate/SKILL.md +131 -0
  46. package/dist/template/.pi/skills/api-and-interface-design/SKILL.md +159 -0
  47. package/dist/template/.pi/skills/behavioral-kernel/SKILL.md +92 -0
  48. package/dist/template/.pi/skills/brainstorming/SKILL.md +138 -0
  49. package/dist/template/.pi/skills/browser-testing-with-devtools/SKILL.md +90 -0
  50. package/dist/template/.pi/skills/chrome-devtools/SKILL.md +129 -0
  51. package/dist/template/.pi/skills/ci-cd-and-automation/SKILL.md +199 -0
  52. package/dist/template/.pi/skills/cloudflare/SKILL.md +271 -0
  53. package/dist/template/.pi/skills/cloudflare/references/agents-sdk/README.md +35 -0
  54. package/dist/template/.pi/skills/cloudflare/references/agents-sdk/api.md +100 -0
  55. package/dist/template/.pi/skills/cloudflare/references/agents-sdk/configuration.md +99 -0
  56. package/dist/template/.pi/skills/cloudflare/references/agents-sdk/gotchas.md +59 -0
  57. package/dist/template/.pi/skills/cloudflare/references/agents-sdk/patterns.md +89 -0
  58. package/dist/template/.pi/skills/cloudflare/references/ai-gateway/README.md +695 -0
  59. package/dist/template/.pi/skills/cloudflare/references/ai-search/README.md +14 -0
  60. package/dist/template/.pi/skills/cloudflare/references/ai-search/api.md +38 -0
  61. package/dist/template/.pi/skills/cloudflare/references/ai-search/configuration.md +52 -0
  62. package/dist/template/.pi/skills/cloudflare/references/ai-search/gotchas.md +41 -0
  63. package/dist/template/.pi/skills/cloudflare/references/ai-search/patterns.md +45 -0
  64. package/dist/template/.pi/skills/cloudflare/references/analytics-engine/README.md +14 -0
  65. package/dist/template/.pi/skills/cloudflare/references/analytics-engine/api.md +27 -0
  66. package/dist/template/.pi/skills/cloudflare/references/analytics-engine/configuration.md +45 -0
  67. package/dist/template/.pi/skills/cloudflare/references/analytics-engine/gotchas.md +3 -0
  68. package/dist/template/.pi/skills/cloudflare/references/analytics-engine/patterns.md +36 -0
  69. package/dist/template/.pi/skills/cloudflare/references/api/README.md +21 -0
  70. package/dist/template/.pi/skills/cloudflare/references/api/api.md +31 -0
  71. package/dist/template/.pi/skills/cloudflare/references/api/configuration.md +20 -0
  72. package/dist/template/.pi/skills/cloudflare/references/api/gotchas.md +28 -0
  73. package/dist/template/.pi/skills/cloudflare/references/api/patterns.md +47 -0
  74. package/dist/template/.pi/skills/cloudflare/references/api-shield/README.md +20 -0
  75. package/dist/template/.pi/skills/cloudflare/references/api-shield/api.md +78 -0
  76. package/dist/template/.pi/skills/cloudflare/references/api-shield/configuration.md +128 -0
  77. package/dist/template/.pi/skills/cloudflare/references/api-shield/gotchas.md +51 -0
  78. package/dist/template/.pi/skills/cloudflare/references/api-shield/patterns.md +145 -0
  79. package/dist/template/.pi/skills/cloudflare/references/argo-smart-routing/README.md +16 -0
  80. package/dist/template/.pi/skills/cloudflare/references/argo-smart-routing/api.md +50 -0
  81. package/dist/template/.pi/skills/cloudflare/references/argo-smart-routing/configuration.md +53 -0
  82. package/dist/template/.pi/skills/cloudflare/references/argo-smart-routing/gotchas.md +16 -0
  83. package/dist/template/.pi/skills/cloudflare/references/argo-smart-routing/patterns.md +45 -0
  84. package/dist/template/.pi/skills/cloudflare/references/bindings/README.md +14 -0
  85. package/dist/template/.pi/skills/cloudflare/references/bindings/api.md +3 -0
  86. package/dist/template/.pi/skills/cloudflare/references/bindings/configuration.md +58 -0
  87. package/dist/template/.pi/skills/cloudflare/references/bindings/gotchas.md +35 -0
  88. package/dist/template/.pi/skills/cloudflare/references/bindings/patterns.md +37 -0
  89. package/dist/template/.pi/skills/cloudflare/references/bot-management/README.md +71 -0
  90. package/dist/template/.pi/skills/cloudflare/references/bot-management/api.md +168 -0
  91. package/dist/template/.pi/skills/cloudflare/references/bot-management/configuration.md +114 -0
  92. package/dist/template/.pi/skills/cloudflare/references/bot-management/gotchas.md +99 -0
  93. package/dist/template/.pi/skills/cloudflare/references/bot-management/patterns.md +125 -0
  94. package/dist/template/.pi/skills/cloudflare/references/browser-rendering/README.md +16 -0
  95. package/dist/template/.pi/skills/cloudflare/references/browser-rendering/api.md +54 -0
  96. package/dist/template/.pi/skills/cloudflare/references/browser-rendering/configuration.md +47 -0
  97. package/dist/template/.pi/skills/cloudflare/references/browser-rendering/gotchas.md +29 -0
  98. package/dist/template/.pi/skills/cloudflare/references/browser-rendering/patterns.md +29 -0
  99. package/dist/template/.pi/skills/cloudflare/references/c3/README.md +264 -0
  100. package/dist/template/.pi/skills/cloudflare/references/cache-reserve/README.md +93 -0
  101. package/dist/template/.pi/skills/cloudflare/references/cache-reserve/api.md +176 -0
  102. package/dist/template/.pi/skills/cloudflare/references/cache-reserve/configuration.md +164 -0
  103. package/dist/template/.pi/skills/cloudflare/references/cache-reserve/gotchas.md +203 -0
  104. package/dist/template/.pi/skills/cloudflare/references/cache-reserve/patterns.md +180 -0
  105. package/dist/template/.pi/skills/cloudflare/references/containers/README.md +16 -0
  106. package/dist/template/.pi/skills/cloudflare/references/containers/api.md +43 -0
  107. package/dist/template/.pi/skills/cloudflare/references/containers/configuration.md +56 -0
  108. package/dist/template/.pi/skills/cloudflare/references/containers/gotchas.md +21 -0
  109. package/dist/template/.pi/skills/cloudflare/references/containers/patterns.md +40 -0
  110. package/dist/template/.pi/skills/cloudflare/references/cron-triggers/README.md +85 -0
  111. package/dist/template/.pi/skills/cloudflare/references/cron-triggers/api.md +198 -0
  112. package/dist/template/.pi/skills/cloudflare/references/cron-triggers/configuration.md +151 -0
  113. package/dist/template/.pi/skills/cloudflare/references/cron-triggers/gotchas.md +129 -0
  114. package/dist/template/.pi/skills/cloudflare/references/cron-triggers/patterns.md +122 -0
  115. package/dist/template/.pi/skills/cloudflare/references/d1/README.md +92 -0
  116. package/dist/template/.pi/skills/cloudflare/references/d1/api.md +141 -0
  117. package/dist/template/.pi/skills/cloudflare/references/d1/configuration.md +127 -0
  118. package/dist/template/.pi/skills/cloudflare/references/d1/gotchas.md +70 -0
  119. package/dist/template/.pi/skills/cloudflare/references/d1/patterns.md +144 -0
  120. package/dist/template/.pi/skills/cloudflare/references/ddos/README.md +34 -0
  121. package/dist/template/.pi/skills/cloudflare/references/ddos/api.md +136 -0
  122. package/dist/template/.pi/skills/cloudflare/references/ddos/configuration.md +67 -0
  123. package/dist/template/.pi/skills/cloudflare/references/ddos/gotchas.md +114 -0
  124. package/dist/template/.pi/skills/cloudflare/references/ddos/patterns.md +158 -0
  125. package/dist/template/.pi/skills/cloudflare/references/do-storage/README.md +62 -0
  126. package/dist/template/.pi/skills/cloudflare/references/do-storage/api.md +89 -0
  127. package/dist/template/.pi/skills/cloudflare/references/do-storage/configuration.md +116 -0
  128. package/dist/template/.pi/skills/cloudflare/references/do-storage/gotchas.md +93 -0
  129. package/dist/template/.pi/skills/cloudflare/references/do-storage/patterns.md +112 -0
  130. package/dist/template/.pi/skills/cloudflare/references/durable-objects/README.md +125 -0
  131. package/dist/template/.pi/skills/cloudflare/references/durable-objects/api.md +152 -0
  132. package/dist/template/.pi/skills/cloudflare/references/durable-objects/configuration.md +148 -0
  133. package/dist/template/.pi/skills/cloudflare/references/durable-objects/gotchas.md +158 -0
  134. package/dist/template/.pi/skills/cloudflare/references/durable-objects/patterns.md +255 -0
  135. package/dist/template/.pi/skills/cloudflare/references/email-routing/README.md +18 -0
  136. package/dist/template/.pi/skills/cloudflare/references/email-routing/api.md +46 -0
  137. package/dist/template/.pi/skills/cloudflare/references/email-routing/configuration.md +63 -0
  138. package/dist/template/.pi/skills/cloudflare/references/email-routing/gotchas.md +16 -0
  139. package/dist/template/.pi/skills/cloudflare/references/email-routing/patterns.md +46 -0
  140. package/dist/template/.pi/skills/cloudflare/references/email-workers/README.md +598 -0
  141. package/dist/template/.pi/skills/cloudflare/references/hyperdrive/README.md +62 -0
  142. package/dist/template/.pi/skills/cloudflare/references/hyperdrive/api.md +137 -0
  143. package/dist/template/.pi/skills/cloudflare/references/hyperdrive/configuration.md +133 -0
  144. package/dist/template/.pi/skills/cloudflare/references/hyperdrive/gotchas.md +184 -0
  145. package/dist/template/.pi/skills/cloudflare/references/hyperdrive/patterns.md +176 -0
  146. package/dist/template/.pi/skills/cloudflare/references/images/README.md +14 -0
  147. package/dist/template/.pi/skills/cloudflare/references/images/api.md +3 -0
  148. package/dist/template/.pi/skills/cloudflare/references/images/configuration.md +45 -0
  149. package/dist/template/.pi/skills/cloudflare/references/images/gotchas.md +23 -0
  150. package/dist/template/.pi/skills/cloudflare/references/images/patterns.md +31 -0
  151. package/dist/template/.pi/skills/cloudflare/references/kv/README.md +60 -0
  152. package/dist/template/.pi/skills/cloudflare/references/kv/api.md +114 -0
  153. package/dist/template/.pi/skills/cloudflare/references/kv/configuration.md +92 -0
  154. package/dist/template/.pi/skills/cloudflare/references/kv/gotchas.md +117 -0
  155. package/dist/template/.pi/skills/cloudflare/references/kv/patterns.md +139 -0
  156. package/dist/template/.pi/skills/cloudflare/references/miniflare/README.md +64 -0
  157. package/dist/template/.pi/skills/cloudflare/references/miniflare/api.md +144 -0
  158. package/dist/template/.pi/skills/cloudflare/references/miniflare/configuration.md +203 -0
  159. package/dist/template/.pi/skills/cloudflare/references/miniflare/gotchas.md +187 -0
  160. package/dist/template/.pi/skills/cloudflare/references/miniflare/patterns.md +211 -0
  161. package/dist/template/.pi/skills/cloudflare/references/network-interconnect/README.md +60 -0
  162. package/dist/template/.pi/skills/cloudflare/references/network-interconnect/api.md +240 -0
  163. package/dist/template/.pi/skills/cloudflare/references/network-interconnect/configuration.md +127 -0
  164. package/dist/template/.pi/skills/cloudflare/references/network-interconnect/gotchas.md +171 -0
  165. package/dist/template/.pi/skills/cloudflare/references/network-interconnect/patterns.md +171 -0
  166. package/dist/template/.pi/skills/cloudflare/references/observability/README.md +18 -0
  167. package/dist/template/.pi/skills/cloudflare/references/observability/api.md +51 -0
  168. package/dist/template/.pi/skills/cloudflare/references/observability/configuration.md +60 -0
  169. package/dist/template/.pi/skills/cloudflare/references/observability/gotchas.md +36 -0
  170. package/dist/template/.pi/skills/cloudflare/references/observability/patterns.md +42 -0
  171. package/dist/template/.pi/skills/cloudflare/references/pages/README.md +76 -0
  172. package/dist/template/.pi/skills/cloudflare/references/pages/api.md +200 -0
  173. package/dist/template/.pi/skills/cloudflare/references/pages/configuration.md +228 -0
  174. package/dist/template/.pi/skills/cloudflare/references/pages/gotchas.md +161 -0
  175. package/dist/template/.pi/skills/cloudflare/references/pages/patterns.md +145 -0
  176. package/dist/template/.pi/skills/cloudflare/references/pages-functions/README.md +57 -0
  177. package/dist/template/.pi/skills/cloudflare/references/pages-functions/api.md +201 -0
  178. package/dist/template/.pi/skills/cloudflare/references/pages-functions/configuration.md +159 -0
  179. package/dist/template/.pi/skills/cloudflare/references/pages-functions/gotchas.md +151 -0
  180. package/dist/template/.pi/skills/cloudflare/references/pages-functions/patterns.md +190 -0
  181. package/dist/template/.pi/skills/cloudflare/references/pipelines/README.md +664 -0
  182. package/dist/template/.pi/skills/cloudflare/references/pulumi/README.md +107 -0
  183. package/dist/template/.pi/skills/cloudflare/references/pulumi/api.md +194 -0
  184. package/dist/template/.pi/skills/cloudflare/references/pulumi/configuration.md +216 -0
  185. package/dist/template/.pi/skills/cloudflare/references/pulumi/gotchas.md +223 -0
  186. package/dist/template/.pi/skills/cloudflare/references/pulumi/patterns.md +139 -0
  187. package/dist/template/.pi/skills/cloudflare/references/queues/README.md +69 -0
  188. package/dist/template/.pi/skills/cloudflare/references/queues/api.md +138 -0
  189. package/dist/template/.pi/skills/cloudflare/references/queues/configuration.md +125 -0
  190. package/dist/template/.pi/skills/cloudflare/references/queues/gotchas.md +112 -0
  191. package/dist/template/.pi/skills/cloudflare/references/queues/patterns.md +155 -0
  192. package/dist/template/.pi/skills/cloudflare/references/r2/README.md +61 -0
  193. package/dist/template/.pi/skills/cloudflare/references/r2/api.md +127 -0
  194. package/dist/template/.pi/skills/cloudflare/references/r2/configuration.md +76 -0
  195. package/dist/template/.pi/skills/cloudflare/references/r2/gotchas.md +94 -0
  196. package/dist/template/.pi/skills/cloudflare/references/r2/patterns.md +127 -0
  197. package/dist/template/.pi/skills/cloudflare/references/r2-data-catalog/README.md +18 -0
  198. package/dist/template/.pi/skills/cloudflare/references/r2-data-catalog/api.md +29 -0
  199. package/dist/template/.pi/skills/cloudflare/references/r2-data-catalog/configuration.md +39 -0
  200. package/dist/template/.pi/skills/cloudflare/references/r2-data-catalog/gotchas.md +20 -0
  201. package/dist/template/.pi/skills/cloudflare/references/r2-data-catalog/patterns.md +46 -0
  202. package/dist/template/.pi/skills/cloudflare/references/r2-sql/README.md +512 -0
  203. package/dist/template/.pi/skills/cloudflare/references/realtime-sfu/README.md +21 -0
  204. package/dist/template/.pi/skills/cloudflare/references/realtime-sfu/api.md +135 -0
  205. package/dist/template/.pi/skills/cloudflare/references/realtime-sfu/configuration.md +63 -0
  206. package/dist/template/.pi/skills/cloudflare/references/realtime-sfu/gotchas.md +75 -0
  207. package/dist/template/.pi/skills/cloudflare/references/realtime-sfu/patterns.md +102 -0
  208. package/dist/template/.pi/skills/cloudflare/references/realtimekit/README.md +81 -0
  209. package/dist/template/.pi/skills/cloudflare/references/realtimekit/api.md +164 -0
  210. package/dist/template/.pi/skills/cloudflare/references/realtimekit/configuration.md +147 -0
  211. package/dist/template/.pi/skills/cloudflare/references/realtimekit/gotchas.md +172 -0
  212. package/dist/template/.pi/skills/cloudflare/references/realtimekit/patterns.md +155 -0
  213. package/dist/template/.pi/skills/cloudflare/references/sandbox/README.md +90 -0
  214. package/dist/template/.pi/skills/cloudflare/references/sandbox/api.md +178 -0
  215. package/dist/template/.pi/skills/cloudflare/references/sandbox/configuration.md +131 -0
  216. package/dist/template/.pi/skills/cloudflare/references/sandbox/gotchas.md +156 -0
  217. package/dist/template/.pi/skills/cloudflare/references/sandbox/patterns.md +203 -0
  218. package/dist/template/.pi/skills/cloudflare/references/secrets-store/README.md +58 -0
  219. package/dist/template/.pi/skills/cloudflare/references/secrets-store/api.md +182 -0
  220. package/dist/template/.pi/skills/cloudflare/references/secrets-store/configuration.md +140 -0
  221. package/dist/template/.pi/skills/cloudflare/references/secrets-store/gotchas.md +129 -0
  222. package/dist/template/.pi/skills/cloudflare/references/secrets-store/patterns.md +218 -0
  223. package/dist/template/.pi/skills/cloudflare/references/smart-placement/README.md +91 -0
  224. package/dist/template/.pi/skills/cloudflare/references/smart-placement/api.md +139 -0
  225. package/dist/template/.pi/skills/cloudflare/references/smart-placement/configuration.md +129 -0
  226. package/dist/template/.pi/skills/cloudflare/references/smart-placement/gotchas.md +87 -0
  227. package/dist/template/.pi/skills/cloudflare/references/smart-placement/patterns.md +135 -0
  228. package/dist/template/.pi/skills/cloudflare/references/snippets/README.md +15 -0
  229. package/dist/template/.pi/skills/cloudflare/references/snippets/api.md +47 -0
  230. package/dist/template/.pi/skills/cloudflare/references/snippets/configuration.md +33 -0
  231. package/dist/template/.pi/skills/cloudflare/references/snippets/gotchas.md +21 -0
  232. package/dist/template/.pi/skills/cloudflare/references/snippets/patterns.md +34 -0
  233. package/dist/template/.pi/skills/cloudflare/references/spectrum/README.md +16 -0
  234. package/dist/template/.pi/skills/cloudflare/references/spectrum/api.md +24 -0
  235. package/dist/template/.pi/skills/cloudflare/references/spectrum/configuration.md +43 -0
  236. package/dist/template/.pi/skills/cloudflare/references/spectrum/gotchas.md +42 -0
  237. package/dist/template/.pi/skills/cloudflare/references/spectrum/patterns.md +40 -0
  238. package/dist/template/.pi/skills/cloudflare/references/static-assets/README.md +14 -0
  239. package/dist/template/.pi/skills/cloudflare/references/static-assets/api.md +3 -0
  240. package/dist/template/.pi/skills/cloudflare/references/static-assets/configuration.md +47 -0
  241. package/dist/template/.pi/skills/cloudflare/references/static-assets/gotchas.md +44 -0
  242. package/dist/template/.pi/skills/cloudflare/references/static-assets/patterns.md +42 -0
  243. package/dist/template/.pi/skills/cloudflare/references/stream/README.md +103 -0
  244. package/dist/template/.pi/skills/cloudflare/references/stream/api.md +204 -0
  245. package/dist/template/.pi/skills/cloudflare/references/stream/configuration.md +127 -0
  246. package/dist/template/.pi/skills/cloudflare/references/stream/gotchas.md +131 -0
  247. package/dist/template/.pi/skills/cloudflare/references/stream/patterns.md +152 -0
  248. package/dist/template/.pi/skills/cloudflare/references/tail-workers/README.md +640 -0
  249. package/dist/template/.pi/skills/cloudflare/references/terraform/README.md +76 -0
  250. package/dist/template/.pi/skills/cloudflare/references/terraform/api.md +159 -0
  251. package/dist/template/.pi/skills/cloudflare/references/terraform/configuration.md +156 -0
  252. package/dist/template/.pi/skills/cloudflare/references/terraform/gotchas.md +207 -0
  253. package/dist/template/.pi/skills/cloudflare/references/terraform/patterns.md +135 -0
  254. package/dist/template/.pi/skills/cloudflare/references/tunnel/README.md +82 -0
  255. package/dist/template/.pi/skills/cloudflare/references/tunnel/api.md +105 -0
  256. package/dist/template/.pi/skills/cloudflare/references/tunnel/configuration.md +113 -0
  257. package/dist/template/.pi/skills/cloudflare/references/tunnel/gotchas.md +115 -0
  258. package/dist/template/.pi/skills/cloudflare/references/tunnel/patterns.md +157 -0
  259. package/dist/template/.pi/skills/cloudflare/references/turn/README.md +699 -0
  260. package/dist/template/.pi/skills/cloudflare/references/turnstile/README.md +14 -0
  261. package/dist/template/.pi/skills/cloudflare/references/turnstile/api.md +3 -0
  262. package/dist/template/.pi/skills/cloudflare/references/turnstile/configuration.md +19 -0
  263. package/dist/template/.pi/skills/cloudflare/references/turnstile/gotchas.md +27 -0
  264. package/dist/template/.pi/skills/cloudflare/references/turnstile/patterns.md +41 -0
  265. package/dist/template/.pi/skills/cloudflare/references/vectorize/README.md +682 -0
  266. package/dist/template/.pi/skills/cloudflare/references/waf/README.md +14 -0
  267. package/dist/template/.pi/skills/cloudflare/references/waf/api.md +3 -0
  268. package/dist/template/.pi/skills/cloudflare/references/waf/configuration.md +44 -0
  269. package/dist/template/.pi/skills/cloudflare/references/waf/gotchas.md +24 -0
  270. package/dist/template/.pi/skills/cloudflare/references/waf/patterns.md +29 -0
  271. package/dist/template/.pi/skills/cloudflare/references/web-analytics/README.md +19 -0
  272. package/dist/template/.pi/skills/cloudflare/references/web-analytics/api.md +52 -0
  273. package/dist/template/.pi/skills/cloudflare/references/web-analytics/configuration.md +31 -0
  274. package/dist/template/.pi/skills/cloudflare/references/web-analytics/gotchas.md +28 -0
  275. package/dist/template/.pi/skills/cloudflare/references/web-analytics/patterns.md +52 -0
  276. package/dist/template/.pi/skills/cloudflare/references/workerd/README.md +47 -0
  277. package/dist/template/.pi/skills/cloudflare/references/workerd/api.md +199 -0
  278. package/dist/template/.pi/skills/cloudflare/references/workerd/configuration.md +185 -0
  279. package/dist/template/.pi/skills/cloudflare/references/workerd/gotchas.md +203 -0
  280. package/dist/template/.pi/skills/cloudflare/references/workerd/patterns.md +216 -0
  281. package/dist/template/.pi/skills/cloudflare/references/workers/README.md +96 -0
  282. package/dist/template/.pi/skills/cloudflare/references/workers/api.md +137 -0
  283. package/dist/template/.pi/skills/cloudflare/references/workers/configuration.md +147 -0
  284. package/dist/template/.pi/skills/cloudflare/references/workers/gotchas.md +99 -0
  285. package/dist/template/.pi/skills/cloudflare/references/workers/patterns.md +149 -0
  286. package/dist/template/.pi/skills/cloudflare/references/workers-ai/README.md +116 -0
  287. package/dist/template/.pi/skills/cloudflare/references/workers-for-platforms/README.md +48 -0
  288. package/dist/template/.pi/skills/cloudflare/references/workers-for-platforms/api.md +169 -0
  289. package/dist/template/.pi/skills/cloudflare/references/workers-for-platforms/configuration.md +136 -0
  290. package/dist/template/.pi/skills/cloudflare/references/workers-for-platforms/gotchas.md +130 -0
  291. package/dist/template/.pi/skills/cloudflare/references/workers-for-platforms/patterns.md +170 -0
  292. package/dist/template/.pi/skills/cloudflare/references/workers-playground/README.md +16 -0
  293. package/dist/template/.pi/skills/cloudflare/references/workers-playground/api.md +20 -0
  294. package/dist/template/.pi/skills/cloudflare/references/workers-playground/configuration.md +3 -0
  295. package/dist/template/.pi/skills/cloudflare/references/workers-playground/gotchas.md +35 -0
  296. package/dist/template/.pi/skills/cloudflare/references/workers-playground/patterns.md +42 -0
  297. package/dist/template/.pi/skills/cloudflare/references/workers-vpc/README.md +579 -0
  298. package/dist/template/.pi/skills/cloudflare/references/workflows/README.md +62 -0
  299. package/dist/template/.pi/skills/cloudflare/references/workflows/api.md +125 -0
  300. package/dist/template/.pi/skills/cloudflare/references/workflows/configuration.md +177 -0
  301. package/dist/template/.pi/skills/cloudflare/references/workflows/gotchas.md +136 -0
  302. package/dist/template/.pi/skills/cloudflare/references/workflows/patterns.md +132 -0
  303. package/dist/template/.pi/skills/cloudflare/references/wrangler/README.md +90 -0
  304. package/dist/template/.pi/skills/cloudflare/references/wrangler/api.md +140 -0
  305. package/dist/template/.pi/skills/cloudflare/references/wrangler/configuration.md +128 -0
  306. package/dist/template/.pi/skills/cloudflare/references/wrangler/gotchas.md +93 -0
  307. package/dist/template/.pi/skills/cloudflare/references/wrangler/patterns.md +150 -0
  308. package/dist/template/.pi/skills/cloudflare/references/zaraz/README.md +360 -0
  309. package/dist/template/.pi/skills/code-cleanup/SKILL.md +232 -0
  310. package/dist/template/.pi/skills/code-review-and-quality/SKILL.md +344 -0
  311. package/dist/template/.pi/skills/code-simplification/SKILL.md +348 -0
  312. package/dist/template/.pi/skills/context-engineering/SKILL.md +296 -0
  313. package/dist/template/.pi/skills/core-data-expert/SKILL.md +117 -0
  314. package/dist/template/.pi/skills/core-data-expert/references/batch-operations.md +543 -0
  315. package/dist/template/.pi/skills/core-data-expert/references/cloudkit-integration.md +259 -0
  316. package/dist/template/.pi/skills/core-data-expert/references/concurrency.md +522 -0
  317. package/dist/template/.pi/skills/core-data-expert/references/fetch-requests.md +643 -0
  318. package/dist/template/.pi/skills/core-data-expert/references/glossary.md +233 -0
  319. package/dist/template/.pi/skills/core-data-expert/references/migration.md +393 -0
  320. package/dist/template/.pi/skills/core-data-expert/references/model-configuration.md +597 -0
  321. package/dist/template/.pi/skills/core-data-expert/references/performance.md +300 -0
  322. package/dist/template/.pi/skills/core-data-expert/references/persistent-history.md +553 -0
  323. package/dist/template/.pi/skills/core-data-expert/references/project-audit.md +60 -0
  324. package/dist/template/.pi/skills/core-data-expert/references/saving.md +574 -0
  325. package/dist/template/.pi/skills/core-data-expert/references/stack-setup.md +625 -0
  326. package/dist/template/.pi/skills/core-data-expert/references/testing.md +300 -0
  327. package/dist/template/.pi/skills/core-data-expert/references/threading.md +589 -0
  328. package/dist/template/.pi/skills/debugging-and-error-recovery/SKILL.md +274 -0
  329. package/dist/template/.pi/skills/deep-module-design/SKILL.md +218 -0
  330. package/dist/template/.pi/skills/defense-in-depth/SKILL.md +161 -0
  331. package/dist/template/.pi/skills/deprecation-and-migration/SKILL.md +186 -0
  332. package/dist/template/.pi/skills/design-system-audit/SKILL.md +176 -0
  333. package/dist/template/.pi/skills/design-taste-frontend/SKILL.md +255 -0
  334. package/dist/template/.pi/skills/development-lifecycle/SKILL.md +285 -0
  335. package/dist/template/.pi/skills/documentation-and-adrs/SKILL.md +217 -0
  336. package/dist/template/.pi/skills/doubt-driven-development/SKILL.md +207 -0
  337. package/dist/template/.pi/skills/fallow/SKILL.md +457 -0
  338. package/dist/template/.pi/skills/fallow/references/cli-reference.md +1905 -0
  339. package/dist/template/.pi/skills/fallow/references/gotchas.md +644 -0
  340. package/dist/template/.pi/skills/fallow/references/patterns.md +791 -0
  341. package/dist/template/.pi/skills/figma/SKILL.md +241 -0
  342. package/dist/template/.pi/skills/frontend-design/SKILL.md +262 -0
  343. package/dist/template/.pi/skills/frontend-design/references/animation/motion-advanced.md +224 -0
  344. package/dist/template/.pi/skills/frontend-design/references/animation/motion-core.md +181 -0
  345. package/dist/template/.pi/skills/frontend-design/references/canvas/execution.md +90 -0
  346. package/dist/template/.pi/skills/frontend-design/references/canvas/philosophy.md +94 -0
  347. package/dist/template/.pi/skills/frontend-design/references/design/color-system.md +111 -0
  348. package/dist/template/.pi/skills/frontend-design/references/design/interaction.md +149 -0
  349. package/dist/template/.pi/skills/frontend-design/references/design/typography-rules.md +106 -0
  350. package/dist/template/.pi/skills/frontend-design/references/design/ux-writing.md +99 -0
  351. package/dist/template/.pi/skills/frontend-design/references/shadcn/accessibility.md +132 -0
  352. package/dist/template/.pi/skills/frontend-design/references/shadcn/core-components.md +153 -0
  353. package/dist/template/.pi/skills/frontend-design/references/shadcn/form-components.md +158 -0
  354. package/dist/template/.pi/skills/frontend-design/references/shadcn/setup.md +69 -0
  355. package/dist/template/.pi/skills/frontend-design/references/shadcn/theming.md +152 -0
  356. package/dist/template/.pi/skills/frontend-design/references/tailwind/responsive.md +112 -0
  357. package/dist/template/.pi/skills/frontend-design/references/tailwind/utilities-layout.md +134 -0
  358. package/dist/template/.pi/skills/frontend-design/references/tailwind/utilities-styling.md +165 -0
  359. package/dist/template/.pi/skills/frontend-design/references/tailwind/v4-config.md +147 -0
  360. package/dist/template/.pi/skills/frontend-design/references/tailwind/v4-features.md +128 -0
  361. package/dist/template/.pi/skills/frontend-ui-engineering/SKILL.md +217 -0
  362. package/dist/template/.pi/skills/gemini-large-context/SKILL.md +238 -0
  363. package/dist/template/.pi/skills/git-workflow-and-versioning/SKILL.md +217 -0
  364. package/dist/template/.pi/skills/grill-me/SKILL.md +162 -0
  365. package/dist/template/.pi/skills/high-end-visual-design/SKILL.md +128 -0
  366. package/dist/template/.pi/skills/idea-refine/SKILL.md +195 -0
  367. package/dist/template/.pi/skills/idea-refine/examples.md +62 -0
  368. package/dist/template/.pi/skills/idea-refine/frameworks.md +63 -0
  369. package/dist/template/.pi/skills/idea-refine/refinement-criteria.md +56 -0
  370. package/dist/template/.pi/skills/incremental-implementation/SKILL.md +190 -0
  371. package/dist/template/.pi/skills/industrial-brutalist-ui/SKILL.md +131 -0
  372. package/dist/template/.pi/skills/interview-me/SKILL.md +227 -0
  373. package/dist/template/.pi/skills/jira/SKILL.md +306 -0
  374. package/dist/template/.pi/skills/loop-audit/SKILL.md +141 -0
  375. package/dist/template/.pi/skills/loop-cost/SKILL.md +130 -0
  376. package/dist/template/.pi/skills/loop-engineering/SKILL.md +175 -0
  377. package/dist/template/.pi/skills/minimalist-ui/SKILL.md +124 -0
  378. package/dist/template/.pi/skills/mockup-to-code/SKILL.md +197 -0
  379. package/dist/template/.pi/skills/observability-and-instrumentation/SKILL.md +202 -0
  380. package/dist/template/.pi/skills/opensrc/SKILL.md +297 -0
  381. package/dist/template/.pi/skills/opensrc/references/architecture.md +176 -0
  382. package/dist/template/.pi/skills/opensrc/references/cli-usage.md +176 -0
  383. package/dist/template/.pi/skills/opensrc/references/registry-support.md +137 -0
  384. package/dist/template/.pi/skills/pdf-extract/SKILL.md +461 -0
  385. package/dist/template/.pi/skills/performance-optimization/SKILL.md +233 -0
  386. package/dist/template/.pi/skills/performance-optimization/references/performance-checklist.md +85 -0
  387. package/dist/template/.pi/skills/planning-and-task-breakdown/SKILL.md +204 -0
  388. package/dist/template/.pi/skills/playwright/SKILL.md +404 -0
  389. package/dist/template/.pi/skills/playwright/references/agent-browser-cli.md +405 -0
  390. package/dist/template/.pi/skills/polar/SKILL.md +125 -0
  391. package/dist/template/.pi/skills/react-best-practices/SKILL.md +156 -0
  392. package/dist/template/.pi/skills/react-best-practices/rules/_sections.md +46 -0
  393. package/dist/template/.pi/skills/react-best-practices/rules/_template.md +28 -0
  394. package/dist/template/.pi/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  395. package/dist/template/.pi/skills/react-best-practices/rules/advanced-use-latest.md +49 -0
  396. package/dist/template/.pi/skills/react-best-practices/rules/async-api-routes.md +38 -0
  397. package/dist/template/.pi/skills/react-best-practices/rules/async-defer-await.md +80 -0
  398. package/dist/template/.pi/skills/react-best-practices/rules/async-dependencies.md +36 -0
  399. package/dist/template/.pi/skills/react-best-practices/rules/async-parallel.md +28 -0
  400. package/dist/template/.pi/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
  401. package/dist/template/.pi/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
  402. package/dist/template/.pi/skills/react-best-practices/rules/bundle-conditional.md +31 -0
  403. package/dist/template/.pi/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
  404. package/dist/template/.pi/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  405. package/dist/template/.pi/skills/react-best-practices/rules/bundle-preload.md +50 -0
  406. package/dist/template/.pi/skills/react-best-practices/rules/client-event-listeners.md +74 -0
  407. package/dist/template/.pi/skills/react-best-practices/rules/client-localstorage-schema.md +71 -0
  408. package/dist/template/.pi/skills/react-best-practices/rules/client-passive-event-listeners.md +48 -0
  409. package/dist/template/.pi/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
  410. package/dist/template/.pi/skills/react-best-practices/rules/js-batch-dom-css.md +82 -0
  411. package/dist/template/.pi/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
  412. package/dist/template/.pi/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
  413. package/dist/template/.pi/skills/react-best-practices/rules/js-cache-storage.md +70 -0
  414. package/dist/template/.pi/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
  415. package/dist/template/.pi/skills/react-best-practices/rules/js-early-exit.md +50 -0
  416. package/dist/template/.pi/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
  417. package/dist/template/.pi/skills/react-best-practices/rules/js-index-maps.md +37 -0
  418. package/dist/template/.pi/skills/react-best-practices/rules/js-length-check-first.md +49 -0
  419. package/dist/template/.pi/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
  420. package/dist/template/.pi/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
  421. package/dist/template/.pi/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
  422. package/dist/template/.pi/skills/react-best-practices/rules/rendering-activity.md +26 -0
  423. package/dist/template/.pi/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  424. package/dist/template/.pi/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
  425. package/dist/template/.pi/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
  426. package/dist/template/.pi/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  427. package/dist/template/.pi/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  428. package/dist/template/.pi/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
  429. package/dist/template/.pi/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
  430. package/dist/template/.pi/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
  431. package/dist/template/.pi/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
  432. package/dist/template/.pi/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
  433. package/dist/template/.pi/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  434. package/dist/template/.pi/skills/react-best-practices/rules/rerender-memo.md +44 -0
  435. package/dist/template/.pi/skills/react-best-practices/rules/rerender-transitions.md +40 -0
  436. package/dist/template/.pi/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
  437. package/dist/template/.pi/skills/react-best-practices/rules/server-cache-lru.md +41 -0
  438. package/dist/template/.pi/skills/react-best-practices/rules/server-cache-react.md +76 -0
  439. package/dist/template/.pi/skills/react-best-practices/rules/server-parallel-fetching.md +83 -0
  440. package/dist/template/.pi/skills/react-best-practices/rules/server-serialization.md +38 -0
  441. package/dist/template/.pi/skills/redesign-existing-projects/SKILL.md +217 -0
  442. package/dist/template/.pi/skills/resend/SKILL.md +196 -0
  443. package/dist/template/.pi/skills/resend/references/react-email.md +287 -0
  444. package/dist/template/.pi/skills/resend/references/receive-email.md +248 -0
  445. package/dist/template/.pi/skills/resend/references/send-email.md +318 -0
  446. package/dist/template/.pi/skills/root-cause-tracing/SKILL.md +216 -0
  447. package/dist/template/.pi/skills/security-and-hardening/SKILL.md +293 -0
  448. package/dist/template/.pi/skills/security-and-hardening/references/security-checklist.md +105 -0
  449. package/dist/template/.pi/skills/shipping-and-launch/SKILL.md +101 -0
  450. package/dist/template/.pi/skills/source-driven-development/SKILL.md +108 -0
  451. package/dist/template/.pi/skills/spec-driven-development/SKILL.md +177 -0
  452. package/dist/template/.pi/skills/srcwalk/SKILL.md +182 -0
  453. package/dist/template/.pi/skills/subagent-driven-development/SKILL.md +253 -0
  454. package/dist/template/.pi/skills/supabase/SKILL.md +153 -0
  455. package/dist/template/.pi/skills/supabase-postgres-best-practices/SKILL.md +88 -0
  456. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/advanced-full-text-search.md +55 -0
  457. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/advanced-jsonb-indexing.md +49 -0
  458. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/conn-idle-timeout.md +46 -0
  459. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/conn-limits.md +44 -0
  460. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/conn-pooling.md +41 -0
  461. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/conn-prepared-statements.md +46 -0
  462. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/data-batch-inserts.md +54 -0
  463. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/data-n-plus-one.md +53 -0
  464. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/data-pagination.md +50 -0
  465. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/data-upsert.md +50 -0
  466. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/lock-advisory.md +56 -0
  467. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/lock-deadlock-prevention.md +68 -0
  468. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/lock-short-transactions.md +50 -0
  469. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/lock-skip-locked.md +54 -0
  470. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/monitor-explain-analyze.md +45 -0
  471. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/monitor-pg-stat-statements.md +55 -0
  472. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/monitor-vacuum-analyze.md +55 -0
  473. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/query-composite-indexes.md +44 -0
  474. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/query-covering-indexes.md +40 -0
  475. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/query-index-types.md +45 -0
  476. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/query-missing-indexes.md +43 -0
  477. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/query-partial-indexes.md +45 -0
  478. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/schema-data-types.md +46 -0
  479. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/schema-foreign-key-indexes.md +59 -0
  480. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/schema-lowercase-identifiers.md +55 -0
  481. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/schema-partitioning.md +55 -0
  482. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/schema-primary-keys.md +61 -0
  483. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/security-privileges.md +54 -0
  484. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/security-rls-basics.md +50 -0
  485. package/dist/template/.pi/skills/supabase-postgres-best-practices/rules/security-rls-performance.md +57 -0
  486. package/dist/template/.pi/skills/swift-concurrency/SKILL.md +290 -0
  487. package/dist/template/.pi/skills/swift-concurrency/references/actors.md +640 -0
  488. package/dist/template/.pi/skills/swift-concurrency/references/async-algorithms.md +822 -0
  489. package/dist/template/.pi/skills/swift-concurrency/references/async-await-basics.md +249 -0
  490. package/dist/template/.pi/skills/swift-concurrency/references/async-sequences.md +670 -0
  491. package/dist/template/.pi/skills/swift-concurrency/references/core-data.md +533 -0
  492. package/dist/template/.pi/skills/swift-concurrency/references/glossary.md +128 -0
  493. package/dist/template/.pi/skills/swift-concurrency/references/linting.md +142 -0
  494. package/dist/template/.pi/skills/swift-concurrency/references/memory-management.md +542 -0
  495. package/dist/template/.pi/skills/swift-concurrency/references/migration.md +1076 -0
  496. package/dist/template/.pi/skills/swift-concurrency/references/performance.md +574 -0
  497. package/dist/template/.pi/skills/swift-concurrency/references/sendable.md +578 -0
  498. package/dist/template/.pi/skills/swift-concurrency/references/tasks.md +604 -0
  499. package/dist/template/.pi/skills/swift-concurrency/references/testing.md +565 -0
  500. package/dist/template/.pi/skills/swift-concurrency/references/threading.md +452 -0
  501. package/dist/template/.pi/skills/swiftui-expert-skill/SKILL.md +343 -0
  502. package/dist/template/.pi/skills/swiftui-expert-skill/references/animation-advanced.md +351 -0
  503. package/dist/template/.pi/skills/swiftui-expert-skill/references/animation-basics.md +284 -0
  504. package/dist/template/.pi/skills/swiftui-expert-skill/references/animation-transitions.md +326 -0
  505. package/dist/template/.pi/skills/swiftui-expert-skill/references/image-optimization.md +286 -0
  506. package/dist/template/.pi/skills/swiftui-expert-skill/references/layout-best-practices.md +312 -0
  507. package/dist/template/.pi/skills/swiftui-expert-skill/references/liquid-glass.md +377 -0
  508. package/dist/template/.pi/skills/swiftui-expert-skill/references/list-patterns.md +153 -0
  509. package/dist/template/.pi/skills/swiftui-expert-skill/references/modern-apis.md +400 -0
  510. package/dist/template/.pi/skills/swiftui-expert-skill/references/performance-patterns.md +377 -0
  511. package/dist/template/.pi/skills/swiftui-expert-skill/references/scroll-patterns.md +305 -0
  512. package/dist/template/.pi/skills/swiftui-expert-skill/references/sheet-navigation-patterns.md +292 -0
  513. package/dist/template/.pi/skills/swiftui-expert-skill/references/state-management.md +447 -0
  514. package/dist/template/.pi/skills/swiftui-expert-skill/references/text-formatting.md +285 -0
  515. package/dist/template/.pi/skills/swiftui-expert-skill/references/view-structure.md +276 -0
  516. package/dist/template/.pi/skills/test-driven-development/SKILL.md +400 -0
  517. package/dist/template/.pi/skills/test-driven-development/references/testing-patterns.md +155 -0
  518. package/dist/template/.pi/skills/testing-anti-patterns/SKILL.md +339 -0
  519. package/dist/template/.pi/skills/using-agent-skills/SKILL.md +371 -0
  520. package/dist/template/.pi/skills/using-git-worktrees/SKILL.md +275 -0
  521. package/dist/template/.pi/skills/vercel-deploy-claimable/SKILL.md +144 -0
  522. package/dist/template/.pi/skills/vercel-deploy-claimable/scripts/deploy.sh +249 -0
  523. package/dist/template/.pi/skills/verification-before-completion/SKILL.md +348 -0
  524. package/dist/template/.pi/skills/webclaw/SKILL.md +188 -0
  525. package/dist/template/.pi/skills/writing-skills/SKILL.md +329 -0
  526. package/dist/template/.pi/skills/writing-skills/references/anti-patterns.md +25 -0
  527. package/dist/template/.pi/skills/writing-skills/references/claude-search-optimization.md +140 -0
  528. package/dist/template/.pi/skills/writing-skills/references/discovery-workflow.md +11 -0
  529. package/dist/template/.pi/skills/writing-skills/references/file-organization.md +32 -0
  530. package/dist/template/.pi/skills/writing-skills/references/flowcharts-and-examples.md +57 -0
  531. package/dist/template/.pi/skills/writing-skills/references/rationalization-hardening.md +75 -0
  532. package/dist/template/.pi/skills/writing-skills/references/testing-methodology.md +397 -0
  533. package/dist/template/.pi/skills/writing-skills/references/testing-skill-types.md +52 -0
  534. package/dist/template/.pi/subagents.json +10 -0
  535. package/dist/template/.pi/templates/adr.md +47 -0
  536. package/dist/template/.pi/templates/design.md +61 -0
  537. package/dist/template/.pi/templates/loop-github-action.yml +162 -0
  538. package/dist/template/.pi/templates/loop-orchestrator.sh +514 -0
  539. package/dist/template/.pi/templates/loop-orchestrator.test.ts +332 -0
  540. package/dist/template/.pi/templates/loop-orchestrator.ts +936 -0
  541. package/dist/template/.pi/templates/loop-state.json +24 -0
  542. package/dist/template/.pi/templates/loop-state.md +98 -0
  543. package/dist/template/.pi/templates/loop-vision.md +110 -0
  544. package/dist/template/.pi/templates/prd.md +204 -0
  545. package/dist/template/.pi/templates/progress.md +55 -0
  546. package/dist/template/.pi/templates/project.md +58 -0
  547. package/dist/template/.pi/templates/proposal.md +40 -0
  548. package/dist/template/.pi/templates/review-state.json +20 -0
  549. package/dist/template/.pi/templates/roadmap.md +93 -0
  550. package/dist/template/.pi/templates/state.md +97 -0
  551. package/dist/template/.pi/templates/tasks.md +202 -0
  552. package/dist/template/.pi/templates/tech-stack.md +85 -0
  553. package/dist/template/.pi/templates/user.md +26 -0
  554. package/dist/template/.pi/workflows/INDEX.md +63 -0
  555. package/dist/template/.pi/workflows/audit-pattern.md +84 -0
  556. package/dist/template/.pi/workflows/batch-implement.md +121 -0
  557. package/dist/template/.pi/workflows/deep-research.md +89 -0
  558. package/dist/template/.pi/workflows/development-lifecycle-workflow.md +175 -0
  559. package/dist/template/.pi/workflows/garbage-collection.md +144 -0
  560. package/dist/template/.pi/workflows/quality-loop.md +211 -0
  561. package/package.json +57 -0
@@ -0,0 +1,131 @@
1
+ ---
2
+ name: agent-code-quality-gate
3
+ description: Use before a coding agent claims implementation work is complete, especially after bugfixes, feature edits, refactors, or subagent changes - converts code quality into an operational gate for scope, duplication, behavior tests, verification evidence, and regressions.
4
+ ---
5
+
6
+ # Agent Code Quality Gate
7
+
8
+ ## Overview
9
+
10
+ Code quality for an agent is not "clean-looking code." It is a small, reviewable, verified change that improves or preserves system health while solving the requested problem.
11
+
12
+ Core rule: **do not claim completion until the diff is scoped, integrated, tested for behavior, and freshly verified.**
13
+
14
+ ## When to Use
15
+
16
+ Use before saying work is complete, fixed, passing, ready, or high quality after:
17
+
18
+ - implementing a feature or bugfix;
19
+ - editing production code or tests;
20
+ - receiving subagent/worker changes;
21
+ - refactoring, optimizing, or migrating code;
22
+ - touching security, auth, data, concurrency, payments, accessibility, performance, or public APIs.
23
+
24
+ Do not use as a substitute for specialist review. For final merge/security/API review, also load the relevant review/security/API skill.
25
+
26
+ ## When NOT to Use
27
+
28
+ - The change is trivial (typo, rename, formatting) with no behavior impact
29
+ - You haven't implemented anything yet — the gate is for claiming completion, not starting
30
+ - For specialist review needs (security audit, API contract, merge approval) — load the dedicated review/security/API skill instead of relying on this gate alone
31
+
32
+ ## Quality Gate
33
+
34
+ Answer every item. If any answer is "no" or "unknown," either fix it, verify it, or report the remaining risk explicitly.
35
+
36
+ | Gate | Pass condition | Reject if |
37
+ | --- | --- | --- |
38
+ | Goal | The change satisfies the user's actual request and acceptance criteria. | It solves a nearby or imagined problem. |
39
+ | Scope | Every changed line traces to the current request. | Drive-by cleanup, broad formatting, or speculative refactor is mixed in. |
40
+ | Design fit | The change belongs in the touched layer and follows existing architecture. | It adds a parallel pattern, hidden business logic, or misplaced abstraction. |
41
+ | Simplicity | The solution is the smallest clear working change. | It adds flexibility for hypothetical future needs. |
42
+ | Duplication | Existing helpers/components/patterns were searched and reused. | A second home for the same concept was created. |
43
+ | Behavior | Relevant happy path, edge cases, and failure path were considered. | Only the obvious path works. |
44
+ | Tests | Tests are meaningful for behavior and would fail if the behavior broke. | Tests only assert mocks, snapshots, implementation details, or coverage numbers. |
45
+ | Verification | Fresh relevant lint/typecheck/test/build/manual check evidence exists. | Success is inferred from code appearance or a subagent report. |
46
+ | Regressions | Security, reliability, performance, accessibility, compatibility, and developer workflow are not worsened. | Any regression is unexamined or hand-waved. |
47
+ | Reviewability | Diff is coherent and easy to review. | Reviewer must reverse-engineer why unrelated changes exist. |
48
+
49
+ ## Agent-Specific Failure Modes
50
+
51
+ Brutally check for these before completion:
52
+
53
+ - **Hallucinated API:** Did you verify signatures/options against local types, source, or official docs?
54
+ - **Fake confidence:** Are you saying "should work" instead of citing command output or runtime evidence?
55
+ - **Subagent trust:** Did you read changed files and verify independently instead of trusting a summary?
56
+ - **Mock theater:** Do tests prove production behavior, or just that mocks were called?
57
+ - **Coverage worship:** Coverage can reveal untested code; it does not prove test quality.
58
+ - **Speculative abstraction:** Did you add generic hooks/options/classes before the actual need exists?
59
+ - **Duplicate utility:** Did you search before creating a helper/component/schema wrapper?
60
+ - **Generated-file edit:** Did you modify generated output instead of the canonical schema/generator/input?
61
+ - **Silent behavior change:** Did any external behavior, API shape, data format, or command contract change without explicit approval?
62
+ - **Unreviewable diff:** Did formatting churn or cleanup obscure the real behavior change?
63
+
64
+ ## Minimal Completion Procedure
65
+
66
+ 1. Re-read the user request and acceptance criteria.
67
+ 2. Inspect the diff, not just the files.
68
+ 3. Remove unrelated or speculative changes.
69
+ 4. Search for existing concepts before keeping new helpers/components.
70
+ 5. Check behavioral edges: invalid input, empty state, permission failure, error path, concurrency/race risk where relevant.
71
+ 6. Run the smallest relevant verification first; expand only if risk requires it.
72
+ 7. If tests were added or changed, run those tests directly and confirm they fail for the right reason when practical.
73
+ 8. Record exact evidence in the final response: command/check + result + remaining risk.
74
+
75
+ ## Source-Backed Principles
76
+
77
+ - Google Engineering Practices: approve changes that improve overall code health; reject changes that worsen it even if they appear functional. Review design, functionality, complexity, tests, names, comments, style, consistency, docs, and every relevant line.
78
+ - Martin Fowler on test coverage: coverage is useful for finding untested code, but high coverage is not proof of good tests.
79
+ - OWASP Secure Coding Practices: quality includes input validation, output encoding, auth/session/access control, cryptography, error handling/logging, data protection, database/file/memory safety, and general secure coding.
80
+
81
+ ## Final Response Evidence Pattern
82
+
83
+ Use this shape when reporting completion:
84
+
85
+ ```text
86
+ Changed <what> in <file:line> to satisfy <requirement>.
87
+ Verification: <command/check> passed/failed with <specific result>.
88
+ Risk: <none known | untested area and why>.
89
+ ```
90
+
91
+ Never say "done," "fixed," "passes," or "high quality" without fresh evidence.
92
+
93
+ ## Skill Result Contract
94
+
95
+ ```xml
96
+ <skill_result>
97
+ <skill>agent-code-quality-gate</skill>
98
+ <status>success|partial|blocked|failure</status>
99
+ <evidence>Diff reviewed, scope checked, tests/verification run, sources checked if APIs used</evidence>
100
+ <artifacts>Files reviewed or commands run</artifacts>
101
+ <risks>Remaining unverified paths or none</risks>
102
+ </skill_result>
103
+ ```
104
+
105
+ ## Common Rationalizations
106
+
107
+ | Rationalization | Reality |
108
+ |---|---|
109
+ | "The tests pass, it's done" | Passing tests ≠ correct scope, clean diff, or safe behavior. |
110
+ | "The subagent said it was fine" | Subagent reports are self-assessments. Always verify independently. |
111
+ | "The changes are small, no gate needed" | Small changes introduce regressions too. The gate is proportional, not optional. |
112
+ | "I reviewed it myself" | Authors are blind to their own assumptions. Independent verification matters. |
113
+
114
+ ## Red Flags
115
+
116
+ - Subagent completion claimed without diff review
117
+ - Verification evidence that doesn't match the reported changes
118
+ - Scope creep in implementation (touched files outside task description)
119
+ - No regression test for the changed behavior
120
+ - Duplication of existing patterns instead of reuse
121
+
122
+ ## Verification
123
+
124
+ Before claiming implementation work is complete:
125
+
126
+ - [ ] All changes are within the agreed scope (no unrelated files touched)
127
+ - [ ] No code duplication was introduced that could reuse existing patterns
128
+ - [ ] Tests pass and cover the changed behavior with regression protection
129
+ - [ ] Diff review confirms changes match the task description
130
+ - [ ] Subagent-reported evidence was independently verified
131
+ - [ ] Lint, typecheck, and build pass
@@ -0,0 +1,159 @@
1
+ ---
2
+ name: api-and-interface-design
3
+ description: Use when designing REST/GraphQL APIs, SDK interfaces, or public module boundaries — covers contract-first design, versioning, error shapes, and backward compatibility
4
+ ---
5
+
6
+ # API & Interface Design
7
+
8
+ > **Replaces** ad-hoc API creation where endpoints, error shapes, and versioning are afterthoughts
9
+
10
+ ## When to Use
11
+
12
+ - Designing a new API endpoint, SDK method, or public module interface
13
+ - Reviewing or extending an existing API for backward compatibility
14
+ - Defining error responses, pagination, or authentication contracts
15
+
16
+ ## When NOT to Use
17
+
18
+ - Internal-only helper functions that no external code calls
19
+ - Prototyping where the API shape will change frequently (use after stabilization)
20
+
21
+ ## Overview
22
+
23
+ APIs are contracts. Once published, they're hard to change without breaking consumers. Design the contract first, implement second.
24
+
25
+ **Core principle:** Define the contract (types, errors, versioning) before writing implementation. Make breaking changes impossible through careful interface design.
26
+
27
+ ## Contract-First Process
28
+
29
+ ```
30
+ 1. DEFINE — Write TypeScript types / OpenAPI schema for request & response
31
+ 2. REVIEW — Check backward compatibility, error coverage, naming consistency
32
+ 3. IMPLEMENT — Code against the contract, not the other way around
33
+ 4. VERIFY — Validate implementation matches contract exactly
34
+ ```
35
+
36
+ ## API Design Checklist
37
+
38
+ ### Naming
39
+
40
+ - [ ] Resource-oriented URLs (nouns, not verbs): `/users/{id}` not `/getUser`
41
+ - [ ] Consistent casing (camelCase for JSON fields, kebab-case for URLs)
42
+ - [ ] Plural collection names: `/users` not `/user`
43
+ - [ ] Avoid abbreviations — `configuration` not `config` in public APIs
44
+
45
+ ### Request Design
46
+
47
+ - [ ] Use appropriate HTTP methods (GET reads, POST creates, PUT replaces, PATCH updates, DELETE removes)
48
+ - [ ] Validate all input with schemas (zod, JSON Schema) at the boundary
49
+ - [ ] Accept only what you need — reject unknown fields
50
+ - [ ] Use query params for filtering/pagination, body for creation/mutation
51
+
52
+ ### Response Design
53
+
54
+ - [ ] Consistent envelope: `{ data, error, meta }` or flat depending on convention
55
+ - [ ] Include pagination metadata: `{ total, page, pageSize, hasMore }`
56
+ - [ ] Return created/updated resource in mutation responses
57
+ - [ ] Use ISO 8601 for dates, UTC always
58
+
59
+ ### Error Design
60
+
61
+ ```typescript
62
+ // Consistent error shape
63
+ interface ApiError {
64
+ code: string; // machine-readable: "VALIDATION_ERROR", "NOT_FOUND"
65
+ message: string; // human-readable description
66
+ details?: unknown; // field-level errors, context
67
+ requestId?: string; // correlation ID for debugging
68
+ }
69
+ ```
70
+
71
+ - [ ] Use standard HTTP status codes correctly (400 vs 422 vs 500)
72
+ - [ ] Never expose stack traces or internal errors to clients
73
+ - [ ] Include actionable error messages
74
+ - [ ] Document all possible error codes per endpoint
75
+
76
+ ### Versioning
77
+
78
+ | Strategy | When | Example |
79
+ | ------------- | ---------------------------------- | ------------------------------------- |
80
+ | URL prefix | Breaking changes to resources | `/v1/users`, `/v2/users` |
81
+ | Header | Breaking changes, same URL desired | `Accept: application/vnd.api.v2+json` |
82
+ | Query param | Simple, low-ceremony | `/users?version=2` |
83
+ | No versioning | Internal APIs, single consumer | Direct updates |
84
+
85
+ **Default:** URL prefix versioning for public APIs, no versioning for internal.
86
+
87
+ ### Backward Compatibility Rules
88
+
89
+ | Safe (Non-Breaking) | Unsafe (Breaking) |
90
+ | ------------------------- | ------------------------ |
91
+ | Add optional fields | Remove or rename fields |
92
+ | Add new endpoints | Change field types |
93
+ | Add new enum values | Remove enum values |
94
+ | Widen input validation | Tighten input validation |
95
+ | Add optional query params | Change URL structure |
96
+
97
+ ## Common Rationalizations
98
+
99
+ | Excuse | Rebuttal |
100
+ | -------------------------------- | ------------------------------------------------------------------------ |
101
+ | "It's just an internal API" | Internal APIs become external. Design the contract now. |
102
+ | "We can change it later" | Every consumer you add makes changes harder. Get it right early. |
103
+ | "The frontend team will adapt" | Consumers shouldn't break because you didn't plan the interface. |
104
+ | "Error handling is boilerplate" | Inconsistent errors cause more debugging than any boilerplate saves. |
105
+ | "Versioning is overkill for now" | Adding versioning later requires migrating all consumers simultaneously. |
106
+
107
+ ## TypeScript Patterns
108
+
109
+ ### Strict Input/Output Types
110
+
111
+ ```typescript
112
+ // [x] Separate input and output types
113
+ interface CreateUserInput {
114
+ name: string;
115
+ email: string;
116
+ }
117
+
118
+ interface User {
119
+ id: string;
120
+ name: string;
121
+ email: string;
122
+ createdAt: string; // ISO 8601
123
+ }
124
+
125
+ // [x] Validate at boundary
126
+ const createUserSchema = z.object({
127
+ name: z.string().min(1).max(100),
128
+ email: z.string().email(),
129
+ });
130
+ ```
131
+
132
+ ### Discriminated Unions for Results
133
+
134
+ ```typescript
135
+ type ApiResult<T> = { success: true; data: T } | { success: false; error: ApiError };
136
+ ```
137
+
138
+ ## Red Flags — STOP
139
+
140
+ - Endpoint returns different shapes depending on internal state
141
+ - Error responses have no consistent structure
142
+ - URL contains verbs (`/createUser`, `/deleteItem`)
143
+ - No input validation at the API boundary
144
+ - Response includes internal database IDs or implementation details
145
+ - Breaking change deployed without version bump
146
+
147
+ ## Verification
148
+
149
+ - [ ] All endpoints have typed request/response schemas
150
+ - [ ] Error responses follow the consistent error shape
151
+ - [ ] Breaking changes increment the API version
152
+ - [ ] Input validation rejects invalid/extra fields
153
+ - [ ] Response matches documented contract exactly
154
+
155
+ ## See Also
156
+
157
+ - **defense-in-depth** — Validation at every layer, not just the API boundary
158
+ - **incremental-implementation** — Build API endpoints as thin vertical slices
159
+ - **test-driven-development** — Write API contract tests before implementation
@@ -0,0 +1,92 @@
1
+ ---
2
+ name: behavioral-kernel
3
+ description: Use when work starts drifting into silent assumptions, overengineering, drive-by refactors, or vague completion claims. Re-centers the agent on a compact Pi-native execution kernel with concrete anti-pattern examples.
4
+ ---
5
+
6
+ # Behavioral Kernel
7
+
8
+ A short reset skill for non-trivial work when the larger prompt is getting noisy.
9
+
10
+ ## When to Use
11
+
12
+ - Work is drifting into silent assumptions, overengineering, or drive-by refactors
13
+ - You're about to add abstraction for a single use case
14
+ - You're changing adjacent code "while you're here"
15
+ - Completion is being claimed without a named proof path
16
+ - You're silently picking one interpretation from multiple valid readings
17
+
18
+ ## When NOT to Use
19
+
20
+ - The task is a trivial, single-step change with an obvious answer
21
+ - You already surfaced assumptions and named the verification path up front
22
+ - Pure lookup/reference questions (no decision or diff involved)
23
+
24
+ ## Kernel
25
+
26
+ 1. **Clarify before committing** — surface assumptions or ask instead of silently choosing.
27
+ 2. **Choose the smallest working change** — solve today's problem directly before inventing flexibility.
28
+ 3. **Keep diffs surgical** — change only what the request requires; log unrelated issues and keep moving.
29
+ 4. **Define proof before acting** — say how success will be verified before implementation, then run that proof after.
30
+
31
+ ## Apply the Kernel
32
+
33
+ Before coding, write down:
34
+
35
+ - the ambiguity or assumptions in 1-3 bullets
36
+ - the smallest acceptable diff
37
+ - what you are explicitly not touching
38
+ - the verification command, test path, or evidence you will use
39
+
40
+ ## Drift Signals
41
+
42
+ Stop and reload this kernel if you catch yourself:
43
+
44
+ - adding abstraction for a single use case
45
+ - changing adjacent code "while you're here"
46
+ - postponing verification until the end
47
+ - claiming completion without a named proof path
48
+ - silently picking one interpretation from multiple valid readings
49
+
50
+ ## Recovery Move
51
+
52
+ When drift is detected:
53
+
54
+ 1. Re-state the request in one sentence.
55
+ 2. Re-state the smallest working change.
56
+ 3. Re-state the proof path.
57
+ 4. Delete or avoid anything outside that boundary.
58
+
59
+ ## Pi-Specific Notes
60
+
61
+ - pi-srcwalk tools (`semantic_query`, `semantic_inspect`, `semantic_grep`, `semantic_show`) replace srcwalk CLI
62
+ - pi-search tools (`websearch`, `codesearch`, `context7`, `grepsearch`, `web_fetch`) replace webclaw
63
+ - `memory_search` (pi-hermes-memory) = durable LTM across sessions; `vcc_recall` = active-session history (not LTM)
64
+ - `subagent` tool replaces `task()` for delegation
65
+ - Avoid building "infrastructure for infrastructure's sake" — Pi already has 13 npm extensions
66
+
67
+ ## Common Rationalizations
68
+
69
+ | Rationalization | Reality |
70
+ |---|---|
71
+ | "I know what to do without reading the skill" | Drift happens silently. Re-read the kernel before it compounds. |
72
+ | "This edge case isn't important right now" | Edge cases ignored become edge-case bugs in production later. |
73
+ | "I'll just make this one quick change" | "Quick changes" outside scope are the primary vector for entropy. |
74
+ | "The skill is too restrictive for this task" | The restrictions exist because they prevent known failure modes. |
75
+
76
+ ## Red Flags
77
+
78
+ - Adding abstraction for a single use case
79
+ - Changing adjacent code "while you're here"
80
+ - Postponing verification until the end
81
+ - Claiming completion without a named proof path
82
+ - Silently picking one interpretation from multiple valid readings
83
+
84
+ ## Verification
85
+
86
+ After applying the behavioral kernel:
87
+
88
+ - [ ] The task scope is clearly defined and bounded
89
+ - [ ] No unrelated code was modified "while you're here"
90
+ - [ ] The smallest working change was chosen for each step
91
+ - [ ] Verification evidence exists before any completion claim
92
+ - [ ] Assumptions were surfaced and confirmed, not silently acted on
@@ -0,0 +1,138 @@
1
+ ---
2
+ name: brainstorming
3
+ description: Use when creating or developing, before writing code or implementation plans - refines rough ideas into fully-formed designs through collaborative questioning, alternative exploration, and incremental validation. Don't use during clear 'mechanical' processes
4
+ ---
5
+
6
+ # Brainstorming Ideas Into Designs
7
+
8
+ > **Replaces** jumping straight to implementation without exploring alternatives, constraints, or edge cases
9
+ ## When to Use
10
+
11
+ - You have a rough idea that needs clarification into a design or spec
12
+ - You need to explore multiple approaches and validate trade-offs before coding
13
+
14
+ ## When NOT to Use
15
+
16
+ - Requirements are already clear and execution is mechanical
17
+ - You are already in implementation with a validated plan or PRD
18
+
19
+ ## Overview
20
+
21
+ Help turn ideas into fully formed designs and specs through natural collaborative dialogue.
22
+
23
+ Start by understanding the current project context, then ask questions one at a time to refine the idea. Once you understand what you're building, present the design in small sections (200-300 words), checking after each section whether it looks right so far.
24
+
25
+ **Part of:** `development-lifecycle` skill (Phase 1: Ideation)
26
+
27
+ **Output template:** `.pi/templates/design.md`
28
+
29
+ ## The Process
30
+
31
+ **Understanding the idea:**
32
+
33
+ - Check out the current project state first (files, docs, recent commits)
34
+ - Ask questions one at a time to refine the idea
35
+ - Prefer multiple choice questions when possible, but open-ended is fine too
36
+ - Only one question per message - if a topic needs more exploration, break it into multiple questions
37
+ - Focus on understanding: purpose, constraints, success criteria
38
+
39
+ **Exploring approaches:**
40
+
41
+ - Propose 2-3 different approaches with trade-offs
42
+ - Present options conversationally with your recommendation and reasoning
43
+ - Lead with your recommended option and explain why
44
+
45
+ **Presenting the design:**
46
+
47
+ - Once you believe you understand what you're building, present the design
48
+ - Break it into sections of 200-300 words
49
+ - Ask after each section whether it looks right so far
50
+ - Cover: architecture, components, data flow, error handling, testing
51
+ - Be ready to go back and clarify if something doesn't make sense
52
+
53
+ ## After the Design
54
+
55
+ **Documentation:**
56
+
57
+ - Write the validated design to `.pi/artifacts/<slug>/design.md`
58
+ - Use template from `.pi/templates/design.md`
59
+ - Use elements-of-style:writing-clearly-and-concisely skill if available
60
+ - Commit the design document to git
61
+
62
+ **Next Phase (if continuing):**
63
+
64
+ - Ask: "Ready to create the PRD?"
65
+ - Load next skill: `spec-driven-development` (auto-discovered from `.pi/skills/`)
66
+ - This moves to Phase 2: Specification
67
+
68
+ **Alternative paths:**
69
+
70
+ - Use `using-git-worktrees` skill to create isolated workspace first
71
+ - Use `planning-and-task-breakdown` skill if skipping formal PRD
72
+
73
+ **Full lifecycle reference:**
74
+
75
+ - Use `development-lifecycle` skill to see all phases
76
+
77
+ ## Key Principles
78
+
79
+ - **One question at a time** - Don't overwhelm with multiple questions
80
+ - **Multiple choice preferred** - Easier to answer than open-ended when possible
81
+ - **YAGNI ruthlessly** - Remove unnecessary features from all designs
82
+ - **Explore alternatives** - Always propose 2-3 approaches before settling
83
+ - **Incremental validation** - Present design in sections, validate each
84
+ - **Be flexible** - Go back and clarify when something doesn't make sense
85
+
86
+ ## Example Flow
87
+
88
+ **User request**: "Add dark mode to the app"
89
+
90
+ **Good brainstorming questions**:
91
+ 1. "Should dark mode be system-preference-aware, manual toggle, or both?"
92
+ 2. "Where does theme state live — CSS variables, React context, localStorage?"
93
+ 3. "Are there existing color tokens, or do we need to create a design token system?"
94
+ 4. "What about images/icons — do they need dark variants?"
95
+
96
+ **Bad brainstorming** (jumping to solution):
97
+ 1. "I'll add a ThemeContext with useState and toggle button" ← skipped alternatives
98
+
99
+ ## Anti-Patterns
100
+
101
+ | Anti-Pattern | Why It Fails | Instead |
102
+ | --- | --- | --- |
103
+ | Asking questions the codebase can answer (search first) | Wastes turns and slows decisions; signals weak preparation | Do quick repo/docs lookup first, then ask only unresolved questions |
104
+ | Brainstorming during mechanical/routine tasks | Adds overhead when execution is already clear | Skip to execution using the relevant implementation skill |
105
+ | Generating 10+ alternatives without narrowing criteria | Creates analysis paralysis and no decision pressure | Present 2-3 viable options with explicit decision criteria |
106
+ | Continuing to brainstorm after a clear direction emerges | Burns time and erodes momentum | Confirm direction, summarize decisions, transition to PRD/plan |
107
+
108
+ ## See Also
109
+
110
+ - `planning-and-task-breakdown` - Turn validated direction into zero-ambiguity implementation tasks
111
+ - `spec-driven-development` - Capture behavioral requirements before implementation
112
+
113
+ ## Common Rationalizations
114
+
115
+ | Rationalization | Reality |
116
+ |---|---|
117
+ | "I already know what to build" | Premature convergence is the #1 cause of wrong solutions. Explore alternatives first. |
118
+ | "Asking too many questions wastes time" | 10 questions now saves 10 hours of rework later. |
119
+ | "We'll figure out edge cases during implementation" | Edge cases discovered late become hacks. Surface them during design. |
120
+ | "The first idea is usually the best" | First ideas are biased by recency and familiarity. Generate alternatives. |
121
+
122
+ ## Red Flags
123
+
124
+ - Jumping to implementation without exploring alternatives
125
+ - Asking zero clarification questions before proposing a design
126
+ - The design is a single paragraph with no trade-offs discussed
127
+ - User's first idea accepted as final without alternatives explored
128
+ - Design doesn't reference existing codebase patterns or constraints
129
+
130
+ ## Verification
131
+
132
+ After completing a brainstorming session:
133
+
134
+ - [ ] At least 2-3 distinct approaches were explored and compared
135
+ - [ ] Trade-offs for each approach are documented
136
+ - [ ] The recommended approach has clear rationale
137
+ - [ ] Key assumptions are surfaced and validated
138
+ - [ ] The design is written to `.pi/artifacts/<slug>/design.md`
@@ -0,0 +1,90 @@
1
+ ---
2
+ name: browser-testing-with-devtools
3
+ description: "Use when verifying or debugging browser behavior with live runtime evidence: DOM state, console errors, network requests, screenshots, performance traces, or end-to-end user flows. Routes between Chrome DevTools and Playwright."
4
+ ---
5
+
6
+ # Browser Testing with DevTools
7
+
8
+ ## Overview
9
+
10
+ Browser testing proves what users actually experience. Use runtime evidence instead of assuming UI code works from static inspection.
11
+
12
+ ## When to Use
13
+
14
+ - Building, debugging, or reviewing anything that runs in a browser.
15
+ - Validating forms, navigation, responsive layout, accessibility-visible state, or screenshots.
16
+ - Investigating console errors, network failures, hydration issues, or performance regressions.
17
+ - Reproducing bugs that only appear in a real browser runtime.
18
+
19
+ ## When NOT to Use
20
+
21
+ - Pure backend or CLI-only changes.
22
+ - Unit-level logic that is faster and clearer to test without a browser.
23
+
24
+ ## Tool Routing
25
+
26
+ | Need | Use |
27
+ | --- | --- |
28
+ | Cross-browser automation, screenshots, repeatable flows | `playwright` |
29
+ | Live Chrome inspection, console/network/runtime state | `chrome-devtools` |
30
+ | Bot-protected docs or static page extraction | `webclaw` (load via `/skill:webclaw`) |
31
+ | UI implementation guidance | `frontend-design` |
32
+
33
+ ## Process
34
+
35
+ 1. Define the user-visible behavior to prove.
36
+ 2. Start the app or identify the target URL.
37
+ 3. Choose the lightest browser tool that can produce evidence.
38
+ 4. Capture initial state: page URL, screenshot or DOM snapshot, console/network baseline if relevant.
39
+ 5. Exercise the user flow with stable selectors or accessible labels.
40
+ 6. Capture final evidence: screenshot, DOM state, response status, console output, or trace.
41
+ 7. If a bug appears, hand off to `debugging-and-error-recovery` with reproduction steps.
42
+ 8. Record exact commands/tool actions and observed result.
43
+
44
+ ## Common Rationalizations
45
+
46
+ | Rationalization | Rebuttal |
47
+ | --- | --- |
48
+ | "The component compiles, so the browser is fine." | Runtime integration, CSS, hydration, and network behavior fail outside compilation. |
49
+ | "A screenshot is enough." | Screenshots miss console errors, failed requests, and inaccessible states. |
50
+ | "Manual clicking is faster." | Repeatable scripted flows create evidence and prevent regression. |
51
+ | "The test is flaky, just wait longer." | Use condition-based waiting and prove the actual state changed. |
52
+
53
+ ## Red Flags
54
+
55
+ - No browser evidence for UI behavior changes.
56
+ - Ignored console errors or failed network requests.
57
+ - Arbitrary sleeps instead of waiting for conditions.
58
+ - Screenshots captured before animations/data loading settle.
59
+ - Selectors coupled to fragile layout instead of accessible names or stable IDs.
60
+
61
+ ## Verification
62
+
63
+ Before declaring browser work complete, provide:
64
+
65
+ - URL or local command used.
66
+ - Browser tool used and why.
67
+ - Screenshots, traces, console/network output, or test result.
68
+ - Any untested browsers/devices and residual risk.
69
+
70
+ ## Skill Result Contract
71
+
72
+ ```xml
73
+ <skill_result>
74
+ <skill>browser-testing-with-devtools</skill>
75
+ <status>completed|blocked|skipped</status>
76
+ <artifacts>Screenshot, trace, test file, console/network log, or none</artifacts>
77
+ <evidence>Commands/tool actions and observed browser result</evidence>
78
+ <risks>Untested browsers, flaky state, missing app server, or none</risks>
79
+ </skill_result>
80
+ ```
81
+
82
+ ## Verification
83
+
84
+ After browser testing:
85
+
86
+ - [ ] All console errors are investigated and resolved or documented
87
+ - [ ] Network requests return expected status codes
88
+ - [ ] DOM state matches expected UI state at each step
89
+ - [ ] Performance trace shows acceptable metrics for key flows
90
+ - [ ] Cross-browser testing completed (Chrome, Firefox, Safari)