jfl 0.0.0 → 0.1.1

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 (188) hide show
  1. package/README.md +374 -146
  2. package/dist/commands/context-hub.d.ts +5 -0
  3. package/dist/commands/context-hub.d.ts.map +1 -1
  4. package/dist/commands/context-hub.js +394 -28
  5. package/dist/commands/context-hub.js.map +1 -1
  6. package/dist/commands/init.d.ts.map +1 -1
  7. package/dist/commands/init.js +278 -4
  8. package/dist/commands/init.js.map +1 -1
  9. package/dist/commands/login.d.ts.map +1 -1
  10. package/dist/commands/login.js +32 -33
  11. package/dist/commands/login.js.map +1 -1
  12. package/dist/commands/memory.d.ts +38 -0
  13. package/dist/commands/memory.d.ts.map +1 -0
  14. package/dist/commands/memory.js +229 -0
  15. package/dist/commands/memory.js.map +1 -0
  16. package/dist/commands/migrate-services.d.ts +8 -0
  17. package/dist/commands/migrate-services.d.ts.map +1 -0
  18. package/dist/commands/migrate-services.js +182 -0
  19. package/dist/commands/migrate-services.js.map +1 -0
  20. package/dist/commands/onboard.d.ts +24 -0
  21. package/dist/commands/onboard.d.ts.map +1 -0
  22. package/dist/commands/onboard.js +475 -0
  23. package/dist/commands/onboard.js.map +1 -0
  24. package/dist/commands/orchestrate.d.ts +14 -0
  25. package/dist/commands/orchestrate.d.ts.map +1 -0
  26. package/dist/commands/orchestrate.js +270 -0
  27. package/dist/commands/orchestrate.js.map +1 -0
  28. package/dist/commands/profile.d.ts +46 -0
  29. package/dist/commands/profile.d.ts.map +1 -0
  30. package/dist/commands/profile.js +498 -0
  31. package/dist/commands/profile.js.map +1 -0
  32. package/dist/commands/repair.d.ts.map +1 -1
  33. package/dist/commands/repair.js +37 -0
  34. package/dist/commands/repair.js.map +1 -1
  35. package/dist/commands/service-agent.d.ts +16 -0
  36. package/dist/commands/service-agent.d.ts.map +1 -0
  37. package/dist/commands/service-agent.js +375 -0
  38. package/dist/commands/service-agent.js.map +1 -0
  39. package/dist/commands/service-manager.d.ts +12 -0
  40. package/dist/commands/service-manager.d.ts.map +1 -0
  41. package/dist/commands/service-manager.js +967 -0
  42. package/dist/commands/service-manager.js.map +1 -0
  43. package/dist/commands/services-scan.d.ts +13 -0
  44. package/dist/commands/services-scan.d.ts.map +1 -0
  45. package/dist/commands/services-scan.js +251 -0
  46. package/dist/commands/services-scan.js.map +1 -0
  47. package/dist/commands/services.d.ts +13 -0
  48. package/dist/commands/services.d.ts.map +1 -0
  49. package/dist/commands/services.js +417 -0
  50. package/dist/commands/services.js.map +1 -0
  51. package/dist/commands/session.d.ts +5 -1
  52. package/dist/commands/session.d.ts.map +1 -1
  53. package/dist/commands/session.js +68 -586
  54. package/dist/commands/session.js.map +1 -1
  55. package/dist/commands/status.d.ts.map +1 -1
  56. package/dist/commands/status.js +17 -0
  57. package/dist/commands/status.js.map +1 -1
  58. package/dist/commands/update.d.ts +4 -2
  59. package/dist/commands/update.d.ts.map +1 -1
  60. package/dist/commands/update.js +207 -22
  61. package/dist/commands/update.js.map +1 -1
  62. package/dist/commands/voice.d.ts +0 -1
  63. package/dist/commands/voice.d.ts.map +1 -1
  64. package/dist/commands/voice.js +16 -15
  65. package/dist/commands/voice.js.map +1 -1
  66. package/dist/index.js +248 -89
  67. package/dist/index.js.map +1 -1
  68. package/dist/lib/agent-generator.d.ts +26 -0
  69. package/dist/lib/agent-generator.d.ts.map +1 -0
  70. package/dist/lib/agent-generator.js +238 -0
  71. package/dist/lib/agent-generator.js.map +1 -0
  72. package/dist/lib/memory-db.d.ts +102 -0
  73. package/dist/lib/memory-db.d.ts.map +1 -0
  74. package/dist/lib/memory-db.js +313 -0
  75. package/dist/lib/memory-db.js.map +1 -0
  76. package/dist/lib/memory-indexer.d.ts +47 -0
  77. package/dist/lib/memory-indexer.d.ts.map +1 -0
  78. package/dist/lib/memory-indexer.js +215 -0
  79. package/dist/lib/memory-indexer.js.map +1 -0
  80. package/dist/lib/memory-search.d.ts +41 -0
  81. package/dist/lib/memory-search.d.ts.map +1 -0
  82. package/dist/lib/memory-search.js +246 -0
  83. package/dist/lib/memory-search.js.map +1 -0
  84. package/dist/lib/service-dependencies.d.ts +44 -0
  85. package/dist/lib/service-dependencies.d.ts.map +1 -0
  86. package/dist/lib/service-dependencies.js +314 -0
  87. package/dist/lib/service-dependencies.js.map +1 -0
  88. package/dist/lib/service-detector.d.ts +61 -0
  89. package/dist/lib/service-detector.d.ts.map +1 -0
  90. package/dist/lib/service-detector.js +408 -0
  91. package/dist/lib/service-detector.js.map +1 -0
  92. package/dist/lib/service-mcp-base.d.ts +94 -0
  93. package/dist/lib/service-mcp-base.d.ts.map +1 -0
  94. package/dist/lib/service-mcp-base.js +244 -0
  95. package/dist/lib/service-mcp-base.js.map +1 -0
  96. package/dist/lib/service-utils.d.ts +103 -0
  97. package/dist/lib/service-utils.d.ts.map +1 -0
  98. package/dist/lib/service-utils.js +368 -0
  99. package/dist/lib/service-utils.js.map +1 -0
  100. package/dist/lib/skill-generator.d.ts +21 -0
  101. package/dist/lib/skill-generator.d.ts.map +1 -0
  102. package/dist/lib/skill-generator.js +253 -0
  103. package/dist/lib/skill-generator.js.map +1 -0
  104. package/dist/lib/stratus-client.d.ts +100 -0
  105. package/dist/lib/stratus-client.d.ts.map +1 -0
  106. package/dist/lib/stratus-client.js +255 -0
  107. package/dist/lib/stratus-client.js.map +1 -0
  108. package/dist/mcp/context-hub-mcp.js +135 -53
  109. package/dist/mcp/context-hub-mcp.js.map +1 -1
  110. package/dist/mcp/service-mcp-server.d.ts +12 -0
  111. package/dist/mcp/service-mcp-server.d.ts.map +1 -0
  112. package/dist/mcp/service-mcp-server.js +434 -0
  113. package/dist/mcp/service-mcp-server.js.map +1 -0
  114. package/dist/mcp/service-registry-mcp.d.ts +13 -0
  115. package/dist/mcp/service-registry-mcp.d.ts.map +1 -0
  116. package/dist/mcp/service-registry-mcp.js +330 -0
  117. package/dist/mcp/service-registry-mcp.js.map +1 -0
  118. package/dist/ui/banner.js +1 -1
  119. package/dist/ui/banner.js.map +1 -1
  120. package/dist/ui/context-hub-logs.d.ts +10 -0
  121. package/dist/ui/context-hub-logs.d.ts.map +1 -0
  122. package/dist/ui/context-hub-logs.js +175 -0
  123. package/dist/ui/context-hub-logs.js.map +1 -0
  124. package/dist/ui/service-dashboard.d.ts +11 -0
  125. package/dist/ui/service-dashboard.d.ts.map +1 -0
  126. package/dist/ui/service-dashboard.js +357 -0
  127. package/dist/ui/service-dashboard.js.map +1 -0
  128. package/dist/ui/services-manager.d.ts +11 -0
  129. package/dist/ui/services-manager.d.ts.map +1 -0
  130. package/dist/ui/services-manager.js +507 -0
  131. package/dist/ui/services-manager.js.map +1 -0
  132. package/dist/utils/auth-guard.d.ts.map +1 -1
  133. package/dist/utils/auth-guard.js +8 -9
  134. package/dist/utils/auth-guard.js.map +1 -1
  135. package/dist/utils/claude-md-generator.d.ts +10 -0
  136. package/dist/utils/claude-md-generator.d.ts.map +1 -0
  137. package/dist/utils/claude-md-generator.js +215 -0
  138. package/dist/utils/claude-md-generator.js.map +1 -0
  139. package/dist/utils/ensure-context-hub.d.ts +20 -0
  140. package/dist/utils/ensure-context-hub.d.ts.map +1 -0
  141. package/dist/utils/ensure-context-hub.js +65 -0
  142. package/dist/utils/ensure-context-hub.js.map +1 -0
  143. package/dist/utils/ensure-project.d.ts.map +1 -1
  144. package/dist/utils/ensure-project.js +3 -4
  145. package/dist/utils/ensure-project.js.map +1 -1
  146. package/dist/utils/jfl-config.d.ts +19 -0
  147. package/dist/utils/jfl-config.d.ts.map +1 -0
  148. package/dist/utils/jfl-config.js +112 -0
  149. package/dist/utils/jfl-config.js.map +1 -0
  150. package/dist/utils/jfl-migration.d.ts +29 -0
  151. package/dist/utils/jfl-migration.d.ts.map +1 -0
  152. package/dist/utils/jfl-migration.js +142 -0
  153. package/dist/utils/jfl-migration.js.map +1 -0
  154. package/dist/utils/jfl-paths.d.ts +55 -0
  155. package/dist/utils/jfl-paths.d.ts.map +1 -0
  156. package/dist/utils/jfl-paths.js +120 -0
  157. package/dist/utils/jfl-paths.js.map +1 -0
  158. package/dist/utils/settings-validator.d.ts +70 -0
  159. package/dist/utils/settings-validator.d.ts.map +1 -0
  160. package/dist/utils/settings-validator.js +198 -0
  161. package/dist/utils/settings-validator.js.map +1 -0
  162. package/package.json +18 -3
  163. package/scripts/commit-gtm.sh +56 -0
  164. package/scripts/commit-product.sh +68 -0
  165. package/scripts/context-query.sh +45 -0
  166. package/scripts/session/auto-commit.sh +297 -0
  167. package/scripts/session/jfl-doctor.sh +707 -0
  168. package/scripts/session/session-cleanup.sh +268 -0
  169. package/scripts/session/session-end.sh +198 -0
  170. package/scripts/session/session-init.sh +350 -0
  171. package/scripts/session/session-init.sh.backup +292 -0
  172. package/scripts/session/session-sync.sh +167 -0
  173. package/scripts/session/test-context-preservation.sh +160 -0
  174. package/scripts/session/test-critical-infrastructure.sh +293 -0
  175. package/scripts/session/test-experience-level.sh +336 -0
  176. package/scripts/session/test-session-cleanup.sh +268 -0
  177. package/scripts/session/test-session-sync.sh +320 -0
  178. package/scripts/voice-start.sh +36 -8
  179. package/scripts/where-am-i.sh +78 -0
  180. package/template/.claude/settings.json +4 -1
  181. package/template/.mcp.json +7 -1
  182. package/template/CLAUDE.md +138 -27
  183. package/template/scripts/session/auto-commit.sh +55 -4
  184. package/template/scripts/session/jfl-doctor.sh +192 -211
  185. package/template/scripts/session/session-cleanup.sh +180 -0
  186. package/template/scripts/session/session-end.sh +15 -24
  187. package/template/scripts/session/session-init.sh +79 -74
  188. 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,257 @@ 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
25
80
 
26
- ## Quick Start
81
+ JFL automatically installs dependencies including Context Hub MCP and x402 payment tools.
82
+
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
+ ---
106
+
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.**
44
137
 
45
- JFL creates GTM workspaces that are **separate from your product code**:
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
182
+
183
+ ---
68
184
 
69
- ## Commands
185
+ ## Context Hub
70
186
 
71
- ### Core Commands
187
+ Context Hub is a local daemon (port 4242) that provides unified context to any AI:
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
+ # Start Context Hub
191
+ jfl context-hub start
192
+
193
+ # Check status
194
+ jfl context-hub status
195
+
196
+ # Stop daemon
197
+ jfl context-hub stop
81
198
  ```
82
199
 
83
- ### Platform Commands
200
+ **What it aggregates:**
201
+ - **Journal entries** — What happened across sessions (`.jfl/journal/*.jsonl`)
202
+ - **Knowledge docs** — Strategy, vision, roadmap (`knowledge/*.md`)
203
+ - **Code headers** — `@purpose`, `@spec`, `@decision` tags from files
204
+
205
+ **MCP Integration:**
206
+ Context Hub exposes MCP tools that Claude Code and other AIs can use:
207
+ - `context_get` — Get unified context (journal + knowledge + code)
208
+ - `context_search` — Semantic search across all sources
209
+ - `context_status` — Check daemon status
210
+ - `context_sessions` — See activity from other sessions
211
+
212
+ Add to your `.mcp.json`:
213
+ ```json
214
+ {
215
+ "jfl-context": {
216
+ "command": "jfl-context-hub-mcp"
217
+ }
218
+ }
219
+ ```
220
+
221
+ ---
222
+
223
+ ## Synopsis - Work Summaries
224
+
225
+ Synopsis aggregates journal entries, git commits, and code file headers to answer "what happened?"
84
226
 
85
227
  ```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
228
+ # Last 24 hours, all authors
229
+ jfl synopsis 24
230
+
231
+ # Last 8 hours
232
+ jfl synopsis 8
233
+
234
+ # What did Alex work on in last 48 hours?
235
+ jfl synopsis 48 alex
236
+
237
+ # Filter by git author name
238
+ jfl synopsis 24 --author "Andrew"
97
239
  ```
98
240
 
99
- ### Skill Shortcuts
241
+ **Output includes:**
242
+ - Summary of features, fixes, decisions
243
+ - Time audit breakdown (infra vs features vs docs)
244
+ - Per-team-member contributions
245
+ - Health checks (too much infra? not enough outreach?)
246
+ - Next steps from journal entries
247
+ - Incomplete/stubbed items
248
+
249
+ ---
100
250
 
101
- These skills run in your Claude Code session:
251
+ ## Session Management
252
+
253
+ Work in isolated git worktrees with automatic commit/merge:
102
254
 
103
255
  ```bash
104
- jfl brand [subcommand] # Run /brand-architect skill
105
- jfl content <type> [topic] # Run /content skill (thread, post, article, one-pager)
256
+ # Create new session (creates worktree + branch)
257
+ jfl session create
258
+
259
+ # List active sessions
260
+ jfl session list
261
+
262
+ # End session (merges to main, removes worktree)
263
+ jfl session end [session-name]
264
+
265
+ # Auto-commit running in background (every 2 min)
266
+ ./scripts/session/auto-commit.sh start
106
267
  ```
107
268
 
108
- ## Authentication
269
+ **Each session:**
270
+ - Isolated git worktree (parallel work without conflicts)
271
+ - Auto-commits knowledge/, content/, suggestions/ every 2 minutes
272
+ - Auto-merges to main on session end
273
+ - Removes worktree and branch when merged
274
+ - Writes journal entries (enforced by hooks)
109
275
 
110
- JFL supports two authentication methods:
276
+ **SessionStart hook:**
277
+ - CD to worktree
278
+ - Sync repos (jfl-gtm + product submodule)
279
+ - Run doctor check (detect issues)
280
+ - Start Context Hub
281
+ - Show HUD dashboard
111
282
 
112
- **GitHub OAuth**
283
+ **Stop hook:**
284
+ - Auto-commit uncommitted changes
285
+ - Merge to main (with conflict handling)
286
+ - Cleanup worktree and branch
287
+ - Validate journal entry exists
288
+
289
+ ---
290
+
291
+ ## Authentication
292
+
293
+ **GitHub OAuth:**
113
294
  ```bash
114
295
  jfl login
115
296
  ```
116
297
 
117
- **x402 Crypto Wallet** (with httpcat-cli bundled)
298
+ **x402 Crypto Wallet ($5/day micropayments):**
118
299
  ```bash
119
300
  jfl login --x402
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
+ Enables:
304
+ - Gasless USDC transfers (no ETH needed)
305
+ - $5/day Day Pass payments
306
+ - httpcat-cli bundled and configured
126
307
 
127
- View your auth status:
308
+ View auth status:
128
309
  ```bash
310
+ jfl status
129
311
  jfl wallet
130
312
  ```
131
313
 
132
- ## Pricing
133
-
134
- **Trial - $0**
135
- - Full JFL toolkit
136
- - Foundation + brand setup
137
- - Use Claude Code or Codex CLI - download Claude Pro or Max at claude.ai
138
- - Ends when you add teammates (context is more fun when you shape it together)
139
-
140
- **Day Pass - $5/day per person**
141
- - Only pay the days you use it
142
- - AI included (no API key needed)
143
- - Chat in Telegram, Slack, Discord
144
- - Dashboard + Deploy at [TBD]
145
- - Pay with USDC (gasless via x402)
146
-
147
- **Solo - $49/mo**
148
- - Just you (1 seat)
149
- - AI included
150
- - Everything in Day Pass
151
- - Best if you use it most days
152
-
153
- **Team - $199/mo**
154
- - Up to 5 seats (+$25/seat after)
155
- - AI included for everyone
156
- - Team dashboard + analytics
157
- - Parallel agents
158
- - Priority support
159
-
160
- ## Project Setup Types
314
+ ---
161
315
 
162
- When initializing a project, JFL asks about your setup:
163
-
164
- **Building a product**
165
- - You're writing code
166
- - Product repo linked as submodule at `product/`
167
- - Code changes go to product repo
316
+ ## Pricing
168
317
 
169
- **GTM only**
170
- - Team handles code
171
- - You focus on content, brand, outreach
172
- - No code changes, just marketing
318
+ | Plan | Price | What You Get |
319
+ |------|-------|--------------|
320
+ | **Trial** | $0 | Full toolkit, foundation + brand setup. Use with Claude Code. |
321
+ | **Day Pass** | $5/day | Pay only days you use. AI included. Chat in Telegram/Slack/Discord. Pay with USDC (gasless). |
322
+ | **Solo** | $49/mo | Just you. AI included. Best if you use it most days. |
323
+ | **Team** | $199/mo | Up to 5 seats (+$25/seat after). AI for everyone. Parallel agents. Team analytics. |
173
324
 
174
- **Contributor**
175
- - Working on specific tasks
176
- - Changes go to `suggestions/{name}.md`
177
- - Owner reviews and merges
325
+ ---
178
326
 
179
- ## Skills Available
327
+ ## Skills Library
180
328
 
181
- JFL includes powerful skills for Claude Code:
329
+ JFL includes skills for Claude Code:
182
330
 
183
331
  | Skill | Description |
184
332
  |-------|-------------|
@@ -186,16 +334,18 @@ JFL includes powerful skills for Claude Code:
186
334
  | `/brand-architect` | Generate brand identity (marks, colors, typography) |
187
335
  | `/web-architect` | Implement assets (SVG, favicon, OG images) |
188
336
  | `/content` | Create content (threads, posts, articles, one-pagers) |
189
- | `/x-algorithm` | Optimize tweets for X For You feed using the open-sourced algorithm |
337
+ | `/x-algorithm` | Optimize tweets for X For You feed |
190
338
  | `/video` | Founder video scripts (viral short-form) |
191
339
  | `/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 |
340
+ | `/agent-browser` | Headless browser automation |
341
+ | `/search` | Semantic search across GTM knowledge base |
194
342
  | `/spec` | Multi-agent adversarial spec refinement |
195
343
  | `/react-best-practices` | React/Next.js performance optimization |
196
344
  | `/remotion-best-practices` | Remotion video creation in React |
197
345
 
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
346
+ Run in Claude Code after `jfl init`.
347
+
348
+ ---
199
349
 
200
350
  ## Knowledge Layer
201
351
 
@@ -210,52 +360,104 @@ knowledge/
210
360
  ├── BRAND_BRIEF.md # Brand inputs
211
361
  ├── BRAND_DECISIONS.md # Finalized brand choices
212
362
  ├── VOICE_AND_TONE.md # How the brand speaks
213
- ├── TASKS.md # Master task list
214
- └── CRM.md # Contact database
363
+ └── TASKS.md # Master task list
215
364
  ```
216
365
 
217
- These docs are the source of truth that AI reads to generate content, make decisions, and maintain consistency.
366
+ These docs are the source of truth. AIs read them to generate content, make decisions, and maintain consistency.
218
367
 
219
- ## Updating JFL
368
+ ---
220
369
 
221
- JFL updates independently of your project:
370
+ ## Auto-Update
222
371
 
372
+ JFL automatically checks for updates on session start (24-hour cache):
373
+
374
+ - **Minor/patch versions** — Auto-updates silently
375
+ - **Major versions** — Prompts for approval
376
+
377
+ **Skip auto-update:**
378
+ ```bash
379
+ jfl --no-update
380
+ ```
381
+
382
+ **Manual update:**
223
383
  ```bash
224
384
  jfl update # Pull latest skills and CLAUDE.md
225
385
  jfl update --dry # Preview changes first
226
386
  ```
227
387
 
228
- This updates:
229
- - `skills/` - Latest skill implementations
230
- - `CLAUDE.md` - Latest AI instructions
231
- - Templates for new docs
388
+ **What gets updated:**
389
+ - `.claude/skills/` Latest skill implementations
390
+ - `CLAUDE.md` Latest AI instructions
391
+ - `scripts/` Session management scripts
392
+ - `templates/` — Doc templates
393
+
394
+ **What's preserved:**
395
+ - `knowledge/` — Your strategy docs
396
+ - `content/` — Your generated content
397
+ - `product/` — Your product code
398
+ - `.jfl/config.json` — Project settings
399
+
400
+ ---
401
+
402
+ ## Journal Protocol
403
+
404
+ Every session MUST write journal entries. The Stop hook blocks if no entry exists.
405
+
406
+ **Entry format:**
407
+ ```json
408
+ {
409
+ "v": 1,
410
+ "ts": "2026-01-28T10:00:00.000Z",
411
+ "session": "session-goose-20260128-1014-00cec4",
412
+ "type": "feature|fix|decision|milestone|discovery",
413
+ "status": "complete|incomplete|blocked",
414
+ "title": "Short title",
415
+ "summary": "2-3 sentence summary",
416
+ "detail": "Full description with context",
417
+ "files": ["file1.ts", "file2.ts"],
418
+ "incomplete": ["what's not done"],
419
+ "next": "what should happen next"
420
+ }
421
+ ```
232
422
 
233
- Your project content (knowledge/, content/, product/) is never touched.
423
+ **Write entries when:**
424
+ - Feature completed
425
+ - Decision made
426
+ - Bug fixed
427
+ - Milestone reached
428
+ - Session ending
234
429
 
235
- ## Session Management
430
+ Journal entries become searchable via Context Hub and Synopsis.
236
431
 
237
- **Default:** Single session, direct in repo.
432
+ ---
238
433
 
239
- **Advanced:** For parallel work across multiple sessions, use worktrees:
434
+ ## File Headers (Required for Code)
240
435
 
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
436
+ Every `.ts`, `.tsx`, `.js`, `.jsx` file MUST have a header with `@purpose`:
437
+
438
+ ```typescript
439
+ /**
440
+ * Component/Module Name
441
+ *
442
+ * Brief description of what this does.
443
+ *
444
+ * @purpose One-line description of file's purpose
445
+ * @spec Optional: link to spec (e.g., PLATFORM_SPEC.md#sessions)
446
+ * @decision Optional: decision slug (e.g., journal/2026-01.md#per-session)
447
+ */
245
448
  ```
246
449
 
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
450
+ Enables:
451
+ - Synopsis to extract context from files
452
+ - Codebase understanding without reading full files
453
+ - Decision traceability
252
454
 
253
- ## Development
455
+ ---
254
456
 
255
- Contributing to JFL itself:
457
+ ## Contributing to JFL
256
458
 
257
459
  ```bash
258
- # Clone through GTM structure
460
+ # Clone via GTM structure
259
461
  jfl init my-jfl-gtm
260
462
  # During setup, add: https://github.com/402goose/just-fucking-launch.git
261
463
 
@@ -263,8 +465,8 @@ jfl init my-jfl-gtm
263
465
  cd my-jfl-gtm/product
264
466
  ./scripts/dev-setup.sh
265
467
 
266
- # Work in the submodule
267
- cd product/cli
468
+ # Work in the CLI submodule
469
+ cd cli
268
470
  npm install
269
471
  npm run build
270
472
 
@@ -272,42 +474,68 @@ npm run build
272
474
  npm link
273
475
  ```
274
476
 
477
+ ---
478
+
275
479
  ## Environment Variables
276
480
 
277
481
  ```bash
278
482
  CRM_SHEET_ID=your-sheet-id # Google Sheets CRM integration
279
483
  ```
280
484
 
485
+ ---
486
+
281
487
  ## Files You'll Work With
282
488
 
283
489
  ```
284
- .jfl/config.json # Project configuration
490
+ .jfl/
491
+ ├── config.json # Project configuration
492
+ ├── journal/ # Session journals (JSONL)
493
+ ├── context-hub.pid # Context Hub daemon PID
494
+ └── logs/ # Session logs
495
+
285
496
  knowledge/ # Strategy docs (you fill these)
286
497
  content/ # Generated content
287
498
  suggestions/{name}.md # Per-person working space
288
499
  previews/ # Generated assets
289
500
  ```
290
501
 
291
- ## Help
502
+ ---
503
+
504
+ ## Help & Support
292
505
 
293
506
  ```bash
294
507
  jfl help # Show all commands
295
508
  jfl --version # Show version
296
509
  ```
297
510
 
298
- For issues or feedback:
299
- - GitHub: https://github.com/402goose/just-fucking-launch
300
- - Docs: https://jfl.run
511
+ **Issues & Feedback:**
512
+ - GitHub: https://github.com/402goose/jfl-cli/issues
513
+ - X: [@taggaoyl](https://x.com/taggaoyl)
514
+
515
+ ---
516
+
517
+ ## What's New in 0.1.0
518
+
519
+ - ✨ Auto-update on session start (checks npm registry, 24h cache)
520
+ - 🔍 Synopsis command (`jfl synopsis [hours] [author]`)
521
+ - 🏥 Improved doctor checks with categorized output
522
+ - 🐛 Fixed auto-merge failure that caused branch pileup
523
+ - 📊 Context Hub productization improvements
524
+
525
+ ---
301
526
 
302
527
  ## License
303
528
 
304
529
  MIT License - see LICENSE file for details.
305
530
 
531
+ ---
532
+
306
533
  ## Credits
307
534
 
308
535
  Built by [@tagga](https://x.com/taggaoyl) (Alec Taggart)
309
536
 
310
537
  Powered by:
311
- - Claude (Anthropic)
312
- - x402 (crypto micropayments)
538
+ - [Claude](https://claude.ai) (Anthropic)
539
+ - [x402](https://402.com) (crypto micropayments)
313
540
  - Commander.js, Inquirer, Chalk, and more
541
+