jfl 0.0.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 (381) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +313 -0
  3. package/clawdbot-skill/README.md +328 -0
  4. package/clawdbot-skill/SKILL.md +362 -0
  5. package/clawdbot-skill/index.ts +486 -0
  6. package/clawdbot-skill/package.json +28 -0
  7. package/clawdbot-skill/skill.json +28 -0
  8. package/dist/commands/agents.d.ts +5 -0
  9. package/dist/commands/agents.d.ts.map +1 -0
  10. package/dist/commands/agents.js +399 -0
  11. package/dist/commands/agents.js.map +1 -0
  12. package/dist/commands/context-hub.d.ts +12 -0
  13. package/dist/commands/context-hub.d.ts.map +1 -0
  14. package/dist/commands/context-hub.js +642 -0
  15. package/dist/commands/context-hub.js.map +1 -0
  16. package/dist/commands/deploy.d.ts +5 -0
  17. package/dist/commands/deploy.d.ts.map +1 -0
  18. package/dist/commands/deploy.js +370 -0
  19. package/dist/commands/deploy.js.map +1 -0
  20. package/dist/commands/feedback.d.ts +2 -0
  21. package/dist/commands/feedback.d.ts.map +1 -0
  22. package/dist/commands/feedback.js +178 -0
  23. package/dist/commands/feedback.js.map +1 -0
  24. package/dist/commands/hud.d.ts +4 -0
  25. package/dist/commands/hud.d.ts.map +1 -0
  26. package/dist/commands/hud.js +262 -0
  27. package/dist/commands/hud.js.map +1 -0
  28. package/dist/commands/init.d.ts +4 -0
  29. package/dist/commands/init.d.ts.map +1 -0
  30. package/dist/commands/init.js +553 -0
  31. package/dist/commands/init.js.map +1 -0
  32. package/dist/commands/login.d.ts +23 -0
  33. package/dist/commands/login.d.ts.map +1 -0
  34. package/dist/commands/login.js +818 -0
  35. package/dist/commands/login.js.map +1 -0
  36. package/dist/commands/ralph.d.ts +9 -0
  37. package/dist/commands/ralph.d.ts.map +1 -0
  38. package/dist/commands/ralph.js +67 -0
  39. package/dist/commands/ralph.js.map +1 -0
  40. package/dist/commands/repair.d.ts +7 -0
  41. package/dist/commands/repair.d.ts.map +1 -0
  42. package/dist/commands/repair.js +283 -0
  43. package/dist/commands/repair.js.map +1 -0
  44. package/dist/commands/session-mgmt.d.ts +33 -0
  45. package/dist/commands/session-mgmt.d.ts.map +1 -0
  46. package/dist/commands/session-mgmt.js +404 -0
  47. package/dist/commands/session-mgmt.js.map +1 -0
  48. package/dist/commands/session.d.ts +2 -0
  49. package/dist/commands/session.d.ts.map +1 -0
  50. package/dist/commands/session.js +639 -0
  51. package/dist/commands/session.js.map +1 -0
  52. package/dist/commands/skills.d.ts +31 -0
  53. package/dist/commands/skills.d.ts.map +1 -0
  54. package/dist/commands/skills.js +314 -0
  55. package/dist/commands/skills.js.map +1 -0
  56. package/dist/commands/status.d.ts +2 -0
  57. package/dist/commands/status.d.ts.map +1 -0
  58. package/dist/commands/status.js +127 -0
  59. package/dist/commands/status.js.map +1 -0
  60. package/dist/commands/synopsis.d.ts +10 -0
  61. package/dist/commands/synopsis.d.ts.map +1 -0
  62. package/dist/commands/synopsis.js +277 -0
  63. package/dist/commands/synopsis.js.map +1 -0
  64. package/dist/commands/update.d.ts +10 -0
  65. package/dist/commands/update.d.ts.map +1 -0
  66. package/dist/commands/update.js +165 -0
  67. package/dist/commands/update.js.map +1 -0
  68. package/dist/commands/voice.d.ts +410 -0
  69. package/dist/commands/voice.d.ts.map +1 -0
  70. package/dist/commands/voice.js +4763 -0
  71. package/dist/commands/voice.js.map +1 -0
  72. package/dist/index.d.ts +9 -0
  73. package/dist/index.d.ts.map +1 -0
  74. package/dist/index.js +512 -0
  75. package/dist/index.js.map +1 -0
  76. package/dist/mcp/context-hub-mcp.d.ts +11 -0
  77. package/dist/mcp/context-hub-mcp.d.ts.map +1 -0
  78. package/dist/mcp/context-hub-mcp.js +548 -0
  79. package/dist/mcp/context-hub-mcp.js.map +1 -0
  80. package/dist/telegram/voice.d.ts +146 -0
  81. package/dist/telegram/voice.d.ts.map +1 -0
  82. package/dist/telegram/voice.js +351 -0
  83. package/dist/telegram/voice.js.map +1 -0
  84. package/dist/types/skills.d.ts +44 -0
  85. package/dist/types/skills.d.ts.map +1 -0
  86. package/dist/types/skills.js +5 -0
  87. package/dist/types/skills.js.map +1 -0
  88. package/dist/ui/banner.d.ts +18 -0
  89. package/dist/ui/banner.d.ts.map +1 -0
  90. package/dist/ui/banner.js +323 -0
  91. package/dist/ui/banner.js.map +1 -0
  92. package/dist/ui/index.d.ts +8 -0
  93. package/dist/ui/index.d.ts.map +1 -0
  94. package/dist/ui/index.js +8 -0
  95. package/dist/ui/index.js.map +1 -0
  96. package/dist/ui/prompts.d.ts +52 -0
  97. package/dist/ui/prompts.d.ts.map +1 -0
  98. package/dist/ui/prompts.js +72 -0
  99. package/dist/ui/prompts.js.map +1 -0
  100. package/dist/ui/theme.d.ts +82 -0
  101. package/dist/ui/theme.d.ts.map +1 -0
  102. package/dist/ui/theme.js +142 -0
  103. package/dist/ui/theme.js.map +1 -0
  104. package/dist/utils/auth-guard.d.ts +66 -0
  105. package/dist/utils/auth-guard.d.ts.map +1 -0
  106. package/dist/utils/auth-guard.js +348 -0
  107. package/dist/utils/auth-guard.js.map +1 -0
  108. package/dist/utils/ensure-project.d.ts +11 -0
  109. package/dist/utils/ensure-project.d.ts.map +1 -0
  110. package/dist/utils/ensure-project.js +70 -0
  111. package/dist/utils/ensure-project.js.map +1 -0
  112. package/dist/utils/git.d.ts +73 -0
  113. package/dist/utils/git.d.ts.map +1 -0
  114. package/dist/utils/git.js +219 -0
  115. package/dist/utils/git.js.map +1 -0
  116. package/dist/utils/github-auth.d.ts +54 -0
  117. package/dist/utils/github-auth.d.ts.map +1 -0
  118. package/dist/utils/github-auth.js +375 -0
  119. package/dist/utils/github-auth.js.map +1 -0
  120. package/dist/utils/github-repo.d.ts +30 -0
  121. package/dist/utils/github-repo.d.ts.map +1 -0
  122. package/dist/utils/github-repo.js +219 -0
  123. package/dist/utils/github-repo.js.map +1 -0
  124. package/dist/utils/platform-auth.d.ts +81 -0
  125. package/dist/utils/platform-auth.d.ts.map +1 -0
  126. package/dist/utils/platform-auth.js +191 -0
  127. package/dist/utils/platform-auth.js.map +1 -0
  128. package/dist/utils/project-config.d.ts +43 -0
  129. package/dist/utils/project-config.d.ts.map +1 -0
  130. package/dist/utils/project-config.js +97 -0
  131. package/dist/utils/project-config.js.map +1 -0
  132. package/dist/utils/skill-registry.d.ts +49 -0
  133. package/dist/utils/skill-registry.d.ts.map +1 -0
  134. package/dist/utils/skill-registry.js +192 -0
  135. package/dist/utils/skill-registry.js.map +1 -0
  136. package/dist/utils/wallet.d.ts +62 -0
  137. package/dist/utils/wallet.d.ts.map +1 -0
  138. package/dist/utils/wallet.js +252 -0
  139. package/dist/utils/wallet.js.map +1 -0
  140. package/dist/utils/x402-client.d.ts +86 -0
  141. package/dist/utils/x402-client.d.ts.map +1 -0
  142. package/dist/utils/x402-client.js +265 -0
  143. package/dist/utils/x402-client.js.map +1 -0
  144. package/package.json +76 -0
  145. package/scripts/postinstall.js +116 -0
  146. package/scripts/test-onboarding.sh +121 -0
  147. package/scripts/voice-start.sh +128 -0
  148. package/scripts/voice-stop.sh +33 -0
  149. package/template/.claude/settings.json +92 -0
  150. package/template/.claude/skills/agent-browser/SKILL.md +116 -0
  151. package/template/.claude/skills/brand-architect/SKILL.md +240 -0
  152. package/template/.claude/skills/brand-architect/config.yaml +137 -0
  153. package/template/.claude/skills/campaign-hud/config.yaml +112 -0
  154. package/template/.claude/skills/content-creator/SKILL.md +294 -0
  155. package/template/.claude/skills/debug/MULTI_AGENT.md +360 -0
  156. package/template/.claude/skills/debug/SKILL.md +549 -0
  157. package/template/.claude/skills/fly-deploy/SKILL.md +676 -0
  158. package/template/.claude/skills/founder-video/SKILL.md +467 -0
  159. package/template/.claude/skills/hud/SKILL.md +157 -0
  160. package/template/.claude/skills/ralph-tui/SKILL.md +210 -0
  161. package/template/.claude/skills/react-best-practices/AGENTS.md +2249 -0
  162. package/template/.claude/skills/react-best-practices/README.md +123 -0
  163. package/template/.claude/skills/react-best-practices/SKILL.md +125 -0
  164. package/template/.claude/skills/react-best-practices/metadata.json +15 -0
  165. package/template/.claude/skills/react-best-practices/rules/_sections.md +46 -0
  166. package/template/.claude/skills/react-best-practices/rules/_template.md +28 -0
  167. package/template/.claude/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  168. package/template/.claude/skills/react-best-practices/rules/advanced-use-latest.md +49 -0
  169. package/template/.claude/skills/react-best-practices/rules/async-api-routes.md +38 -0
  170. package/template/.claude/skills/react-best-practices/rules/async-defer-await.md +80 -0
  171. package/template/.claude/skills/react-best-practices/rules/async-dependencies.md +36 -0
  172. package/template/.claude/skills/react-best-practices/rules/async-parallel.md +28 -0
  173. package/template/.claude/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
  174. package/template/.claude/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
  175. package/template/.claude/skills/react-best-practices/rules/bundle-conditional.md +31 -0
  176. package/template/.claude/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
  177. package/template/.claude/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  178. package/template/.claude/skills/react-best-practices/rules/bundle-preload.md +50 -0
  179. package/template/.claude/skills/react-best-practices/rules/client-event-listeners.md +74 -0
  180. package/template/.claude/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
  181. package/template/.claude/skills/react-best-practices/rules/js-batch-dom-css.md +82 -0
  182. package/template/.claude/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
  183. package/template/.claude/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
  184. package/template/.claude/skills/react-best-practices/rules/js-cache-storage.md +70 -0
  185. package/template/.claude/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
  186. package/template/.claude/skills/react-best-practices/rules/js-early-exit.md +50 -0
  187. package/template/.claude/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
  188. package/template/.claude/skills/react-best-practices/rules/js-index-maps.md +37 -0
  189. package/template/.claude/skills/react-best-practices/rules/js-length-check-first.md +49 -0
  190. package/template/.claude/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
  191. package/template/.claude/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
  192. package/template/.claude/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
  193. package/template/.claude/skills/react-best-practices/rules/rendering-activity.md +26 -0
  194. package/template/.claude/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  195. package/template/.claude/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
  196. package/template/.claude/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
  197. package/template/.claude/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  198. package/template/.claude/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  199. package/template/.claude/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
  200. package/template/.claude/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
  201. package/template/.claude/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
  202. package/template/.claude/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
  203. package/template/.claude/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
  204. package/template/.claude/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  205. package/template/.claude/skills/react-best-practices/rules/rerender-memo.md +44 -0
  206. package/template/.claude/skills/react-best-practices/rules/rerender-transitions.md +40 -0
  207. package/template/.claude/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
  208. package/template/.claude/skills/react-best-practices/rules/server-cache-lru.md +41 -0
  209. package/template/.claude/skills/react-best-practices/rules/server-cache-react.md +26 -0
  210. package/template/.claude/skills/react-best-practices/rules/server-parallel-fetching.md +79 -0
  211. package/template/.claude/skills/react-best-practices/rules/server-serialization.md +38 -0
  212. package/template/.claude/skills/remotion-best-practices/SKILL.md +43 -0
  213. package/template/.claude/skills/remotion-best-practices/rules/3d.md +86 -0
  214. package/template/.claude/skills/remotion-best-practices/rules/animations.md +29 -0
  215. package/template/.claude/skills/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
  216. package/template/.claude/skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
  217. package/template/.claude/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +108 -0
  218. package/template/.claude/skills/remotion-best-practices/rules/assets.md +78 -0
  219. package/template/.claude/skills/remotion-best-practices/rules/audio.md +172 -0
  220. package/template/.claude/skills/remotion-best-practices/rules/calculate-metadata.md +104 -0
  221. package/template/.claude/skills/remotion-best-practices/rules/can-decode.md +75 -0
  222. package/template/.claude/skills/remotion-best-practices/rules/charts.md +58 -0
  223. package/template/.claude/skills/remotion-best-practices/rules/compositions.md +146 -0
  224. package/template/.claude/skills/remotion-best-practices/rules/display-captions.md +126 -0
  225. package/template/.claude/skills/remotion-best-practices/rules/extract-frames.md +229 -0
  226. package/template/.claude/skills/remotion-best-practices/rules/fonts.md +152 -0
  227. package/template/.claude/skills/remotion-best-practices/rules/get-audio-duration.md +58 -0
  228. package/template/.claude/skills/remotion-best-practices/rules/get-video-dimensions.md +68 -0
  229. package/template/.claude/skills/remotion-best-practices/rules/get-video-duration.md +58 -0
  230. package/template/.claude/skills/remotion-best-practices/rules/gifs.md +138 -0
  231. package/template/.claude/skills/remotion-best-practices/rules/images.md +130 -0
  232. package/template/.claude/skills/remotion-best-practices/rules/import-srt-captions.md +67 -0
  233. package/template/.claude/skills/remotion-best-practices/rules/lottie.md +68 -0
  234. package/template/.claude/skills/remotion-best-practices/rules/measuring-dom-nodes.md +35 -0
  235. package/template/.claude/skills/remotion-best-practices/rules/measuring-text.md +143 -0
  236. package/template/.claude/skills/remotion-best-practices/rules/sequencing.md +106 -0
  237. package/template/.claude/skills/remotion-best-practices/rules/tailwind.md +11 -0
  238. package/template/.claude/skills/remotion-best-practices/rules/text-animations.md +20 -0
  239. package/template/.claude/skills/remotion-best-practices/rules/timing.md +179 -0
  240. package/template/.claude/skills/remotion-best-practices/rules/transcribe-captions.md +19 -0
  241. package/template/.claude/skills/remotion-best-practices/rules/transitions.md +122 -0
  242. package/template/.claude/skills/remotion-best-practices/rules/trimming.md +53 -0
  243. package/template/.claude/skills/remotion-best-practices/rules/videos.md +171 -0
  244. package/template/.claude/skills/search/SKILL.md +220 -0
  245. package/template/.claude/skills/spec/SKILL.md +377 -0
  246. package/template/.claude/skills/startup/SKILL.md +310 -0
  247. package/template/.claude/skills/web-architect/SKILL.md +309 -0
  248. package/template/.claude/skills/x-algorithm/SKILL.md +305 -0
  249. package/template/.jfl/config.json +8 -0
  250. package/template/.mcp.json +11 -0
  251. package/template/CLAUDE.md +960 -0
  252. package/template/content/.gitkeep +0 -0
  253. package/template/context-hub +3 -0
  254. package/template/knowledge/BRAND_BRIEF.md +124 -0
  255. package/template/knowledge/BRAND_DECISIONS.md +168 -0
  256. package/template/knowledge/NARRATIVE.md +114 -0
  257. package/template/knowledge/ROADMAP.md +128 -0
  258. package/template/knowledge/THESIS.md +108 -0
  259. package/template/knowledge/VISION.md +74 -0
  260. package/template/knowledge/VOICE_AND_TONE.md +146 -0
  261. package/template/previews/.gitkeep +0 -0
  262. package/template/scripts/session/auto-commit.sh +245 -0
  263. package/template/scripts/session/auto-merge.sh +325 -0
  264. package/template/scripts/session/jfl-doctor.sh +587 -0
  265. package/template/scripts/session/session-end.sh +194 -0
  266. package/template/scripts/session/session-init.sh +163 -0
  267. package/template/scripts/session/session-sync.sh +167 -0
  268. package/template/scripts/session/test-context-preservation.sh +160 -0
  269. package/template/skills/agent-browser/SKILL.md +116 -0
  270. package/template/skills/brand-architect/SKILL.md +240 -0
  271. package/template/skills/brand-architect/config.yaml +137 -0
  272. package/template/skills/campaign-hud/config.yaml +112 -0
  273. package/template/skills/content-creator/SKILL.md +294 -0
  274. package/template/skills/debug/MULTI_AGENT.md +360 -0
  275. package/template/skills/debug/SKILL.md +549 -0
  276. package/template/skills/fly-deploy/SKILL.md +676 -0
  277. package/template/skills/founder-video/SKILL.md +467 -0
  278. package/template/skills/hud/SKILL.md +204 -0
  279. package/template/skills/ralph-tui/SKILL.md +210 -0
  280. package/template/skills/react-best-practices/AGENTS.md +2249 -0
  281. package/template/skills/react-best-practices/README.md +123 -0
  282. package/template/skills/react-best-practices/SKILL.md +125 -0
  283. package/template/skills/react-best-practices/metadata.json +15 -0
  284. package/template/skills/react-best-practices/rules/_sections.md +46 -0
  285. package/template/skills/react-best-practices/rules/_template.md +28 -0
  286. package/template/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  287. package/template/skills/react-best-practices/rules/advanced-use-latest.md +49 -0
  288. package/template/skills/react-best-practices/rules/async-api-routes.md +38 -0
  289. package/template/skills/react-best-practices/rules/async-defer-await.md +80 -0
  290. package/template/skills/react-best-practices/rules/async-dependencies.md +36 -0
  291. package/template/skills/react-best-practices/rules/async-parallel.md +28 -0
  292. package/template/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
  293. package/template/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
  294. package/template/skills/react-best-practices/rules/bundle-conditional.md +31 -0
  295. package/template/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
  296. package/template/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  297. package/template/skills/react-best-practices/rules/bundle-preload.md +50 -0
  298. package/template/skills/react-best-practices/rules/client-event-listeners.md +74 -0
  299. package/template/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
  300. package/template/skills/react-best-practices/rules/js-batch-dom-css.md +82 -0
  301. package/template/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
  302. package/template/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
  303. package/template/skills/react-best-practices/rules/js-cache-storage.md +70 -0
  304. package/template/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
  305. package/template/skills/react-best-practices/rules/js-early-exit.md +50 -0
  306. package/template/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
  307. package/template/skills/react-best-practices/rules/js-index-maps.md +37 -0
  308. package/template/skills/react-best-practices/rules/js-length-check-first.md +49 -0
  309. package/template/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
  310. package/template/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
  311. package/template/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
  312. package/template/skills/react-best-practices/rules/rendering-activity.md +26 -0
  313. package/template/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  314. package/template/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
  315. package/template/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
  316. package/template/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  317. package/template/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  318. package/template/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
  319. package/template/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
  320. package/template/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
  321. package/template/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
  322. package/template/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
  323. package/template/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  324. package/template/skills/react-best-practices/rules/rerender-memo.md +44 -0
  325. package/template/skills/react-best-practices/rules/rerender-transitions.md +40 -0
  326. package/template/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
  327. package/template/skills/react-best-practices/rules/server-cache-lru.md +41 -0
  328. package/template/skills/react-best-practices/rules/server-cache-react.md +26 -0
  329. package/template/skills/react-best-practices/rules/server-parallel-fetching.md +79 -0
  330. package/template/skills/react-best-practices/rules/server-serialization.md +38 -0
  331. package/template/skills/remotion-best-practices/SKILL.md +43 -0
  332. package/template/skills/remotion-best-practices/rules/3d.md +86 -0
  333. package/template/skills/remotion-best-practices/rules/animations.md +29 -0
  334. package/template/skills/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
  335. package/template/skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
  336. package/template/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +108 -0
  337. package/template/skills/remotion-best-practices/rules/assets.md +78 -0
  338. package/template/skills/remotion-best-practices/rules/audio.md +172 -0
  339. package/template/skills/remotion-best-practices/rules/calculate-metadata.md +104 -0
  340. package/template/skills/remotion-best-practices/rules/can-decode.md +75 -0
  341. package/template/skills/remotion-best-practices/rules/charts.md +58 -0
  342. package/template/skills/remotion-best-practices/rules/compositions.md +146 -0
  343. package/template/skills/remotion-best-practices/rules/display-captions.md +126 -0
  344. package/template/skills/remotion-best-practices/rules/extract-frames.md +229 -0
  345. package/template/skills/remotion-best-practices/rules/fonts.md +152 -0
  346. package/template/skills/remotion-best-practices/rules/get-audio-duration.md +58 -0
  347. package/template/skills/remotion-best-practices/rules/get-video-dimensions.md +68 -0
  348. package/template/skills/remotion-best-practices/rules/get-video-duration.md +58 -0
  349. package/template/skills/remotion-best-practices/rules/gifs.md +138 -0
  350. package/template/skills/remotion-best-practices/rules/images.md +130 -0
  351. package/template/skills/remotion-best-practices/rules/import-srt-captions.md +67 -0
  352. package/template/skills/remotion-best-practices/rules/lottie.md +68 -0
  353. package/template/skills/remotion-best-practices/rules/measuring-dom-nodes.md +35 -0
  354. package/template/skills/remotion-best-practices/rules/measuring-text.md +143 -0
  355. package/template/skills/remotion-best-practices/rules/sequencing.md +106 -0
  356. package/template/skills/remotion-best-practices/rules/tailwind.md +11 -0
  357. package/template/skills/remotion-best-practices/rules/text-animations.md +20 -0
  358. package/template/skills/remotion-best-practices/rules/timing.md +179 -0
  359. package/template/skills/remotion-best-practices/rules/transcribe-captions.md +19 -0
  360. package/template/skills/remotion-best-practices/rules/transitions.md +122 -0
  361. package/template/skills/remotion-best-practices/rules/trimming.md +53 -0
  362. package/template/skills/remotion-best-practices/rules/videos.md +171 -0
  363. package/template/skills/search/SKILL.md +220 -0
  364. package/template/skills/spec/SKILL.md +377 -0
  365. package/template/skills/startup/SKILL.md +310 -0
  366. package/template/skills/web-architect/SKILL.md +309 -0
  367. package/template/skills/x-algorithm/SKILL.md +305 -0
  368. package/template/suggestions/.gitkeep +0 -0
  369. package/template/templates/QUICKSTART_SKILL_TO_PRODUCT.md +242 -0
  370. package/template/templates/brand/BRAND_BRIEF.md +124 -0
  371. package/template/templates/brand/BRAND_DECISIONS.md +168 -0
  372. package/template/templates/brand/BRAND_GUIDELINES.md +251 -0
  373. package/template/templates/brand/VOICE_AND_TONE.md +146 -0
  374. package/template/templates/brand/global.css +240 -0
  375. package/template/templates/collaboration/CONTRIBUTOR.md +74 -0
  376. package/template/templates/collaboration/CRM.md +97 -0
  377. package/template/templates/collaboration/TASKS.md +83 -0
  378. package/template/templates/strategic/NARRATIVE.md +114 -0
  379. package/template/templates/strategic/ROADMAP.md +128 -0
  380. package/template/templates/strategic/THESIS.md +108 -0
  381. package/template/templates/strategic/VISION.md +74 -0
@@ -0,0 +1,310 @@
1
+ # Startup Skill
2
+
3
+ The startup journey from idea to scale, informed by Paul Graham + Garry Tan wisdom.
4
+
5
+ ---
6
+
7
+ ## Philosophy
8
+
9
+ **Vision is emergent.** You don't know what you're building at first. The skill adapts to where you are.
10
+
11
+ **Do things that don't scale.** Early stage is about learning, not efficiency.
12
+
13
+ **Talk to users.** Every week. The answers are in conversations, not spreadsheets.
14
+
15
+ ---
16
+
17
+ ## Commands
18
+
19
+ ```
20
+ /startup # Where am I? What's next?
21
+ /startup stage # Assess current stage from docs
22
+ /startup next # The one thing to do this week
23
+ /startup validate [idea] # PG-style idea critique
24
+ /startup mvp [idea] # Scope to 2-week MVP
25
+ /startup customers # How to find your first 10
26
+ /startup launch # Launch playbook
27
+ /startup fundraise [stage] # Fundraising by stage
28
+ /startup diagnose [problem] # What's actually wrong
29
+ /startup pg [topic] # What would PG say?
30
+ /startup garry [topic] # What would Garry say?
31
+ ```
32
+
33
+ ---
34
+
35
+ ## THE STAGES
36
+
37
+ ### Stage 0: Idea
38
+
39
+ **Goal:** Validate that real people have this problem and will pay to solve it.
40
+
41
+ **Key questions:**
42
+ - Who has this problem? (Be specific—names, not personas)
43
+ - How are they solving it now?
44
+ - Why will they switch to you?
45
+ - What's the insight that makes this work?
46
+
47
+ **PG frameworks:**
48
+ - "How to Get Startup Ideas" - Live in the future, build what's missing
49
+ - "Schlep Blindness" - The best ideas look like work
50
+ - "Organic Startup Ideas" - Build what you need yourself
51
+ - "Frighteningly Ambitious Startup Ideas" - Think bigger
52
+
53
+ **Actions:**
54
+ 1. Talk to 10 potential users this week
55
+ 2. Document their exact words (not your interpretation)
56
+ 3. Find the hair-on-fire problem
57
+
58
+ **Anti-patterns:**
59
+ - Building before talking
60
+ - Asking "would you use this?" (ask about their current behavior)
61
+ - Targeting everyone (niche down)
62
+
63
+ ---
64
+
65
+ ### Stage 1: MVP
66
+
67
+ **Goal:** Build the smallest thing that delivers value to one person.
68
+
69
+ **Key questions:**
70
+ - What's the one thing it needs to do?
71
+ - Can you build it in 2 weeks?
72
+ - Can you describe it in one sentence?
73
+
74
+ **PG frameworks:**
75
+ - "Do Things That Don't Scale" - Manual before automated
76
+ - "The Airbnbs" - Professional photos changed everything
77
+ - "Ramen Profitable" - Survive while you figure it out
78
+ - "Default Alive or Default Dead" - Know which you are
79
+
80
+ **Actions:**
81
+ 1. Cut scope until it hurts
82
+ 2. Ship something this week
83
+ 3. Get it in front of one real user
84
+
85
+ **Anti-patterns:**
86
+ - Building for 6 months before launching
87
+ - Adding features before anyone uses it
88
+ - Waiting until it's "ready"
89
+
90
+ ---
91
+
92
+ ### Stage 2: First Customers
93
+
94
+ **Goal:** Get 5-10 paying customers manually.
95
+
96
+ **Key questions:**
97
+ - Who are the first 10 people who will pay?
98
+ - Can you name them?
99
+ - How will you reach them?
100
+
101
+ **PG frameworks:**
102
+ - "Do Things That Don't Scale" - Recruit users manually
103
+ - "Relentlessly Resourceful" - Find a way or make one
104
+ - "Be Good" - Make something people want
105
+ - "Mean People Fail" - Nice founders win
106
+
107
+ **Garry frameworks:**
108
+ - "Default alive matters" - Grow profitably if you can't raise
109
+ - "Six skills for startup success" - What to develop early
110
+
111
+ **Actions:**
112
+ 1. Make a list of 20 potential customers (names, not categories)
113
+ 2. Reach out to 5 today
114
+ 3. Offer to do it for them manually
115
+
116
+ **Anti-patterns:**
117
+ - Waiting for inbound
118
+ - Mass marketing before product-market fit
119
+ - Discounting instead of learning
120
+
121
+ ---
122
+
123
+ ### Stage 3: Launch
124
+
125
+ **Goal:** Create a moment that gets attention and establishes your position.
126
+
127
+ **Key questions:**
128
+ - What's the story?
129
+ - Who will amplify it?
130
+ - What's the one thing people should remember?
131
+
132
+ **PG frameworks:**
133
+ - "Startup = Growth" - Launch is just the beginning of the curve
134
+ - "How to Convince Investors" - Same principles apply to users
135
+ - "The Submarine" - PR is a game
136
+
137
+ **Actions:**
138
+ 1. Line up 5 people who will share on launch day
139
+ 2. Have a specific, concrete demo
140
+ 3. Ship, don't wait for perfect
141
+
142
+ **Anti-patterns:**
143
+ - Launch as a one-time event (it's a process)
144
+ - Waiting for the "right moment"
145
+ - Announcing without showing
146
+
147
+ ---
148
+
149
+ ### Stage 4: Growth
150
+
151
+ **Goal:** Find repeatable acquisition and scale what works.
152
+
153
+ **Key questions:**
154
+ - What's your growth rate?
155
+ - What's the one channel that's working?
156
+ - Are you default alive?
157
+
158
+ **PG frameworks:**
159
+ - "Startup = Growth" - If you're not growing, you're dying
160
+ - "The Fatal Pinch" - When growth and runway cross
161
+ - "How to Raise Money" - Raise when you don't need it
162
+ - "Founder Mode" - Stay hands-on longer than feels right
163
+
164
+ **Garry frameworks:**
165
+ - "Why startups are growing 5x faster" - AI enables smaller teams
166
+ - "Micromanagement is toxic" - Delegate as you scale
167
+
168
+ **Actions:**
169
+ 1. Measure weekly growth rate
170
+ 2. Double down on what's working
171
+ 3. Kill what isn't
172
+
173
+ **Anti-patterns:**
174
+ - Premature scaling
175
+ - Hiring before product-market fit
176
+ - Multiple channels before one works
177
+
178
+ ---
179
+
180
+ ## DIAGNOSIS FRAMEWORK
181
+
182
+ When something's wrong, find the root cause:
183
+
184
+ | Symptom | Likely Cause | Prescription |
185
+ |---------|--------------|--------------|
186
+ | No users signing up | Distribution problem or wrong audience | Talk to 10 more people, find where they are |
187
+ | Users sign up but don't use | Onboarding or value prop problem | Watch 5 users try it, fix the friction |
188
+ | Users use but don't pay | Pricing or value problem | Ask them what they'd pay for |
189
+ | Users churn | Not solving real problem | Talk to churned users, find why |
190
+ | Can't raise money | Traction or story problem | Focus on customers, not investors |
191
+ | Growing but unprofitable | Unit economics problem | Fix before you scale |
192
+
193
+ ---
194
+
195
+ ## INTEGRATION WITH DOCS
196
+
197
+ The skill reads your docs to understand where you are:
198
+
199
+ ```
200
+ knowledge/VISION.md → EMERGENT = still figuring it out
201
+ → DECLARED = you know what you're building
202
+
203
+ knowledge/CRM.md → Who you're talking to, what's resonating
204
+
205
+ content/articles/ → How you explain it to the world
206
+
207
+ drafts/ → Active outreach, what's working
208
+ ```
209
+
210
+ ---
211
+
212
+ ## KNOWLEDGE BASE
213
+
214
+ ```
215
+ knowledge/startup/
216
+ ├── 0-idea/
217
+ │ ├── HOW_TO_GET_STARTUP_IDEAS.md
218
+ │ ├── SCHLEP_BLINDNESS.md
219
+ │ ├── ORGANIC_STARTUP_IDEAS.md
220
+ │ └── VALIDATION.md
221
+ ├── 1-mvp/
222
+ │ ├── DO_THINGS_THAT_DONT_SCALE.md
223
+ │ ├── RAMEN_PROFITABLE.md
224
+ │ └── SCOPE.md
225
+ ├── 2-customers/
226
+ │ ├── FIRST_10.md
227
+ │ ├── RELENTLESSLY_RESOURCEFUL.md
228
+ │ └── BE_GOOD.md
229
+ ├── 3-launch/
230
+ │ ├── LAUNCH_PLAYBOOK.md
231
+ │ └── STARTUP_EQUALS_GROWTH.md
232
+ ├── 4-growth/
233
+ │ ├── THE_FATAL_PINCH.md
234
+ │ ├── HOW_TO_RAISE_MONEY.md
235
+ │ └── FOUNDER_MODE.md
236
+ └── raw/
237
+ ├── pg/ # All PG essays
238
+ └── garry/ # All Garry content
239
+ ```
240
+
241
+ ---
242
+
243
+ ## QUICK REFERENCE
244
+
245
+ ### The PG Stack
246
+
247
+ 1. **Make something people want** (the only thing that matters)
248
+ 2. **Do things that don't scale** (early stage superpower)
249
+ 3. **Talk to users** (the answers are there)
250
+ 4. **Launch fast** (embarrassingly early)
251
+ 5. **Grow or die** (weekly growth is the metric)
252
+
253
+ ### The Garry Stack
254
+
255
+ 1. **Default alive > default dead**
256
+ 2. **AI enables smaller teams**
257
+ 3. **Delegation > micromanagement**
258
+ 4. **Learn or earn at every job**
259
+ 5. **The best time to start is now**
260
+
261
+ ### Anti-patterns (from "18 Mistakes That Kill Startups")
262
+
263
+ 1. Single founder
264
+ 2. Bad location
265
+ 3. Marginal niche
266
+ 4. Derivative idea
267
+ 5. Obstinacy
268
+ 6. Hiring bad programmers
269
+ 7. Choosing the wrong platform
270
+ 8. Slowness in launching
271
+ 9. Launching too early
272
+ 10. Having no specific user in mind
273
+ 11. Raising too little money
274
+ 12. Spending too much
275
+ 13. Raising too much money
276
+ 14. Poor investor management
277
+ 15. Sacrificing users to (supposed) profit
278
+ 16. Not wanting to get your hands dirty
279
+ 17. Fights between founders
280
+ 18. A half-hearted effort
281
+
282
+ ---
283
+
284
+ ## OUTPUT FILES
285
+
286
+ ```
287
+ outputs/startup/
288
+ ├── assessments/
289
+ │ └── stage-assessment-{date}.md
290
+ ├── ideas/
291
+ │ └── validation-{idea}.md
292
+ ├── mvp/
293
+ │ └── scope-{idea}.md
294
+ └── fundraising/
295
+ └── prep-{stage}.md
296
+ ```
297
+
298
+ ---
299
+
300
+ ## SOURCES
301
+
302
+ - Paul Graham essays: paulgraham.com (200+ essays)
303
+ - Garry Tan: blog.garrytan.com, YC blog, YouTube
304
+ - Y Combinator library: ycombinator.com/library
305
+
306
+ ---
307
+
308
+ *"Make something people want."* — Paul Graham
309
+
310
+ *"At every job you should either learn or earn. Either is fine. Both is best. But if it's neither, quit."* — Garry Tan
@@ -0,0 +1,309 @@
1
+ ---
2
+ name: web-architect
3
+ description: Generate brand assets and audit web code against best practices - CSS, favicons, social images, exports, React/Next.js performance
4
+ ---
5
+
6
+ # Web Architect Skill
7
+
8
+ Implements the brand system by generating all required assets. Also audits web code against best practices.
9
+
10
+ ## Related Skills
11
+
12
+ - **react-best-practices** - React/Next.js performance optimization. Use when building or auditing React sites.
13
+
14
+ ## Capabilities
15
+
16
+ - Generate favicon package (all sizes)
17
+ - Create social assets (OG images, banners, PFP)
18
+ - Build CSS with brand tokens
19
+ - Export SVGs to PNGs
20
+ - Audit asset completeness
21
+ - Update preview files with final assets
22
+
23
+ ## Input Requirements
24
+
25
+ Requires `knowledge/BRAND_DECISIONS.md` with:
26
+ - Selected mark
27
+ - Color palette
28
+ - Typography choices
29
+
30
+ ## Commands
31
+
32
+ ```
33
+ /web-architect # Show status
34
+ /web-architect audit # Check what's missing
35
+ /web-architect implement all # Generate everything
36
+ /web-architect implement css # Generate CSS only
37
+ /web-architect implement favicons # Generate favicon package
38
+ /web-architect implement social # Generate social assets
39
+ /web-architect implement marks # Generate mark size variants
40
+ /web-architect export png # Export all SVGs to PNG
41
+ ```
42
+
43
+ ## Workflow
44
+
45
+ ### Audit
46
+
47
+ ```
48
+ /web-architect audit
49
+
50
+ Checking brand assets...
51
+
52
+ MARKS:
53
+ ├─ [✓] Primary mark selected
54
+ ├─ [✓] Transparent version
55
+ ├─ [ ] Size variants (80, 160, 400)
56
+ └─ [ ] Dark/light variants
57
+
58
+ FAVICONS:
59
+ ├─ [ ] 16px
60
+ ├─ [ ] 32px
61
+ ├─ [ ] 48px
62
+ ├─ [ ] 96px
63
+ ├─ [ ] 180px (Apple Touch)
64
+ ├─ [ ] 192px (Android)
65
+ └─ [ ] 512px (PWA)
66
+
67
+ SOCIAL:
68
+ ├─ [ ] Twitter banner (1500x500)
69
+ ├─ [ ] OG image (1200x630)
70
+ ├─ [ ] Twitter PFP (400x400)
71
+ └─ [ ] Banner size variants
72
+
73
+ CSS:
74
+ ├─ [ ] Color tokens
75
+ ├─ [ ] Typography tokens
76
+ └─ [ ] global.css generated
77
+
78
+ Missing: 18 assets
79
+ Run /web-architect implement all to generate.
80
+ ```
81
+
82
+ ### Implement All
83
+
84
+ ```
85
+ /web-architect implement all
86
+
87
+ Generating brand assets...
88
+
89
+ MARKS:
90
+ ├─ [✓] mark-v3-80-dark.svg
91
+ ├─ [✓] mark-v3-80-light.svg
92
+ ├─ [✓] mark-v3-160-dark.svg
93
+ ├─ [✓] mark-v3-400-dark.svg
94
+ └─ Saved to outputs/svg/mark/
95
+
96
+ FAVICONS:
97
+ ├─ [✓] favicon-16-dark.svg
98
+ ├─ [✓] favicon-32-dark.svg
99
+ ├─ [✓] favicon-48-dark.svg
100
+ ├─ [✓] favicon-96-dark.svg
101
+ ├─ [✓] favicon-180-dark.svg
102
+ ├─ [✓] favicon-192-dark.svg
103
+ ├─ [✓] favicon-512-dark.svg
104
+ └─ Saved to outputs/svg/favicon/
105
+
106
+ SOCIAL:
107
+ ├─ [✓] twitter-banner-sm-1500x500-dark.svg
108
+ ├─ [✓] twitter-banner-md-1500x500-dark.svg
109
+ ├─ [✓] twitter-banner-lg-1500x500-dark.svg
110
+ ├─ [✓] twitter-banner-xl-1500x500-dark.svg
111
+ ├─ [✓] og-default-1200x630-dark.svg
112
+ ├─ [✓] pfp-400-dark.svg
113
+ └─ Saved to outputs/svg/social/
114
+
115
+ CSS:
116
+ ├─ [✓] outputs/css/global.css
117
+ └─ Tokens from BRAND_DECISIONS.md
118
+
119
+ PNG EXPORT:
120
+ ├─ [✓] All SVGs exported to PNG
121
+ └─ Saved to outputs/png/
122
+
123
+ Complete! 24 assets generated.
124
+ ```
125
+
126
+ ## Asset Generation
127
+
128
+ ### Favicons
129
+
130
+ Generate all standard favicon sizes:
131
+
132
+ ```bash
133
+ # Sizes needed
134
+ 16 - Browser tab
135
+ 32 - Browser tab @2x
136
+ 48 - Windows
137
+ 96 - Android Chrome
138
+ 180 - Apple Touch Icon
139
+ 192 - Android Chrome @2x
140
+ 512 - PWA splash
141
+ ```
142
+
143
+ SVG structure:
144
+ ```xml
145
+ <?xml version="1.0" encoding="UTF-8"?>
146
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 {size} {size}">
147
+ <rect width="100%" height="100%" fill="{bg-color}"/>
148
+ <!-- Mark scaled to fit with padding -->
149
+ </svg>
150
+ ```
151
+
152
+ ### Social Assets
153
+
154
+ #### Twitter Banner (1500x500)
155
+ - Box with mark inside
156
+ - Left-aligned with padding
157
+ - Size variants: sm, md, lg, xl
158
+
159
+ #### OG Image (1200x630)
160
+ - Mark centered in box
161
+ - Optional: tagline variant
162
+
163
+ #### PFP (400x400)
164
+ - Square crop
165
+ - Mark centered
166
+ - High contrast
167
+
168
+ ### CSS Generation
169
+
170
+ Read from BRAND_DECISIONS.md and generate:
171
+
172
+ ```css
173
+ :root {
174
+ /* Colors from decisions */
175
+ --brand-bg: {bg};
176
+ --brand-fg: {fg};
177
+ --brand-accent: {accent};
178
+
179
+ /* Typography from decisions */
180
+ --brand-font: {font-stack};
181
+ --brand-font-weight: {weight};
182
+ }
183
+ ```
184
+
185
+ ### PNG Export
186
+
187
+ Use rsvg-convert for all SVG → PNG conversions:
188
+
189
+ ```bash
190
+ # Single file
191
+ rsvg-convert -w {width} -h {height} input.svg -o output.png
192
+
193
+ # Batch export script
194
+ ./scripts/export-pngs.sh
195
+ ```
196
+
197
+ ## File Structure
198
+
199
+ ```
200
+ outputs/
201
+ ├── svg/
202
+ │ ├── mark/
203
+ │ │ ├── mark-v3-transparent.svg
204
+ │ │ ├── mark-v3-80-dark.svg
205
+ │ │ ├── mark-v3-80-light.svg
206
+ │ │ ├── mark-v3-160-dark.svg
207
+ │ │ ├── mark-v3-400-dark.svg
208
+ │ │ └── ...
209
+ │ ├── social/
210
+ │ │ ├── twitter-banner-sm-1500x500-dark.svg
211
+ │ │ ├── twitter-banner-md-1500x500-dark.svg
212
+ │ │ ├── twitter-banner-lg-1500x500-dark.svg
213
+ │ │ ├── twitter-banner-xl-1500x500-dark.svg
214
+ │ │ ├── og-default-1200x630-dark.svg
215
+ │ │ ├── pfp-400-dark.svg
216
+ │ │ └── (light variants)
217
+ │ └── favicon/
218
+ │ ├── favicon-16-dark.svg
219
+ │ ├── favicon-32-dark.svg
220
+ │ └── ...
221
+ ├── png/
222
+ │ ├── mark/
223
+ │ ├── social/
224
+ │ └── favicon/
225
+ └── css/
226
+ └── global.css
227
+ ```
228
+
229
+ ## Naming Conventions
230
+
231
+ ```
232
+ {type}-{variant}-{size}-{theme}.{ext}
233
+
234
+ Examples:
235
+ mark-v3-80-dark.svg
236
+ twitter-banner-xl-1500x500-dark.svg
237
+ og-tagline-1200x630-dark.svg
238
+ favicon-32-dark.png
239
+ ```
240
+
241
+ ## Error Handling
242
+
243
+ ### No Decisions Found
244
+ ```
245
+ No brand decisions found.
246
+
247
+ Run /brand-architect first to:
248
+ 1. Generate mark options
249
+ 2. Select colors and typography
250
+ 3. Record decisions
251
+
252
+ Then run /web-architect implement all.
253
+ ```
254
+
255
+ ### Missing Dependencies
256
+ ```
257
+ rsvg-convert not found.
258
+
259
+ PNG export requires librsvg. Install with:
260
+ brew install librsvg # macOS
261
+ apt install librsvg2-bin # Ubuntu
262
+ ```
263
+
264
+ ### Incomplete Decisions
265
+ ```
266
+ Brand decisions incomplete.
267
+
268
+ Missing:
269
+ - Primary mark selection
270
+ - Color palette
271
+
272
+ Update knowledge/BRAND_DECISIONS.md or run /brand-architect decide.
273
+ ```
274
+
275
+ ---
276
+
277
+ ## Code Auditing
278
+
279
+ ### React/Next.js Projects
280
+
281
+ For React or Next.js sites, use the **react-best-practices** skill:
282
+
283
+ ```
284
+ /web-architect audit react
285
+ ```
286
+
287
+ This runs the Vercel React Best Practices audit covering:
288
+ - Eliminating waterfalls (CRITICAL)
289
+ - Bundle size optimization (CRITICAL)
290
+ - Server-side performance (HIGH)
291
+ - Client-side data fetching (MEDIUM-HIGH)
292
+ - Re-render optimization (MEDIUM)
293
+ - Rendering performance (MEDIUM)
294
+ - JavaScript performance (LOW-MEDIUM)
295
+
296
+ See `skills/react-best-practices/SKILL.md` for full rule reference.
297
+
298
+ ### Static Sites
299
+
300
+ For static HTML sites:
301
+ ```
302
+ /web-architect audit static
303
+ ```
304
+
305
+ Checks:
306
+ - Asset optimization (images, SVGs)
307
+ - CSS best practices
308
+ - Accessibility basics
309
+ - Performance hints