jfl 0.8.1 → 0.9.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.
- package/README.md +35 -4
- package/dist/commands/digest.d.ts +6 -0
- package/dist/commands/digest.d.ts.map +1 -1
- package/dist/commands/digest.js +70 -69
- package/dist/commands/digest.js.map +1 -1
- package/dist/commands/doctor.d.ts +1 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +30 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/eval.d.ts +40 -0
- package/dist/commands/eval.d.ts.map +1 -1
- package/dist/commands/eval.js +8 -8
- package/dist/commands/eval.js.map +1 -1
- package/dist/commands/findings.d.ts +7 -0
- package/dist/commands/findings.d.ts.map +1 -1
- package/dist/commands/findings.js +4 -4
- package/dist/commands/findings.js.map +1 -1
- package/dist/commands/ide.d.ts +2 -1
- package/dist/commands/ide.d.ts.map +1 -1
- package/dist/commands/ide.js +61 -1
- package/dist/commands/ide.js.map +1 -1
- package/dist/commands/init-from-service.d.ts +15 -0
- package/dist/commands/init-from-service.d.ts.map +1 -0
- package/dist/commands/init-from-service.js +541 -0
- package/dist/commands/init-from-service.js.map +1 -0
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +32 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/kanban.d.ts.map +1 -1
- package/dist/commands/kanban.js +13 -4
- package/dist/commands/kanban.js.map +1 -1
- package/dist/commands/linear.d.ts +41 -0
- package/dist/commands/linear.d.ts.map +1 -0
- package/dist/commands/linear.js +715 -0
- package/dist/commands/linear.js.map +1 -0
- package/dist/commands/peter.d.ts.map +1 -1
- package/dist/commands/peter.js +232 -25
- package/dist/commands/peter.js.map +1 -1
- package/dist/commands/portfolio.d.ts +5 -0
- package/dist/commands/portfolio.d.ts.map +1 -1
- package/dist/commands/portfolio.js +193 -203
- package/dist/commands/portfolio.js.map +1 -1
- package/dist/commands/predict.d.ts +19 -0
- package/dist/commands/predict.d.ts.map +1 -1
- package/dist/commands/predict.js +4 -4
- package/dist/commands/predict.js.map +1 -1
- package/dist/commands/services.d.ts.map +1 -1
- package/dist/commands/services.js +146 -0
- package/dist/commands/services.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +279 -20
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/start.d.ts +25 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +191 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/telemetry-monitor.d.ts +11 -0
- package/dist/commands/telemetry-monitor.d.ts.map +1 -0
- package/dist/commands/telemetry-monitor.js +224 -0
- package/dist/commands/telemetry-monitor.js.map +1 -0
- package/dist/commands/telemetry-test.d.ts +11 -0
- package/dist/commands/telemetry-test.d.ts.map +1 -0
- package/dist/commands/telemetry-test.js +67 -0
- package/dist/commands/telemetry-test.js.map +1 -0
- package/dist/commands/tenet-agents.d.ts +13 -0
- package/dist/commands/tenet-agents.d.ts.map +1 -0
- package/dist/commands/tenet-agents.js +191 -0
- package/dist/commands/tenet-agents.js.map +1 -0
- package/dist/commands/tenet-setup.d.ts +20 -0
- package/dist/commands/tenet-setup.d.ts.map +1 -0
- package/dist/commands/tenet-setup.js +135 -0
- package/dist/commands/tenet-setup.js.map +1 -0
- package/dist/commands/train.d.ts +18 -0
- package/dist/commands/train.d.ts.map +1 -1
- package/dist/commands/train.js +182 -0
- package/dist/commands/train.js.map +1 -1
- package/dist/commands/viz.d.ts +33 -0
- package/dist/commands/viz.d.ts.map +1 -1
- package/dist/commands/viz.js +9 -9
- package/dist/commands/viz.js.map +1 -1
- package/dist/commands/whoami.d.ts +2 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +24 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/index.js +230 -30
- package/dist/index.js.map +1 -1
- package/dist/lib/advanced-setup.d.ts +78 -0
- package/dist/lib/advanced-setup.d.ts.map +1 -0
- package/dist/lib/advanced-setup.js +433 -0
- package/dist/lib/advanced-setup.js.map +1 -0
- package/dist/lib/agent-config.d.ts +33 -0
- package/dist/lib/agent-config.d.ts.map +1 -1
- package/dist/lib/agent-config.js +26 -0
- package/dist/lib/agent-config.js.map +1 -1
- package/dist/lib/counterfactual-training-bridge.d.ts +114 -0
- package/dist/lib/counterfactual-training-bridge.d.ts.map +1 -0
- package/dist/lib/counterfactual-training-bridge.js +322 -0
- package/dist/lib/counterfactual-training-bridge.js.map +1 -0
- package/dist/lib/discovery-agent.d.ts +48 -0
- package/dist/lib/discovery-agent.d.ts.map +1 -0
- package/dist/lib/discovery-agent.js +111 -0
- package/dist/lib/discovery-agent.js.map +1 -0
- package/dist/lib/flow-engine.d.ts.map +1 -1
- package/dist/lib/flow-engine.js +46 -8
- package/dist/lib/flow-engine.js.map +1 -1
- package/dist/lib/gtm-generator.d.ts +29 -0
- package/dist/lib/gtm-generator.d.ts.map +1 -0
- package/dist/lib/gtm-generator.js +252 -0
- package/dist/lib/gtm-generator.js.map +1 -0
- package/dist/lib/hub-health.d.ts +40 -0
- package/dist/lib/hub-health.d.ts.map +1 -0
- package/dist/lib/hub-health.js +89 -0
- package/dist/lib/hub-health.js.map +1 -0
- package/dist/lib/invariant-monitor.d.ts +6 -2
- package/dist/lib/invariant-monitor.d.ts.map +1 -1
- package/dist/lib/invariant-monitor.js +89 -2
- package/dist/lib/invariant-monitor.js.map +1 -1
- package/dist/lib/journal-analyzer.d.ts +71 -0
- package/dist/lib/journal-analyzer.d.ts.map +1 -0
- package/dist/lib/journal-analyzer.js +306 -0
- package/dist/lib/journal-analyzer.js.map +1 -0
- package/dist/lib/linear-client.d.ts +73 -0
- package/dist/lib/linear-client.d.ts.map +1 -0
- package/dist/lib/linear-client.js +112 -0
- package/dist/lib/linear-client.js.map +1 -0
- package/dist/lib/linear-id-map.d.ts +20 -0
- package/dist/lib/linear-id-map.d.ts.map +1 -0
- package/dist/lib/linear-id-map.js +59 -0
- package/dist/lib/linear-id-map.js.map +1 -0
- package/dist/lib/linear-kanban.d.ts +66 -0
- package/dist/lib/linear-kanban.d.ts.map +1 -0
- package/dist/lib/linear-kanban.js +175 -0
- package/dist/lib/linear-kanban.js.map +1 -0
- package/dist/lib/onboarding.d.ts +40 -0
- package/dist/lib/onboarding.d.ts.map +1 -0
- package/dist/lib/onboarding.js +213 -0
- package/dist/lib/onboarding.js.map +1 -0
- package/dist/lib/physical-world-model.d.ts +50 -0
- package/dist/lib/physical-world-model.d.ts.map +1 -0
- package/dist/lib/physical-world-model.js +251 -0
- package/dist/lib/physical-world-model.js.map +1 -0
- package/dist/lib/planning-loop.d.ts +157 -0
- package/dist/lib/planning-loop.d.ts.map +1 -0
- package/dist/lib/planning-loop.js +537 -0
- package/dist/lib/planning-loop.js.map +1 -0
- package/dist/lib/policy-head.d.ts +13 -0
- package/dist/lib/policy-head.d.ts.map +1 -1
- package/dist/lib/policy-head.js +168 -2
- package/dist/lib/policy-head.js.map +1 -1
- package/dist/lib/resource-optimizer-middleware.d.ts +39 -0
- package/dist/lib/resource-optimizer-middleware.d.ts.map +1 -0
- package/dist/lib/resource-optimizer-middleware.js +222 -0
- package/dist/lib/resource-optimizer-middleware.js.map +1 -0
- package/dist/lib/resource-optimizer.d.ts +71 -0
- package/dist/lib/resource-optimizer.d.ts.map +1 -0
- package/dist/lib/resource-optimizer.js +228 -0
- package/dist/lib/resource-optimizer.js.map +1 -0
- package/dist/lib/rl-manager.d.ts +74 -0
- package/dist/lib/rl-manager.d.ts.map +1 -0
- package/dist/lib/rl-manager.js +245 -0
- package/dist/lib/rl-manager.js.map +1 -0
- package/dist/lib/service-analyzer.d.ts +76 -0
- package/dist/lib/service-analyzer.d.ts.map +1 -0
- package/dist/lib/service-analyzer.js +704 -0
- package/dist/lib/service-analyzer.js.map +1 -0
- package/dist/lib/service-gtm.js +2 -2
- package/dist/lib/service-gtm.js.map +1 -1
- package/dist/lib/service-questionnaire.d.ts +11 -0
- package/dist/lib/service-questionnaire.d.ts.map +1 -0
- package/dist/lib/service-questionnaire.js +89 -0
- package/dist/lib/service-questionnaire.js.map +1 -0
- package/dist/lib/setup/agent-generator.d.ts +2 -0
- package/dist/lib/setup/agent-generator.d.ts.map +1 -1
- package/dist/lib/setup/agent-generator.js +128 -4
- package/dist/lib/setup/agent-generator.js.map +1 -1
- package/dist/lib/setup/flow-generator.d.ts +10 -0
- package/dist/lib/setup/flow-generator.d.ts.map +1 -0
- package/dist/lib/setup/flow-generator.js +113 -0
- package/dist/lib/setup/flow-generator.js.map +1 -0
- package/dist/lib/setup/invariant-bridge.d.ts +91 -0
- package/dist/lib/setup/invariant-bridge.d.ts.map +1 -0
- package/dist/lib/setup/invariant-bridge.js +384 -0
- package/dist/lib/setup/invariant-bridge.js.map +1 -0
- package/dist/lib/setup/spec-generator.d.ts +41 -5
- package/dist/lib/setup/spec-generator.d.ts.map +1 -1
- package/dist/lib/setup/spec-generator.js +503 -29
- package/dist/lib/setup/spec-generator.js.map +1 -1
- package/dist/lib/setup/starter-intelligence.d.ts +25 -0
- package/dist/lib/setup/starter-intelligence.d.ts.map +1 -0
- package/dist/lib/setup/starter-intelligence.js +309 -0
- package/dist/lib/setup/starter-intelligence.js.map +1 -0
- package/dist/lib/stratus-client.js +1 -1
- package/dist/lib/stratus-client.js.map +1 -1
- package/dist/lib/surface-agent.d.ts +78 -0
- package/dist/lib/surface-agent.d.ts.map +1 -0
- package/dist/lib/surface-agent.js +105 -0
- package/dist/lib/surface-agent.js.map +1 -0
- package/dist/lib/surface-coordination-example.d.ts +30 -0
- package/dist/lib/surface-coordination-example.d.ts.map +1 -0
- package/dist/lib/surface-coordination-example.js +164 -0
- package/dist/lib/surface-coordination-example.js.map +1 -0
- package/dist/lib/telemetry/physical-world-collector.d.ts +15 -0
- package/dist/lib/telemetry/physical-world-collector.d.ts.map +1 -0
- package/dist/lib/telemetry/physical-world-collector.js +177 -0
- package/dist/lib/telemetry/physical-world-collector.js.map +1 -0
- package/dist/lib/telemetry/training-bridge.d.ts +51 -0
- package/dist/lib/telemetry/training-bridge.d.ts.map +1 -0
- package/dist/lib/telemetry/training-bridge.js +185 -0
- package/dist/lib/telemetry/training-bridge.js.map +1 -0
- package/dist/lib/telemetry.d.ts +2 -1
- package/dist/lib/telemetry.d.ts.map +1 -1
- package/dist/lib/telemetry.js +23 -2
- package/dist/lib/telemetry.js.map +1 -1
- package/dist/lib/tenet-board-agent.d.ts +52 -0
- package/dist/lib/tenet-board-agent.d.ts.map +1 -0
- package/dist/lib/tenet-board-agent.js +226 -0
- package/dist/lib/tenet-board-agent.js.map +1 -0
- package/dist/lib/tenet-ide-agent.d.ts +40 -0
- package/dist/lib/tenet-ide-agent.d.ts.map +1 -0
- package/dist/lib/tenet-ide-agent.js +199 -0
- package/dist/lib/tenet-ide-agent.js.map +1 -0
- package/dist/lib/workspace/data-pipeline.d.ts.map +1 -1
- package/dist/lib/workspace/data-pipeline.js +27 -5
- package/dist/lib/workspace/data-pipeline.js.map +1 -1
- package/dist/lib/workspace/sidebar-runner.d.ts +13 -0
- package/dist/lib/workspace/sidebar-runner.d.ts.map +1 -0
- package/dist/lib/workspace/sidebar-runner.js +419 -0
- package/dist/lib/workspace/sidebar-runner.js.map +1 -0
- package/dist/lib/workspace/surface-registry.d.ts.map +1 -1
- package/dist/lib/workspace/surface-registry.js +9 -1
- package/dist/lib/workspace/surface-registry.js.map +1 -1
- package/dist/lib/workspace/surfaces/agent-overview.d.ts +3 -3
- package/dist/lib/workspace/surfaces/agent-overview.d.ts.map +1 -1
- package/dist/lib/workspace/surfaces/agent-overview.js +3 -3
- package/dist/lib/workspace/surfaces/agent-overview.js.map +1 -1
- package/dist/lib/workspace/surfaces/index.d.ts +3 -0
- package/dist/lib/workspace/surfaces/index.d.ts.map +1 -1
- package/dist/lib/workspace/surfaces/index.js +3 -0
- package/dist/lib/workspace/surfaces/index.js.map +1 -1
- package/dist/lib/workspace/surfaces/kanban.d.ts +15 -0
- package/dist/lib/workspace/surfaces/kanban.d.ts.map +1 -0
- package/dist/lib/workspace/surfaces/kanban.js +43 -0
- package/dist/lib/workspace/surfaces/kanban.js.map +1 -0
- package/dist/lib/workspace/surfaces/physical-world.d.ts +15 -0
- package/dist/lib/workspace/surfaces/physical-world.d.ts.map +1 -0
- package/dist/lib/workspace/surfaces/physical-world.js +37 -0
- package/dist/lib/workspace/surfaces/physical-world.js.map +1 -0
- package/dist/lib/workspace/surfaces/sidebar.d.ts +22 -0
- package/dist/lib/workspace/surfaces/sidebar.d.ts.map +1 -0
- package/dist/lib/workspace/surfaces/sidebar.js +94 -0
- package/dist/lib/workspace/surfaces/sidebar.js.map +1 -0
- package/dist/lib/workspace/tmux-adapter.d.ts +8 -5
- package/dist/lib/workspace/tmux-adapter.d.ts.map +1 -1
- package/dist/lib/workspace/tmux-adapter.js +38 -7
- package/dist/lib/workspace/tmux-adapter.js.map +1 -1
- package/dist/lib/workspace/tmux-sidebar.d.ts +14 -0
- package/dist/lib/workspace/tmux-sidebar.d.ts.map +1 -0
- package/dist/lib/workspace/tmux-sidebar.js +230 -0
- package/dist/lib/workspace/tmux-sidebar.js.map +1 -0
- package/dist/types/flows.d.ts +2 -1
- package/dist/types/flows.d.ts.map +1 -1
- package/dist/types/physical-world-model.d.ts +65 -0
- package/dist/types/physical-world-model.d.ts.map +1 -0
- package/dist/types/physical-world-model.js +43 -0
- package/dist/types/physical-world-model.js.map +1 -0
- package/dist/types/telemetry.d.ts +37 -0
- package/dist/types/telemetry.d.ts.map +1 -1
- package/dist/types/world-model.d.ts.map +1 -1
- package/dist/types/world-model.js +14 -7
- package/dist/types/world-model.js.map +1 -1
- package/dist/utils/context-hub-port.d.ts.map +1 -1
- package/dist/utils/context-hub-port.js +6 -1
- package/dist/utils/context-hub-port.js.map +1 -1
- package/dist/utils/jfl-config.d.ts +7 -2
- package/dist/utils/jfl-config.d.ts.map +1 -1
- package/dist/utils/jfl-config.js +14 -4
- package/dist/utils/jfl-config.js.map +1 -1
- package/package.json +3 -2
- package/packages/pi/extensions/context.ts +51 -1
- package/packages/pi/extensions/hub-tools.ts +247 -0
- package/packages/pi/extensions/index.ts +38 -6
- package/packages/pi/extensions/memory-tool.ts +84 -4
- package/packages/pi/extensions/service-skills.ts +214 -0
- package/scripts/telemetry-dashboard.sh +44 -0
- package/scripts/test-planning-loop-e2e.ts +181 -0
- package/scripts/test-server-inference.ts +49 -0
- package/scripts/test-state-sensitivity.ts +32 -0
- package/scripts/train/v2/benchmark.py +661 -0
- package/scripts/train/v2/generate_balanced.py +439 -0
- package/scripts/train/v2/generate_hard_negatives.py +219 -0
- package/scripts/train/v2/infer.py +149 -36
- package/scripts/train/v2/infer_server.py +224 -0
- package/scripts/train/v2/online_train.py +576 -0
- package/scripts/train/v2/precompute.py +24 -6
- package/template/CLAUDE.md +74 -132
package/template/CLAUDE.md
CHANGED
|
@@ -19,79 +19,51 @@ Don't make users fill out forms before they can build. Let them start immediatel
|
|
|
19
19
|
|
|
20
20
|
---
|
|
21
21
|
|
|
22
|
-
##
|
|
22
|
+
## Session Startup
|
|
23
23
|
|
|
24
|
-
**
|
|
24
|
+
**Two runtimes, two paths.** JFL works in both Pi (with the JFL extension) and Claude Code (without it). The startup behavior depends on which runtime you're in.
|
|
25
25
|
|
|
26
|
-
###
|
|
26
|
+
### Path A: Pi with JFL Extension (you receive a `jfl-session-init` message)
|
|
27
27
|
|
|
28
|
-
**
|
|
28
|
+
**The extension already handled everything.** When you see a message with `customType: "jfl-session-init"`, it means:
|
|
29
|
+
- Session sync, doctor check, and Context Hub are done
|
|
30
|
+
- Auto-commit daemon is running
|
|
31
|
+
- Full project context (journals, knowledge docs, code headers) is injected into your system prompt
|
|
32
|
+
- The user already saw a boot animation while all this loaded
|
|
33
|
+
|
|
34
|
+
**DO NOT run any startup commands:**
|
|
35
|
+
- ❌ `./scripts/session/session-sync.sh`
|
|
36
|
+
- ❌ `./scripts/session/jfl-doctor.sh`
|
|
37
|
+
- ❌ `jfl_context` or `context_get`
|
|
38
|
+
- ❌ `cat .jfl/journal/*.jsonl`
|
|
39
|
+
- ❌ `/hud`
|
|
40
|
+
|
|
41
|
+
**Just greet the user naturally (3-5 lines):**
|
|
42
|
+
- What was worked on recently (from context already in your system prompt)
|
|
43
|
+
- Current phase and any blockers
|
|
44
|
+
- A suggested next action
|
|
45
|
+
|
|
46
|
+
No tool calls. No setup noise. Just talk.
|
|
47
|
+
|
|
48
|
+
### Path B: Claude Code / No Extension (you do NOT receive a `jfl-session-init` message)
|
|
49
|
+
|
|
50
|
+
**You need to initialize manually.** Complete these steps before responding:
|
|
29
51
|
|
|
30
52
|
**1. Run session sync:**
|
|
31
53
|
```bash
|
|
32
54
|
./scripts/session/session-sync.sh
|
|
33
55
|
```
|
|
34
56
|
|
|
35
|
-
**2. Run doctor check
|
|
36
|
-
|
|
37
|
-
**IMPORTANT: Skip doctor for fresh projects.** Detect fresh project:
|
|
57
|
+
**2. Run doctor check:**
|
|
38
58
|
```bash
|
|
39
|
-
|
|
40
|
-
# - No git commits yet: git rev-list --count HEAD returns 0 or error
|
|
41
|
-
# - Empty knowledge docs: VISION.md has template text
|
|
42
|
-
# - No journal entries: .jfl/journal/ is empty
|
|
43
|
-
|
|
44
|
-
# Check if fresh
|
|
45
|
-
COMMIT_COUNT=$(git rev-list --count HEAD 2>/dev/null || echo "0")
|
|
46
|
-
if [[ "$COMMIT_COUNT" -gt "5" ]]; then
|
|
47
|
-
# Existing project - run doctor
|
|
48
|
-
./scripts/session/jfl-doctor.sh
|
|
49
|
-
# Ask user before continuing
|
|
50
|
-
# If warnings: "Doctor found issues: [list]. Want me to fix these?"
|
|
51
|
-
# If clean: "Doctor check passed. Ready to continue?"
|
|
52
|
-
# STOP AND WAIT for user response
|
|
53
|
-
# If approved: ./scripts/session/jfl-doctor.sh --fix
|
|
54
|
-
else
|
|
55
|
-
# Fresh project - skip doctor
|
|
56
|
-
echo "Fresh project detected, skipping doctor check."
|
|
57
|
-
fi
|
|
59
|
+
./scripts/session/jfl-doctor.sh
|
|
58
60
|
```
|
|
59
61
|
|
|
60
|
-
**
|
|
61
|
-
**For fresh projects:** Skip directly to step 3.
|
|
62
|
-
|
|
63
|
-
**3. Get unified context via MCP (REQUIRED):**
|
|
62
|
+
**3. Get unified context:**
|
|
64
63
|
```
|
|
65
64
|
Call: mcp__jfl-context__context_get
|
|
66
65
|
```
|
|
67
|
-
|
|
68
|
-
This single call returns:
|
|
69
|
-
- Recent journal entries (what happened across sessions)
|
|
70
|
-
- Knowledge docs (vision, roadmap, narrative, thesis)
|
|
71
|
-
- Code file headers (@purpose tags)
|
|
72
|
-
|
|
73
|
-
**CRITICAL: Filter cross-project context pollution.**
|
|
74
|
-
|
|
75
|
-
Context Hub may return results from OTHER projects on the machine. ALWAYS verify context matches the current project:
|
|
76
|
-
|
|
77
|
-
1. Check the project path in journal entries
|
|
78
|
-
2. If journal paths don't match current directory, IGNORE them
|
|
79
|
-
3. If knowledge docs look like templates, this is a FRESH project
|
|
80
|
-
4. For fresh projects: Skip context_get entirely, start foundation questions
|
|
81
|
-
|
|
82
|
-
**Example of cross-project pollution (IGNORE THIS):**
|
|
83
|
-
```
|
|
84
|
-
Journal from: /Users/alectaggart/gatcha-toilet/.jfl/journal/...
|
|
85
|
-
Current project: /Users/alectaggart/case
|
|
86
|
-
→ THESE DON'T MATCH. Ignore the journal entry.
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
**For fresh projects (no commits, empty docs):**
|
|
90
|
-
- Skip context_get
|
|
91
|
-
- Skip doctor check
|
|
92
|
-
- Go straight to foundation questions (VISION, ROADMAP, etc.)
|
|
93
|
-
|
|
94
|
-
**DO NOT read individual markdown files.** The context MCP tool aggregates everything. This is why we built Context Hub.
|
|
66
|
+
This returns recent journal entries, knowledge docs, and code headers.
|
|
95
67
|
|
|
96
68
|
**4. Show recent journal entries:**
|
|
97
69
|
```bash
|
|
@@ -103,105 +75,75 @@ cat .jfl/journal/*.jsonl 2>/dev/null | tail -10
|
|
|
103
75
|
Invoke: /hud skill
|
|
104
76
|
```
|
|
105
77
|
|
|
106
|
-
This displays the full status, pipeline, tasks, and guides next action.
|
|
107
|
-
|
|
108
78
|
**ONLY AFTER completing all 5 steps**, respond to the user with the HUD output.
|
|
109
79
|
|
|
110
|
-
|
|
111
|
-
```
|
|
112
|
-
Call: mcp__jfl-context__context_search with query="your search"
|
|
113
|
-
```
|
|
80
|
+
### How to Tell Which Path You're On
|
|
114
81
|
|
|
115
|
-
|
|
82
|
+
- **Got a `jfl-session-init` message?** → Path A (extension handled it, just greet)
|
|
83
|
+
- **No such message?** → Path B (manual startup required)
|
|
116
84
|
|
|
117
|
-
|
|
85
|
+
### Automatic Tool Invocation (DURING the session, not at startup)
|
|
118
86
|
|
|
119
|
-
|
|
87
|
+
**When the user asks questions, AUTOMATICALLY use the right tool:**
|
|
120
88
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
89
|
+
| User Question | Auto-Invoke | Don't Ask |
|
|
90
|
+
|---------------|-------------|-----------|
|
|
91
|
+
| "What did we decide about X?" | `memory_search: X` | Just do it |
|
|
92
|
+
| "When did we implement Y?" | `memory_search: Y` | Just do it |
|
|
93
|
+
| "Why did we choose Z?" | `memory_search: Z decision` | Just do it |
|
|
94
|
+
| "Search for pricing" | `memory_search: pricing` | Just do it |
|
|
95
|
+
| "Show me database features" | `memory_search: database + type=feature` | Just do it |
|
|
96
|
+
| "What files have X?" | `context_search: X` | Just do it |
|
|
97
|
+
| "Find code about Y" | `context_search: Y` | Just do it |
|
|
125
98
|
|
|
126
|
-
|
|
99
|
+
**The user should NEVER have to type tool names.** You detect the intent and invoke automatically.
|
|
127
100
|
|
|
128
|
-
|
|
101
|
+
**Tool Selection Logic:**
|
|
129
102
|
|
|
130
|
-
```json
|
|
131
|
-
{
|
|
132
|
-
"working_branch": "develop"
|
|
133
|
-
}
|
|
134
103
|
```
|
|
104
|
+
if question contains ("decide", "decided", "choice", "why we"):
|
|
105
|
+
→ memory_search with type="decision"
|
|
135
106
|
|
|
136
|
-
|
|
107
|
+
if question contains ("when did we", "implemented", "built", "added"):
|
|
108
|
+
→ memory_search with type="feature"
|
|
137
109
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
When user says "done", "that's it", or "/end":
|
|
141
|
-
- Run the `/end` skill to clean up properly
|
|
142
|
-
- This commits, merges, and pushes your work
|
|
110
|
+
if question contains ("bug", "fix", "error"):
|
|
111
|
+
→ memory_search with type="fix"
|
|
143
112
|
|
|
144
|
-
|
|
113
|
+
if question contains ("learn", "insight", "discovery"):
|
|
114
|
+
→ memory_search (check learned field)
|
|
145
115
|
|
|
146
|
-
|
|
116
|
+
if question about "files" or "code":
|
|
117
|
+
→ context_search
|
|
147
118
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
- jfl-platform (product symlink target)
|
|
151
|
-
- All submodules
|
|
119
|
+
if question about "current" or "now":
|
|
120
|
+
→ context_get
|
|
152
121
|
|
|
153
|
-
|
|
122
|
+
if question about "status" or "dashboard":
|
|
123
|
+
→ /hud
|
|
154
124
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
- Work done in previous sessions is invisible
|
|
158
|
-
- User loses trust in the system
|
|
159
|
-
|
|
160
|
-
**This has happened multiple times. Do not skip the sync.**
|
|
161
|
-
|
|
162
|
-
### Verify Context is Intact
|
|
163
|
-
|
|
164
|
-
```bash
|
|
165
|
-
./scripts/session/test-context-preservation.sh
|
|
125
|
+
else:
|
|
126
|
+
→ memory_search (general - hybrid search finds relevant)
|
|
166
127
|
```
|
|
167
128
|
|
|
168
|
-
|
|
169
|
-
- Critical knowledge files exist (VISION.md, BRAND_DECISIONS.md, etc.)
|
|
170
|
-
- Product specs exist (PLATFORM_SPEC.md, TEMPLATE_SPEC.md, CONTEXT_GRAPH_SPEC.md)
|
|
171
|
-
- Git repos are in sync with remotes
|
|
172
|
-
- No uncommitted changes in knowledge/
|
|
173
|
-
|
|
174
|
-
**If tests fail, do not proceed until fixed.**
|
|
175
|
-
|
|
176
|
-
### Auto-Push on Session End
|
|
177
|
-
|
|
178
|
-
Hooks in `.claude/settings.json` automatically:
|
|
179
|
-
- Commit changes on Stop/PreCompact
|
|
180
|
-
- Push to origin
|
|
181
|
-
|
|
182
|
-
### Continuous Auto-Commit (RECOMMENDED)
|
|
129
|
+
## Session Management
|
|
183
130
|
|
|
184
|
-
|
|
131
|
+
JFL automatically manages session isolation. You don't need to worry about worktrees or CD commands — it's handled for you.
|
|
185
132
|
|
|
186
|
-
|
|
133
|
+
### How It Works
|
|
187
134
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
135
|
+
- **Single session**: You work directly on your branch (simple, fast)
|
|
136
|
+
- **Multiple sessions**: JFL creates isolated worktrees automatically (prevents conflicts)
|
|
137
|
+
- **Auto-commit**: Work is saved every 2 minutes (prevents data loss)
|
|
138
|
+
- **Auto-merge**: When you finish, work merges to your working branch automatically
|
|
191
139
|
|
|
192
|
-
|
|
193
|
-
./scripts/session/auto-commit.sh start 60
|
|
194
|
-
```
|
|
140
|
+
### Ending a Session
|
|
195
141
|
|
|
196
|
-
|
|
197
|
-
-
|
|
198
|
-
-
|
|
199
|
-
- content/
|
|
200
|
-
- suggestions/
|
|
201
|
-
- CLAUDE.md
|
|
202
|
-
- .jfl/
|
|
142
|
+
When user says "done", "that's it", or "/end":
|
|
143
|
+
- Run the `/end` skill to clean up properly
|
|
144
|
+
- This commits, merges, and pushes your work
|
|
203
145
|
|
|
204
|
-
|
|
146
|
+
If session crashes, uncommitted work is auto-saved via background auto-commit.
|
|
205
147
|
|
|
206
148
|
---
|
|
207
149
|
|