jfl 0.1.0 → 0.2.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 (262) hide show
  1. package/README.md +443 -145
  2. package/clawdbot-plugin/clawdbot.plugin.json +20 -0
  3. package/clawdbot-plugin/index.js +555 -0
  4. package/clawdbot-plugin/index.ts +582 -0
  5. package/clawdbot-skill/SKILL.md +33 -336
  6. package/clawdbot-skill/index.ts +491 -321
  7. package/clawdbot-skill/skill.json +4 -13
  8. package/dist/commands/clawdbot.d.ts +11 -0
  9. package/dist/commands/clawdbot.d.ts.map +1 -0
  10. package/dist/commands/clawdbot.js +215 -0
  11. package/dist/commands/clawdbot.js.map +1 -0
  12. package/dist/commands/context-hub.d.ts +5 -0
  13. package/dist/commands/context-hub.d.ts.map +1 -1
  14. package/dist/commands/context-hub.js +394 -28
  15. package/dist/commands/context-hub.js.map +1 -1
  16. package/dist/commands/gtm-process-update.d.ts +10 -0
  17. package/dist/commands/gtm-process-update.d.ts.map +1 -0
  18. package/dist/commands/gtm-process-update.js +101 -0
  19. package/dist/commands/gtm-process-update.js.map +1 -0
  20. package/dist/commands/init.d.ts.map +1 -1
  21. package/dist/commands/init.js +278 -4
  22. package/dist/commands/init.js.map +1 -1
  23. package/dist/commands/login.d.ts.map +1 -1
  24. package/dist/commands/login.js +32 -33
  25. package/dist/commands/login.js.map +1 -1
  26. package/dist/commands/memory.d.ts +38 -0
  27. package/dist/commands/memory.d.ts.map +1 -0
  28. package/dist/commands/memory.js +229 -0
  29. package/dist/commands/memory.js.map +1 -0
  30. package/dist/commands/migrate-services.d.ts +8 -0
  31. package/dist/commands/migrate-services.d.ts.map +1 -0
  32. package/dist/commands/migrate-services.js +182 -0
  33. package/dist/commands/migrate-services.js.map +1 -0
  34. package/dist/commands/onboard.d.ts +24 -0
  35. package/dist/commands/onboard.d.ts.map +1 -0
  36. package/dist/commands/onboard.js +663 -0
  37. package/dist/commands/onboard.js.map +1 -0
  38. package/dist/commands/openclaw.d.ts +56 -0
  39. package/dist/commands/openclaw.d.ts.map +1 -0
  40. package/dist/commands/openclaw.js +700 -0
  41. package/dist/commands/openclaw.js.map +1 -0
  42. package/dist/commands/orchestrate.d.ts +14 -0
  43. package/dist/commands/orchestrate.d.ts.map +1 -0
  44. package/dist/commands/orchestrate.js +270 -0
  45. package/dist/commands/orchestrate.js.map +1 -0
  46. package/dist/commands/profile.d.ts +46 -0
  47. package/dist/commands/profile.d.ts.map +1 -0
  48. package/dist/commands/profile.js +498 -0
  49. package/dist/commands/profile.js.map +1 -0
  50. package/dist/commands/repair.d.ts.map +1 -1
  51. package/dist/commands/repair.js +37 -0
  52. package/dist/commands/repair.js.map +1 -1
  53. package/dist/commands/service-agent.d.ts +16 -0
  54. package/dist/commands/service-agent.d.ts.map +1 -0
  55. package/dist/commands/service-agent.js +375 -0
  56. package/dist/commands/service-agent.js.map +1 -0
  57. package/dist/commands/service-manager.d.ts +12 -0
  58. package/dist/commands/service-manager.d.ts.map +1 -0
  59. package/dist/commands/service-manager.js +967 -0
  60. package/dist/commands/service-manager.js.map +1 -0
  61. package/dist/commands/service-validate.d.ts +12 -0
  62. package/dist/commands/service-validate.d.ts.map +1 -0
  63. package/dist/commands/service-validate.js +611 -0
  64. package/dist/commands/service-validate.js.map +1 -0
  65. package/dist/commands/services-create.d.ts +15 -0
  66. package/dist/commands/services-create.d.ts.map +1 -0
  67. package/dist/commands/services-create.js +1452 -0
  68. package/dist/commands/services-create.js.map +1 -0
  69. package/dist/commands/services-scan.d.ts +13 -0
  70. package/dist/commands/services-scan.d.ts.map +1 -0
  71. package/dist/commands/services-scan.js +251 -0
  72. package/dist/commands/services-scan.js.map +1 -0
  73. package/dist/commands/services-sync-agents.d.ts +23 -0
  74. package/dist/commands/services-sync-agents.d.ts.map +1 -0
  75. package/dist/commands/services-sync-agents.js +207 -0
  76. package/dist/commands/services-sync-agents.js.map +1 -0
  77. package/dist/commands/services.d.ts +19 -0
  78. package/dist/commands/services.d.ts.map +1 -0
  79. package/dist/commands/services.js +742 -0
  80. package/dist/commands/services.js.map +1 -0
  81. package/dist/commands/session.d.ts +5 -1
  82. package/dist/commands/session.d.ts.map +1 -1
  83. package/dist/commands/session.js +68 -586
  84. package/dist/commands/session.js.map +1 -1
  85. package/dist/commands/status.d.ts.map +1 -1
  86. package/dist/commands/status.js +17 -0
  87. package/dist/commands/status.js.map +1 -1
  88. package/dist/commands/update.d.ts.map +1 -1
  89. package/dist/commands/update.js +75 -21
  90. package/dist/commands/update.js.map +1 -1
  91. package/dist/commands/validate-settings.d.ts +37 -0
  92. package/dist/commands/validate-settings.d.ts.map +1 -0
  93. package/dist/commands/validate-settings.js +197 -0
  94. package/dist/commands/validate-settings.js.map +1 -0
  95. package/dist/commands/voice.d.ts +0 -1
  96. package/dist/commands/voice.d.ts.map +1 -1
  97. package/dist/commands/voice.js +16 -15
  98. package/dist/commands/voice.js.map +1 -1
  99. package/dist/index.js +395 -141
  100. package/dist/index.js.map +1 -1
  101. package/dist/lib/agent-generator.d.ts +26 -0
  102. package/dist/lib/agent-generator.d.ts.map +1 -0
  103. package/dist/lib/agent-generator.js +331 -0
  104. package/dist/lib/agent-generator.js.map +1 -0
  105. package/dist/lib/memory-db.d.ts +102 -0
  106. package/dist/lib/memory-db.d.ts.map +1 -0
  107. package/dist/lib/memory-db.js +313 -0
  108. package/dist/lib/memory-db.js.map +1 -0
  109. package/dist/lib/memory-indexer.d.ts +47 -0
  110. package/dist/lib/memory-indexer.d.ts.map +1 -0
  111. package/dist/lib/memory-indexer.js +215 -0
  112. package/dist/lib/memory-indexer.js.map +1 -0
  113. package/dist/lib/memory-search.d.ts +41 -0
  114. package/dist/lib/memory-search.d.ts.map +1 -0
  115. package/dist/lib/memory-search.js +246 -0
  116. package/dist/lib/memory-search.js.map +1 -0
  117. package/dist/lib/openclaw-registry.d.ts +48 -0
  118. package/dist/lib/openclaw-registry.d.ts.map +1 -0
  119. package/dist/lib/openclaw-registry.js +181 -0
  120. package/dist/lib/openclaw-registry.js.map +1 -0
  121. package/dist/lib/openclaw-sdk.d.ts +107 -0
  122. package/dist/lib/openclaw-sdk.d.ts.map +1 -0
  123. package/dist/lib/openclaw-sdk.js +208 -0
  124. package/dist/lib/openclaw-sdk.js.map +1 -0
  125. package/dist/lib/peer-agent-generator.d.ts +44 -0
  126. package/dist/lib/peer-agent-generator.d.ts.map +1 -0
  127. package/dist/lib/peer-agent-generator.js +286 -0
  128. package/dist/lib/peer-agent-generator.js.map +1 -0
  129. package/dist/lib/service-dependencies.d.ts +44 -0
  130. package/dist/lib/service-dependencies.d.ts.map +1 -0
  131. package/dist/lib/service-dependencies.js +314 -0
  132. package/dist/lib/service-dependencies.js.map +1 -0
  133. package/dist/lib/service-detector.d.ts +61 -0
  134. package/dist/lib/service-detector.d.ts.map +1 -0
  135. package/dist/lib/service-detector.js +521 -0
  136. package/dist/lib/service-detector.js.map +1 -0
  137. package/dist/lib/service-gtm.d.ts +157 -0
  138. package/dist/lib/service-gtm.d.ts.map +1 -0
  139. package/dist/lib/service-gtm.js +786 -0
  140. package/dist/lib/service-gtm.js.map +1 -0
  141. package/dist/lib/service-mcp-base.d.ts +103 -0
  142. package/dist/lib/service-mcp-base.d.ts.map +1 -0
  143. package/dist/lib/service-mcp-base.js +263 -0
  144. package/dist/lib/service-mcp-base.js.map +1 -0
  145. package/dist/lib/service-utils.d.ts +103 -0
  146. package/dist/lib/service-utils.d.ts.map +1 -0
  147. package/dist/lib/service-utils.js +368 -0
  148. package/dist/lib/service-utils.js.map +1 -0
  149. package/dist/lib/skill-generator.d.ts +21 -0
  150. package/dist/lib/skill-generator.d.ts.map +1 -0
  151. package/dist/lib/skill-generator.js +253 -0
  152. package/dist/lib/skill-generator.js.map +1 -0
  153. package/dist/lib/stratus-client.d.ts +100 -0
  154. package/dist/lib/stratus-client.d.ts.map +1 -0
  155. package/dist/lib/stratus-client.js +255 -0
  156. package/dist/lib/stratus-client.js.map +1 -0
  157. package/dist/mcp/context-hub-mcp.js +135 -53
  158. package/dist/mcp/context-hub-mcp.js.map +1 -1
  159. package/dist/mcp/service-mcp-server.d.ts +12 -0
  160. package/dist/mcp/service-mcp-server.d.ts.map +1 -0
  161. package/dist/mcp/service-mcp-server.js +434 -0
  162. package/dist/mcp/service-mcp-server.js.map +1 -0
  163. package/dist/mcp/service-peer-mcp.d.ts +36 -0
  164. package/dist/mcp/service-peer-mcp.d.ts.map +1 -0
  165. package/dist/mcp/service-peer-mcp.js +220 -0
  166. package/dist/mcp/service-peer-mcp.js.map +1 -0
  167. package/dist/mcp/service-registry-mcp.d.ts +13 -0
  168. package/dist/mcp/service-registry-mcp.d.ts.map +1 -0
  169. package/dist/mcp/service-registry-mcp.js +330 -0
  170. package/dist/mcp/service-registry-mcp.js.map +1 -0
  171. package/dist/ui/banner.js +1 -1
  172. package/dist/ui/banner.js.map +1 -1
  173. package/dist/ui/context-hub-logs.d.ts +10 -0
  174. package/dist/ui/context-hub-logs.d.ts.map +1 -0
  175. package/dist/ui/context-hub-logs.js +175 -0
  176. package/dist/ui/context-hub-logs.js.map +1 -0
  177. package/dist/ui/service-dashboard.d.ts +11 -0
  178. package/dist/ui/service-dashboard.d.ts.map +1 -0
  179. package/dist/ui/service-dashboard.js +357 -0
  180. package/dist/ui/service-dashboard.js.map +1 -0
  181. package/dist/ui/services-manager.d.ts +11 -0
  182. package/dist/ui/services-manager.d.ts.map +1 -0
  183. package/dist/ui/services-manager.js +507 -0
  184. package/dist/ui/services-manager.js.map +1 -0
  185. package/dist/utils/auth-guard.d.ts.map +1 -1
  186. package/dist/utils/auth-guard.js +8 -9
  187. package/dist/utils/auth-guard.js.map +1 -1
  188. package/dist/utils/claude-md-generator.d.ts +10 -0
  189. package/dist/utils/claude-md-generator.d.ts.map +1 -0
  190. package/dist/utils/claude-md-generator.js +215 -0
  191. package/dist/utils/claude-md-generator.js.map +1 -0
  192. package/dist/utils/ensure-context-hub.d.ts +20 -0
  193. package/dist/utils/ensure-context-hub.d.ts.map +1 -0
  194. package/dist/utils/ensure-context-hub.js +65 -0
  195. package/dist/utils/ensure-context-hub.js.map +1 -0
  196. package/dist/utils/ensure-project.d.ts.map +1 -1
  197. package/dist/utils/ensure-project.js +3 -4
  198. package/dist/utils/ensure-project.js.map +1 -1
  199. package/dist/utils/jfl-config.d.ts +19 -0
  200. package/dist/utils/jfl-config.d.ts.map +1 -0
  201. package/dist/utils/jfl-config.js +112 -0
  202. package/dist/utils/jfl-config.js.map +1 -0
  203. package/dist/utils/jfl-migration.d.ts +29 -0
  204. package/dist/utils/jfl-migration.d.ts.map +1 -0
  205. package/dist/utils/jfl-migration.js +142 -0
  206. package/dist/utils/jfl-migration.js.map +1 -0
  207. package/dist/utils/jfl-paths.d.ts +55 -0
  208. package/dist/utils/jfl-paths.d.ts.map +1 -0
  209. package/dist/utils/jfl-paths.js +120 -0
  210. package/dist/utils/jfl-paths.js.map +1 -0
  211. package/dist/utils/settings-validator.d.ts +73 -0
  212. package/dist/utils/settings-validator.d.ts.map +1 -0
  213. package/dist/utils/settings-validator.js +222 -0
  214. package/dist/utils/settings-validator.js.map +1 -0
  215. package/package.json +19 -3
  216. package/scripts/commit-gtm.sh +56 -0
  217. package/scripts/commit-product.sh +68 -0
  218. package/scripts/context-query.sh +45 -0
  219. package/scripts/session/auto-commit.sh +297 -0
  220. package/scripts/session/jfl-doctor.sh +707 -0
  221. package/scripts/session/session-cleanup.sh +268 -0
  222. package/scripts/session/session-end.sh +198 -0
  223. package/scripts/session/session-init.sh +350 -0
  224. package/scripts/session/session-init.sh.backup +292 -0
  225. package/scripts/session/session-sync.sh +167 -0
  226. package/scripts/session/test-context-preservation.sh +160 -0
  227. package/scripts/session/test-critical-infrastructure.sh +293 -0
  228. package/scripts/session/test-experience-level.sh +336 -0
  229. package/scripts/session/test-session-cleanup.sh +268 -0
  230. package/scripts/session/test-session-sync.sh +320 -0
  231. package/scripts/voice-start.sh +36 -8
  232. package/scripts/where-am-i.sh +78 -0
  233. package/template/.claude/service-settings.json +32 -0
  234. package/template/.claude/settings.json +14 -1
  235. package/template/.claude/skills/end/SKILL.md +1780 -0
  236. package/template/.jfl/config.json +2 -1
  237. package/template/CLAUDE.md +1039 -134
  238. package/template/CLAUDE.md.bak +1187 -0
  239. package/template/scripts/commit-gtm.sh +56 -0
  240. package/template/scripts/commit-product.sh +68 -0
  241. package/template/scripts/migrate-to-branch-sessions.sh +201 -0
  242. package/template/scripts/session/auto-commit.sh +58 -6
  243. package/template/scripts/session/jfl-doctor.sh +137 -17
  244. package/template/scripts/session/session-cleanup.sh +268 -0
  245. package/template/scripts/session/session-end.sh +4 -0
  246. package/template/scripts/session/session-init.sh +253 -66
  247. package/template/scripts/session/test-critical-infrastructure.sh +293 -0
  248. package/template/scripts/session/test-experience-level.sh +336 -0
  249. package/template/scripts/session/test-session-cleanup.sh +268 -0
  250. package/template/scripts/session/test-session-sync.sh +320 -0
  251. package/template/scripts/where-am-i.sh +78 -0
  252. package/template/templates/service-agent/.claude/settings.json +32 -0
  253. package/template/templates/service-agent/CLAUDE.md +334 -0
  254. package/template/templates/service-agent/knowledge/ARCHITECTURE.md +115 -0
  255. package/template/templates/service-agent/knowledge/DEPLOYMENT.md +199 -0
  256. package/template/templates/service-agent/knowledge/RUNBOOK.md +412 -0
  257. package/template/templates/service-agent/knowledge/SERVICE_SPEC.md +77 -0
  258. package/dist/commands/session-mgmt.d.ts +0 -33
  259. package/dist/commands/session-mgmt.d.ts.map +0 -1
  260. package/dist/commands/session-mgmt.js +0 -404
  261. package/dist/commands/session-mgmt.js.map +0 -1
  262. package/template/scripts/session/auto-merge.sh +0 -325
package/README.md CHANGED
@@ -1,17 +1,74 @@
1
1
  # JFL - Just Fucking Launch
2
2
 
3
- Your team's context layer for shipping products. Any AI. Any task.
3
+ **The context layer for AI-native teams.**
4
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.
5
+ JFL provides persistent context for AI workflows. Agents can read what happened in previous sessions, understand decisions that were made, and access project knowledge—eliminating the cold-start problem where each AI interaction begins from zero.
6
+
7
+ Context lives in git as structured files (markdown, JSONL). Any AI tool can integrate via MCP.
8
+
9
+ **Quick Links:** [GitHub](https://github.com/402goose/jfl-cli) · [npm](https://www.npmjs.com/package/jfl)
10
+
11
+ ---
12
+
13
+ ## What Problem Does This Solve?
14
+
15
+ AI agents are stateless by default. Each new session starts from scratch:
16
+ - Previous decisions aren't remembered
17
+ - Work from other sessions isn't visible
18
+ - Context has to be re-explained every time
19
+
20
+ For multi-session projects or team collaboration with AI, this creates coordination overhead. JFL provides a shared context layer that accumulates over time and is accessible to any AI tool.
21
+
22
+ ---
23
+
24
+ ## Where JFL Fits
25
+
26
+ JFL is a coordination and context layer for AI workflows.
27
+
28
+ **What it provides:**
29
+ - Persistent memory across sessions (journal entries, decisions, code context)
30
+ - Shared context that any AI can read and contribute to
31
+ - Git-native storage (markdown, JSONL) that survives model changes
32
+
33
+ **What it works with:**
34
+ - AI coding tools (Claude Code, Cursor)
35
+ - Agent frameworks (CrewAI, AutoGPT)
36
+ - Custom AI workflows
37
+
38
+ **Architecture:**
39
+ JFL runs as a local daemon (Context Hub on port 4242) and integrates via MCP. Your project's context lives in `.jfl/` as structured files. Any AI tool with MCP support can read and update this context.
40
+
41
+ **Use cases:**
42
+ - Solo developers building with AI (never lose context between sessions)
43
+ - Teams coordinating work with AI agents (shared memory across people and agents)
44
+ - Multi-session projects (context accumulates, agents get smarter over time)
45
+
46
+ ---
6
47
 
7
48
  ## What JFL Does
8
49
 
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
50
+ JFL provides three core systems:
51
+
52
+ **Context Hub** A local daemon (port 4242) that aggregates journal entries, knowledge docs, and code headers. Any AI can query it via MCP to understand what happened across sessions, what decisions were made, and what code does.
53
+
54
+ **Synopsis** Generates work summaries by rolling up journal entries, git commits, and file headers. Answers questions like "what happened this week?" or "what did Alex work on?" with structured reports and time breakdowns.
55
+
56
+ **Session Management** — Automatic session isolation for parallel work. Single sessions work directly on your branch for simplicity. Multiple concurrent sessions use isolated worktrees to prevent conflicts. Auto-commit saves work every 2 minutes, and sessions auto-merge when finished.
57
+
58
+ ---
59
+
60
+ ## How Teams Use It
61
+
62
+ **Solo developers:**
63
+ Build with AI tools across multiple sessions without re-explaining context. Your project knowledge accumulates—agents get smarter over time, not dumber.
64
+
65
+ **Teams with AI agents:**
66
+ Multiple people and AI agents can work in parallel. Everyone reads from and writes to the same context layer. No meetings to sync up, no handoff docs that get stale.
67
+
68
+ **Works with your existing tools:**
69
+ JFL integrates with Claude Code, Cursor, Clawdbot, CrewAI, and any tool that supports MCP. Switch models or tools tomorrow—your context survives because it's git-native.
70
+
71
+ ---
15
72
 
16
73
  ## Installation
17
74
 
@@ -19,166 +76,319 @@ JFL is a CLI toolkit that powers go-to-market campaigns from zero to launch. It
19
76
  npm install -g jfl
20
77
  ```
21
78
 
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
79
+ **Requirements:** Node ≥18
80
+
81
+ JFL automatically installs dependencies including Context Hub MCP and x402 payment tools.
25
82
 
26
- ## Quick Start
83
+ ---
84
+
85
+ ## Quick Start (TL;DR)
27
86
 
28
87
  ```bash
29
- # Create a new GTM workspace
30
- jfl init my-project-gtm
88
+ # Initialize a GTM workspace
89
+ jfl init my-product-gtm
31
90
 
32
91
  # Check status
33
- cd my-project-gtm
92
+ cd my-product-gtm
34
93
  jfl status
35
94
 
36
- # View launch dashboard
95
+ # View campaign dashboard
37
96
  jfl hud
38
97
 
39
- # Or just type. It will walk you through it
98
+ # See what happened recently
99
+ jfl synopsis 24
100
+
101
+ # Start interactive session (auto-updates on first run)
40
102
  jfl
41
103
  ```
42
104
 
43
- ## Architecture
105
+ ---
44
106
 
45
- JFL creates GTM workspaces that are **separate from your product code**:
107
+ ## Core Commands
108
+
109
+ | Command | Description |
110
+ |---------|-------------|
111
+ | `jfl` | Interactive session (auto-updates GTM template + npm package) |
112
+ | `jfl init [name]` | Initialize new GTM workspace |
113
+ | `jfl status` | Show project status and auth |
114
+ | `jfl hud` | Campaign dashboard (ship date, phases, pipeline) |
115
+ | `jfl synopsis [hours] [author]` | Work summary (journal + commits + code) |
116
+ | `jfl update` | Pull latest skills and templates |
117
+ | `jfl context-hub [action]` | Manage Context Hub daemon (start/stop/status) |
118
+ | `jfl session [action]` | Session management (create/list/end) |
119
+ | `jfl repair` | Fix .jfl/config.json if corrupted |
120
+
121
+ ### Platform Commands
122
+
123
+ | Command | Description |
124
+ |---------|-------------|
125
+ | `jfl login` | Authenticate to JFL platform |
126
+ | `jfl login --x402` | Use x402 Day Pass ($5/day crypto) |
127
+ | `jfl wallet` | Show wallet and day pass status |
128
+ | `jfl deploy` | Deploy to JFL platform |
129
+ | `jfl agents [action]` | Manage parallel agents (list/create/start/stop) |
130
+ | `jfl feedback` | Rate your session |
131
+
132
+ ---
133
+
134
+ ## How It Works
135
+
136
+ **The system lives in git. Everything is files.**
137
+
138
+ No proprietary database. No lock-in. Your company's knowledge graph is version-controlled and portable.
46
139
 
47
140
  ```
48
141
  my-project-gtm/ ← GTM workspace (strategy, content, brand)
142
+ ├── .jfl/
143
+ │ ├── config.json ← Project settings
144
+ │ ├── journal/ ← Session journals (JSONL)
145
+ │ └── context-hub.pid ← Context Hub daemon
49
146
  ├── 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)
147
+ ├── knowledge/ ← Strategy docs (VISION, ROADMAP, etc.)
148
+ ├── content/ ← Generated marketing content
149
+ ├── suggestions/ ← Contributor workspaces
150
+ ├── .claude/skills/ ← JFL skills
54
151
  └── CLAUDE.md ← AI instructions
55
152
 
56
- your-product-repo/ ← SEPARATE REPO (all code lives here)
153
+ your-product-repo/ ← SEPARATE REPO (all code)
57
154
  ├── src/
58
155
  ├── cli/
59
156
  └── ...
60
157
  ```
61
158
 
62
- **Why?**
159
+ **When you start a session:**
160
+ 1. The agent loads your full context (via Context Hub)
161
+ 2. You work (code, content, strategy, whatever)
162
+ 3. Decisions and learnings are captured automatically
163
+ 4. Session ends, context persists
164
+ 5. Next session picks up exactly where you left off
165
+
166
+ **Why git-native?**
167
+
168
+ All context is stored as markdown and JSONL in your git repository. This means:
169
+ - Version controlled (see how context evolved)
170
+ - Portable (no vendor lock-in)
171
+ - Model-agnostic (switch AI tools without losing context)
172
+ - Collaborative (merge and branch like code)
173
+
174
+ **It compounds.** The more you use it, the more it knows. Six months in, the agent understands your business better than most employees would.
175
+
176
+ **Why GTM workspace is separate from product code:**
63
177
  - 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
178
+ - Product code doesn't get polluted with GTM docs
179
+ - Multiple GTMs can reference the same product
180
+ - `jfl update` updates GTM toolkit without touching product code
181
+ - Team can work on product independently
68
182
 
69
- ## Commands
183
+ ---
70
184
 
71
- ### Core Commands
185
+ ## Clawdbot Integration
186
+
187
+ JFL ships with a Clawdbot plugin for Telegram-based agents.
72
188
 
73
189
  ```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
190
+ # Install plugin into Clawdbot
191
+ jfl clawdbot setup
192
+
193
+ # Check installation status
194
+ jfl clawdbot status
81
195
  ```
82
196
 
83
- ### Platform Commands
197
+ After setup, restart your gateway (`clawdbot gateway`). The plugin is dormant until you activate it:
84
198
 
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
- ```
199
+ 1. Send `/jfl` in Telegram
200
+ 2. Pick a project (or auto-picks if you have one)
201
+ 3. Plugin activates context injection, decision capture, auto-commit
98
202
 
99
- ### Skill Shortcuts
203
+ **Telegram Commands:**
100
204
 
101
- These skills run in your Claude Code session:
205
+ | Command | What it does |
206
+ |---------|-------------|
207
+ | `/jfl` | Activate JFL / show status |
208
+ | `/context <query>` | Search project knowledge |
209
+ | `/journal <type> <title> \| <summary>` | Write a journal entry |
210
+ | `/hud` | Project dashboard |
211
+
212
+ **What the plugin does automatically:**
213
+ - Injects relevant project context before every AI response
214
+ - Captures decisions to the journal after responses
215
+ - Auto-commits work periodically
216
+ - Manages session branches for isolated work
217
+
218
+ **Claude also gets tools** (`jfl_context`, `jfl_journal`) it can use proactively without you asking.
219
+
220
+ ---
221
+
222
+ ## OpenClaw Protocol
223
+
224
+ OpenClaw is JFL's runtime-agnostic agent protocol. Any AI agent can become a JFL team member:
102
225
 
103
226
  ```bash
104
- jfl brand [subcommand] # Run /brand-architect skill
105
- jfl content <type> [topic] # Run /content skill (thread, post, article, one-pager)
227
+ # Register agent with a GTM workspace
228
+ jfl openclaw register -g /path/to/gtm -a my-agent
229
+
230
+ # Start session (creates branch, auto-commit, Context Hub)
231
+ jfl openclaw session-start -a my-agent --json
232
+
233
+ # Search project context
234
+ jfl openclaw context -q "pricing decisions" --json
235
+
236
+ # Write journal entry
237
+ jfl openclaw journal --type decision --title "Chose OAuth" --summary "Better for multi-tenant"
238
+
239
+ # End session (merge, cleanup)
240
+ jfl openclaw session-end --json
106
241
  ```
107
242
 
108
- ## Authentication
243
+ All commands support `--json` for programmatic use. See `jfl openclaw --help` for the full command list.
244
+
245
+ ---
109
246
 
110
- JFL supports two authentication methods:
247
+ ## Context Hub
248
+
249
+ Context Hub is a local daemon (port 4242) that provides unified context to any AI:
111
250
 
112
- **GitHub OAuth**
113
251
  ```bash
114
- jfl login
252
+ # Start Context Hub
253
+ jfl context-hub start
254
+
255
+ # Check status
256
+ jfl context-hub status
257
+
258
+ # Stop daemon
259
+ jfl context-hub stop
260
+ ```
261
+
262
+ **What it aggregates:**
263
+ - **Journal entries** — What happened across sessions (`.jfl/journal/*.jsonl`)
264
+ - **Knowledge docs** — Strategy, vision, roadmap (`knowledge/*.md`)
265
+ - **Code headers** — `@purpose`, `@spec`, `@decision` tags from files
266
+
267
+ **MCP Integration:**
268
+ Context Hub exposes MCP tools that Claude Code and other AIs can use:
269
+ - `context_get` — Get unified context (journal + knowledge + code)
270
+ - `context_search` — Semantic search across all sources
271
+ - `context_status` — Check daemon status
272
+ - `context_sessions` — See activity from other sessions
273
+
274
+ Add to your `.mcp.json`:
275
+ ```json
276
+ {
277
+ "jfl-context": {
278
+ "command": "jfl-context-hub-mcp"
279
+ }
280
+ }
115
281
  ```
116
282
 
117
- **x402 Crypto Wallet** (with httpcat-cli bundled)
283
+ ---
284
+
285
+ ## Synopsis - Work Summaries
286
+
287
+ Synopsis aggregates journal entries, git commits, and code file headers to answer "what happened?"
288
+
118
289
  ```bash
119
- jfl login --x402
290
+ # Last 24 hours, all authors
291
+ jfl synopsis 24
292
+
293
+ # Last 8 hours
294
+ jfl synopsis 8
295
+
296
+ # What did Alex work on in last 48 hours?
297
+ jfl synopsis 48 alex
298
+
299
+ # Filter by git author name
300
+ jfl synopsis 24 --author "Andrew"
120
301
  ```
121
302
 
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
303
+ **Output includes:**
304
+ - Summary of features, fixes, decisions
305
+ - Time audit breakdown (infra vs features vs docs)
306
+ - Per-team-member contributions
307
+ - Health checks (too much infra? not enough outreach?)
308
+ - Next steps from journal entries
309
+ - Incomplete/stubbed items
310
+
311
+ ---
312
+
313
+ ## Session Management
314
+
315
+ Work in isolated git worktrees with automatic commit/merge:
126
316
 
127
- View your auth status:
128
317
  ```bash
129
- jfl wallet
318
+ # Create new session (creates worktree + branch)
319
+ jfl session create
320
+
321
+ # List active sessions
322
+ jfl session list
323
+
324
+ # End session (merges to main, removes worktree)
325
+ jfl session end [session-name]
326
+
327
+ # Auto-commit running in background (every 2 min)
328
+ ./scripts/session/auto-commit.sh start
130
329
  ```
131
330
 
132
- ## Pricing
331
+ **Each session:**
332
+ - Isolated git worktree (parallel work without conflicts)
333
+ - Auto-commits knowledge/, content/, suggestions/ every 2 minutes
334
+ - Auto-merges to main on session end
335
+ - Removes worktree and branch when merged
336
+ - Writes journal entries (enforced by hooks)
337
+
338
+ **SessionStart hook:**
339
+ - CD to worktree
340
+ - Sync repos (jfl-gtm + product submodule)
341
+ - Run doctor check (detect issues)
342
+ - Start Context Hub
343
+ - Show HUD dashboard
133
344
 
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)
345
+ **Stop hook:**
346
+ - Auto-commit uncommitted changes
347
+ - Merge to main (with conflict handling)
348
+ - Cleanup worktree and branch
349
+ - Validate journal entry exists
139
350
 
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)
351
+ ---
146
352
 
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
353
+ ## Authentication
354
+
355
+ **GitHub OAuth:**
356
+ ```bash
357
+ jfl login
358
+ ```
359
+
360
+ **x402 Crypto Wallet ($5/day micropayments):**
361
+ ```bash
362
+ jfl login --x402
363
+ ```
152
364
 
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
365
+ Enables:
366
+ - Gasless USDC transfers (no ETH needed)
367
+ - $5/day Day Pass payments
368
+ - httpcat-cli bundled and configured
159
369
 
160
- ## Project Setup Types
370
+ View auth status:
371
+ ```bash
372
+ jfl status
373
+ jfl wallet
374
+ ```
161
375
 
162
- When initializing a project, JFL asks about your setup:
376
+ ---
163
377
 
164
- **Building a product**
165
- - You're writing code
166
- - Product repo linked as submodule at `product/`
167
- - Code changes go to product repo
378
+ ## Pricing
168
379
 
169
- **GTM only**
170
- - Team handles code
171
- - You focus on content, brand, outreach
172
- - No code changes, just marketing
380
+ | Plan | Price | What You Get |
381
+ |------|-------|--------------|
382
+ | **Trial** | $0 | Full toolkit, foundation + brand setup. Use with Claude Code. |
383
+ | **Day Pass** | $5/day | Pay only days you use. AI included. Chat in Telegram/Slack/Discord. Pay with USDC (gasless). |
384
+ | **Solo** | $49/mo | Just you. AI included. Best if you use it most days. |
385
+ | **Team** | $199/mo | Up to 5 seats (+$25/seat after). AI for everyone. Parallel agents. Team analytics. |
173
386
 
174
- **Contributor**
175
- - Working on specific tasks
176
- - Changes go to `suggestions/{name}.md`
177
- - Owner reviews and merges
387
+ ---
178
388
 
179
- ## Skills Available
389
+ ## Skills Library
180
390
 
181
- JFL includes powerful skills for Claude Code:
391
+ JFL includes skills for Claude Code:
182
392
 
183
393
  | Skill | Description |
184
394
  |-------|-------------|
@@ -186,16 +396,18 @@ JFL includes powerful skills for Claude Code:
186
396
  | `/brand-architect` | Generate brand identity (marks, colors, typography) |
187
397
  | `/web-architect` | Implement assets (SVG, favicon, OG images) |
188
398
  | `/content` | Create content (threads, posts, articles, one-pagers) |
189
- | `/x-algorithm` | Optimize tweets for X For You feed using the open-sourced algorithm |
399
+ | `/x-algorithm` | Optimize tweets for X For You feed |
190
400
  | `/video` | Founder video scripts (viral short-form) |
191
401
  | `/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 |
402
+ | `/agent-browser` | Headless browser automation |
403
+ | `/search` | Semantic search across GTM knowledge base |
194
404
  | `/spec` | Multi-agent adversarial spec refinement |
195
405
  | `/react-best-practices` | React/Next.js performance optimization |
196
406
  | `/remotion-best-practices` | Remotion video creation in React |
197
407
 
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
408
+ Run in Claude Code after `jfl init`.
409
+
410
+ ---
199
411
 
200
412
  ## Knowledge Layer
201
413
 
@@ -210,52 +422,104 @@ knowledge/
210
422
  ├── BRAND_BRIEF.md # Brand inputs
211
423
  ├── BRAND_DECISIONS.md # Finalized brand choices
212
424
  ├── VOICE_AND_TONE.md # How the brand speaks
213
- ├── TASKS.md # Master task list
214
- └── CRM.md # Contact database
425
+ └── TASKS.md # Master task list
215
426
  ```
216
427
 
217
- These docs are the source of truth that AI reads to generate content, make decisions, and maintain consistency.
428
+ These docs are the source of truth. AIs read them to generate content, make decisions, and maintain consistency.
429
+
430
+ ---
218
431
 
219
- ## Updating JFL
432
+ ## Auto-Update
220
433
 
221
- JFL updates independently of your project:
434
+ JFL automatically checks for updates on session start (24-hour cache):
222
435
 
436
+ - **Minor/patch versions** — Auto-updates silently
437
+ - **Major versions** — Prompts for approval
438
+
439
+ **Skip auto-update:**
440
+ ```bash
441
+ jfl --no-update
442
+ ```
443
+
444
+ **Manual update:**
223
445
  ```bash
224
446
  jfl update # Pull latest skills and CLAUDE.md
225
447
  jfl update --dry # Preview changes first
226
448
  ```
227
449
 
228
- This updates:
229
- - `skills/` - Latest skill implementations
230
- - `CLAUDE.md` - Latest AI instructions
231
- - Templates for new docs
450
+ **What gets updated:**
451
+ - `.claude/skills/` Latest skill implementations
452
+ - `CLAUDE.md` Latest AI instructions
453
+ - `scripts/` Session management scripts
454
+ - `templates/` — Doc templates
455
+
456
+ **What's preserved:**
457
+ - `knowledge/` — Your strategy docs
458
+ - `content/` — Your generated content
459
+ - `product/` — Your product code
460
+ - `.jfl/config.json` — Project settings
461
+
462
+ ---
463
+
464
+ ## Journal Protocol
465
+
466
+ Every session MUST write journal entries. The Stop hook blocks if no entry exists.
467
+
468
+ **Entry format:**
469
+ ```json
470
+ {
471
+ "v": 1,
472
+ "ts": "2026-01-28T10:00:00.000Z",
473
+ "session": "session-goose-20260128-1014-00cec4",
474
+ "type": "feature|fix|decision|milestone|discovery",
475
+ "status": "complete|incomplete|blocked",
476
+ "title": "Short title",
477
+ "summary": "2-3 sentence summary",
478
+ "detail": "Full description with context",
479
+ "files": ["file1.ts", "file2.ts"],
480
+ "incomplete": ["what's not done"],
481
+ "next": "what should happen next"
482
+ }
483
+ ```
484
+
485
+ **Write entries when:**
486
+ - Feature completed
487
+ - Decision made
488
+ - Bug fixed
489
+ - Milestone reached
490
+ - Session ending
232
491
 
233
- Your project content (knowledge/, content/, product/) is never touched.
492
+ Journal entries become searchable via Context Hub and Synopsis.
234
493
 
235
- ## Session Management
494
+ ---
236
495
 
237
- **Default:** Single session, direct in repo.
496
+ ## File Headers (Required for Code)
238
497
 
239
- **Advanced:** For parallel work across multiple sessions, use worktrees:
498
+ Every `.ts`, `.tsx`, `.js`, `.jsx` file MUST have a header with `@purpose`:
240
499
 
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
500
+ ```typescript
501
+ /**
502
+ * Component/Module Name
503
+ *
504
+ * Brief description of what this does.
505
+ *
506
+ * @purpose One-line description of file's purpose
507
+ * @spec Optional: link to spec (e.g., PLATFORM_SPEC.md#sessions)
508
+ * @decision Optional: decision slug (e.g., journal/2026-01.md#per-session)
509
+ */
245
510
  ```
246
511
 
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
512
+ Enables:
513
+ - Synopsis to extract context from files
514
+ - Codebase understanding without reading full files
515
+ - Decision traceability
252
516
 
253
- ## Development
517
+ ---
254
518
 
255
- Contributing to JFL itself:
519
+ ## Contributing to JFL
256
520
 
257
521
  ```bash
258
- # Clone through GTM structure
522
+ # Clone via GTM structure
259
523
  jfl init my-jfl-gtm
260
524
  # During setup, add: https://github.com/402goose/just-fucking-launch.git
261
525
 
@@ -263,8 +527,8 @@ jfl init my-jfl-gtm
263
527
  cd my-jfl-gtm/product
264
528
  ./scripts/dev-setup.sh
265
529
 
266
- # Work in the submodule
267
- cd product/cli
530
+ # Work in the CLI submodule
531
+ cd cli
268
532
  npm install
269
533
  npm run build
270
534
 
@@ -272,42 +536,76 @@ npm run build
272
536
  npm link
273
537
  ```
274
538
 
539
+ ---
540
+
275
541
  ## Environment Variables
276
542
 
277
543
  ```bash
278
544
  CRM_SHEET_ID=your-sheet-id # Google Sheets CRM integration
279
545
  ```
280
546
 
547
+ ---
548
+
281
549
  ## Files You'll Work With
282
550
 
283
551
  ```
284
- .jfl/config.json # Project configuration
552
+ .jfl/
553
+ ├── config.json # Project configuration
554
+ ├── journal/ # Session journals (JSONL)
555
+ ├── context-hub.pid # Context Hub daemon PID
556
+ └── logs/ # Session logs
557
+
285
558
  knowledge/ # Strategy docs (you fill these)
286
559
  content/ # Generated content
287
560
  suggestions/{name}.md # Per-person working space
288
561
  previews/ # Generated assets
289
562
  ```
290
563
 
291
- ## Help
564
+ ---
565
+
566
+ ## Help & Support
292
567
 
293
568
  ```bash
294
569
  jfl help # Show all commands
295
570
  jfl --version # Show version
296
571
  ```
297
572
 
298
- For issues or feedback:
299
- - GitHub: https://github.com/402goose/just-fucking-launch
300
- - Docs: https://jfl.run
573
+ **Issues & Feedback:**
574
+ - GitHub: https://github.com/402goose/jfl-cli/issues
575
+ - X: [@taggaoyl](https://x.com/taggaoyl)
576
+
577
+ ---
578
+
579
+ ## What's New
580
+
581
+ **0.2.0**
582
+ - OpenClaw protocol — runtime-agnostic agent integration (`jfl openclaw`)
583
+ - Clawdbot plugin — single install, dormant until /jfl, full lifecycle hooks
584
+ - `jfl clawdbot setup` — one command to install plugin
585
+ - Agent tools (jfl_context, jfl_journal) for proactive AI behavior
586
+ - GTM detection via config.json type field (no more false positives on service repos)
587
+
588
+ **0.1.0**
589
+ - Auto-update on session start (checks npm registry, 24h cache)
590
+ - Synopsis command (`jfl synopsis [hours] [author]`)
591
+ - Improved doctor checks with categorized output
592
+ - Fixed auto-merge failure that caused branch pileup
593
+ - Context Hub productization improvements
594
+
595
+ ---
301
596
 
302
597
  ## License
303
598
 
304
599
  MIT License - see LICENSE file for details.
305
600
 
601
+ ---
602
+
306
603
  ## Credits
307
604
 
308
605
  Built by [@tagga](https://x.com/taggaoyl) (Alec Taggart)
309
606
 
310
607
  Powered by:
311
- - Claude (Anthropic)
312
- - x402 (crypto micropayments)
608
+ - [Claude](https://claude.ai) (Anthropic)
609
+ - [x402](https://402.com) (crypto micropayments)
313
610
  - Commander.js, Inquirer, Chalk, and more
611
+