@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,405 @@
1
+ # agent-browser
2
+
3
+ ## When to Use
4
+
5
+ - When you need Playwright-based browser automation via the agent-browser CLI.
6
+
7
+ ## When NOT to Use
8
+
9
+ - When MCP-based browser control is required instead of a CLI workflow.
10
+
11
+
12
+ ## Installation
13
+
14
+ ```bash
15
+ npm install -g agent-browser
16
+ agent-browser install # Download Chromium
17
+ ```
18
+
19
+ Linux: `agent-browser install --with-deps`
20
+
21
+ ## Architecture
22
+
23
+ - **Rust CLI** (fast native binary) parses commands, communicates with daemon
24
+ - **Node.js daemon** manages Playwright browser instance, persists between commands
25
+ - Daemon auto-starts on first command, stays alive for fast subsequent ops
26
+ - Each session has own daemon process + Unix socket (or TCP on Windows)
27
+
28
+ ## Core Workflow
29
+
30
+ 1. **Open page**: `agent-browser open <url>`
31
+ 2. **Get snapshot**: `agent-browser snapshot -i` (interactive elements only)
32
+ 3. **Use refs**: `agent-browser click @e2` / `agent-browser fill @e3 "text"`
33
+ 4. **Repeat snapshot** after page changes
34
+
35
+ ## Refs (Primary Selection Method)
36
+
37
+ Snapshot generates ARIA accessibility tree with `[ref=eN]` tags. Refs map to `getByRole()` locators internally.
38
+
39
+ ```bash
40
+ agent-browser snapshot
41
+ # - heading "Example Domain" [ref=e1] [level=1]
42
+ # - button "Submit" [ref=e2]
43
+ # - textbox "Email" [ref=e3]
44
+ # - link "Learn more" [ref=e4]
45
+
46
+ agent-browser click @e2 # Click button
47
+ agent-browser fill @e3 "test@example.com"
48
+ agent-browser get text @e1 # Get heading text
49
+ ```
50
+
51
+ Ref syntax: `@e1`, `e1`, or `ref=e1` all work.
52
+
53
+ **Why refs?**
54
+
55
+ - Deterministic: points to exact element from snapshot
56
+ - Fast: no DOM re-query, uses cached role/name locator
57
+ - AI-friendly: snapshot + ref workflow optimal for LLMs
58
+
59
+ ### Interactive Roles (get refs automatically)
60
+
61
+ `button`, `link`, `textbox`, `checkbox`, `radio`, `combobox`, `listbox`, `menuitem`, `option`, `searchbox`, `slider`, `spinbutton`, `switch`, `tab`, `treeitem`
62
+
63
+ ### Content Roles (get refs when named)
64
+
65
+ `heading`, `cell`, `gridcell`, `columnheader`, `rowheader`, `listitem`, `article`, `region`, `main`, `navigation`
66
+
67
+ ## Commands
68
+
69
+ ### Navigation
70
+
71
+ ```bash
72
+ agent-browser open <url> # Auto-prepends https:// if needed
73
+ agent-browser back
74
+ agent-browser forward
75
+ agent-browser reload
76
+ agent-browser close # Closes browser + daemon
77
+ ```
78
+
79
+ ### Interaction
80
+
81
+ ```bash
82
+ agent-browser click <sel> # Left click
83
+ agent-browser dblclick <sel> # Double click
84
+ agent-browser fill <sel> <text> # Clear field + set value (atomic)
85
+ agent-browser type <sel> <text> # Type character by character (preserves existing)
86
+ agent-browser press <key> # Key press: Enter, Tab, Control+a, Shift+Tab
87
+ agent-browser keydown <key> # Hold key down
88
+ agent-browser keyup <key> # Release key
89
+ agent-browser hover <sel>
90
+ agent-browser focus <sel>
91
+ agent-browser select <sel> <val> # Select dropdown option by value
92
+ agent-browser check <sel> # Check checkbox
93
+ agent-browser uncheck <sel> # Uncheck checkbox
94
+ agent-browser scroll up|down|left|right [px] # Default 300px
95
+ agent-browser scrollintoview <sel>
96
+ agent-browser drag <src> <tgt> # Drag and drop
97
+ agent-browser upload <sel> <file1> [file2...]
98
+ ```
99
+
100
+ ### Get Info
101
+
102
+ ```bash
103
+ agent-browser get text <sel> # textContent
104
+ agent-browser get html <sel> # innerHTML
105
+ agent-browser get value <sel> # input value
106
+ agent-browser get attr <sel> <attr>
107
+ agent-browser get title
108
+ agent-browser get url
109
+ agent-browser get count <sel> # Number of matching elements
110
+ agent-browser get box <sel> # Bounding box {x,y,width,height}
111
+ ```
112
+
113
+ ### Check State
114
+
115
+ ```bash
116
+ agent-browser is visible <sel>
117
+ agent-browser is enabled <sel>
118
+ agent-browser is checked <sel>
119
+ ```
120
+
121
+ ### Snapshot Options
122
+
123
+ ```bash
124
+ agent-browser snapshot # Full accessibility tree
125
+ agent-browser snapshot -i # Interactive elements only (buttons, inputs, links)
126
+ agent-browser snapshot -c # Compact (remove empty structural elements)
127
+ agent-browser snapshot -d 3 # Limit depth to 3 levels
128
+ agent-browser snapshot -s "#main" # Scope to CSS selector
129
+ agent-browser snapshot -i -c -d 5 # Combine options
130
+ ```
131
+
132
+ ### Screenshots & PDF
133
+
134
+ ```bash
135
+ agent-browser screenshot [path] # PNG to stdout (base64) or file
136
+ agent-browser screenshot --full # Full page screenshot
137
+ agent-browser screenshot -f page.png
138
+ agent-browser pdf <path> # Save as PDF (format: Letter, A4, etc)
139
+ ```
140
+
141
+ ### Wait
142
+
143
+ ```bash
144
+ agent-browser wait <selector> # Wait for element visible
145
+ agent-browser wait <ms> # Wait for time (numeric = milliseconds)
146
+ agent-browser wait --text "Welcome"
147
+ agent-browser wait --url "**/dashboard"
148
+ agent-browser wait --load networkidle # load | domcontentloaded | networkidle
149
+ agent-browser wait --fn "window.ready === true" # Wait for JS condition
150
+ ```
151
+
152
+ ### Find (Semantic Locators)
153
+
154
+ ```bash
155
+ agent-browser find role button click --name "Submit"
156
+ agent-browser find text "Sign In" click
157
+ agent-browser find label "Email" fill "test@test.com"
158
+ agent-browser find placeholder "Search" fill "query"
159
+ agent-browser find alt "Logo" click # By alt text
160
+ agent-browser find title "Close" click # By title attribute
161
+ agent-browser find testid "submit-btn" click
162
+ agent-browser find first ".item" click # First match
163
+ agent-browser find last ".item" click # Last match
164
+ agent-browser find nth 2 "a" text # Nth match (0-indexed)
165
+ ```
166
+
167
+ Actions: `click`, `fill`, `check`, `hover`, `text`
168
+
169
+ ### Sessions (Isolated Browser Instances)
170
+
171
+ ```bash
172
+ agent-browser --session agent1 open site-a.com
173
+ agent-browser --session agent2 open site-b.com
174
+ AGENT_BROWSER_SESSION=agent1 agent-browser click @e2
175
+
176
+ agent-browser session list # List active sessions
177
+ agent-browser session # Show current session
178
+ ```
179
+
180
+ Each session has: own browser, cookies/storage, navigation history, auth state.
181
+
182
+ ### Storage & Cookies
183
+
184
+ ```bash
185
+ agent-browser cookies # Get all cookies
186
+ agent-browser cookies set <name> <val>
187
+ agent-browser cookies clear
188
+
189
+ agent-browser storage local # Get all localStorage
190
+ agent-browser storage local <key> # Get specific key
191
+ agent-browser storage local set <k> <v>
192
+ agent-browser storage local clear
193
+ agent-browser storage session # Same for sessionStorage
194
+ ```
195
+
196
+ ### Tabs & Windows
197
+
198
+ ```bash
199
+ agent-browser tab # List tabs
200
+ agent-browser tab new [url] # New tab
201
+ agent-browser tab <n> # Switch to tab n
202
+ agent-browser tab close [n] # Close tab
203
+ agent-browser window new # New window (new context)
204
+ ```
205
+
206
+ ### Frames
207
+
208
+ ```bash
209
+ agent-browser frame <sel> # Switch to iframe by selector
210
+ agent-browser frame main # Back to main frame
211
+ ```
212
+
213
+ ### Dialogs (alert/confirm/prompt)
214
+
215
+ ```bash
216
+ agent-browser dialog accept [text] # Accept (with optional prompt text)
217
+ agent-browser dialog dismiss # Dismiss
218
+ ```
219
+
220
+ ### Network Interception
221
+
222
+ ```bash
223
+ agent-browser network route <url> # Intercept requests
224
+ agent-browser network route <url> --abort # Block requests
225
+ agent-browser network route <url> --body '{"mock":true}' # Mock response
226
+ agent-browser network unroute [url] # Remove routes
227
+ agent-browser network requests # View tracked requests
228
+ agent-browser network requests --filter api # Filter by URL pattern
229
+ ```
230
+
231
+ ### Browser Settings
232
+
233
+ ```bash
234
+ agent-browser set viewport <w> <h>
235
+ agent-browser set device "iPhone 14" # Emulate device
236
+ agent-browser set geo <lat> <lng> # Geolocation
237
+ agent-browser set offline [on|off] # Toggle offline mode
238
+ agent-browser set media dark|light # Color scheme
239
+ agent-browser set credentials <u> <p> # HTTP basic auth
240
+ agent-browser set headers '{"X-Custom":"value"}'
241
+ ```
242
+
243
+ ### Debug & Tracing
244
+
245
+ ```bash
246
+ agent-browser --headed open <url> # Show browser window (not headless)
247
+ agent-browser console # View console messages
248
+ agent-browser console --clear # Clear console
249
+ agent-browser errors # View page errors
250
+ agent-browser errors --clear
251
+ agent-browser highlight <sel> # Highlight element visually
252
+ agent-browser eval <js> # Run JavaScript, returns result
253
+ agent-browser trace start [path] # Start recording trace
254
+ agent-browser trace stop [path] # Stop and save trace
255
+ ```
256
+
257
+ ### Auth State Persistence
258
+
259
+ ```bash
260
+ agent-browser state save auth.json # Save cookies, localStorage, sessionStorage
261
+ agent-browser state load auth.json # Load at next launch (must be at browser start)
262
+ ```
263
+
264
+ ### Mouse Control
265
+
266
+ ```bash
267
+ agent-browser mouse move <x> <y> # Move to coordinates
268
+ agent-browser mouse down [button] # left|right|middle
269
+ agent-browser mouse up [button]
270
+ agent-browser mouse wheel <dy> [dx] # Scroll wheel
271
+ ```
272
+
273
+ ## Options
274
+
275
+ | Option | Description |
276
+ | ------------------ | ------------------------------------------------- |
277
+ | `--session <name>` | Isolated session (or `AGENT_BROWSER_SESSION` env) |
278
+ | `--json` | JSON output (for parsing) |
279
+ | `--full, -f` | Full page screenshot |
280
+ | `--headed` | Show browser window |
281
+ | `--name, -n` | Locator name filter |
282
+ | `--exact` | Exact text match |
283
+ | `--debug` | Debug output |
284
+
285
+ ## Selector Types
286
+
287
+ 1. **Refs** (preferred): `@e1`, `@e2` from snapshot
288
+ 2. **CSS**: `#id`, `.class`, `div > button`
289
+ 3. **Text**: `text=Submit`
290
+ 4. **XPath**: `xpath=//button`
291
+
292
+ ## JSON Output Format
293
+
294
+ ```bash
295
+ agent-browser snapshot --json
296
+ # {"success":true,"data":{"snapshot":"...","refs":{"e1":{"role":"heading","name":"Title"},...}}}
297
+
298
+ agent-browser get text @e1 --json
299
+ # {"success":true,"data":{"text":"Hello World"}}
300
+
301
+ agent-browser is visible @e2 --json
302
+ # {"success":true,"data":{"visible":true}}
303
+ ```
304
+
305
+ ## Patterns
306
+
307
+ ### Login Flow
308
+
309
+ ```bash
310
+ agent-browser open https://example.com/login
311
+ agent-browser snapshot -i
312
+ # Identify refs for username, password, submit
313
+ agent-browser fill @e2 "username"
314
+ agent-browser fill @e3 "password"
315
+ agent-browser click @e4
316
+ agent-browser wait --url "**/dashboard"
317
+ agent-browser state save auth.json # Persist auth for later
318
+ ```
319
+
320
+ ### Form Submission
321
+
322
+ ```bash
323
+ agent-browser open https://example.com/form
324
+ agent-browser snapshot -i --json
325
+ # Parse refs from JSON response
326
+ agent-browser fill @e1 "John Doe"
327
+ agent-browser fill @e2 "john@example.com"
328
+ agent-browser select @e3 "option-value"
329
+ agent-browser check @e4
330
+ agent-browser click @e5
331
+ agent-browser wait --text "Success"
332
+ ```
333
+
334
+ ### Scraping Data
335
+
336
+ ```bash
337
+ agent-browser open https://example.com/data
338
+ agent-browser snapshot
339
+ agent-browser get text @e1
340
+ agent-browser get attr @e2 "href"
341
+ agent-browser eval "document.querySelectorAll('.item').length"
342
+ agent-browser eval "JSON.stringify([...document.querySelectorAll('.price')].map(e => e.textContent))"
343
+ ```
344
+
345
+ ### Multi-page Navigation
346
+
347
+ ```bash
348
+ agent-browser open https://example.com
349
+ agent-browser snapshot -i
350
+ agent-browser click @e3 # Navigate to new page
351
+ agent-browser wait --load networkidle
352
+ agent-browser snapshot -i # Fresh snapshot for new page
353
+ ```
354
+
355
+ ### Parallel Browser Sessions
356
+
357
+ ```bash
358
+ # Terminal 1
359
+ agent-browser --session scraper1 open https://site-a.com
360
+ agent-browser --session scraper1 snapshot -i
361
+
362
+ # Terminal 2
363
+ agent-browser --session scraper2 open https://site-b.com
364
+ agent-browser --session scraper2 snapshot -i
365
+ ```
366
+
367
+ ### Mock API Response
368
+
369
+ ```bash
370
+ agent-browser network route "**/api/users" --body '[{"id":1,"name":"Mock User"}]'
371
+ agent-browser open https://example.com # App sees mocked data
372
+ agent-browser network unroute "**/api/users"
373
+ ```
374
+
375
+ ### Handle File Downloads
376
+
377
+ ```bash
378
+ agent-browser open https://example.com/downloads
379
+ agent-browser snapshot -i
380
+ agent-browser click @e2 # Download button
381
+ # Download handled automatically, saved to suggested filename
382
+ ```
383
+
384
+ ## Anti-Patterns
385
+
386
+ - **Don't use CSS selectors when refs available** - refs from snapshot are deterministic
387
+ - **Don't skip snapshot after page changes** - refs become stale after navigation
388
+ - **Don't use `type` when `fill` works** - `fill` atomically clears + sets, `type` appends
389
+ - **Don't hardcode wait times** - use semantic waits (`--text`, `--url`, `--load`, `--fn`)
390
+ - **Don't use `--headed` in automation** - only for debugging
391
+ - **Don't call `state load` after browser started** - must be at launch time
392
+
393
+ ## Timeouts
394
+
395
+ Default timeout: 10 seconds (Playwright default is 30s). Commands will fail after timeout if element not found or condition not met.
396
+
397
+ ## Browser Support
398
+
399
+ | Platform | Binary | Fallback |
400
+ | ----------- | ----------- | -------- |
401
+ | macOS ARM64 | Native Rust | Node.js |
402
+ | macOS x64 | Native Rust | Node.js |
403
+ | Linux ARM64 | Native Rust | Node.js |
404
+ | Linux x64 | Native Rust | Node.js |
405
+ | Windows | - | Node.js |
@@ -0,0 +1,125 @@
1
+ ---
2
+ name: polar
3
+ description: Use when implementing payment flows, subscriptions, license keys, or customer portals with Polar. MUST load before writing any checkout, monetization, or billing code using Polar platform.
4
+ ---
5
+
6
+ # Polar Integration
7
+
8
+ ## When to Use
9
+
10
+ - When implementing Polar checkout, subscriptions, or license key flows.
11
+
12
+ ## When NOT to Use
13
+
14
+ - When payments are handled by a different platform.
15
+
16
+
17
+ ## What I Do
18
+
19
+ - Guide implementation of Polar checkout and payments
20
+ - Help with subscription management and billing
21
+ - Assist with license key validation
22
+ - Set up webhook handlers for payment events
23
+
24
+ ## When to Use Me
25
+
26
+ - Implementing checkout flow for a product
27
+ - Adding subscription billing to an app
28
+ - Setting up license key validation
29
+ - Building a customer portal
30
+ - Handling payment webhooks
31
+
32
+ ## Quick Start
33
+
34
+ ```bash
35
+ npm install @polar-sh/sdk
36
+ ```
37
+
38
+ ```typescript
39
+ import { Polar } from "@polar-sh/sdk";
40
+
41
+ const polar = new Polar({
42
+ accessToken: process.env.POLAR_ACCESS_TOKEN!,
43
+ server: "production", // or "sandbox"
44
+ });
45
+ ```
46
+
47
+ ## Key APIs
48
+
49
+ | API | Purpose |
50
+ | ----------------------- | --------------------------------- |
51
+ | `polar.products.*` | Create/manage products and prices |
52
+ | `polar.checkouts.*` | Create checkout sessions |
53
+ | `polar.subscriptions.*` | Manage subscriptions |
54
+ | `polar.orders.*` | View order history |
55
+ | `polar.customers.*` | Customer management |
56
+ | `polar.licenseKeys.*` | Issue and validate licenses |
57
+
58
+ ## Environment Variables
59
+
60
+ | Variable | Description |
61
+ | ---------------------- | ------------------------------- |
62
+ | `POLAR_ACCESS_TOKEN` | Organization Access Token (OAT) |
63
+ | `POLAR_WEBHOOK_SECRET` | Webhook signing secret |
64
+
65
+ ## Common Patterns
66
+
67
+ ### Create Checkout
68
+
69
+ ```typescript
70
+ const checkout = await polar.checkouts.create({
71
+ productId: "prod_xxx",
72
+ successUrl: "https://myapp.com/success",
73
+ });
74
+ // Redirect to checkout.url
75
+ ```
76
+
77
+ ### Validate License Key
78
+
79
+ ```typescript
80
+ const result = await polar.licenseKeys.validate({
81
+ key: "XXXX-XXXX-XXXX-XXXX",
82
+ organizationId: "org_xxx",
83
+ });
84
+ ```
85
+
86
+ ### Handle Webhook
87
+
88
+ ```typescript
89
+ import { validateEvent } from "@polar-sh/sdk/webhooks";
90
+
91
+ const event = validateEvent(body, signature, process.env.POLAR_WEBHOOK_SECRET!);
92
+ // event.type: "subscription.created", "order.created", etc.
93
+ ```
94
+
95
+ ## Links
96
+
97
+ - [Dashboard](https://polar.sh)
98
+ - [API Docs](https://docs.polar.sh/api-reference)
99
+ - [SDK](https://www.npmjs.com/package/@polar-sh/sdk)
100
+
101
+ ## Common Rationalizations
102
+
103
+ | Rationalization | Reality |
104
+ |---|---|
105
+ | "I'll test payments in production" | Payment bugs cost real money. Test in sandbox with every scenario. |
106
+ | "The webhook handler is simple enough" | Webhook failures mean lost revenue. Validate signatures, handle retries, log everything. |
107
+ | "Subscription logic can go in the frontend" | Pricing logic in the frontend is spoofable. Server-side validation is mandatory. |
108
+
109
+ ## Red Flags
110
+
111
+ - Payment logic without error handling for all failure modes
112
+ - Webhook signatures not verified
113
+ - Test mode vs live mode not clearly separated in code
114
+ - Subscription state stored locally without server reconciliation
115
+ - Pricing changes deployed without migration plan for existing subscribers
116
+
117
+ ## Verification
118
+
119
+ After implementing Polar payments:
120
+
121
+ - [ ] All payment flows tested in sandbox mode
122
+ - [ ] Webhook signatures are verified on every request
123
+ - [ ] Test mode and live mode are explicitly separated in configuration
124
+ - [ ] Error handling covers: declined, expired, insufficient funds, network failure
125
+ - [ ] Subscription state is reconciled server-side, not client-authoritative
@@ -0,0 +1,156 @@
1
+ ---
2
+ name: react-best-practices
3
+ description: MUST load when writing, reviewing, or refactoring React/Next.js code for performance. Covers Vercel Engineering patterns — components, data fetching, bundle optimization, server components. Critical for any Next.js performance work.
4
+ ---
5
+
6
+ # Vercel React Best Practices
7
+
8
+ ## When to Use
9
+
10
+ - Applying performance guidelines to React/Next.js components or pages.
11
+
12
+ ## When NOT to Use
13
+
14
+ - Non-React codebases or UI-free/backend-only changes.
15
+
16
+
17
+ ## When to Apply
18
+
19
+ Reference these guidelines when:
20
+
21
+ - Writing new React components or Next.js pages
22
+ - Implementing data fetching (client or server-side)
23
+ - Reviewing code for performance issues
24
+ - Refactoring existing React/Next.js code
25
+ - Optimizing bundle size or load times
26
+
27
+ ## Rule Categories by Priority
28
+
29
+ | Priority | Category | Impact | Prefix |
30
+ | -------- | ------------------------- | ----------- | ------------ |
31
+ | 1 | Eliminating Waterfalls | CRITICAL | `async-` |
32
+ | 2 | Bundle Size Optimization | CRITICAL | `bundle-` |
33
+ | 3 | Server-Side Performance | HIGH | `server-` |
34
+ | 4 | Client-Side Data Fetching | MEDIUM-HIGH | `client-` |
35
+ | 5 | Re-render Optimization | MEDIUM | `rerender-` |
36
+ | 6 | Rendering Performance | MEDIUM | `rendering-` |
37
+ | 7 | JavaScript Performance | LOW-MEDIUM | `js-` |
38
+ | 8 | Advanced Patterns | LOW | `advanced-` |
39
+
40
+ ## Quick Reference
41
+
42
+ ### 1. Eliminating Waterfalls (CRITICAL)
43
+
44
+ - `async-defer-await` - Move await into branches where actually used
45
+ - `async-parallel` - Use Promise.all() for independent operations
46
+ - `async-dependencies` - Use better-all for partial dependencies
47
+ - `async-api-routes` - Start promises early, await late in API routes
48
+ - `async-suspense-boundaries` - Use Suspense to stream content
49
+
50
+ ### 2. Bundle Size Optimization (CRITICAL)
51
+
52
+ - `bundle-barrel-imports` - Import directly, avoid barrel files
53
+ - `bundle-dynamic-imports` - Use next/dynamic for heavy components
54
+ - `bundle-defer-third-party` - Load analytics/logging after hydration
55
+ - `bundle-conditional` - Load modules only when feature is activated
56
+ - `bundle-preload` - Preload on hover/focus for perceived speed
57
+
58
+ ### 3. Server-Side Performance (HIGH)
59
+
60
+ - `server-cache-react` - Use React.cache() for per-request deduplication
61
+ - `server-cache-lru` - Use LRU cache for cross-request caching
62
+ - `server-serialization` - Minimize data passed to client components
63
+ - `server-parallel-fetching` - Restructure components to parallelize fetches
64
+ - `server-after-nonblocking` - Use after() for non-blocking operations
65
+
66
+ ### 4. Client-Side Data Fetching (MEDIUM-HIGH)
67
+
68
+ - `client-swr-dedup` - Use SWR for automatic request deduplication
69
+ - `client-event-listeners` - Deduplicate global event listeners
70
+
71
+ ### 5. Re-render Optimization (MEDIUM)
72
+
73
+ - `rerender-defer-reads` - Don't subscribe to state only used in callbacks
74
+ - `rerender-memo` - Extract expensive work into memoized components
75
+ - `rerender-dependencies` - Use primitive dependencies in effects
76
+ - `rerender-derived-state` - Subscribe to derived booleans, not raw values
77
+ - `rerender-functional-setstate` - Use functional setState for stable callbacks
78
+ - `rerender-lazy-state-init` - Pass function to useState for expensive values
79
+ - `rerender-transitions` - Use startTransition for non-urgent updates
80
+
81
+ ### 6. Rendering Performance (MEDIUM)
82
+
83
+ - `rendering-animate-svg-wrapper` - Animate div wrapper, not SVG element
84
+ - `rendering-content-visibility` - Use content-visibility for long lists
85
+ - `rendering-hoist-jsx` - Extract static JSX outside components
86
+ - `rendering-svg-precision` - Reduce SVG coordinate precision
87
+ - `rendering-hydration-no-flicker` - Use inline script for client-only data
88
+ - `rendering-activity` - Use Activity component for show/hide
89
+ - `rendering-conditional-render` - Use ternary, not && for conditionals
90
+
91
+ ### 7. JavaScript Performance (LOW-MEDIUM)
92
+
93
+ - `js-batch-dom-css` - Group CSS changes via classes or cssText
94
+ - `js-index-maps` - Build Map for repeated lookups
95
+ - `js-cache-property-access` - Cache object properties in loops
96
+ - `js-cache-function-results` - Cache function results in module-level Map
97
+ - `js-cache-storage` - Cache localStorage/sessionStorage reads
98
+ - `js-combine-iterations` - Combine multiple filter/map into one loop
99
+ - `js-length-check-first` - Check array length before expensive comparison
100
+ - `js-early-exit` - Return early from functions
101
+ - `js-hoist-regexp` - Hoist RegExp creation outside loops
102
+ - `js-min-max-loop` - Use loop for min/max instead of sort
103
+ - `js-set-map-lookups` - Use Set/Map for O(1) lookups
104
+ - `js-tosorted-immutable` - Use toSorted() for immutability
105
+
106
+ ### 8. Advanced Patterns (LOW)
107
+
108
+ - `advanced-event-handler-refs` - Store event handlers in refs
109
+ - `advanced-use-latest` - useLatest for stable callback refs
110
+
111
+ ## How to Use
112
+
113
+ Read individual rule files for detailed explanations and code examples:
114
+
115
+ ```
116
+ rules/async-parallel.md
117
+ rules/bundle-barrel-imports.md
118
+ rules/_sections.md
119
+ ```
120
+
121
+ Each rule file contains:
122
+
123
+ - Brief explanation of why it matters
124
+ - Incorrect code example with explanation
125
+ - Correct code example with explanation
126
+ - Additional context and references
127
+
128
+ ## Full Compiled Document
129
+
130
+ For the complete guide with all rules expanded: `AGENTS.md`
131
+
132
+ ## Common Rationalizations
133
+
134
+ | Rationalization | Reality |
135
+ |---|---|
136
+ | "This is straightforward, I don't need the full process" | Simple tasks mask hidden complexity. The process catches what "straightforward" misses. |
137
+ | "I'll reference the docs instead of loading the skill" | Docs describe what. The skill describes how. Both are needed for reliable execution. |
138
+ | "I've used this before, I know the patterns" | Patterns evolve. The skill captures current best practices, not remembered ones. |
139
+ | "The skill's steps add overhead" | The overhead is minutes. The rework from skipping them is hours. |
140
+
141
+ ## Red Flags
142
+
143
+ - Skill's process steps being skipped without explicit justification
144
+ - Output that doesn't match the skill's expected quality standards
145
+ - No evidence of verification before claiming completion
146
+ - The same shortcut being taken repeatedly (pattern of avoidance)
147
+
148
+ ## Verification
149
+
150
+ After completing work with this skill:
151
+
152
+ - [ ] All relevant tests pass
153
+ - [ ] Build succeeds with no new warnings
154
+ - [ ] The skill's process steps were followed in order
155
+ - [ ] No skipped steps without explicit justification
156
+ - [ ] Evidence of completion is documented (test output, screenshots, logs)