fdeops 3.5.2 → 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
@@ -20,7 +20,7 @@ flowchart LR
20
20
  B --> F["Build & Guard"]
21
21
  B --> G["Ship & Verify"]
22
22
  B --> H["Operate & Close"]
23
- C --> I[".fde/ memory\n(auto-written)"]
23
+ C --> I[".fde/ memory\n(written as you work)"]
24
24
  D --> I
25
25
  E --> I
26
26
  F --> I
@@ -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>
@@ -48,7 +48,7 @@ Works with **Claude Code** · **Cursor** · **Copilot** · **Devin** · **Gemini
48
48
  | **Agency engineer running 3-5 clients** | Client details blur together. One `.fde/` per customer, never cross-contaminated. |
49
49
  | **Forward Deployed Engineer** | The role this was built for. 34 skills across the full engagement lifecycle. |
50
50
  | **Technical founder doing client work solo** | You ARE the team. The agent becomes your second brain. |
51
- | **Enterprise programme lead** | Running AI transformations? Built-in methods for model selection, agent safety, governance, and cost management. |
51
+ | **Enterprise programme lead** | Leading AI transformations? Built-in methods for model selection, agent safety, governance, and cost management. |
52
52
 
53
53
  ---
54
54
 
@@ -56,10 +56,10 @@ Works with **Claude Code** · **Cursor** · **Copilot** · **Devin** · **Gemini
56
56
 
57
57
  | | **Without fdeops** | **With fdeops** |
58
58
  |---|-------------------|----------------|
59
- | **Memory** | Re-paste context every session | `.fde/` writes itself - next session starts where today ended |
60
- | **Discovery** | Agent treats the brief as the task | Agent scans churn, test gaps, "temporary" code; hands you the real problem with evidence |
61
- | **Multiple customers** | Details blur between clients | One folder per customer, auto-loaded, never merged |
62
- | **The output** | Advice you already knew | An artifact you carry into the sponsor meeting |
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
+ | **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" |
63
63
 
64
64
  ---
65
65
 
@@ -67,75 +67,92 @@ Works with **Claude Code** · **Cursor** · **Copilot** · **Devin** · **Gemini
67
67
 
68
68
  **Requires:** [Node.js](https://nodejs.org) >= 18
69
69
 
70
- ```bash
71
- # Option A: Skills CLI (any agent)
72
- npx skills add suboss87/fdeops
73
-
74
- # Option B: Clone + install
75
- git clone https://github.com/suboss87/fdeops.git
76
- cd fdeops && node bin/install.js
77
- ```
70
+ ### 1. Install and create your first engagement
78
71
 
79
- Start your first engagement:
80
72
  ```bash
81
- node bin/install.js init my-client
82
- # or: npx fdeops init my-client (engagement memory at ~/fde-engagements/my-client/.fde/)
73
+ npx fdeops init my-client # creates engagement memory at ~/fde-engagements/my-client/.fde/
83
74
  ```
84
75
 
85
- Point the AI coding agent at it:
76
+ ### 2. Point your AI agent at it
77
+
86
78
  ```bash
87
79
  export FDEOPS_ENGAGEMENT=~/fde-engagements/my-client/.fde
88
80
  ```
89
81
 
90
- Then talk to your agent:
82
+ ### 3. Start working
83
+
91
84
  ```
92
85
  @fde I'm on site. First stakeholder meeting tomorrow. Brief says fix the payments API.
93
86
  ```
94
87
 
95
- The system routes to `land` and starts working:
88
+ The agent routes to `land` and starts thinking with you:
89
+
90
+ ```
91
+ Brief says payments API - but nobody named who owns the budget for this
92
+ work. That's your first question tomorrow. And the brief has no
93
+ out-of-scope section, which means scope creep is pre-authorised.
94
+
95
+ Watch for the internal dev who got passed over for this contract - if
96
+ there is one, you want them on your side before the first standup.
97
+ Also: what does failure look like to the sponsor personally, not the
98
+ project charter? That answer shapes everything.
99
+
100
+ I'll draft brief.md, success.md, stakeholders.md, trust-profile.md
101
+ after you come back with notes.
102
+ ```
103
+
104
+ Day 15, the memory has compounded:
105
+
106
+ ```
107
+ @fde What's the priority today?
96
108
  ```
97
- Routing to: land (first engagement, day 1)
98
109
 
99
- Before tomorrow's meeting, I need to understand a few things:
110
+ ```
111
+ Last session you were finishing the ingest retry on staging. CTO demo
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.
100
114
 
101
- 1. Who owns the budget for this work? (the brief doesn't say)
102
- 2. What's NOT in scope? (undefined scope = unlimited scope)
103
- 3. Is there an internal dev who was passed over for this work?
104
- 4. What's their AI policy? (do they know I'm an AI agent?)
115
+ Globex has been quiet for 3 days - trust signal amber.
105
116
 
106
- Writing: brief.md, success.md, stakeholders.md, trust-profile.md
107
- Next: bring answers from the meeting, then we discover the real problem.
117
+ I'd send the CTO status first, then finish the retry, then check in
118
+ on Globex before end of day. What do you want to tackle?
108
119
  ```
109
120
 
110
- That's it. The system takes over from there.
121
+ That's the difference. Day 1: it coaches your preparation. Day 15: it picks up where yesterday ended and triages across customers.
111
122
 
112
- ### Use it in any tool
123
+ > **Other install methods:** `npx skills add suboss87/fdeops` (Skills CLI) or `git clone https://github.com/suboss87/fdeops.git && cd fdeops && node bin/install.js` (manual).
124
+
125
+ ---
126
+
127
+ ## Works with any AI coding tool
113
128
 
114
129
  One skill file powers every tool. Install adapters for your setup:
115
130
 
116
131
  ```bash
117
- node bin/install.js adapters ~/fde-engagements/my-client
118
- # or: npx fdeops@latest adapters ~/fde-engagements/my-client
132
+ npx fdeops adapters ~/fde-engagements/my-client
119
133
  ```
120
134
 
121
- | Tool | Pointer file it reads |
122
- |------|-----------------------|
123
- | Claude Code | plugin + `~/.claude/FDEOPS-CLAUDE.md` |
135
+ | Tool | What it reads |
136
+ |------|--------------|
137
+ | Claude Code | Plugin + `~/.claude/FDEOPS-CLAUDE.md` |
124
138
  | Codex / OpenAI / generic | `AGENTS.md` |
125
139
  | Gemini CLI | `GEMINI.md` |
126
140
  | Cursor | `.cursor/rules/fde.mdc` |
127
141
  | GitHub Copilot | `.github/copilot-instructions.md` |
142
+ | **Local LLMs** (Ollama, LM Studio, llama.cpp, vLLM) | Load `SKILL.md` as system prompt |
128
143
 
129
144
  Each adapter points at the same `@fde` skill, so the methodology and memory stay consistent across tools. Details: [`adapters/`](adapters/README.md).
130
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
+
131
148
  ---
132
149
 
133
150
  ## How it works
134
151
 
135
152
  ```text
136
153
  YOU (human) AI CODING AGENT (software)
137
- meetings, judgment @fde routes -> right skill -> does the work
138
- | -----> .fde/ memory (self-writing)
154
+ meetings, judgment @fde routes -> right skill -> drafts the artifact
155
+ | -----> .fde/ memory (written as you work)
139
156
  | |
140
157
  +---------------> client workspace (code, VPN, tickets)
141
158
  ```
@@ -146,14 +163,14 @@ Each adapter points at the same `@fde` skill, so the methodology and memory stay
146
163
 
147
164
  ---
148
165
 
149
- ## The 6 domains 34 skills + 5 overlays
166
+ ## The 6 domains - 34 skills + 5 overlays
150
167
 
151
168
  | Domain | Skills | What it covers |
152
169
  |--------|--------|---------------|
153
170
  | **Embed & Trust** | land, audit, stakeholder-radar, trust-engineering, scope-defense | First days: access, credibility, scope |
154
171
  | **Discover & Diagnose** | discover, assumption-audit, use-case-scoring, sketch | Finding the real problem behind the brief |
155
172
  | **Plan & Align** | plan, business-case, options-analysis, initiative-triage | Sequencing work, getting sponsor alignment |
156
- | **Build & Guard** | build, incremental-build, test-on-legacy, blast-radius, debug, rescue, security-audit, observability | Safe implementation on their codebase |
173
+ | **Build & Guard** | build, incremental-build, test-on-legacy, blast-radius, debug, rescue, security-audit, observability | Helping you build safely on their codebase |
157
174
  | **Ship & Verify** | ship, review, rollback-drill, qa-live | Getting to production without surprises |
158
175
  | **Operate & Close** | status, demo-prep, debrief, exec-narrative, dashboard, multi-customer-ops, close, handoff-engineering, pattern-extract | Running and ending the engagement well |
159
176
 
@@ -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.2",
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",