fdeops 3.5.3 → 3.5.4

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 CHANGED
@@ -29,7 +29,7 @@ flowchart LR
29
29
  I --> J["Next session\nloads automatically"]
30
30
  ```
31
31
 
32
- Works with **Claude Code** · **Cursor** · **Copilot** · **Devin** · **Gemini CLI** · any agent that reads SKILL.md
32
+ Works with **Claude Code** · **Cursor** · **Copilot** · **Devin** · **Gemini CLI** · **Ollama** · **LM Studio** · any model that reads SKILL.md
33
33
 
34
34
  <p align="center"><strong>The CLI</strong></p>
35
35
  <p align="center"><img src="media/terminal-demo.svg" alt="fde CLI - status, scan, dashboard" width="720"/></p>
@@ -56,10 +56,10 @@ Works with **Claude Code** · **Cursor** · **Copilot** · **Devin** · **Gemini
56
56
 
57
57
  | | **Without fdeops** | **With fdeops** |
58
58
  |---|-------------------|----------------|
59
- | **Monday morning** | Re-paste last week's context, explain the stakeholders again | Agent opens with "last session you were on the ingest retry CTO demo is Friday" |
60
- | **Scope creep** | Five "small" additions absorbed silently, timeline slips | Receipts timestamped you walk into the sponsor meeting with evidence |
59
+ | **Monday morning** | Re-paste last week's context, explain the stakeholders again | Agent opens with "last session you were on the ingest retry - CTO demo is Friday" |
60
+ | **Scope creep** | Five "small" additions absorbed silently, timeline slips | Receipts timestamped - you walk into the sponsor meeting with evidence |
61
61
  | **Multiple customers** | Wrong client name in a status update, details blur | One folder per customer, context-switch protocol, cross-contamination checklist |
62
- | **The sponsor meeting** | "We completed the API endpoint" | "Manual reconciliation dropped from 3 FTEs to 0.5 here's the rollback if it turns" |
62
+ | **The sponsor meeting** | "We completed the API endpoint" | "Manual reconciliation dropped from 3 FTEs to 0.5 - here's the rollback if it turns" |
63
63
 
64
64
  ---
65
65
 
@@ -88,11 +88,11 @@ export FDEOPS_ENGAGEMENT=~/fde-engagements/my-client/.fde
88
88
  The agent routes to `land` and starts thinking with you:
89
89
 
90
90
  ```
91
- Brief says payments API but nobody named who owns the budget for this
91
+ Brief says payments API - but nobody named who owns the budget for this
92
92
  work. That's your first question tomorrow. And the brief has no
93
93
  out-of-scope section, which means scope creep is pre-authorised.
94
94
 
95
- Watch for the internal dev who got passed over for this contract if
95
+ Watch for the internal dev who got passed over for this contract - if
96
96
  there is one, you want them on your side before the first standup.
97
97
  Also: what does failure look like to the sponsor personally, not the
98
98
  project charter? That answer shapes everything.
@@ -110,9 +110,9 @@ Day 15, the memory has compounded:
110
110
  ```
111
111
  Last session you were finishing the ingest retry on staging. CTO demo
112
112
  is Friday and status hasn't gone out since Tuesday. The finance
113
- controller still hasn't seen a working demo that's a risk.
113
+ controller still hasn't seen a working demo - that's a risk.
114
114
 
115
- Globex has been quiet for 3 days trust signal amber.
115
+ Globex has been quiet for 3 days - trust signal amber.
116
116
 
117
117
  I'd send the CTO status first, then finish the retry, then check in
118
118
  on Globex before end of day. What do you want to tackle?
@@ -139,9 +139,12 @@ npx fdeops adapters ~/fde-engagements/my-client
139
139
  | Gemini CLI | `GEMINI.md` |
140
140
  | Cursor | `.cursor/rules/fde.mdc` |
141
141
  | GitHub Copilot | `.github/copilot-instructions.md` |
142
+ | **Local LLMs** (Ollama, LM Studio, llama.cpp, vLLM) | Load `SKILL.md` as system prompt |
142
143
 
143
144
  Each adapter points at the same `@fde` skill, so the methodology and memory stay consistent across tools. Details: [`adapters/`](adapters/README.md).
144
145
 
146
+ > **No cloud dependency.** fdeops calls no external API. The AI skill is a markdown file your model reads. The CLI is local Node.js. Works fully offline, fully air-gapped, fully private. See [`adapters/LOCAL-LLM.md`](adapters/LOCAL-LLM.md) for local model setup.
147
+
145
148
  ---
146
149
 
147
150
  ## How it works
@@ -160,7 +163,7 @@ Each adapter points at the same `@fde` skill, so the methodology and memory stay
160
163
 
161
164
  ---
162
165
 
163
- ## The 6 domains 34 skills + 5 overlays
166
+ ## The 6 domains - 34 skills + 5 overlays
164
167
 
165
168
  | Domain | Skills | What it covers |
166
169
  |--------|--------|---------------|
@@ -0,0 +1,106 @@
1
+ # fdeops - Local LLM Setup
2
+
3
+ Use fdeops with **any local model** - Ollama, LM Studio, llama.cpp, vLLM, Open WebUI, or any inference server that accepts a system prompt.
4
+
5
+ ## Why it works
6
+
7
+ fdeops is a SKILL.md file + markdown memory + a Node.js CLI. It calls no external API. The AI does the methodology; the CLI does the mechanics. Any model that can read a markdown system prompt can run fdeops.
8
+
9
+ ## Setup
10
+
11
+ ### 1. Install fdeops (same as any other setup)
12
+
13
+ ```bash
14
+ npx fdeops init my-client
15
+ ```
16
+
17
+ ### 2. Load the skill into your local model
18
+
19
+ The file your model needs to read as system context:
20
+
21
+ ```
22
+ ~/.claude/skills/fde/SKILL.md
23
+ ```
24
+
25
+ How you load it depends on your setup:
26
+
27
+ | Tool | How to load |
28
+ |------|-------------|
29
+ | **Ollama + Open WebUI** | Paste the contents of `SKILL.md` into the system prompt field, or mount it as a file in your Modelfile |
30
+ | **LM Studio** | Add `SKILL.md` path to the system prompt in chat settings |
31
+ | **llama.cpp / server mode** | Pass `--system-prompt-file ~/.claude/skills/fde/SKILL.md` |
32
+ | **vLLM + chat UI** | Include as the system message in your chat template |
33
+ | **Aider** | Run aider from your engagement workspace - it reads repo files including SKILL.md automatically |
34
+ | **Continue.dev (VS Code)** | Add SKILL.md as a context provider in `.continue/config.json` |
35
+ | **text-generation-webui** | Load SKILL.md content in the "Context" or "System prompt" tab |
36
+ | **Jan.ai** | Paste into the system prompt field in assistant settings |
37
+ | **GPT4All** | Add as system prompt in the model's chat configuration |
38
+
39
+ ### 3. Set the engagement path
40
+
41
+ Your local model needs to know where the engagement memory lives. Set the environment variable before starting your session:
42
+
43
+ ```bash
44
+ export FDEOPS_ENGAGEMENT=~/fde-engagements/my-client/.fde
45
+ ```
46
+
47
+ Or tell the model directly: "My engagement is at ~/fde-engagements/my-client/.fde"
48
+
49
+ ### 4. Use it
50
+
51
+ ```
52
+ @fde I'm preparing for tomorrow's stakeholder meeting. The brief says payments API.
53
+ ```
54
+
55
+ The model reads SKILL.md, routes to the right skill, and produces artifacts in your `.fde/` folder.
56
+
57
+ ## Model size recommendations
58
+
59
+ The methodology is detailed (34 skills, routing logic, evidence format, memory contract). Larger models handle it better:
60
+
61
+ | Model class | Experience |
62
+ |-------------|-----------|
63
+ | **7-8B** (Llama 3.1 8B, Mistral 7B, Qwen 2.5 7B) | Handles individual skills (status, log, land). May struggle with complex routing or multi-skill sessions. Good for the CLI-heavy workflow where you invoke skills explicitly. |
64
+ | **13-34B** (Llama 3.1 70B-Q4, Mixtral 8x7B, Qwen 2.5 32B, DeepSeek-R1 32B) | Good across all domains. Routes correctly, follows memory contract, writes structured artifacts. Recommended minimum for full methodology use. |
65
+ | **70B+** (Llama 3.1 405B, DeepSeek V3, Qwen 2.5 72B) | Full capability. Handles regulated overlays, multi-customer ops, exec-narrative pyramid structure, complex handoff engineering. |
66
+
67
+ ## The CLI works without ANY model
68
+
69
+ Even if you can't run a local model (or you're at a regulated client with no AI permitted), the `fde` CLI gives you the deterministic tooling:
70
+
71
+ ```bash
72
+ fde scan # repo recon - hotspots, test gaps, AI components (git only)
73
+ fde resume # load/create engagement memory
74
+ fde log # structured append: decisions, risks, delivery, contacts
75
+ fde receipts # "what did we agree?" - search memory with dates
76
+ fde status # portfolio triage across all customers (red/amber/green)
77
+ fde dashboard # offline HTML fieldbook across all engagements
78
+ fde capture # session-end memory snapshot
79
+ ```
80
+
81
+ Zero network. Zero AI. Pure local Node.js reading git and markdown.
82
+
83
+ ## Ollama Modelfile example
84
+
85
+ ```dockerfile
86
+ FROM llama3.1:70b
87
+
88
+ SYSTEM """
89
+ {{- .SystemPrompt -}}
90
+ """
91
+
92
+ PARAMETER temperature 0.3
93
+ PARAMETER num_ctx 32768
94
+ ```
95
+
96
+ Then load the skill:
97
+ ```bash
98
+ ollama run my-fde-model --system "$(cat ~/.claude/skills/fde/SKILL.md)"
99
+ ```
100
+
101
+ ## Tips for local models
102
+
103
+ - **Context window matters.** SKILL.md + references can be large. Use a model with at least 8K context; 32K+ is ideal for loading skill references on demand.
104
+ - **Temperature 0.2-0.4 works best.** The methodology is structured - lower temperature keeps routing accurate and artifacts consistent.
105
+ - **Use the CLI for mechanics.** Don't ask the model to do what the CLI already does deterministically. Use `fde scan` for repo recon, `fde log` for memory writes, `fde receipts` for searching. Let the model handle judgment, routing, and artifact drafting.
106
+ - **Explicit skill invocation.** If a smaller model struggles with routing, you can invoke skills directly: "@fde run the discover phase" or "@fde use scope-defense." The model skips routing and goes straight to the method.
@@ -11,8 +11,9 @@
11
11
  | Gemini CLI | `GEMINI.md` | `GEMINI.md` |
12
12
  | Cursor | `.cursor/rules/fde.mdc` | `cursor.fde.mdc` |
13
13
  | GitHub Copilot | `.github/copilot-instructions.md` | `copilot-instructions.md` |
14
+ | Local LLMs (Ollama, LM Studio, llama.cpp, vLLM) | Load `SKILL.md` as system prompt | [`LOCAL-LLM.md`](LOCAL-LLM.md) (guide) |
14
15
 
15
- `AGENTS.md` is the emerging cross-tool standard - many agents read it, so it doubles as the universal fallback.
16
+ `AGENTS.md` is the emerging cross-tool standard - many agents read it, so it doubles as the universal fallback. For local/self-hosted models, see [`LOCAL-LLM.md`](LOCAL-LLM.md).
16
17
 
17
18
  ## Install them in one command
18
19
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fdeops",
3
- "version": "3.5.3",
3
+ "version": "3.5.4",
4
4
  "description": "Field kit for engineers embedded in client work - a real CLI (recon, memory, portfolio), one @fde skill with field judgment on top, and hooks that make it automatic. Claude Code plugin and any agent that loads skills.",
5
5
  "bin": {
6
6
  "fdeops": "bin/install.js",
@@ -38,7 +38,10 @@
38
38
  "codex",
39
39
  "gemini-cli",
40
40
  "copilot",
41
- "agents-md"
41
+ "agents-md",
42
+ "ollama",
43
+ "local-llm",
44
+ "lm-studio"
42
45
  ],
43
46
  "repository": {
44
47
  "type": "git",