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,960 @@
1
+ # JFL - Claude Instructions
2
+
3
+ Your context layer. Any project. Any AI.
4
+
5
+ ## Project Identity
6
+
7
+ **Get project name from (in order):**
8
+ 1. `.jfl/config.json` → `name` field
9
+ 2. `knowledge/VISION.md` → first heading
10
+ 3. Directory name
11
+
12
+ Use this name in status displays, greetings, and when referring to the project.
13
+
14
+ ## Philosophy
15
+
16
+ **Vision emerges from doing, not declaring.**
17
+
18
+ Don't make users fill out forms before they can build. Let them start immediately. Capture context INTO the knowledge docs as you work together - the docs become a record of decisions, not a gate to getting started.
19
+
20
+ ---
21
+
22
+ ## CRITICAL: Session Sync (MUST READ)
23
+
24
+ **Context loss is unacceptable.** Before starting ANY work, verify repos are synced.
25
+
26
+ ### At Session Start - ALWAYS Do (BEFORE RESPONDING TO USER):
27
+
28
+ **Complete ALL steps before saying anything to the user.**
29
+
30
+ **1. CD to worktree** (from hook output)
31
+
32
+ **2. Run session sync:**
33
+ ```bash
34
+ ./scripts/session/session-sync.sh
35
+ ```
36
+
37
+ **3. Run doctor check:**
38
+ ```bash
39
+ ./scripts/session/jfl-doctor.sh
40
+ ```
41
+ Note any warnings (orphaned worktrees, unmerged sessions, memory not initialized).
42
+
43
+ **4. Get unified context via MCP (REQUIRED):**
44
+ ```
45
+ Call: mcp__jfl-context__context_get
46
+ ```
47
+
48
+ This single call returns:
49
+ - Recent journal entries (what happened across sessions)
50
+ - Knowledge docs (vision, roadmap, narrative, thesis)
51
+ - Code file headers (@purpose tags)
52
+
53
+ **DO NOT read individual markdown files.** The context MCP tool aggregates everything. This is why we built Context Hub.
54
+
55
+ **5. Show recent journal entries:**
56
+ ```bash
57
+ cat .jfl/journal/*.jsonl 2>/dev/null | tail -10
58
+ ```
59
+
60
+ **6. Run /hud to show project dashboard:**
61
+ ```
62
+ Invoke: /hud skill
63
+ ```
64
+
65
+ This displays the full status, pipeline, tasks, and guides next action.
66
+
67
+ **ONLY AFTER completing all 6 steps**, respond to the user with the HUD output.
68
+
69
+ If you need to search for something specific later:
70
+ ```
71
+ Call: mcp__jfl-context__context_search with query="your search"
72
+ ```
73
+
74
+ ### CRITICAL: CD to Worktree
75
+
76
+ **After SessionStart hook runs, you MUST cd to the worktree.**
77
+
78
+ The hook creates a worktree and outputs:
79
+ ```
80
+ ═══════════════════════════════════════════════════════════
81
+ CLAUDE: You MUST run: cd /path/to/worktree
82
+ ═══════════════════════════════════════════════════════════
83
+ ```
84
+
85
+ **YOU MUST RUN THAT CD COMMAND.** If you don't, you'll work on main branch and break multi-session isolation.
86
+
87
+ If you missed the output, find the path:
88
+ ```bash
89
+ cat .jfl/current-worktree.txt
90
+ ```
91
+
92
+ Then cd to it:
93
+ ```bash
94
+ cd $(cat .jfl/current-worktree.txt)
95
+ ```
96
+
97
+ **Verify you're in the worktree:**
98
+ ```bash
99
+ pwd && git branch --show-current
100
+ ```
101
+
102
+ Should show `/path/worktrees/session-*` and branch `session-*`, NOT `main`.
103
+
104
+ ---
105
+
106
+ This syncs:
107
+ - jfl-gtm (this repo)
108
+ - jfl-platform (product symlink target)
109
+ - All submodules
110
+
111
+ ### Why This Matters
112
+
113
+ The `product/` directory is a **symlink** to `../jfl-platform`. If jfl-platform gets out of sync with GitHub:
114
+ - Files appear "deleted" when they exist on GitHub
115
+ - Work done in previous sessions is invisible
116
+ - User loses trust in the system
117
+
118
+ **This has happened multiple times. Do not skip the sync.**
119
+
120
+ ### Verify Context is Intact
121
+
122
+ ```bash
123
+ ./scripts/session/test-context-preservation.sh
124
+ ```
125
+
126
+ This checks:
127
+ - Critical knowledge files exist (VISION.md, BRAND_DECISIONS.md, etc.)
128
+ - Product specs exist (PLATFORM_SPEC.md, TEMPLATE_SPEC.md, CONTEXT_GRAPH_SPEC.md)
129
+ - Git repos are in sync with remotes
130
+ - No uncommitted changes in knowledge/
131
+
132
+ **If tests fail, do not proceed until fixed.**
133
+
134
+ ### Auto-Push on Session End
135
+
136
+ Hooks in `.claude/settings.json` automatically:
137
+ - Commit changes on Stop/PreCompact
138
+ - Push to origin
139
+
140
+ ### Continuous Auto-Commit (RECOMMENDED)
141
+
142
+ **Problem:** Stop/PreCompact hooks only run if session ends cleanly. If session crashes, terminal closes, or you switch away → files can be lost.
143
+
144
+ **Solution:** Run continuous auto-commit in background:
145
+
146
+ ```bash
147
+ # In a separate terminal, run:
148
+ ./scripts/session/auto-commit.sh start
149
+
150
+ # Or with custom interval (default 120s):
151
+ ./scripts/session/auto-commit.sh start 60
152
+ ```
153
+
154
+ This commits every 2 minutes to:
155
+ - knowledge/
156
+ - previews/
157
+ - content/
158
+ - suggestions/
159
+ - CLAUDE.md
160
+ - .jfl/
161
+
162
+ **Start this at every session.** It's the only way to guarantee no work is lost.
163
+
164
+ ---
165
+
166
+ ## CRITICAL: Journal Protocol (NON-NEGOTIABLE)
167
+
168
+ **⚠️ THIS IS MANDATORY. NOT OPTIONAL. NOT SKIPPABLE.**
169
+
170
+ You MUST write journal entries. The Stop hook will block session end if no journal entry exists.
171
+
172
+ **Write DETAILED journal entries as you work. Not titles — actual content.**
173
+
174
+ The journal is the handoff document between sessions and between people. When someone asks "what did Hath work on?", the journal should answer with specifics, not vague titles.
175
+
176
+ ### Enforcement
177
+
178
+ Hooks enforce this automatically:
179
+ - **Stop hook** → Blocks session end if no journal entry for this session
180
+ - **PreCompact hook** → Checks for journal entry before context compaction
181
+ - **PostToolUse (Write/Edit)** → Checks for @purpose header on code files
182
+
183
+ If you see "STOP - JOURNAL ENTRY REQUIRED", you MUST write a journal entry before proceeding.
184
+
185
+ ### The Problem We're Solving
186
+
187
+ BAD entry (useless):
188
+ ```json
189
+ {"title": "Session management improvements", "summary": "Applied Takopi patterns"}
190
+ ```
191
+
192
+ GOOD entry (useful):
193
+ ```json
194
+ {
195
+ "title": "Session management with runner infrastructure",
196
+ "summary": "Built database tables, service layer, and API for managing AI sessions",
197
+ "detail": "Created runner_sessions, session_events, session_costs tables. RunnerService class with create/suspend/resume/destroy methods. /api/sessions endpoints for CRUD. Dashboard UI with polling. Note: simulateAgentStartup() is a stub - needs real Claude integration.",
198
+ "files": ["product/src/lib/db/schema.ts", "product/src/lib/runner-service.ts", "product/src/app/api/sessions/route.ts"],
199
+ "incomplete": ["simulateAgentStartup is stubbed", "cost tracking not connected to Stripe"],
200
+ "next": "Connect to Claude API for real agent execution"
201
+ }
202
+ ```
203
+
204
+ ### Per-Session Journal Files
205
+
206
+ Each session writes to its own file to avoid merge conflicts:
207
+ ```
208
+ .jfl/journal/<session-id>.jsonl
209
+ ```
210
+
211
+ The session ID comes from your git branch name (e.g., `session-goose-20260125-0240-bea0be`).
212
+
213
+ ### When to Write (MANDATORY TRIGGERS)
214
+
215
+ Write a journal entry IMMEDIATELY when ANY of these happen:
216
+
217
+ | Event | Type | You MUST capture |
218
+ |-------|------|------------------|
219
+ | **Feature completed** | `feature` | What was built, files created, what's stubbed, next steps |
220
+ | **Decision made** | `decision` | Options considered, why this choice, decision slug |
221
+ | **Bug fixed** | `fix` | Root cause, the fix, what you learned |
222
+ | **Something learned** | `discovery` | The insight, how it changes approach |
223
+ | **Milestone reached** | `milestone` | Everything in this milestone, incomplete items |
224
+ | **Session ending** | `session-end` | Summary of session, handoff for next person |
225
+
226
+ **Do not wait until session end to write entries.** Write them AS events happen. Multiple entries per session is normal and expected.
227
+
228
+ ### Real-Time Capture Triggers (ENFORCE THESE)
229
+
230
+ **After you do ANY of these, IMMEDIATELY write a journal entry:**
231
+
232
+ 1. **After git commit** → Journal entry describing what was committed
233
+ 2. **After TaskUpdate to completed** → Journal entry for that task
234
+ 3. **After user says "done", "looks good", "ship it", "approved"** → Journal entry capturing what was approved
235
+ 4. **After making a choice between options** → Decision journal entry
236
+ 5. **After fixing an error/bug** → Fix journal entry with root cause
237
+ 6. **After writing a new file** → Journal entry if it's significant (not just a small helper)
238
+ 7. **After completing a multi-step task** → Feature/milestone journal entry
239
+
240
+ **Pattern to follow:**
241
+ ```
242
+ 1. Do the work
243
+ 2. Commit (if code)
244
+ 3. Write journal entry ← DON'T SKIP THIS
245
+ 4. Continue to next task
246
+ ```
247
+
248
+ **If you catch yourself about to move to the next task without journaling, STOP and write the entry first.**
249
+
250
+ The session-end hook is a BACKSTOP, not the primary enforcement. Real-time capture is mandatory.
251
+
252
+ ### Entry Format
253
+
254
+ ```json
255
+ {
256
+ "v": 1,
257
+ "ts": "2026-01-25T10:30:00.000Z",
258
+ "session": "session-goose-20260125-xxxx",
259
+ "type": "feature|fix|decision|milestone|spec|discovery",
260
+ "status": "complete|incomplete|blocked",
261
+ "title": "Short title (but not TOO short)",
262
+ "summary": "2-3 sentence summary of what this actually is",
263
+ "detail": "Full description. What was built? What files? What's stubbed? What's next?",
264
+ "files": ["file1.ts", "file2.ts"],
265
+ "decision": "decision-slug-for-linking",
266
+ "incomplete": ["list of things not finished"],
267
+ "next": "what should happen next",
268
+ "learned": ["key learnings from this work"]
269
+ }
270
+ ```
271
+
272
+ **Required fields:** v, ts, session, type, title, summary
273
+ **Strongly recommended:** detail, files
274
+
275
+ ### How to Write Entries
276
+
277
+ **Direct file append** (no CLI dependency):
278
+
279
+ ```bash
280
+ # Get session and file path
281
+ SESSION=$(git branch --show-current)
282
+ JOURNAL_FILE=".jfl/journal/${SESSION}.jsonl"
283
+ mkdir -p .jfl/journal
284
+
285
+ # Append entry
286
+ cat >> "$JOURNAL_FILE" << 'ENTRY'
287
+ {"v":1,"ts":"2026-01-25T10:30:00.000Z","session":"SESSION_ID","type":"feature","status":"complete","title":"...","summary":"...","detail":"...","files":["..."]}
288
+ ENTRY
289
+ ```
290
+
291
+ Or just use the **Write tool** to append to the file directly. The format is one JSON object per line.
292
+
293
+ ### What Makes a GOOD Entry
294
+
295
+ 1. **Someone reading it can understand what exists** — not just that you worked on something
296
+ 2. **Files are listed** — so they can find the code
297
+ 3. **Incomplete items are noted** — so they know what's stubbed
298
+ 4. **Next steps are clear** — so they can continue
299
+
300
+ ### File Headers (MANDATORY FOR CODE FILES)
301
+
302
+ Every `.ts`, `.tsx`, `.js`, `.jsx` file MUST have a header with at minimum `@purpose`:
303
+
304
+ ```typescript
305
+ /**
306
+ * Component/Module Name
307
+ *
308
+ * Brief description of what this does.
309
+ *
310
+ * @purpose One-line description of file's purpose
311
+ * @spec Optional: link to spec (e.g., PLATFORM_SPEC.md#sessions)
312
+ * @decision Optional: decision slug (e.g., journal/2026-01.md#per-session)
313
+ */
314
+ ```
315
+
316
+ The PostToolUse hook will warn you if you write/edit a code file without `@purpose`. Add it immediately.
317
+
318
+ This enables:
319
+ - Synopsis to extract context from files
320
+ - Codebase understanding without reading full files
321
+ - Decision traceability
322
+
323
+ ### Reading the Journal
324
+
325
+ All session files are in `.jfl/journal/`. To see recent entries across all sessions:
326
+ ```bash
327
+ cat .jfl/journal/*.jsonl | sort -t'"' -k4 | tail -20
328
+ ```
329
+
330
+ Or read a specific session's journal:
331
+ ```bash
332
+ cat .jfl/journal/session-goose-20260125-xxxx.jsonl
333
+ ```
334
+
335
+ ### Integration with Memory System
336
+
337
+ The memory pipeline indexes `.jfl/journal/` automatically. Entries become searchable via:
338
+ - Memory semantic search
339
+ - PageIndex tree queries ("when did we decide X?")
340
+ - HUD recent work display
341
+
342
+ ---
343
+
344
+ ## CRITICAL: Synopsis Command (What Happened?)
345
+
346
+ **When anyone asks "what happened?" use synopsis:**
347
+
348
+ ```bash
349
+ cd product/packages/memory && node dist/journal/cli.js synopsis [hours] [author]
350
+
351
+ # Examples:
352
+ node dist/journal/cli.js synopsis 24 # Last 24 hours
353
+ node dist/journal/cli.js synopsis 24 hathbanger # Specific author
354
+ ```
355
+
356
+ Aggregates journal entries, git commits, file headers, and time audit with category breakdown.
357
+
358
+ ---
359
+
360
+ ## CRITICAL: Immediate Decision Capture
361
+
362
+ **When a decision is made, update the relevant doc AND journal IMMEDIATELY.**
363
+
364
+ ### Flow
365
+
366
+ 1. Decision made in conversation
367
+ 2. Update the relevant doc:
368
+ - Naming/brand → `knowledge/BRAND_DECISIONS.md`
369
+ - Product direction → `product/SPEC.md`
370
+ - Architecture → relevant `*_SPEC.md`
371
+ 3. Write journal entry with full context (options considered, why this choice)
372
+ 4. Continue conversation
373
+
374
+ ### Example
375
+
376
+ ```
377
+ User: "Let's go with Option A for the pricing"
378
+
379
+ Claude: *updates knowledge/PRICING.md with Option A details*
380
+ *appends to .jfl/journal/<session>.jsonl:*
381
+ {
382
+ "type": "decision",
383
+ "title": "Pricing model: Option A (usage-based)",
384
+ "summary": "Chose usage-based pricing over flat rate",
385
+ "detail": "Options considered: A) $5/day usage-based, B) $49/mo flat, C) freemium. Chose A because: aligns with x402 micropayments, lower barrier to start, scales with value delivered. Rejected B because fixed cost feels like commitment before value proven.",
386
+ "decision": "pricing-model",
387
+ "files": ["knowledge/PRICING.md"]
388
+ }
389
+
390
+ "Done — updated PRICING.md. Ready to implement?"
391
+ ```
392
+
393
+ ### Why Detail Matters
394
+
395
+ - Next session, someone asks "why usage-based?" → journal has the answer
396
+ - You can trace back through decision history
397
+ - Avoids re-debating settled decisions
398
+
399
+ ---
400
+
401
+ ## CRITICAL: CRM is Google Sheets (NOT a markdown file)
402
+
403
+ **NEVER read a CRM.md file. It doesn't exist. The CRM is Google Sheets accessed via CLI.**
404
+
405
+ ### CRM Commands
406
+
407
+ ```bash
408
+ ./crm # Dashboard with insights
409
+ ./crm list # List all deals
410
+ ./crm prep <name> # Full context for a contact (use before calls)
411
+ ./crm stale # Deals with no activity in 5+ days
412
+ ./crm priority # High priority deals
413
+ ./crm touch <name> # Log an activity
414
+ ./crm update <name> <field> <value> # Update a field
415
+ ./crm add contact "Name" "Company" # Add new contact
416
+ ./crm add deal "Name" "Contact" "Pipeline" # Add deal
417
+ ```
418
+
419
+ ### When to Use
420
+
421
+ - **Before any outreach:** `./crm prep [name]` to get full context
422
+ - **After a call/meeting:** `./crm touch [name]` to log it
423
+ - **Checking pipeline:** `./crm list` or `./crm stale`
424
+ - **HUD pulls from CRM:** The `/hud` skill uses `./crm list` to show pipeline
425
+
426
+ **DO NOT:**
427
+ - Read `knowledge/CRM.md` (it doesn't exist)
428
+ - Try to grep for CRM data in markdown files
429
+ - Store contact info in suggestions files
430
+
431
+ ---
432
+
433
+ ## Core Architecture Principle
434
+
435
+ **A GTM workspace should NEVER house product code.**
436
+
437
+ JFL creates GTM workspaces - context layers for building and launching. The actual product code always lives in its own separate repo. Even if you're a founder building everything, the structure is:
438
+
439
+ ```
440
+ my-project-gtm/ ← GTM workspace (this repo)
441
+ ├── product/ ← SUBMODULE → your-product-repo
442
+ ├── knowledge/ ← Strategy, vision, narrative
443
+ ├── content/ ← Marketing content
444
+ ├── suggestions/ ← Contributor work
445
+ ├── skills/ ← JFL skills (updated via jfl update)
446
+ └── CLAUDE.md ← Instructions (updated via jfl update)
447
+
448
+ your-product-repo/ ← SEPARATE REPO (all code lives here)
449
+ ├── src/
450
+ ├── cli/
451
+ ├── platform/
452
+ └── ...
453
+ ```
454
+
455
+ **Why?**
456
+ - Clean separation of concerns
457
+ - Product can be worked on independently
458
+ - GTM context doesn't pollute product repo
459
+ - Multiple GTMs can reference same product
460
+ - `jfl update` updates GTM toolkit without touching product
461
+
462
+ ---
463
+
464
+ ## Understanding the Project Setup
465
+
466
+ **Before doing any work, understand the setup:**
467
+
468
+ ### 1. What's their relationship to the product?
469
+
470
+ Ask early (or infer from context):
471
+ ```
472
+ Quick question - what's your setup?
473
+
474
+ 1. Building the product (I have/need a product repo)
475
+ 2. GTM only (team handles code, I do marketing/content)
476
+ 3. Contributor (I work on specific tasks, suggest changes)
477
+ ```
478
+
479
+ ### 2. Detect the repo structure
480
+
481
+ Check what repos/references exist:
482
+ ```bash
483
+ ls -la # What's in this project?
484
+ cat .jfl/config.json # Project config
485
+ ls references/ # Any linked repos?
486
+ ls product/ # Product specs here?
487
+ git remote -v # What repo is this?
488
+ ```
489
+
490
+ **Common setups:**
491
+
492
+ | Setup | What It Looks Like | How to Handle |
493
+ |-------|-------------------|---------------|
494
+ | **Building product** | `product/` submodule linked to product repo | Code changes go to product repo (submodule) |
495
+ | **GTM only** | No `product/` submodule, just `knowledge/`, `content/` | Focus on GTM, no code changes |
496
+ | **Contributor** | Has suggestions file, limited scope | Work in `suggestions/`, route through owner |
497
+
498
+ ### 3. Where do changes go?
499
+
500
+ **Based on setup, route work correctly:**
501
+
502
+ | What They're Doing | Where It Goes |
503
+ |-------------------|---------------|
504
+ | Writing product code | Product repo (wherever that is) |
505
+ | Updating product spec | `product/SPEC.md` in this repo |
506
+ | Marketing content | `content/` in this repo |
507
+ | Brand/design work | `knowledge/BRAND*.md`, `previews/` |
508
+ | Strategic docs | `knowledge/` in this repo |
509
+ | CRM/outreach | `./crm` CLI (Google Sheets), `suggestions/` |
510
+
511
+ ### 4. Store the setup in config
512
+
513
+ Once you understand their setup, save it:
514
+ ```json
515
+ // .jfl/config.json
516
+ {
517
+ "name": "project-name",
518
+ "type": "gtm",
519
+ "setup": "building-product", // or "gtm-only", "contributor"
520
+ "product_repo": "github.com/...", // if building product
521
+ "product_path": "product/", // submodule path
522
+ "description": "..."
523
+ }
524
+ ```
525
+
526
+ **Check this config at session start** - don't re-ask if already configured.
527
+
528
+ ---
529
+
530
+ ## Working Modes
531
+
532
+ | Mode | Structure | Behavior |
533
+ |------|-----------|----------|
534
+ | **Building Product** | `product/` submodule → product repo | Code to `product/`, GTM to main repo. Commit to submodule first, then update reference. |
535
+ | **GTM Only** | No code, just `knowledge/`, `content/` | Focus on content/brand/outreach. Never suggest code changes. |
536
+ | **Contributor** | Has `suggestions/{name}.md` | Work within scope. Route suggestions through proper channels. |
537
+
538
+ **Detecting mode changes:**
539
+ - "I need to update the code" → Add product submodule if missing
540
+ - "I'm taking over the product" → Switch to building-product mode
541
+ - Update `.jfl/config.json` when mode changes
542
+
543
+ ---
544
+
545
+ ## Starting a New Project (Foundation Empty)
546
+
547
+ When knowledge docs are empty, pull them through foundation in order. Don't ask open-ended "What do you want to build?"
548
+
549
+ **Foundation checklist:**
550
+
551
+ 1. **VISION.md** - What are you building? Who is it for? What problem does it solve? One-liner?
552
+ 2. **ROADMAP.md** - When do you want to ship? MVP? Phases? Hard deadlines?
553
+ 3. **NARRATIVE.md** - Casual pitch? Before/after? Key words? Emotional hook?
554
+ 4. **THESIS.md** - Why will YOU win? What insight? Unfair advantage? Why now?
555
+
556
+ **Key principles:**
557
+ - Ask role-specific questions (don't ask non-technical founders about stack)
558
+ - Write to files immediately as they answer
559
+ - Provide examples/suggestions to guide them
560
+ - Allow "emergent" status - vision clarifies through building
561
+ - Don't skip docs - complete all four before building
562
+
563
+ **After foundation:**
564
+ - Check if ALL FOUR docs have real content (not templates)
565
+ - Then ask: "Foundation is set. Want to work on brand/design next, or jump into building?"
566
+
567
+ ---
568
+
569
+ ## Before Building Any UI/Frontend
570
+
571
+ **⚠️ ALWAYS establish brand direction before writing UI code**
572
+
573
+ **Check for brand decisions:**
574
+ 1. `knowledge/BRAND_DECISIONS.md` - finalized choices
575
+ 2. `knowledge/BRAND_BRIEF.md` - brand inputs
576
+ 3. `knowledge/VOICE_AND_TONE.md` - personality/feel
577
+
578
+ **If no explicit brand docs, INFER from foundation:**
579
+ - Read NARRATIVE.md and VISION.md
580
+ - Extract tone, audience, positioning
581
+ - Propose direction and confirm
582
+
583
+ **Gather references:**
584
+ - Aesthetic refs: Sites they like
585
+ - Functional refs: Similar products done well
586
+ - Anti-refs: What to avoid
587
+ - Store in `references/` or note in `product/SPEC.md`
588
+
589
+ **NEVER:**
590
+ - Use another project's styling as default
591
+ - Assume dark theme without reason
592
+ - Pick random colors without basis
593
+ - Build UI "to get started" and "refine later"
594
+
595
+ Brand direction exists in foundation docs. Extract it, confirm it, build with intention.
596
+
597
+ ---
598
+
599
+ ## Product Specs: The Living Build Document
600
+
601
+ When building a product, maintain `product/SPEC.md` as the source of truth for implementation.
602
+
603
+ **Template sections:** What We're Building | Who It's For | Core Features (table) | Tech Stack | Current Focus | Decisions Made (table) | Open Questions | References (table)
604
+
605
+ See `templates/` folder for full spec template.
606
+
607
+ **When to use:**
608
+ - Before starting: Read spec for decisions already made
609
+ - While building: Update feature status, add decisions, note questions
610
+ - After building: Mark features done, document tech choices
611
+
612
+ **Spec vs Foundation:**
613
+ | Doc | Purpose | Updates |
614
+ |-----|---------|---------|
615
+ | VISION.md | Why we're building | Rarely |
616
+ | NARRATIVE.md | How we talk about it | Evolves |
617
+ | product/SPEC.md | What we're building | Every session |
618
+
619
+ **Before building, ensure foundation is complete:**
620
+ - Check VISION.md, ROADMAP.md, NARRATIVE.md, THESIS.md all have real content
621
+ - If any are missing, complete them first before asking "what to build?"
622
+ - Date handling: Dates without year assume future (next year if passed this year)
623
+
624
+ ---
625
+
626
+ ## Session Feedback
627
+
628
+ Every few sessions, ask: "How's JFL doing this session? (0-5)"
629
+
630
+ - **0-2:** Ask what went wrong, log to `.jfl/feedback.jsonl` with details
631
+ - **3-5:** Log rating only
632
+
633
+ Don't ask every session - maybe every 3rd or after major milestones.
634
+
635
+ Then:
636
+ 1. Get right into building
637
+ 2. Capture what they said into VISION.md in the background
638
+ 3. As decisions are made, record them in the appropriate docs
639
+ 4. Context compounds over time
640
+
641
+ ---
642
+
643
+ ## After Planning
644
+
645
+ Before building, ask clarifying questions:
646
+ 1. Specific question about their use case
647
+ 2. Question about scope/priorities
648
+ 3. Question about integrations/APIs
649
+ 4. Any references or examples to pull in?
650
+
651
+ If foundation docs are empty, offer to capture what you learned into VISION.md, ROADMAP.md, etc.
652
+
653
+ Accept any format: pictures, documents, voice notes, links, stream of consciousness.
654
+
655
+ ---
656
+
657
+ ## On Every Conversation Start
658
+
659
+ ### 1. Identify the User
660
+
661
+ **Authentication is required for owner access.** Git config alone is NOT trusted.
662
+
663
+ ```bash
664
+ # Check JFL authentication status
665
+ jfl status 2>/dev/null
666
+ ```
667
+
668
+ **Identity Resolution:**
669
+
670
+ | JFL Auth Status | Git Config | Identity | Access |
671
+ |-----------------|------------|----------|--------|
672
+ | Authenticated (GitHub/x402) | Any | Use JFL auth identity | Based on role |
673
+ | Not authenticated | Matches owner | **Unknown** - require auth | None until auth |
674
+ | Not authenticated | Other | New contributor | Onboard flow |
675
+
676
+ **If not authenticated, prompt:**
677
+ ```
678
+ To access this project, please authenticate:
679
+
680
+ jfl login
681
+
682
+ This verifies your identity. Git config alone isn't enough for security.
683
+ ```
684
+
685
+ **After authentication, check their role:**
686
+ - If JFL auth username matches owner in Team Config → Owner access
687
+ - If they have `suggestions/{name}.md` → Contributor access
688
+ - Otherwise → New contributor, create suggestions file
689
+
690
+ ### 2. Determine User Type
691
+
692
+ | Type | Check | Permissions |
693
+ |------|-------|-------------|
694
+ | **Owner** | Listed in Team section below | Full edit access |
695
+ | **Contributor** | Has suggestions file | Route to suggestions |
696
+ | **New** | No suggestions file | Onboard first |
697
+
698
+ ### 3. Show Status
699
+
700
+ Run `/hud` to show the project dashboard.
701
+
702
+ ---
703
+
704
+ ## Team Configuration
705
+
706
+ **Owner** (full edit access - must authenticate via `jfl login`):
707
+ - **Name:** {owner_name}
708
+ - **GitHub Username:** {owner_github_username}
709
+ - **x402 Address:** {owner_wallet_address}
710
+
711
+ **Core Team** (authenticated access):
712
+ | Name | GitHub Username | x402 Address | Role |
713
+ |------|-----------------|--------------|------|
714
+ | | | | |
715
+
716
+ **Contributors:** Identified by `suggestions/{name}.md` file. New users onboarded as contributors.
717
+
718
+ ---
719
+
720
+ ## Onboarding Flows
721
+
722
+ **New Contributor:** Orient → Profile → Assign
723
+ 1. Explain VISION.md and NARRATIVE.md
724
+ 2. Capture their strengths, role, time commitment in `suggestions/{name}.md`
725
+ 3. Assign tasks from `knowledge/TASKS.md`
726
+
727
+ **Returning (> 7 days):** Show updates since last visit, remind them what they were working on
728
+
729
+ **Regular (< 7 days):** Show /hud dashboard, ask what to work on
730
+
731
+ ---
732
+
733
+ ## Knowledge Sources
734
+
735
+ **Check VISION.md status:** If `EMERGENT` → synthesize from living docs. If `DECLARED` → use declared vision.
736
+
737
+ **When EMERGENT, synthesize from:** Product specs → GTM strategy → `content/articles/` → `drafts/` → CRM notes → `knowledge/VISION.md`
738
+
739
+ ### Other Strategic Docs
740
+
741
+ | Document | Purpose | How Claude Uses It |
742
+ |----------|---------|-------------------|
743
+ | `knowledge/NARRATIVE.md` | How you tell the story | Generate content |
744
+ | `knowledge/THESIS.md` | Why this wins | Answer "Why will you win?" |
745
+ | `knowledge/ROADMAP.md` | What ships when | Track progress, countdown |
746
+
747
+ ### Brand Docs
748
+
749
+ | Document | Purpose |
750
+ |----------|---------|
751
+ | `knowledge/BRAND_BRIEF.md` | Brand inputs |
752
+ | `knowledge/BRAND_DECISIONS.md` | Finalized choices |
753
+ | `knowledge/VOICE_AND_TONE.md` | How the brand speaks |
754
+
755
+ ### Collaboration Docs
756
+
757
+ | Document | Purpose |
758
+ |----------|---------|
759
+ | `knowledge/TASKS.md` | Master task list |
760
+ | `./crm` CLI | Contact database (Google Sheets) - **NEVER read a CRM.md file** |
761
+ | `suggestions/{name}.md` | Per-person working space |
762
+
763
+ ---
764
+
765
+ ## Collaboration System
766
+
767
+ ### Routing Work
768
+
769
+ **Owner:** Can edit any file directly.
770
+
771
+ **Everyone else:** Work goes to `suggestions/{name}.md`:
772
+ - Contact updates
773
+ - Task progress
774
+ - Ideas and suggestions
775
+ - Research findings
776
+
777
+ Owner reviews and merges.
778
+
779
+ ### CRM Through Conversation
780
+
781
+ Don't make people type in spreadsheets. Capture updates naturally:
782
+
783
+ ```
784
+ User: "I DMed @person today"
785
+
786
+ Claude: "Got it. Logging:
787
+ - @person: DM_SENT
788
+
789
+ What angle did you use?"
790
+ ```
791
+
792
+ Log to their suggestions file:
793
+ ```markdown
794
+ ## CRM UPDATES (for sync)
795
+ | Handle | Action | Status | Date | Notes |
796
+ |--------|--------|--------|------|-------|
797
+ | @person | UPDATE | DM_SENT | {date} | |
798
+ ```
799
+
800
+ ### Task Updates
801
+
802
+ Same pattern:
803
+ ```
804
+ User: "Finished the thread draft"
805
+
806
+ Claude: "Nice! Marking complete.
807
+
808
+ ## TASK UPDATES
809
+ | Task | Status | Notes |
810
+ |------|--------|-------|
811
+ | Write launch thread | DONE | |
812
+ ```
813
+
814
+ ---
815
+
816
+ ## Skills Available
817
+
818
+ | Skill | Purpose | Key Commands |
819
+ |-------|---------|--------------|
820
+ | `/hud` | Project dashboard | `(default)` full dashboard, `--compact` one-line |
821
+ | `/brand-architect` | Brand creation | `(default)` full workflow, `marks`, `colors` |
822
+ | `/web-architect` | Asset implementation | `audit`, `implement all` |
823
+ | `/content` | Content creation | `thread [topic]`, `post [topic]`, `article [topic]`, `one-pager [topic]` |
824
+ | `/video` | Founder video scripts | `idea [topic]`, `script [topic]`, `hook [topic]`, `story [exp]`, `batch [theme]` |
825
+ | `/startup` | Startup guidance | `(default)` assess stage, `next`, `validate [idea]`, `mvp [idea]`, `customers`, `launch` |
826
+
827
+ See `skills/` folder for detailed documentation on each skill.
828
+
829
+ ---
830
+
831
+ ## The Workflow Phases
832
+
833
+ 1. **Foundation** - Copy templates to `knowledge/`, fill VISION/NARRATIVE/THESIS/ROADMAP
834
+ 2. **Collaboration Setup** - Edit Team section, create `suggestions/` files, set up `./crm`
835
+ 3. **Brand** - Fill `BRAND_BRIEF.md`, run `/brand-architect`, record decisions, run `/web-architect implement all`
836
+ 4. **Content** - Use `/content` for threads/posts/articles, preview in `previews/content/`
837
+ 5. **Launch** - Track with `/hud`, execute tasks, ship it
838
+
839
+ ---
840
+
841
+ ## File Conventions
842
+
843
+ ### Suggestions Files
844
+
845
+ ```markdown
846
+ # Suggestions - @{name}
847
+
848
+ ## PROFILE
849
+ {captured during onboarding}
850
+
851
+ ## CURRENT SESSION
852
+ {what they're working on}
853
+
854
+ ## CRM UPDATES (for sync)
855
+ | Handle | Action | Status | Date | Notes |
856
+ |--------|--------|--------|------|-------|
857
+
858
+ ## TASK UPDATES (for sync)
859
+ | Task | Status | Notes |
860
+ |------|--------|-------|
861
+
862
+ ## IDEAS
863
+ {their suggestions}
864
+ ```
865
+
866
+ ### SVG Naming
867
+
868
+ ```
869
+ {type}-{variant}-{size}-{theme}.svg
870
+
871
+ Examples:
872
+ mark-v1-80-dark.svg
873
+ banner-xl-1500x500-dark.svg
874
+ favicon-32-dark.svg
875
+ ```
876
+
877
+ ---
878
+
879
+ ## Session End
880
+
881
+ When they say "done", "bye", "exit":
882
+
883
+ ### 1. Save Their Work
884
+
885
+ Update their suggestions file with everything from this session.
886
+
887
+ ### 2. Commit and Push
888
+
889
+ ```bash
890
+ git add .
891
+ git commit -m "{name}: {brief summary}"
892
+ git push
893
+ ```
894
+
895
+ ### 3. Confirm
896
+
897
+ ```
898
+ Saved and pushed!
899
+
900
+ See you next time.
901
+ ```
902
+
903
+ ---
904
+
905
+ ## Context to Always Have
906
+
907
+ Read from your living docs and synthesize. Don't rely on stale one-liners.
908
+
909
+ **Launch Date:** {from ROADMAP.md}
910
+ **Current Phase:** {from ROADMAP.md}
911
+ **What we're building:** {synthesize from product spec, articles, drafts}
912
+ **Who it's for:** {synthesize from GTM strategy, CRM notes}
913
+
914
+ Pull fresh from the docs each session. The vision emerges through building, not declaration.
915
+
916
+ ---
917
+
918
+ ## Error Handling
919
+
920
+ ### Missing Foundation Docs
921
+
922
+ ```
923
+ Strategic docs not found.
924
+
925
+ To get started:
926
+ 1. Copy templates from templates/strategic/ to knowledge/
927
+ 2. Fill in VISION.md, NARRATIVE.md, THESIS.md, ROADMAP.md
928
+ 3. Run /hud to see your dashboard
929
+ ```
930
+
931
+ ### Missing Brand Brief
932
+
933
+ ```
934
+ Brand brief not found.
935
+
936
+ To create your brand:
937
+ 1. Copy templates/brand/BRAND_BRIEF.md to knowledge/
938
+ 2. Fill in your brand details
939
+ 3. Run /brand-architect
940
+ ```
941
+
942
+ ### Unknown User
943
+
944
+ ```
945
+ I don't have a suggestions file for you yet.
946
+
947
+ What's your name? I'll get you set up.
948
+ ```
949
+
950
+ ---
951
+
952
+ ## Remember
953
+
954
+ 1. **Foundation first** - Strategy docs before tactics
955
+ 2. **Route to suggestions** - Non-owners don't edit main docs
956
+ 3. **Capture naturally** - CRM updates through conversation
957
+ 4. **Context compounds** - Each session builds on the last
958
+ 5. **Ship it** - The goal is launch, not endless iteration
959
+
960
+ ---