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,146 @@
1
+ # Voice and Tone Guide
2
+
3
+ > How your brand speaks. Copy to `knowledge/VOICE_AND_TONE.md` and customize.
4
+
5
+ ---
6
+
7
+ ## Voice (Consistent)
8
+
9
+ Your voice is WHO you are. It stays consistent across all contexts.
10
+
11
+ ### Voice Attributes
12
+
13
+ **We are:**
14
+ - {attribute 1} - {what this means in practice}
15
+ - {attribute 2} - {what this means in practice}
16
+ - {attribute 3} - {what this means in practice}
17
+
18
+ **We are NOT:**
19
+ - {anti-attribute 1}
20
+ - {anti-attribute 2}
21
+ - {anti-attribute 3}
22
+
23
+ ### Voice Examples
24
+
25
+ | Instead of | We say |
26
+ |------------|--------|
27
+ | "Leverage synergies" | {plain language version} |
28
+ | "Click here" | {more engaging version} |
29
+ | "Dear valued customer" | {your version} |
30
+
31
+ ---
32
+
33
+ ## Tone (Flexible)
34
+
35
+ Tone is HOW you express your voice in different contexts. It shifts based on situation.
36
+
37
+ ### Tone Spectrum
38
+
39
+ ```
40
+ Serious ←────────────────────────────→ Playful
41
+ Where do you sit by default?
42
+
43
+ Formal ←────────────────────────────→ Casual
44
+ Where do you sit by default?
45
+
46
+ Reserved ←────────────────────────────→ Enthusiastic
47
+ Where do you sit by default?
48
+ ```
49
+
50
+ ### Tone by Context
51
+
52
+ | Context | Tone Adjustment |
53
+ |---------|-----------------|
54
+ | Error messages | More empathetic, helpful |
55
+ | Success messages | More celebratory |
56
+ | Documentation | More neutral, clear |
57
+ | Marketing | More energetic |
58
+ | Support | More patient, detailed |
59
+
60
+ ---
61
+
62
+ ## Copy Patterns
63
+
64
+ ### Headlines
65
+ - {Pattern: question / statement / command}
66
+ - {Case: lowercase / Title Case / UPPERCASE}
67
+ - {Length: short punchy / descriptive}
68
+
69
+ **Examples:**
70
+ - Good: "{example}"
71
+ - Avoid: "{anti-example}"
72
+
73
+ ### Body Copy
74
+ - {Sentence length preference}
75
+ - {Paragraph length}
76
+ - {Use of contractions: yes/no}
77
+
78
+ ### CTAs (Calls to Action)
79
+ - {Action verbs you prefer}
80
+ - {Length: short / descriptive}
81
+
82
+ **Examples:**
83
+ - Good: "{example}"
84
+ - Avoid: "{anti-example}"
85
+
86
+ ---
87
+
88
+ ## Formatting Conventions
89
+
90
+ ### Punctuation
91
+ - **Periods in headlines:** {yes/no}
92
+ - **Oxford comma:** {yes/no}
93
+ - **Exclamation points:** {rarely/sometimes/often}
94
+
95
+ ### Capitalization
96
+ - **Headings:** {lowercase / Title Case / Sentence case}
97
+ - **Buttons:** {lowercase / Title Case / UPPERCASE}
98
+ - **Product names:** {how to capitalize your product name}
99
+
100
+ ### Special Characters
101
+ - **Emoji:** {never / sparingly / freely}
102
+ - **Terminal characters:** {>, //, $, etc.}
103
+
104
+ ---
105
+
106
+ ## Word List
107
+
108
+ ### Words We Use
109
+ | Word | Instead of | Why |
110
+ |------|------------|-----|
111
+ | {your word} | {common alternative} | {reason} |
112
+
113
+ ### Words We Avoid
114
+ | Avoid | Because |
115
+ |-------|---------|
116
+ | {word} | {reason} |
117
+
118
+ ---
119
+
120
+ ## Sample Copy
121
+
122
+ ### Tagline
123
+ > "{your tagline}"
124
+
125
+ ### Elevator Pitch (1 sentence)
126
+ > "{one sentence description}"
127
+
128
+ ### Boilerplate (1 paragraph)
129
+ > "{standard description paragraph}"
130
+
131
+ ### Error Message Example
132
+ > "{example error in your voice}"
133
+
134
+ ### Success Message Example
135
+ > "{example success in your voice}"
136
+
137
+ ---
138
+
139
+ ## Voice Checklist
140
+
141
+ Before publishing, ask:
142
+ - [ ] Does this sound like us?
143
+ - [ ] Would we say this out loud?
144
+ - [ ] Is it clear to our audience?
145
+ - [ ] Does it match the context's tone?
146
+ - [ ] Are we avoiding our "don't" words?
File without changes
@@ -0,0 +1,245 @@
1
+ #!/bin/bash
2
+ #
3
+ # Auto-commit script for JFL projects
4
+ # Runs in background, commits changes at specified interval
5
+ #
6
+ # Usage:
7
+ # ./scripts/session/auto-commit.sh start [INTERVAL] # Start (default 120s)
8
+ # ./scripts/session/auto-commit.sh stop # Stop background process
9
+ # ./scripts/session/auto-commit.sh status # Check if running
10
+ # ./scripts/session/auto-commit.sh once # Run once (for testing)
11
+ #
12
+ # Merges best of:
13
+ # - Original JFL auto-commit (smart messages, author detection, pull first)
14
+ # - Session protection (push after, product handling, faster interval)
15
+
16
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
17
+ # Use current working directory (where script is called from), not script location
18
+ REPO_DIR="$(pwd)"
19
+ PID_FILE="$REPO_DIR/.jfl/auto-commit.pid"
20
+ LOG_FILE="$REPO_DIR/.jfl/auto-commit.log"
21
+ INTERVAL=${2:-120} # Default 2 minutes (was 5 in original)
22
+
23
+ mkdir -p "$REPO_DIR/.jfl"
24
+ cd "$REPO_DIR" || exit 1
25
+
26
+ # Critical paths to always include
27
+ CRITICAL_PATHS=(
28
+ "knowledge/"
29
+ "previews/"
30
+ "content/"
31
+ "suggestions/"
32
+ "CLAUDE.md"
33
+ ".jfl/"
34
+ )
35
+
36
+ do_commit() {
37
+ # Pull latest first (sync with team) - from original
38
+ git pull --rebase --quiet 2>/dev/null || true
39
+
40
+ # Build paths string
41
+ local paths=""
42
+ for p in "${CRITICAL_PATHS[@]}"; do
43
+ if [ -e "$p" ]; then
44
+ paths="$paths $p"
45
+ fi
46
+ done
47
+
48
+ # Check for changes
49
+ if [[ -z $(git status --porcelain $paths 2>/dev/null) ]]; then
50
+ return 0 # Nothing to commit
51
+ fi
52
+
53
+ # Get list of changed files for commit message - from original
54
+ CHANGED=$(git status --porcelain $paths | head -5 | awk '{print $2}' | tr '\n' ', ' | sed 's/,$//')
55
+ CHANGE_COUNT=$(git status --porcelain $paths | wc -l | tr -d ' ')
56
+
57
+ # Try to identify who's working (check recent suggestions files) - from original
58
+ AUTHOR="auto"
59
+ RECENT_SUGGESTION=$(ls -t suggestions/*.md 2>/dev/null | head -1)
60
+ if [[ -n "$RECENT_SUGGESTION" ]]; then
61
+ AUTHOR=$(basename "$RECENT_SUGGESTION" .md)
62
+ fi
63
+
64
+ # Generate commit message - from original style
65
+ if [[ $CHANGE_COUNT -gt 5 ]]; then
66
+ MSG="$AUTHOR: auto-save ($CHANGE_COUNT files including $CHANGED...)"
67
+ else
68
+ MSG="$AUTHOR: auto-save ($CHANGED)"
69
+ fi
70
+
71
+ # Commit
72
+ git add $paths
73
+ git commit -m "$MSG" || return 0
74
+
75
+ # Push after commit - from ours
76
+ git push origin main 2>/dev/null || echo "[$(date '+%H:%M:%S')] Push failed - will retry"
77
+
78
+ echo "[$(date '+%H:%M:%S')] Committed: $MSG"
79
+ }
80
+
81
+ # Commit and push changes in ALL submodules with feature branches
82
+ commit_submodules_if_changes() {
83
+ local submodules_dir="$REPO_DIR/.jfl/submodules"
84
+
85
+ # If no submodules directory, fall back to legacy product-only handling
86
+ if [[ ! -d "$submodules_dir" ]]; then
87
+ # Legacy: check for product-branch file
88
+ local product_branch_file="$REPO_DIR/.jfl/product-branch"
89
+ if [[ -f "$product_branch_file" ]]; then
90
+ commit_single_submodule "product" "$(cat "$product_branch_file")"
91
+ fi
92
+ return 0
93
+ fi
94
+
95
+ # Iterate through all submodule branch files (use find for nested paths like libs/mylib)
96
+ while IFS= read -r -d '' branch_file; do
97
+ if [[ -f "$branch_file" ]]; then
98
+ # Get submodule path by stripping the prefix directory
99
+ local submodule_path="${branch_file#$submodules_dir/}"
100
+ local target_branch=$(cat "$branch_file")
101
+ commit_single_submodule "$submodule_path" "$target_branch"
102
+ fi
103
+ done < <(find "$submodules_dir" -type f -print0 2>/dev/null)
104
+ }
105
+
106
+ # Commit changes in a single submodule
107
+ commit_single_submodule() {
108
+ local submodule_path="$1"
109
+ local target_branch="$2"
110
+ local full_path="$REPO_DIR/$submodule_path"
111
+
112
+ # Resolve symlink if needed
113
+ if [[ -L "$full_path" ]]; then
114
+ full_path=$(cd "$full_path" 2>/dev/null && pwd) || return 0
115
+ fi
116
+
117
+ # Check if submodule has git
118
+ if [[ -d "$full_path/.git" ]] || [[ -f "$full_path/.git" ]]; then
119
+ cd "$full_path"
120
+
121
+ if [[ -n $(git status --porcelain 2>/dev/null) ]]; then
122
+ # Make sure we're on the right branch
123
+ local current_branch=$(git branch --show-current 2>/dev/null)
124
+ if [[ "$current_branch" != "$target_branch" ]] && [[ "$target_branch" != "main" ]]; then
125
+ git checkout "$target_branch" 2>/dev/null || true
126
+ fi
127
+
128
+ git add -A
129
+ git commit -m "auto: $submodule_path save ($(date '+%Y-%m-%d %H:%M'))" || true
130
+
131
+ # Push to feature branch (NOT main)
132
+ if [[ "$target_branch" != "main" ]]; then
133
+ git push origin "$target_branch" 2>/dev/null || true
134
+ echo "[$(date '+%H:%M:%S')] $submodule_path committed to branch: $target_branch"
135
+ else
136
+ # No feature branch - warn but don't push to main
137
+ echo "[$(date '+%H:%M:%S')] $submodule_path committed locally (no feature branch set)"
138
+ fi
139
+ fi
140
+
141
+ cd "$REPO_DIR"
142
+ fi
143
+ }
144
+
145
+ start_daemon() {
146
+ if [[ -f "$PID_FILE" ]]; then
147
+ local pid=$(cat "$PID_FILE")
148
+ if kill -0 "$pid" 2>/dev/null; then
149
+ echo "Auto-commit already running (PID: $pid)"
150
+ return 0
151
+ fi
152
+ rm -f "$PID_FILE"
153
+ fi
154
+
155
+ echo "Starting auto-commit daemon (interval: ${INTERVAL}s)..."
156
+
157
+ # Run in background (match original JFL pattern)
158
+ # Close inherited file descriptors so parent doesn't wait for us
159
+ (
160
+ exec </dev/null >/dev/null 2>&1
161
+ while true; do
162
+ {
163
+ echo "[$(date '+%H:%M:%S')] Checking for changes..."
164
+ do_commit
165
+ commit_submodules_if_changes
166
+ } >> "$LOG_FILE" 2>&1
167
+ sleep "$INTERVAL"
168
+ done
169
+ ) &
170
+
171
+ DAEMON_PID=$!
172
+ echo "$DAEMON_PID" > "$PID_FILE"
173
+ echo "Auto-commit started (PID: $DAEMON_PID)"
174
+ echo "Log: $LOG_FILE"
175
+ }
176
+
177
+ stop_daemon() {
178
+ if [[ -f "$PID_FILE" ]]; then
179
+ local pid=$(cat "$PID_FILE")
180
+ if kill -0 "$pid" 2>/dev/null; then
181
+ echo "Stopping auto-commit (PID: $pid)..."
182
+ kill "$pid" 2>/dev/null
183
+ rm -f "$PID_FILE"
184
+ echo "Stopped."
185
+ else
186
+ echo "Process not running (stale PID file)"
187
+ rm -f "$PID_FILE"
188
+ fi
189
+ else
190
+ echo "Auto-commit not running"
191
+ fi
192
+ }
193
+
194
+ show_status() {
195
+ if [[ -f "$PID_FILE" ]]; then
196
+ local pid=$(cat "$PID_FILE")
197
+ if kill -0 "$pid" 2>/dev/null; then
198
+ echo "Auto-commit running (PID: $pid)"
199
+ echo "Interval: ${INTERVAL}s"
200
+ echo "Log: $LOG_FILE"
201
+ echo ""
202
+ echo "Recent activity:"
203
+ tail -5 "$LOG_FILE" 2>/dev/null || echo " (no log yet)"
204
+ return 0
205
+ fi
206
+ fi
207
+ echo "Auto-commit not running"
208
+ return 1
209
+ }
210
+
211
+ run_once() {
212
+ echo "Running single commit check..."
213
+ do_commit
214
+ commit_submodules_if_changes
215
+ echo "Done."
216
+ }
217
+
218
+ case "${1:-}" in
219
+ start)
220
+ start_daemon
221
+ ;;
222
+ stop)
223
+ stop_daemon
224
+ ;;
225
+ status)
226
+ show_status
227
+ ;;
228
+ once)
229
+ run_once
230
+ ;;
231
+ *)
232
+ echo "Auto-commit for JFL projects"
233
+ echo ""
234
+ echo "Usage:"
235
+ echo " $0 start [INTERVAL] Start daemon (default: 120s)"
236
+ echo " $0 stop Stop daemon"
237
+ echo " $0 status Show status"
238
+ echo " $0 once Run once"
239
+ echo ""
240
+ echo "Examples:"
241
+ echo " $0 start 60 Start with 1-minute interval"
242
+ echo " $0 start Start with 2-minute interval"
243
+ exit 1
244
+ ;;
245
+ esac