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
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Alec Taggart (@402goose)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,313 @@
1
+ # JFL - Just Fucking Launch
2
+
3
+ Your team's context layer for shipping products. Any AI. Any task.
4
+
5
+ JFL is a CLI toolkit that powers go-to-market campaigns from zero to launch. It creates structured GTM workspaces where product code, strategy, brand, and content all work together.
6
+
7
+ ## What JFL Does
8
+
9
+ - **Initialize GTM workspaces** with proper architecture
10
+ - **Manage your launch dashboard** with countdown, phases, and tasks
11
+ - **Authenticate and manage billing** ($5/day per person, crypto-first)
12
+ - **Deploy to platform** for team collaboration
13
+ - **Orchestrate parallel agents** for Pro tier
14
+ - **Track feedback** and iterate
15
+
16
+ ## Installation
17
+
18
+ ```bash
19
+ npm install -g jfl
20
+ ```
21
+
22
+ JFL automatically installs all required dependencies, including:
23
+ - **httpcat-cli** - For gasless USDC transfers via x402 (bundled, no separate install needed)
24
+ - **@x402/evm** - x402 payment protocol for Day Pass payments
25
+
26
+ ## Quick Start
27
+
28
+ ```bash
29
+ # Create a new GTM workspace
30
+ jfl init my-project-gtm
31
+
32
+ # Check status
33
+ cd my-project-gtm
34
+ jfl status
35
+
36
+ # View launch dashboard
37
+ jfl hud
38
+
39
+ # Or just type. It will walk you through it
40
+ jfl
41
+ ```
42
+
43
+ ## Architecture
44
+
45
+ JFL creates GTM workspaces that are **separate from your product code**:
46
+
47
+ ```
48
+ my-project-gtm/ ← GTM workspace (strategy, content, brand)
49
+ ├── product/ ← SUBMODULE → your-product-repo
50
+ ├── knowledge/ ← Strategy, vision, narrative
51
+ ├── content/ ← Marketing content
52
+ ├── suggestions/ ← Contributor work
53
+ ├── skills/ ← JFL skills (updated via jfl update)
54
+ └── CLAUDE.md ← AI instructions
55
+
56
+ your-product-repo/ ← SEPARATE REPO (all code lives here)
57
+ ├── src/
58
+ ├── cli/
59
+ └── ...
60
+ ```
61
+
62
+ **Why?**
63
+ - Clean separation of concerns
64
+ - Product can be worked on independently
65
+ - GTM context doesn't pollute product repo
66
+ - Multiple GTMs can reference same product
67
+ - `jfl update` updates GTM toolkit without touching product
68
+
69
+ ## Commands
70
+
71
+ ### Core Commands
72
+
73
+ ```bash
74
+ jfl # Start interactive session (with optional --update)
75
+ jfl init [template] # Initialize new GTM workspace
76
+ jfl status # Show project status
77
+ jfl hud # Show campaign dashboard
78
+ jfl hud --compact # One-line status
79
+ jfl update # Pull latest JFL updates
80
+ jfl update --dry # Preview updates without applying
81
+ ```
82
+
83
+ ### Platform Commands
84
+
85
+ ```bash
86
+ jfl login # Authenticate to JFL platform
87
+ jfl login --x402 # Use x402 Day Pass ($5/day, crypto)
88
+ jfl login --solo # Use Solo plan ($49/mo)
89
+ jfl login --team # Use Team plan ($199/mo)
90
+ jfl login --free # Stay on trial
91
+ jfl logout # Logout from platform
92
+ jfl wallet # Show wallet and day pass status
93
+ jfl deploy # Deploy to JFL platform
94
+ jfl deploy --force # Force deploy even if no changes
95
+ jfl agents [action] # Manage parallel agents (list, create, start, stop)
96
+ jfl feedback # Rate your session
97
+ ```
98
+
99
+ ### Skill Shortcuts
100
+
101
+ These skills run in your Claude Code session:
102
+
103
+ ```bash
104
+ jfl brand [subcommand] # Run /brand-architect skill
105
+ jfl content <type> [topic] # Run /content skill (thread, post, article, one-pager)
106
+ ```
107
+
108
+ ## Authentication
109
+
110
+ JFL supports two authentication methods:
111
+
112
+ **GitHub OAuth**
113
+ ```bash
114
+ jfl login
115
+ ```
116
+
117
+ **x402 Crypto Wallet** (with httpcat-cli bundled)
118
+ ```bash
119
+ jfl login --x402
120
+ ```
121
+
122
+ This enables:
123
+ - Gasless USDC transfers (no ETH needed for gas)
124
+ - $5/day payments via x402 protocol
125
+ - httpcat-cli automatically installed and configured
126
+
127
+ View your auth status:
128
+ ```bash
129
+ jfl wallet
130
+ ```
131
+
132
+ ## Pricing
133
+
134
+ **Trial - $0**
135
+ - Full JFL toolkit
136
+ - Foundation + brand setup
137
+ - Use Claude Code or Codex CLI - download Claude Pro or Max at claude.ai
138
+ - Ends when you add teammates (context is more fun when you shape it together)
139
+
140
+ **Day Pass - $5/day per person**
141
+ - Only pay the days you use it
142
+ - AI included (no API key needed)
143
+ - Chat in Telegram, Slack, Discord
144
+ - Dashboard + Deploy at [TBD]
145
+ - Pay with USDC (gasless via x402)
146
+
147
+ **Solo - $49/mo**
148
+ - Just you (1 seat)
149
+ - AI included
150
+ - Everything in Day Pass
151
+ - Best if you use it most days
152
+
153
+ **Team - $199/mo**
154
+ - Up to 5 seats (+$25/seat after)
155
+ - AI included for everyone
156
+ - Team dashboard + analytics
157
+ - Parallel agents
158
+ - Priority support
159
+
160
+ ## Project Setup Types
161
+
162
+ When initializing a project, JFL asks about your setup:
163
+
164
+ **Building a product**
165
+ - You're writing code
166
+ - Product repo linked as submodule at `product/`
167
+ - Code changes go to product repo
168
+
169
+ **GTM only**
170
+ - Team handles code
171
+ - You focus on content, brand, outreach
172
+ - No code changes, just marketing
173
+
174
+ **Contributor**
175
+ - Working on specific tasks
176
+ - Changes go to `suggestions/{name}.md`
177
+ - Owner reviews and merges
178
+
179
+ ## Skills Available
180
+
181
+ JFL includes powerful skills for Claude Code:
182
+
183
+ | Skill | Description |
184
+ |-------|-------------|
185
+ | `/hud` | Campaign dashboard with countdown and tasks |
186
+ | `/brand-architect` | Generate brand identity (marks, colors, typography) |
187
+ | `/web-architect` | Implement assets (SVG, favicon, OG images) |
188
+ | `/content` | Create content (threads, posts, articles, one-pagers) |
189
+ | `/x-algorithm` | Optimize tweets for X For You feed using the open-sourced algorithm |
190
+ | `/video` | Founder video scripts (viral short-form) |
191
+ | `/startup` | Startup journey guidance (idea to scale) |
192
+ | `/agent-browser` | Headless browser automation - navigate, screenshot, scrape |
193
+ | `/search` | Semantic search across GTM knowledge base using qmd |
194
+ | `/spec` | Multi-agent adversarial spec refinement |
195
+ | `/react-best-practices` | React/Next.js performance optimization |
196
+ | `/remotion-best-practices` | Remotion video creation in React |
197
+
198
+ Run these in Claude Code after initializing your project. Easy to add more skills, it has a sklls factory just ask it or copy your favorite skills repos
199
+
200
+ ## Knowledge Layer
201
+
202
+ JFL structures your GTM knowledge:
203
+
204
+ ```
205
+ knowledge/
206
+ ├── VISION.md # What you're building
207
+ ├── NARRATIVE.md # How you tell the story
208
+ ├── THESIS.md # Why you'll win
209
+ ├── ROADMAP.md # What ships when
210
+ ├── BRAND_BRIEF.md # Brand inputs
211
+ ├── BRAND_DECISIONS.md # Finalized brand choices
212
+ ├── VOICE_AND_TONE.md # How the brand speaks
213
+ ├── TASKS.md # Master task list
214
+ └── CRM.md # Contact database
215
+ ```
216
+
217
+ These docs are the source of truth that AI reads to generate content, make decisions, and maintain consistency.
218
+
219
+ ## Updating JFL
220
+
221
+ JFL updates independently of your project:
222
+
223
+ ```bash
224
+ jfl update # Pull latest skills and CLAUDE.md
225
+ jfl update --dry # Preview changes first
226
+ ```
227
+
228
+ This updates:
229
+ - `skills/` - Latest skill implementations
230
+ - `CLAUDE.md` - Latest AI instructions
231
+ - Templates for new docs
232
+
233
+ Your project content (knowledge/, content/, product/) is never touched.
234
+
235
+ ## Session Management
236
+
237
+ **Default:** Single session, direct in repo.
238
+
239
+ **Advanced:** For parallel work across multiple sessions, use worktrees:
240
+
241
+ ```bash
242
+ ./scripts/worktree-session.sh create [username] # Create isolated session
243
+ ./scripts/worktree-session.sh list # List active sessions
244
+ ./scripts/worktree-session.sh end [session-name] # End session
245
+ ```
246
+
247
+ Each worktree session has:
248
+ - Isolated git worktree
249
+ - Auto-commit (every 5 min)
250
+ - Auto-merge to main (every 15 min)
251
+ - Own branch for changes
252
+
253
+ ## Development
254
+
255
+ Contributing to JFL itself:
256
+
257
+ ```bash
258
+ # Clone through GTM structure
259
+ jfl init my-jfl-gtm
260
+ # During setup, add: https://github.com/402goose/just-fucking-launch.git
261
+
262
+ # Run dev setup
263
+ cd my-jfl-gtm/product
264
+ ./scripts/dev-setup.sh
265
+
266
+ # Work in the submodule
267
+ cd product/cli
268
+ npm install
269
+ npm run build
270
+
271
+ # Link globally for testing
272
+ npm link
273
+ ```
274
+
275
+ ## Environment Variables
276
+
277
+ ```bash
278
+ CRM_SHEET_ID=your-sheet-id # Google Sheets CRM integration
279
+ ```
280
+
281
+ ## Files You'll Work With
282
+
283
+ ```
284
+ .jfl/config.json # Project configuration
285
+ knowledge/ # Strategy docs (you fill these)
286
+ content/ # Generated content
287
+ suggestions/{name}.md # Per-person working space
288
+ previews/ # Generated assets
289
+ ```
290
+
291
+ ## Help
292
+
293
+ ```bash
294
+ jfl help # Show all commands
295
+ jfl --version # Show version
296
+ ```
297
+
298
+ For issues or feedback:
299
+ - GitHub: https://github.com/402goose/just-fucking-launch
300
+ - Docs: https://jfl.run
301
+
302
+ ## License
303
+
304
+ MIT License - see LICENSE file for details.
305
+
306
+ ## Credits
307
+
308
+ Built by [@tagga](https://x.com/taggaoyl) (Alec Taggart)
309
+
310
+ Powered by:
311
+ - Claude (Anthropic)
312
+ - x402 (crypto micropayments)
313
+ - Commander.js, Inquirer, Chalk, and more
@@ -0,0 +1,328 @@
1
+ # JFL GTM Clawdbot Skill
2
+
3
+ Access your JFL GTMs from Telegram, Slack, or Discord with full session isolation.
4
+
5
+ ## Architecture
6
+
7
+ Clawdbot skills are markdown instruction files (SKILL.md) that teach Clawdbot how to use tools. This skill:
8
+
9
+ 1. Uses `jfl session` commands for proper isolation (worktrees)
10
+ 2. Each Telegram thread = isolated session with auto-commit
11
+ 3. Executes via `jfl session exec` (syncs repos before every command)
12
+ 4. Button UI for GTM picker and command menus
13
+ 5. Formats output for chat (strips ANSI, converts to Markdown)
14
+
15
+ **Critical:** Every thread gets its own git worktree with journaling and auto-commit daemon.
16
+
17
+ ## Local Testing
18
+
19
+ ### 1. Verify JFL CLI is installed
20
+
21
+ ```bash
22
+ jfl --version
23
+ # Should show version 0.1.0 or later
24
+
25
+ # If not installed:
26
+ cd ../jfl-cli && npm link
27
+ ```
28
+
29
+ ### 2. Link skill to Clawdbot
30
+
31
+ ```bash
32
+ cd product/clawdbot-skill
33
+
34
+ # Create symlink in Clawdbot's managed skills directory
35
+ ln -sf $(pwd) ~/.clawdbot/skills/jfl-gtm
36
+
37
+ # Verify - should point to this directory
38
+ ls -la ~/.clawdbot/skills/jfl-gtm
39
+ ```
40
+
41
+ ### 3. Restart Clawdbot to load the skill
42
+
43
+ ```bash
44
+ # If running as daemon:
45
+ clawdbot restart
46
+
47
+ # Or kill and restart Telegram/Slack session
48
+ ```
49
+
50
+ ### 4. Test session commands directly
51
+
52
+ Before testing in Telegram, verify the session commands work:
53
+
54
+ ```bash
55
+ # Create a test session
56
+ TEST_SESSION=$(jfl session create --platform telegram --thread test-123)
57
+ echo "Created: $TEST_SESSION"
58
+
59
+ # Execute command through session
60
+ jfl session exec $TEST_SESSION "jfl hud"
61
+
62
+ # List active sessions
63
+ jfl session list
64
+
65
+ # Clean up
66
+ jfl session destroy $TEST_SESSION
67
+ ```
68
+
69
+ ### 5. Test in Telegram
70
+
71
+ ```
72
+ You: /jfl
73
+
74
+ Clawdbot:
75
+ 🚀 JFL - Just Fucking Launch
76
+
77
+ Your team's context layer. Any AI. Any task.
78
+
79
+ Open a project:
80
+
81
+ [📂 JFL-GTM]
82
+ [📂 Kodiak]
83
+ [+ Create new]
84
+ ```
85
+
86
+ Click a GTM → Clawdbot creates session → shows command menu → execute commands
87
+
88
+ ### 4. Test commands
89
+
90
+ ```
91
+ /hud → Dashboard
92
+ /crm list → Pipeline
93
+ /brand → Brand menu
94
+ /content → Content menu
95
+ /gtm → Switch GTM
96
+ ```
97
+
98
+ ## How It Works
99
+
100
+ ### On First Message in Thread
101
+
102
+ 1. **Find GTMs**: Scan for directories with `.jfl/`
103
+ 2. **Show picker**: Button UI listing available GTMs
104
+ 3. **Wait for selection**
105
+
106
+ ### On GTM Selection
107
+
108
+ 1. **Create isolated session**:
109
+ ```bash
110
+ jfl session create --platform telegram --thread ${THREAD_ID}
111
+ # Returns: session-telegram-${THREAD_ID}
112
+ ```
113
+
114
+ This creates:
115
+ - Git worktree at `worktrees/session-telegram-${THREAD_ID}/`
116
+ - Auto-commit daemon (commits every 2 minutes)
117
+ - Journal file at `.jfl/journal/session-telegram-${THREAD_ID}.jsonl`
118
+ - Session metadata in `.jfl/sessions.json`
119
+
120
+ 2. **Store session mapping**: Thread ID → Session ID
121
+ 3. **Show command menu**: Dashboard, CRM, Brand, Content
122
+
123
+ ### On Command Execution
124
+
125
+ 1. **Lookup session ID** for this thread
126
+ 2. **Execute through session**:
127
+ ```bash
128
+ jfl session exec ${SESSION_ID} "jfl hud"
129
+ ```
130
+
131
+ This:
132
+ - Runs `session-sync.sh` (syncs repos with remotes)
133
+ - CDs to worktree
134
+ - Executes command in isolated context
135
+ - Returns output
136
+
137
+ 3. **Format output**: Strip ANSI, convert to Markdown
138
+ 4. **Return to Telegram**
139
+
140
+ ### Session Lifecycle
141
+
142
+ - **Created**: On first GTM selection in thread
143
+ - **Persists**: Across messages (doesn't recreate every time)
144
+ - **Auto-commits**: Every 2 minutes while active
145
+ - **Journals**: All commands logged to `.jfl/journal/`
146
+ - **Destroyed**: Optional cleanup (or let it persist)
147
+
148
+ ## Local Development
149
+
150
+ ### Test functions directly
151
+
152
+ ```bash
153
+ # Install deps
154
+ npm install
155
+
156
+ # Test GTM detection
157
+ node -e "import('./index.js').then(m => m.findGTMs().then(console.log))"
158
+
159
+ # Test command execution
160
+ node -e "import('./index.js').then(m => m.runJFLCommand({gtmPath: '/Users/you/JFL-GTM'}, 'hud').then(console.log))"
161
+ ```
162
+
163
+ ### Debug mode
164
+
165
+ Set `DEBUG=1` to see command execution:
166
+
167
+ ```bash
168
+ export DEBUG=1
169
+ # Then use Clawdbot normally
170
+ ```
171
+
172
+ ## Publishing (Later)
173
+
174
+ ### To ClawdHub
175
+
176
+ ```bash
177
+ # Build
178
+ npm run build
179
+
180
+ # Publish
181
+ clawdbot skill publish
182
+
183
+ # Or to npm
184
+ npm publish --access public
185
+ ```
186
+
187
+ ### To npm (bundled with CLI)
188
+
189
+ The skill will be bundled in `jfl-cli` package:
190
+
191
+ ```
192
+ jfl-cli/
193
+ ├── skills/
194
+ │ └── clawdbot/ ← This skill
195
+ │ ├── skill.json
196
+ │ └── index.ts
197
+ └── package.json
198
+ ```
199
+
200
+ Post-install script detects Clawdbot and auto-registers.
201
+
202
+ ## Requirements
203
+
204
+ - `jfl` CLI installed (`npm install -g jfl` or local dev)
205
+ - Clawdbot installed and configured
206
+ - At least one GTM created (`jfl init`)
207
+
208
+ ## File Structure
209
+
210
+ ```
211
+ product/clawdbot-skill/
212
+ ├── skill.json # ClawdHub metadata
213
+ ├── index.ts # Skill implementation
214
+ ├── package.json # npm metadata
215
+ └── README.md # This file
216
+ ```
217
+
218
+ ## Key Functions
219
+
220
+ | Function | What It Does |
221
+ |----------|--------------|
222
+ | `onBoot()` | Shows GTM picker on first run |
223
+ | `onCallback()` | Handles button clicks |
224
+ | `onCommand()` | Handles `/` commands |
225
+ | `findGTMs()` | Scans for `.jfl` directories |
226
+ | `runJFLCommand()` | Executes actual `jfl` commands |
227
+ | `formatForTelegram()` | Strips ANSI, converts to Markdown |
228
+
229
+ ## Examples
230
+
231
+ ### Dashboard in Telegram
232
+
233
+ ```
234
+ User: /hud
235
+
236
+ Clawdbot:
237
+ ━━━━━━━━━━━━━━━━━━━━━━━━
238
+ JFL - Just Fucking Launch
239
+ ━━━━━━━━━━━━━━━━━━━━━━━━
240
+
241
+ Phase: CLI Launch Prep
242
+ Version: 0.1.0
243
+
244
+ PIPELINE
245
+ 🟠 Jack (Nascent) - IN_CONVO
246
+ 🟠 Luca - IN_CONVO
247
+ ✅ Wes - COMMITTED
248
+
249
+ NEXT: Publish CLI to npm
250
+ ━━━━━━━━━━━━━━━━━━━━━━━━
251
+ ```
252
+
253
+ ### CRM in Telegram
254
+
255
+ ```
256
+ User: /crm list
257
+
258
+ Clawdbot:
259
+ DEALS (22)
260
+
261
+ 🟠 Jack (Nascent) - IN_CONVO
262
+ 🟠 Luca - IN_CONVO
263
+ 🟡 Avi (Coinfund) - REACHED_OUT
264
+ ✅ Wes (Formation) - COMMITTED
265
+ ```
266
+
267
+ ### Button UI
268
+
269
+ ```
270
+ User: [clicks 📂 JFL-GTM]
271
+
272
+ Clawdbot:
273
+ ✓ Opened JFL-GTM
274
+
275
+ [📊 Dashboard] [👥 CRM]
276
+ [🎨 Brand] [✍️ Content]
277
+ [🔄 Sync] [📝 Status]
278
+ ```
279
+
280
+ ## Troubleshooting
281
+
282
+ ### "JFL CLI not found"
283
+
284
+ ```bash
285
+ # Check if jfl is installed
286
+ jfl --version
287
+
288
+ # If not:
289
+ npm install -g jfl
290
+
291
+ # Or use local dev build:
292
+ cd jfl-cli && npm link
293
+ ```
294
+
295
+ ### "No GTMs found"
296
+
297
+ ```bash
298
+ # Create a GTM
299
+ jfl init
300
+
301
+ # Or check paths in findGTMs()
302
+ # Default search paths:
303
+ # - ~/CascadeProjects
304
+ # - ~/Projects
305
+ # - ~/code
306
+ ```
307
+
308
+ ### Skill not showing in Clawdbot
309
+
310
+ ```bash
311
+ # Check symlink
312
+ ls -la ~/.clawdbot/skills/jfl-gtm
313
+
314
+ # Should point to:
315
+ # product/clawdbot-skill
316
+
317
+ # Restart Clawdbot
318
+ clawdbot restart
319
+ ```
320
+
321
+ ## Next Steps
322
+
323
+ - [ ] Test in Telegram
324
+ - [ ] Test in Slack
325
+ - [ ] Add voice note support
326
+ - [ ] Add image attachment support
327
+ - [ ] Publish to ClawdHub
328
+ - [ ] Bundle with CLI