fdeops 3.23.0 → 3.26.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 CHANGED
@@ -1,12 +1,10 @@
1
1
  # FDEOps
2
2
 
3
- **Forward deployed engineering skills for AI coding agents.**
3
+ **One client record, from first meeting to handover.**
4
4
 
5
- You're on a customer site. The AI coding agent writes code in their repo. This kit is the work around that code: the brief, who can say yes, proof on their staging then live, whether they signed off, whether they can run it after you leave.
5
+ FDEOps helps a Forward Deployed Engineer or independent expert manage client work with an AI coding agent. Keep the brief, decisions, delivery evidence, acceptance, and next actions together across repositories and sessions.
6
6
 
7
- Notes stay on your laptop. Their repo stays theirs. You confirm before anything is written down.
8
-
9
- Keep the coding pack you already use. Install this next to it. FDEOps is the client work. The other pack writes the code.
7
+ One `@fde` skill guides the work. A local CLI records it in Markdown. A read-only dashboard shows one client or your portfolio. You review judgments and obtain customer approval; the tool does not decide for them.
10
8
 
11
9
  <img width="1536" height="1024" alt="fdeops" src="https://github.com/user-attachments/assets/2bcb8739-55ee-445d-8a1a-8b38433b7b58" />
12
10
 
@@ -14,13 +12,13 @@ Keep the coding pack you already use. Install this next to it. FDEOps is the cli
14
12
 
15
13
  ## Quick Start
16
14
 
17
- **Try it first, nothing installed.** In any repo:
15
+ **Inspect a repository first.** Requires Node.js 18+ and Git. Run from a local repository:
18
16
 
19
17
  ```bash
20
18
  npx fdeops scan
21
19
  ```
22
20
 
23
- Two minutes. It prints what to look at on day one and the questions to ask. Local only, nothing written.
21
+ `npx` may download the package. The scan itself reads local files, prints reconnaissance and questions, and does not write engagement records.
24
22
 
25
23
  **Then install the skill:**
26
24
 
@@ -34,9 +32,15 @@ One chat. Name the client:
34
32
  @fde this is client01
35
33
  ```
36
34
 
37
- That creates `~/fde-engagements/client01/.fde/` on your laptop. Paste kickoff notes in the same thread. `@fde` picks what to check. You still decide. After a meeting you get one screen: what changed, new asks, open questions, next actions. Confirm once.
35
+ The agent creates and binds `~/fde-engagements/client01/.fde/` to the workspace. Paste kickoff notes; review the proposed decisions, risks, and next actions before saving. If setup cannot run in your host, use `npx fdeops resume --init client01` to create the engagement and binding.
36
+
37
+ Open the engagement fieldbook anytime:
38
38
 
39
- Day to day: [docs/USAGE.md](docs/USAGE.md).
39
+ ```bash
40
+ npx fdeops dashboard --open
41
+ ```
42
+
43
+ Read-only HTML of the record - promised, measured, accepted, and evidence. Regenerate after you change memory. Day to day: [docs/USAGE.md](docs/USAGE.md).
40
44
 
41
45
  <details>
42
46
  <summary><b>Claude Code</b></summary>
@@ -46,7 +50,7 @@ Day to day: [docs/USAGE.md](docs/USAGE.md).
46
50
  /plugin install fdeops@fdeops
47
51
  ```
48
52
 
49
- Hooks resume where you left off. Slash commands match the table below.
53
+ The plugin registers Claude Code session hooks and slash commands. A skill-only install does not register hooks.
50
54
 
51
55
  </details>
52
56
 
@@ -64,10 +68,12 @@ See [adapters/](adapters/README.md).
64
68
  </details>
65
69
 
66
70
  <details>
67
- <summary><b>Air-gap, PATH, override</b></summary>
71
+ <summary><b>Clone install and offline use</b></summary>
68
72
 
69
73
  ```bash
70
- git clone https://github.com/suboss87/fdeops.git && node bin/install.js
74
+ git clone https://github.com/suboss87/fdeops.git
75
+ cd fdeops
76
+ node bin/install.js
71
77
  ```
72
78
 
73
79
  If the agent cannot create the folder:
@@ -76,7 +82,7 @@ If the agent cannot create the folder:
76
82
  npx fdeops resume --init client01 # ~/fde-engagements/client01
77
83
  ```
78
84
 
79
- Requires Node.js >= 18. Override: `FDEOPS_ENGAGEMENT`. See [docs/install.md](docs/install.md). Try the loop: `npx fdeops demo`.
85
+ For offline use, transfer the checkout first; cloning and package downloads need network access. Override: `FDEOPS_ENGAGEMENT`. See [docs/install.md](docs/install.md).
80
86
 
81
87
  </details>
82
88
 
@@ -86,7 +92,7 @@ Requires Node.js >= 18. Override: `FDEOPS_ENGAGEMENT`. See [docs/install.md](doc
86
92
 
87
93
  One command per stage. Skills load automatically.
88
94
 
89
- Six stages, same order every job: Land, Discover, Plan, Ship, Outcome, Close.
95
+ Six stages organize the engagement: Land, Discover, Plan, Ship, Outcome, Close. Start with the current situation; revisit earlier decisions when the evidence changes. Slash commands below are provided by the Claude Code plugin. In other hosts, describe the same request to `@fde`.
90
96
 
91
97
  | What you're doing | Command | Stage |
92
98
  |-------------------|---------|-------|
@@ -99,79 +105,36 @@ Six stages, same order every job: Land, Discover, Plan, Ship, Outcome, Close.
99
105
 
100
106
  Same `@fde`, when you need them: `/debrief` (notes into the record), `/prep` (one page before you walk in), `/trust` (process gap, or they stopped trusting you), `/receipts` (a dated line, or it did not happen), `/readout` (Friday page for the sponsor; not a seventh stage).
101
107
 
102
- You can also just say it: naming a client, a POC, changing their checkout, going live, asking what was agreed. A typo in a repo that is not a client job can skip this. A named client, a POC, or go-live cannot.
108
+ You can also describe the situation in plain English: a new client, a POC, an incident, a scope change, or a question about what was agreed.
103
109
 
104
110
  ---
105
111
 
106
- ## All 30 Skills
107
-
108
- Thirty situations, grouped by stage. Not prompts - each one has steps, a file it writes, and a checkpoint with you. Type English or a slash command. `@fde` opens the matching skill. You never pick one by name.
112
+ ## Your daily fieldbook
109
113
 
110
- Full detail: [docs/skills-reference.md](docs/skills-reference.md).
114
+ ![FDEOps dark dashboard showing next actions and attention gaps across three fictional clients](media/fieldbook-preview.png)
111
115
 
112
- ### Land
116
+ *Fictional client records, shown in the built-in dark theme. The report works offline.*
113
117
 
114
- | Skill | What it does | Use when |
115
- |--------|--------------|----------|
116
- | [land](skills/fde/references/land.md) | Interrogate the brief | New client, first meeting, just got the brief |
117
- | [audit](skills/fde/references/audit.md) | Verify inherited claims | Taking over, previous consultant left |
118
- | [who-decides](skills/fde/references/who-decides.md) | Map decision rights | Need to know who matters |
119
- | [earn-trust](skills/fde/references/earn-trust.md) | Earn access | Need access or credibility |
120
- | [hold-scope](skills/fde/references/hold-scope.md) | Hold scope | "Also can you…", timeline unchanged |
118
+ Read [verification results and limits](docs/verification.md) for context measurements, local-model observations, and MCP coverage.
121
119
 
122
- ### Discover
120
+ Open `npx fdeops dashboard --all --open` to review every client. Filter what needs attention, open a client, and copy **Continue next action** into your agent. After a meeting, use **Debrief notes**; before a sponsor update, use **Review outcome**. These buttons copy prompts; work runs in your agent. Review changes there and regenerate the dashboard afterward.
123
121
 
124
- | Skill | What it does | Use when |
125
- |--------|--------------|----------|
126
- | [discover](skills/fde/references/discover.md) | Frame the problem | Brief feels wrong, shadow processes |
127
- | [test-assumptions](skills/fde/references/test-assumptions.md) | Test assumptions | Brief feels too neat |
128
- | [score-use-cases](skills/fde/references/score-use-cases.md) | Score use cases | Everything is P0 |
129
- | [poc](skills/fde/references/poc.md) | Validate the solution | POC, spike, need to de-risk |
122
+ ## Try the complete loop
130
123
 
131
- ### Plan
132
-
133
- | Skill | What it does | Use when |
134
- |--------|--------------|----------|
135
- | [plan](skills/fde/references/plan.md) | Sequence the work | What order, what is done |
136
- | [business-case](skills/fde/references/business-case.md) | Build the business case | Defend budget or timeline |
137
- | [three-options](skills/fde/references/three-options.md) | Generate options | "What should we do?" |
138
- | [pick-three](skills/fde/references/pick-three.md) | Prioritize three | Everything is urgent |
139
-
140
- ### Ship
141
-
142
- | Skill | What it does | Use when |
143
- |--------|--------------|----------|
144
- | [ship](skills/fde/references/ship.md) | Deliver the increment | Building, updating, or going live |
145
- | [what-breaks](skills/fde/references/what-breaks.md) | Assess impact | Touching shared infrastructure |
146
- | [rescue](skills/fde/references/rescue.md) | Resolve the incident | Down, or they went quiet |
147
- | [review](skills/fde/references/review.md) | Review the change | Before merge, scope creep |
148
- | [rollback](skills/fde/references/rollback.md) | Rehearse rollback | "We can always revert" |
124
+ ```bash
125
+ npx fdeops demo
126
+ ```
149
127
 
150
- ### Outcome
128
+ This writes fictional records and HTML under `~/fde-engagements/.demo/`, resetting its own sandbox on each run. It requires no AI account. Open the generated report; remove the demo later with `npx fdeops demo --clean`. Follow the [five-minute walkthrough](docs/USAGE.md#new-here-5-minutes) for what to inspect.
151
129
 
152
- | Skill | What it does | Use when |
153
- |--------|--------------|----------|
154
- | [readout](skills/fde/references/readout.md) | Report the outcome | Friday, sponsor update |
155
- | [demo-prep](skills/fde/references/demo-prep.md) | Prepare the demo | Demo or exec walkthrough |
156
- | [debrief](skills/fde/references/debrief.md) | Capture the meeting | Just left a meeting |
157
- | [board-memo](skills/fde/references/board-memo.md) | Brief the board | Justify continued investment |
158
- | [dashboard](skills/fde/references/dashboard.md) | View the portfolio | All my customers |
159
- | [ingest](skills/fde/references/ingest.md) | Ingest sources | Transcript, Notion, Slack |
160
- | [connect](skills/fde/references/connect.md) | Connect a source | Connect Granola |
161
130
 
162
- ### Close
131
+ ---
163
132
 
164
- | Skill | What it does | Use when |
165
- |--------|--------------|----------|
166
- | [close](skills/fde/references/close.md) | Transfer operations | Wrapping up |
167
- | [runbook](skills/fde/references/runbook.md) | Write the runbook | They must operate without you |
168
- | [switch-clients](skills/fde/references/switch-clients.md) | Switch engagements | 2+ clients |
169
- | [encode-pattern](skills/fde/references/encode-pattern.md) | Encode the pattern | It will apply again |
170
- | [red-team](skills/fde/references/red-team.md) | Challenge the plan | "Poke holes in this" |
133
+ ## All 30 Skills
171
134
 
172
- Overlays (on signal, not on request): [ai](skills/fde/references/ai.md) · [artifacts](skills/fde/references/artifacts.md) · [fintech](skills/fde/references/fintech.md) · [healthcare](skills/fde/references/healthcare.md) · [gov](skills/fde/references/gov.md). AI companion (not a sixth overlay): [eval-pack](skills/fde/references/eval-pack.md).
135
+ Not prompts to choose from: the router loads one relevant skill with concrete steps, an artifact, and a checkpoint. The [skills reference](docs/skills-reference.md) lists all 30, from discovery and scope control to incident response and handover. Industry and AI overlays apply when relevant.
173
136
 
174
- Optional pull: you add the source MCP; we **pull** on request. [mcp/recipes/](mcp/recipes/)
137
+ Optional external sources use your configured MCP connections. The agent pulls on request, stages the material, and asks you to review its interpretation before applying it. The CLI itself stays local. See [source recipes](mcp/recipes/) and [ingest usage](docs/USAGE.md#ingest-pull-large-artifacts--same-confirm-loop).
175
138
 
176
139
  ---
177
140
 
@@ -191,13 +154,16 @@ One `@fde`. One file per situation. One folder per client.
191
154
  │ after you confirm
192
155
  ▼
193
156
  ~/fde-engagements/client01/.fde/
157
+ │
158
+ ▼
159
+ fde dashboard --open offline fieldbook (read-only snapshot)
194
160
  ```
195
161
 
196
- **A dated line, or it did not happen.** Promised → measured → accepted. If it is not in `.fde/`, it is not on the record.
162
+ **A dated line, or it did not happen.** Promised → measured → accepted, with evidence for the measurement. If it is not in `.fde/`, it is not on the record.
197
163
 
198
- **Confirm, then it is written.** The CLI stays on your laptop: git and files, no network. The AI coding agent runs the command. You say yes. Then it is in the folder.
164
+ **Review judgments before recording them.** The agent shows proposed interpretations for confirmation. Direct CLI writes execute when invoked; enabled session hooks also capture mechanical session state automatically. Recording a note does not establish customer approval.
199
165
 
200
- **The record is on your laptop.** Change hosts, install `@fde` on the new one, keep talking. The notes are not inside any vendor.
166
+ **The record is on your laptop.** Change hosts and keep the same Markdown. Claude Code plugins provide automatic session hooks; other hosts use `@fde` and CLI commands on demand. See the [install matrix](docs/install.md#who-needs-which-install).
201
167
 
202
168
  One skill hosts load: `skills/fde/SKILL.md`. It opens one file in `skills/fde/references/` and stops. Slash commands live in `.claude/commands/`. The local CLI is `bin/fde.js` (git + files, no network). Layout: [docs/REPO_LAYOUT.md](docs/REPO_LAYOUT.md).
203
169
 
@@ -212,17 +178,17 @@ One folder per client. Plain markdown. Grep it, copy it, take it into a meeting.
212
178
  | `context.md` | Where you are |
213
179
  | `brief.md` / `success.md` | What they asked; what “done” is and who signs |
214
180
  | `reality.md` / `terrain.md` | The real problem; the map |
215
- | `stakeholders.md` | `[signal:green\|amber\|red]` |
181
+ | `stakeholders.md` | `[signal:green\|amber\|red]` - worst active signal wins; empty is **new**, not green |
216
182
  | `trust-profile.md` | Sacred data, AI policy, approval chain |
217
- | `decisions.md` / `risks.md` / `delivery.md` | Dated choices; live risks; what shipped and how it rolls back |
183
+ | `decisions.md` / `risks.md` / `delivery.md` | Dated choices; live risks; what shipped, evidence, rollback, acceptance |
218
184
 
219
- Schema: [docs/schema.md](docs/schema.md). Local HTML: `npx fdeops dashboard`.
185
+ Schema: [docs/schema.md](docs/schema.md). Fieldbook: `npx fdeops dashboard --open` (bound) or `--all --open` (portfolio).
220
186
 
221
187
  ---
222
188
 
223
189
  ## Who this is for
224
190
 
225
- You sit with a customer's team. An AI coding agent writes in their repo. You need a record of the brief, who can say yes, what went live, and whether they signed off.
191
+ Forward Deployed Engineers, independent consultants, and solo agencies delivering inside customer systems. Use a separate engagement folder for each client and a workspace binding to select the right record.
226
192
 
227
193
  If you ship your own company's product from HQ, with no customer team that has to run it after you leave, you do not need this kit.
228
194
 
@@ -230,99 +196,40 @@ If you ship your own company's product from HQ, with no customer team that has t
230
196
 
231
197
  ## Your data stays yours
232
198
 
233
- The **CLI** is local: git + files, no network, no telemetry. The **host model** sees `.fde/` the agent loads (usually a bounded `context.md`) and any client code you open. It must not see `<private>` blocks - redacted from CLI, dashboard, and hooks; do not paste them or open them with file tools. Nothing is written until you confirm. `~/fde-engagements` is in `$HOME`; iCloud/Dropbox is an NDA incident waiting.
199
+ The **CLI** is local: git + files, no network, no telemetry. The **host model** sees `.fde/` the agent loads (usually a bounded `context.md`) and any client code you open. It must not see `<private>` blocks - redacted from CLI, dashboard, and hooks; do not paste them or open them with file tools. Keep the engagement folder outside cloud-sync locations unless customer policy permits that storage. Generated reports can still contain confidential information after redaction; review them before sharing.
234
200
 
235
201
  [PRIVACY.md](PRIVACY.md) · [SECURITY.md](SECURITY.md)
236
202
 
237
203
  ---
238
204
 
239
- ## Why FDEOps?
240
-
241
- AI coding agents are built for a repo, not for a client. Left alone they skip who signs, whether the brief is true, and whether anyone accepted the number. Monday they start from the ticket again.
242
-
243
- This is the kit you take on site. `@fde` runs the client work around the code. A local command dates every decision. The notes are markdown on your laptop. You confirm; then it is on the record.
244
-
245
- ---
246
-
247
205
  ## Principles
248
206
 
249
207
  - **Who signs** - name them in the first days
250
208
  - **Brief vs real job** - check the floor, not only the slide
251
209
  - **Back from done** - sequence from signed-off, not from the ticket
252
210
  - **Their staging then live** - prove it where they operate, then go live
253
- - **Promised, measured, accepted** - a number nobody signed is claimed, not delivered
211
+ - **Promised, measured, accepted** - a number nobody signed is claimed, not delivered; keep the evidence
254
212
  - **They run it** - if they cannot operate it without you, you are not done
255
213
  - **A dated line, or it did not happen** - these files get defended in the room
256
- - **One customer, one folder** - context never bleeds
214
+ - **One customer, one folder** - verify the active binding before writing
257
215
  - **The kit says what to check. You still decide.**
258
216
 
259
217
  ---
260
218
 
261
219
  ## Project Structure
262
220
 
263
- ```
264
- fdeops/
265
- ├── skills/fde/ # the one skill hosts load
266
- │ ├── SKILL.md # router
267
- │ └── references/ # 30 skills + overlays (you never pick)
268
- │ ├── land.md # Land
269
- │ ├── audit.md
270
- │ ├── who-decides.md
271
- │ ├── earn-trust.md
272
- │ ├── hold-scope.md
273
- │ ├── discover.md # Discover
274
- │ ├── test-assumptions.md
275
- │ ├── score-use-cases.md
276
- │ ├── poc.md
277
- │ ├── plan.md # Plan
278
- │ ├── business-case.md
279
- │ ├── three-options.md
280
- │ ├── pick-three.md
281
- │ ├── ship.md # Ship
282
- │ ├── what-breaks.md
283
- │ ├── rescue.md
284
- │ ├── review.md
285
- │ ├── rollback.md
286
- │ ├── readout.md # Outcome
287
- │ ├── demo-prep.md
288
- │ ├── debrief.md
289
- │ ├── board-memo.md
290
- │ ├── dashboard.md
291
- │ ├── ingest.md
292
- │ ├── connect.md
293
- │ ├── close.md # Close
294
- │ ├── runbook.md
295
- │ ├── switch-clients.md
296
- │ ├── encode-pattern.md
297
- │ ├── red-team.md
298
- │ ├── ai.md # overlays (on signal)
299
- │ ├── artifacts.md
300
- │ ├── eval-pack.md
301
- │ ├── fintech.md
302
- │ ├── healthcare.md
303
- │ └── gov.md
304
- ├── .claude/commands/ # slash commands (each loads @fde)
305
- │ ├── brief.md
306
- │ ├── discover.md
307
- │ ├── plan.md
308
- │ ├── ship.md
309
- │ ├── outcome.md
310
- │ ├── close.md
311
- │ ├── trust.md
312
- │ ├── receipts.md
313
- │ ├── debrief.md
314
- │ ├── prep.md
315
- │ └── readout.md
316
- ├── .claude-plugin/ # Claude Code marketplace
317
- ├── bin/ # local CLI: git + files, no network
318
- ├── hooks/ # session-start / session-stop / pre-compact
319
- ├── adapters/ # Cursor, Gemini, Copilot, Codex pointers
320
- ├── templates/.fde/ # memory files created on first client
321
- ├── examples/ # fictional walkthroughs
322
- ├── mcp/ # optional ingest + source recipes
323
- ├── evals/ # routing checks
324
- └── docs/ # usage, schema, install
325
- ```
221
+ | Folder | Responsibility |
222
+ |---|---|
223
+ | `skills/fde/` | One router and the delivery methodology |
224
+ | `bin/` | Local CLI, installer, and shared helpers |
225
+ | `templates/.fde/` | Client record templates |
226
+ | `adapters/` and `hooks/` | Host entry points and session integration |
227
+ | `mcp/` | Optional ingest wrapper and source recipes |
228
+ | `test/` and `evals/` | Code regressions and workflow evaluations |
229
+ | `docs/` and `examples/` | Usage, contributor guides, and fictional engagements |
230
+
231
+ See [repository layout](docs/REPO_LAYOUT.md) for where to make changes.
232
+
326
233
 
327
234
  ---
328
235
 
@@ -1,110 +1,22 @@
1
- # fdeops - Local LLM Setup
1
+ # Local models
2
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.
3
+ The FDEOps CLI and offline dashboard need Node.js and Git, not a model. AI-assisted work additionally needs a local model **and an agent host that can read files and run approved CLI commands**. A chat box with the skill pasted into its system prompt does not automatically gain those capabilities.
4
4
 
5
- ## Why it works
5
+ ## Use your existing local agent
6
6
 
7
- fdeops is a SKILL.md file + markdown memory + a Node.js CLI. It calls no external API. The AI does the skills; the CLI does the mechanics. Any model that can read a markdown system prompt can run fdeops.
7
+ 1. Download FDEOps, your agent host and your model while online. After that, the CLI operates offline. Model/provider configuration belongs to the host; FDEOps does not start or configure an inference server.
8
+ 2. From the client workspace, run `node /path/to/fdeops/bin/fde.js resume --init my-client` to create and bind a local record.
9
+ 3. Make `skills/fde/SKILL.md` and its references available to the host. Use the host's documented skill/file mechanism. Give it the FDEOps CLI path and permission to read the bound record and execute the requested commands.
10
+ 4. Start with `fde resume` and ask for the next action. Inspect the tool calls, cited records and any proposed writes before trusting the workflow.
8
11
 
9
- ## Setup
12
+ Use `fde recall <topic>` for relevant evidence. `resume` and `recall` default to a 16 KiB output ceiling; `--max-bytes 4096` requests a smaller allowance. This limits FDEOps output, not the host's entire context window. Keep unrelated transcripts and tools out of the active context. Private blocks must stay out of direct file reads as well as prompts.
10
13
 
11
- ### 1. Install fdeops (same as any other setup)
14
+ ## What compatibility means
12
15
 
13
- ```bash
14
- npx fdeops init my-client
15
- ```
16
+ - **CLI verified:** commands work without a model.
17
+ - **Transport verified:** the host can call a model or MCP server and receive a valid response.
18
+ - **Workflow verified:** that exact host/model combination selects tools, uses the correct client, preserves constraints, and returns a useful result.
16
19
 
17
- ### 2. Load the skill into your local model
20
+ These are separate checks. Model size alone does not establish quality, and FDEOps does not promise support for every model. Record the model/version, context setting, tool permissions, task, and actual outcome. Test a scope change, missing evidence and a refused approval before relying on a new model for client delivery.
18
21
 
19
- The file your model needs to read as system context:
20
-
21
- ```
22
- # If you cloned the repo:
23
- skills/fde/SKILL.md
24
-
25
- # If you ran `node bin/install.js` (also sets up hooks + adapters):
26
- ~/.claude/skills/fde/SKILL.md
27
- ```
28
-
29
- Either path works - same file. If you only want the local LLM workflow and skipped `install.js`, use the repo-local path directly.
30
-
31
- How you load it depends on your setup:
32
-
33
- | Tool | How to load |
34
- |------|-------------|
35
- | **Ollama + Open WebUI** | Paste the contents of `SKILL.md` into the system prompt field, or mount it as a file in your Modelfile |
36
- | **LM Studio** | Add `SKILL.md` path to the system prompt in chat settings |
37
- | **llama.cpp / server mode** | Pass `--system-prompt-file skills/fde/SKILL.md` |
38
- | **vLLM + chat UI** | Include as the system message in your chat template |
39
- | **Aider** | Run aider from your engagement workspace - it reads repo files including SKILL.md automatically |
40
- | **Continue.dev (VS Code)** | Add SKILL.md as a context provider in `.continue/config.json` |
41
- | **text-generation-webui** | Load SKILL.md content in the "Context" or "System prompt" tab |
42
- | **Jan.ai** | Paste into the system prompt field in assistant settings |
43
- | **GPT4All** | Add as system prompt in the model's chat configuration |
44
-
45
- ### 3. Set the engagement path
46
-
47
- Your local model needs to know where the engagement memory lives. Set the environment variable before starting your session:
48
-
49
- ```bash
50
- export FDEOPS_ENGAGEMENT=~/fde-engagements/my-client/.fde
51
- ```
52
-
53
- Or tell the model directly: "My engagement is at ~/fde-engagements/my-client/.fde"
54
-
55
- ### 4. Use it
56
-
57
- ```
58
- @fde I'm preparing for tomorrow's stakeholder meeting. The brief says payments API.
59
- ```
60
-
61
- The model reads SKILL.md, routes to the right skill, and produces artifacts in your `.fde/` folder.
62
-
63
- ## Model size recommendations
64
-
65
- The kit is detailed (30 skills, routing logic, evidence format, memory contract). Larger models handle it better:
66
-
67
- | Model class | Experience |
68
- |-------------|-----------|
69
- | **7-8B** (Llama 3.1 8B, Mistral 7B, Qwen 2.5 7B) | Handles individual skills (readout, log, land). May struggle with complex routing or multi-skill sessions. Good for the CLI-heavy workflow where you invoke skills explicitly. |
70
- | **13-34B** (Llama 3.1 13B, 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 use. |
71
- | **70B+** (Llama 3.1 405B, DeepSeek V3, Qwen 2.5 72B) | Full capability. Handles regulated overlays, switch-clients, board-memo pyramid, runbook handoff. |
72
-
73
- ## The CLI works without ANY model
74
-
75
- 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:
76
-
77
- ```bash
78
- fde scan # repo recon - hotspots, test gaps, AI components (git only)
79
- fde resume # load/create engagement memory
80
- fde log # structured append: decisions, risks, delivery, contacts
81
- fde receipts # "what did we agree?" - search memory with dates
82
- fde status # portfolio triage across all customers (red/amber/green)
83
- fde dashboard # offline HTML fieldbook across all engagements
84
- fde capture # session-end memory snapshot
85
- ```
86
-
87
- Zero network. Zero AI. Pure local Node.js reading git and markdown.
88
-
89
- ## Ollama Modelfile example
90
-
91
- ```dockerfile
92
- FROM llama3.1:70b
93
-
94
- # System prompt provided at runtime via --system flag
95
-
96
- PARAMETER temperature 0.3
97
- PARAMETER num_ctx 32768
98
- ```
99
-
100
- Then load the skill:
101
- ```bash
102
- ollama run my-fde-model --system "$(cat skills/fde/SKILL.md)"
103
- ```
104
-
105
- ## Tips for local models
106
-
107
- - **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.
108
- - **Temperature 0.2-0.4 works best.** The skills are structured - lower temperature keeps routing accurate and artifacts consistent.
109
- - **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.
110
- - **Explicit skill invocation.** If a smaller model struggles with routing, you can invoke skills directly: "@fde run the discover phase" or "@fde use hold-scope." The model skips routing and goes straight to the skill.
22
+ See [verification results](../docs/verification.md) for the combinations actually exercised. No automatic Claude session hooks are implied for local agent hosts.
package/bin/check.js CHANGED
@@ -449,9 +449,9 @@ const hookCode = hook.replace(/^[ \t]*#.*$/gm, '')
449
449
  if (!hook.includes('FDEOPS_ENGAGEMENT')) {
450
450
  fail('session-start hook must read FDEOPS_ENGAGEMENT env var')
451
451
  } else ok('hook FDEOPS_ENGAGEMENT')
452
- if (!hookCode.includes('FDEOPS_ENGAGEMENT="$ENG_DIR" fde triage') ||
453
- !hookCode.includes('FDEOPS_ENGAGEMENT="$ENG_DIR" node "$FDE_CMD" triage')) {
454
- fail('session-start must run triage with its resolved engagement')
452
+ if (!hookCode.includes('FDEOPS_ENGAGEMENT="$ENG_DIR" fde resume') ||
453
+ !hookCode.includes('FDEOPS_ENGAGEMENT="$ENG_DIR" node "$FDE_CMD" resume')) {
454
+ fail('session-start must delegate bounded context and triage to resume with its resolved engagement')
455
455
  }
456
456
  // Token discipline: SessionStart must not dump the full skill (L1 progressive disclosure).
457
457
  // Strip comments before scanning for a real `cat …SKILL.md` / BOOTSTRAP inject.