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.
- package/README.md +443 -145
- package/clawdbot-plugin/clawdbot.plugin.json +20 -0
- package/clawdbot-plugin/index.js +555 -0
- package/clawdbot-plugin/index.ts +582 -0
- package/clawdbot-skill/SKILL.md +33 -336
- package/clawdbot-skill/index.ts +491 -321
- package/clawdbot-skill/skill.json +4 -13
- package/dist/commands/clawdbot.d.ts +11 -0
- package/dist/commands/clawdbot.d.ts.map +1 -0
- package/dist/commands/clawdbot.js +215 -0
- package/dist/commands/clawdbot.js.map +1 -0
- package/dist/commands/context-hub.d.ts +5 -0
- package/dist/commands/context-hub.d.ts.map +1 -1
- package/dist/commands/context-hub.js +394 -28
- package/dist/commands/context-hub.js.map +1 -1
- package/dist/commands/gtm-process-update.d.ts +10 -0
- package/dist/commands/gtm-process-update.d.ts.map +1 -0
- package/dist/commands/gtm-process-update.js +101 -0
- package/dist/commands/gtm-process-update.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +278 -4
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +32 -33
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/memory.d.ts +38 -0
- package/dist/commands/memory.d.ts.map +1 -0
- package/dist/commands/memory.js +229 -0
- package/dist/commands/memory.js.map +1 -0
- package/dist/commands/migrate-services.d.ts +8 -0
- package/dist/commands/migrate-services.d.ts.map +1 -0
- package/dist/commands/migrate-services.js +182 -0
- package/dist/commands/migrate-services.js.map +1 -0
- package/dist/commands/onboard.d.ts +24 -0
- package/dist/commands/onboard.d.ts.map +1 -0
- package/dist/commands/onboard.js +663 -0
- package/dist/commands/onboard.js.map +1 -0
- package/dist/commands/openclaw.d.ts +56 -0
- package/dist/commands/openclaw.d.ts.map +1 -0
- package/dist/commands/openclaw.js +700 -0
- package/dist/commands/openclaw.js.map +1 -0
- package/dist/commands/orchestrate.d.ts +14 -0
- package/dist/commands/orchestrate.d.ts.map +1 -0
- package/dist/commands/orchestrate.js +270 -0
- package/dist/commands/orchestrate.js.map +1 -0
- package/dist/commands/profile.d.ts +46 -0
- package/dist/commands/profile.d.ts.map +1 -0
- package/dist/commands/profile.js +498 -0
- package/dist/commands/profile.js.map +1 -0
- package/dist/commands/repair.d.ts.map +1 -1
- package/dist/commands/repair.js +37 -0
- package/dist/commands/repair.js.map +1 -1
- package/dist/commands/service-agent.d.ts +16 -0
- package/dist/commands/service-agent.d.ts.map +1 -0
- package/dist/commands/service-agent.js +375 -0
- package/dist/commands/service-agent.js.map +1 -0
- package/dist/commands/service-manager.d.ts +12 -0
- package/dist/commands/service-manager.d.ts.map +1 -0
- package/dist/commands/service-manager.js +967 -0
- package/dist/commands/service-manager.js.map +1 -0
- package/dist/commands/service-validate.d.ts +12 -0
- package/dist/commands/service-validate.d.ts.map +1 -0
- package/dist/commands/service-validate.js +611 -0
- package/dist/commands/service-validate.js.map +1 -0
- package/dist/commands/services-create.d.ts +15 -0
- package/dist/commands/services-create.d.ts.map +1 -0
- package/dist/commands/services-create.js +1452 -0
- package/dist/commands/services-create.js.map +1 -0
- package/dist/commands/services-scan.d.ts +13 -0
- package/dist/commands/services-scan.d.ts.map +1 -0
- package/dist/commands/services-scan.js +251 -0
- package/dist/commands/services-scan.js.map +1 -0
- package/dist/commands/services-sync-agents.d.ts +23 -0
- package/dist/commands/services-sync-agents.d.ts.map +1 -0
- package/dist/commands/services-sync-agents.js +207 -0
- package/dist/commands/services-sync-agents.js.map +1 -0
- package/dist/commands/services.d.ts +19 -0
- package/dist/commands/services.d.ts.map +1 -0
- package/dist/commands/services.js +742 -0
- package/dist/commands/services.js.map +1 -0
- package/dist/commands/session.d.ts +5 -1
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +68 -586
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +17 -0
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +75 -21
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/validate-settings.d.ts +37 -0
- package/dist/commands/validate-settings.d.ts.map +1 -0
- package/dist/commands/validate-settings.js +197 -0
- package/dist/commands/validate-settings.js.map +1 -0
- package/dist/commands/voice.d.ts +0 -1
- package/dist/commands/voice.d.ts.map +1 -1
- package/dist/commands/voice.js +16 -15
- package/dist/commands/voice.js.map +1 -1
- package/dist/index.js +395 -141
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-generator.d.ts +26 -0
- package/dist/lib/agent-generator.d.ts.map +1 -0
- package/dist/lib/agent-generator.js +331 -0
- package/dist/lib/agent-generator.js.map +1 -0
- package/dist/lib/memory-db.d.ts +102 -0
- package/dist/lib/memory-db.d.ts.map +1 -0
- package/dist/lib/memory-db.js +313 -0
- package/dist/lib/memory-db.js.map +1 -0
- package/dist/lib/memory-indexer.d.ts +47 -0
- package/dist/lib/memory-indexer.d.ts.map +1 -0
- package/dist/lib/memory-indexer.js +215 -0
- package/dist/lib/memory-indexer.js.map +1 -0
- package/dist/lib/memory-search.d.ts +41 -0
- package/dist/lib/memory-search.d.ts.map +1 -0
- package/dist/lib/memory-search.js +246 -0
- package/dist/lib/memory-search.js.map +1 -0
- package/dist/lib/openclaw-registry.d.ts +48 -0
- package/dist/lib/openclaw-registry.d.ts.map +1 -0
- package/dist/lib/openclaw-registry.js +181 -0
- package/dist/lib/openclaw-registry.js.map +1 -0
- package/dist/lib/openclaw-sdk.d.ts +107 -0
- package/dist/lib/openclaw-sdk.d.ts.map +1 -0
- package/dist/lib/openclaw-sdk.js +208 -0
- package/dist/lib/openclaw-sdk.js.map +1 -0
- package/dist/lib/peer-agent-generator.d.ts +44 -0
- package/dist/lib/peer-agent-generator.d.ts.map +1 -0
- package/dist/lib/peer-agent-generator.js +286 -0
- package/dist/lib/peer-agent-generator.js.map +1 -0
- package/dist/lib/service-dependencies.d.ts +44 -0
- package/dist/lib/service-dependencies.d.ts.map +1 -0
- package/dist/lib/service-dependencies.js +314 -0
- package/dist/lib/service-dependencies.js.map +1 -0
- package/dist/lib/service-detector.d.ts +61 -0
- package/dist/lib/service-detector.d.ts.map +1 -0
- package/dist/lib/service-detector.js +521 -0
- package/dist/lib/service-detector.js.map +1 -0
- package/dist/lib/service-gtm.d.ts +157 -0
- package/dist/lib/service-gtm.d.ts.map +1 -0
- package/dist/lib/service-gtm.js +786 -0
- package/dist/lib/service-gtm.js.map +1 -0
- package/dist/lib/service-mcp-base.d.ts +103 -0
- package/dist/lib/service-mcp-base.d.ts.map +1 -0
- package/dist/lib/service-mcp-base.js +263 -0
- package/dist/lib/service-mcp-base.js.map +1 -0
- package/dist/lib/service-utils.d.ts +103 -0
- package/dist/lib/service-utils.d.ts.map +1 -0
- package/dist/lib/service-utils.js +368 -0
- package/dist/lib/service-utils.js.map +1 -0
- package/dist/lib/skill-generator.d.ts +21 -0
- package/dist/lib/skill-generator.d.ts.map +1 -0
- package/dist/lib/skill-generator.js +253 -0
- package/dist/lib/skill-generator.js.map +1 -0
- package/dist/lib/stratus-client.d.ts +100 -0
- package/dist/lib/stratus-client.d.ts.map +1 -0
- package/dist/lib/stratus-client.js +255 -0
- package/dist/lib/stratus-client.js.map +1 -0
- package/dist/mcp/context-hub-mcp.js +135 -53
- package/dist/mcp/context-hub-mcp.js.map +1 -1
- package/dist/mcp/service-mcp-server.d.ts +12 -0
- package/dist/mcp/service-mcp-server.d.ts.map +1 -0
- package/dist/mcp/service-mcp-server.js +434 -0
- package/dist/mcp/service-mcp-server.js.map +1 -0
- package/dist/mcp/service-peer-mcp.d.ts +36 -0
- package/dist/mcp/service-peer-mcp.d.ts.map +1 -0
- package/dist/mcp/service-peer-mcp.js +220 -0
- package/dist/mcp/service-peer-mcp.js.map +1 -0
- package/dist/mcp/service-registry-mcp.d.ts +13 -0
- package/dist/mcp/service-registry-mcp.d.ts.map +1 -0
- package/dist/mcp/service-registry-mcp.js +330 -0
- package/dist/mcp/service-registry-mcp.js.map +1 -0
- package/dist/ui/banner.js +1 -1
- package/dist/ui/banner.js.map +1 -1
- package/dist/ui/context-hub-logs.d.ts +10 -0
- package/dist/ui/context-hub-logs.d.ts.map +1 -0
- package/dist/ui/context-hub-logs.js +175 -0
- package/dist/ui/context-hub-logs.js.map +1 -0
- package/dist/ui/service-dashboard.d.ts +11 -0
- package/dist/ui/service-dashboard.d.ts.map +1 -0
- package/dist/ui/service-dashboard.js +357 -0
- package/dist/ui/service-dashboard.js.map +1 -0
- package/dist/ui/services-manager.d.ts +11 -0
- package/dist/ui/services-manager.d.ts.map +1 -0
- package/dist/ui/services-manager.js +507 -0
- package/dist/ui/services-manager.js.map +1 -0
- package/dist/utils/auth-guard.d.ts.map +1 -1
- package/dist/utils/auth-guard.js +8 -9
- package/dist/utils/auth-guard.js.map +1 -1
- package/dist/utils/claude-md-generator.d.ts +10 -0
- package/dist/utils/claude-md-generator.d.ts.map +1 -0
- package/dist/utils/claude-md-generator.js +215 -0
- package/dist/utils/claude-md-generator.js.map +1 -0
- package/dist/utils/ensure-context-hub.d.ts +20 -0
- package/dist/utils/ensure-context-hub.d.ts.map +1 -0
- package/dist/utils/ensure-context-hub.js +65 -0
- package/dist/utils/ensure-context-hub.js.map +1 -0
- package/dist/utils/ensure-project.d.ts.map +1 -1
- package/dist/utils/ensure-project.js +3 -4
- package/dist/utils/ensure-project.js.map +1 -1
- package/dist/utils/jfl-config.d.ts +19 -0
- package/dist/utils/jfl-config.d.ts.map +1 -0
- package/dist/utils/jfl-config.js +112 -0
- package/dist/utils/jfl-config.js.map +1 -0
- package/dist/utils/jfl-migration.d.ts +29 -0
- package/dist/utils/jfl-migration.d.ts.map +1 -0
- package/dist/utils/jfl-migration.js +142 -0
- package/dist/utils/jfl-migration.js.map +1 -0
- package/dist/utils/jfl-paths.d.ts +55 -0
- package/dist/utils/jfl-paths.d.ts.map +1 -0
- package/dist/utils/jfl-paths.js +120 -0
- package/dist/utils/jfl-paths.js.map +1 -0
- package/dist/utils/settings-validator.d.ts +73 -0
- package/dist/utils/settings-validator.d.ts.map +1 -0
- package/dist/utils/settings-validator.js +222 -0
- package/dist/utils/settings-validator.js.map +1 -0
- package/package.json +19 -3
- package/scripts/commit-gtm.sh +56 -0
- package/scripts/commit-product.sh +68 -0
- package/scripts/context-query.sh +45 -0
- package/scripts/session/auto-commit.sh +297 -0
- package/scripts/session/jfl-doctor.sh +707 -0
- package/scripts/session/session-cleanup.sh +268 -0
- package/scripts/session/session-end.sh +198 -0
- package/scripts/session/session-init.sh +350 -0
- package/scripts/session/session-init.sh.backup +292 -0
- package/scripts/session/session-sync.sh +167 -0
- package/scripts/session/test-context-preservation.sh +160 -0
- package/scripts/session/test-critical-infrastructure.sh +293 -0
- package/scripts/session/test-experience-level.sh +336 -0
- package/scripts/session/test-session-cleanup.sh +268 -0
- package/scripts/session/test-session-sync.sh +320 -0
- package/scripts/voice-start.sh +36 -8
- package/scripts/where-am-i.sh +78 -0
- package/template/.claude/service-settings.json +32 -0
- package/template/.claude/settings.json +14 -1
- package/template/.claude/skills/end/SKILL.md +1780 -0
- package/template/.jfl/config.json +2 -1
- package/template/CLAUDE.md +1039 -134
- package/template/CLAUDE.md.bak +1187 -0
- package/template/scripts/commit-gtm.sh +56 -0
- package/template/scripts/commit-product.sh +68 -0
- package/template/scripts/migrate-to-branch-sessions.sh +201 -0
- package/template/scripts/session/auto-commit.sh +58 -6
- package/template/scripts/session/jfl-doctor.sh +137 -17
- package/template/scripts/session/session-cleanup.sh +268 -0
- package/template/scripts/session/session-end.sh +4 -0
- package/template/scripts/session/session-init.sh +253 -66
- package/template/scripts/session/test-critical-infrastructure.sh +293 -0
- package/template/scripts/session/test-experience-level.sh +336 -0
- package/template/scripts/session/test-session-cleanup.sh +268 -0
- package/template/scripts/session/test-session-sync.sh +320 -0
- package/template/scripts/where-am-i.sh +78 -0
- package/template/templates/service-agent/.claude/settings.json +32 -0
- package/template/templates/service-agent/CLAUDE.md +334 -0
- package/template/templates/service-agent/knowledge/ARCHITECTURE.md +115 -0
- package/template/templates/service-agent/knowledge/DEPLOYMENT.md +199 -0
- package/template/templates/service-agent/knowledge/RUNBOOK.md +412 -0
- package/template/templates/service-agent/knowledge/SERVICE_SPEC.md +77 -0
- package/dist/commands/session-mgmt.d.ts +0 -33
- package/dist/commands/session-mgmt.d.ts.map +0 -1
- package/dist/commands/session-mgmt.js +0 -404
- package/dist/commands/session-mgmt.js.map +0 -1
- 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
|
-
|
|
3
|
+
**The context layer for AI-native teams.**
|
|
4
4
|
|
|
5
|
-
JFL
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
23
|
-
|
|
24
|
-
|
|
79
|
+
**Requirements:** Node ≥18
|
|
80
|
+
|
|
81
|
+
JFL automatically installs dependencies including Context Hub MCP and x402 payment tools.
|
|
25
82
|
|
|
26
|
-
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Quick Start (TL;DR)
|
|
27
86
|
|
|
28
87
|
```bash
|
|
29
|
-
#
|
|
30
|
-
jfl init my-
|
|
88
|
+
# Initialize a GTM workspace
|
|
89
|
+
jfl init my-product-gtm
|
|
31
90
|
|
|
32
91
|
# Check status
|
|
33
|
-
cd my-
|
|
92
|
+
cd my-product-gtm
|
|
34
93
|
jfl status
|
|
35
94
|
|
|
36
|
-
# View
|
|
95
|
+
# View campaign dashboard
|
|
37
96
|
jfl hud
|
|
38
97
|
|
|
39
|
-
#
|
|
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
|
-
|
|
105
|
+
---
|
|
44
106
|
|
|
45
|
-
|
|
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,
|
|
51
|
-
├── content/ ←
|
|
52
|
-
├── suggestions/ ← Contributor
|
|
53
|
-
├── skills/
|
|
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
|
|
153
|
+
your-product-repo/ ← SEPARATE REPO (all code)
|
|
57
154
|
├── src/
|
|
58
155
|
├── cli/
|
|
59
156
|
└── ...
|
|
60
157
|
```
|
|
61
158
|
|
|
62
|
-
**
|
|
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
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
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
|
-
|
|
183
|
+
---
|
|
70
184
|
|
|
71
|
-
|
|
185
|
+
## Clawdbot Integration
|
|
186
|
+
|
|
187
|
+
JFL ships with a Clawdbot plugin for Telegram-based agents.
|
|
72
188
|
|
|
73
189
|
```bash
|
|
74
|
-
|
|
75
|
-
jfl
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
jfl
|
|
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
|
-
|
|
197
|
+
After setup, restart your gateway (`clawdbot gateway`). The plugin is dormant until you activate it:
|
|
84
198
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
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
|
-
|
|
203
|
+
**Telegram Commands:**
|
|
100
204
|
|
|
101
|
-
|
|
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
|
-
|
|
105
|
-
jfl
|
|
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
|
-
|
|
243
|
+
All commands support `--json` for programmatic use. See `jfl openclaw --help` for the full command list.
|
|
244
|
+
|
|
245
|
+
---
|
|
109
246
|
|
|
110
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
123
|
-
-
|
|
124
|
-
-
|
|
125
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
**
|
|
135
|
-
-
|
|
136
|
-
-
|
|
137
|
-
-
|
|
138
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
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
|
-
|
|
154
|
-
-
|
|
155
|
-
-
|
|
156
|
-
-
|
|
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
|
-
|
|
370
|
+
View auth status:
|
|
371
|
+
```bash
|
|
372
|
+
jfl status
|
|
373
|
+
jfl wallet
|
|
374
|
+
```
|
|
161
375
|
|
|
162
|
-
|
|
376
|
+
---
|
|
163
377
|
|
|
164
|
-
|
|
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
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
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
|
-
|
|
175
|
-
- Working on specific tasks
|
|
176
|
-
- Changes go to `suggestions/{name}.md`
|
|
177
|
-
- Owner reviews and merges
|
|
387
|
+
---
|
|
178
388
|
|
|
179
|
-
## Skills
|
|
389
|
+
## Skills Library
|
|
180
390
|
|
|
181
|
-
JFL includes
|
|
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
|
|
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
|
|
193
|
-
| `/search` | Semantic search across GTM knowledge base
|
|
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
|
|
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
|
-
|
|
214
|
-
└── CRM.md # Contact database
|
|
425
|
+
└── TASKS.md # Master task list
|
|
215
426
|
```
|
|
216
427
|
|
|
217
|
-
These docs are the source of truth
|
|
428
|
+
These docs are the source of truth. AIs read them to generate content, make decisions, and maintain consistency.
|
|
429
|
+
|
|
430
|
+
---
|
|
218
431
|
|
|
219
|
-
##
|
|
432
|
+
## Auto-Update
|
|
220
433
|
|
|
221
|
-
JFL updates
|
|
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
|
-
|
|
229
|
-
-
|
|
230
|
-
- `CLAUDE.md`
|
|
231
|
-
-
|
|
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
|
-
|
|
492
|
+
Journal entries become searchable via Context Hub and Synopsis.
|
|
234
493
|
|
|
235
|
-
|
|
494
|
+
---
|
|
236
495
|
|
|
237
|
-
|
|
496
|
+
## File Headers (Required for Code)
|
|
238
497
|
|
|
239
|
-
|
|
498
|
+
Every `.ts`, `.tsx`, `.js`, `.jsx` file MUST have a header with `@purpose`:
|
|
240
499
|
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
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
|
-
|
|
248
|
-
-
|
|
249
|
-
-
|
|
250
|
-
-
|
|
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
|
-
|
|
517
|
+
---
|
|
254
518
|
|
|
255
|
-
Contributing to JFL
|
|
519
|
+
## Contributing to JFL
|
|
256
520
|
|
|
257
521
|
```bash
|
|
258
|
-
# Clone
|
|
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
|
|
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/
|
|
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
|
-
|
|
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
|
-
|
|
299
|
-
- GitHub: https://github.com/402goose/
|
|
300
|
-
-
|
|
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
|
+
|