fdeops 3.15.1 → 3.16.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/AGENTS.md +1 -1
- package/README.md +132 -93
- package/adapters/AGENTS.md +2 -2
- package/adapters/GEMINI.md +2 -2
- package/adapters/LOCAL-LLM.md +3 -3
- package/adapters/README.md +1 -1
- package/adapters/copilot-instructions.md +2 -2
- package/adapters/cursor.fde.mdc +3 -3
- package/bin/check.js +66 -14
- package/bin/fde.js +16 -16
- package/bin/lib/memory.js +1 -1
- package/bin/lib/render.js +1 -1
- package/bin/lib/trust.js +1 -1
- package/mcp/README.md +3 -3
- package/mcp/fdeops-ingest/README.md +8 -8
- package/mcp/fdeops-ingest/package.json +1 -1
- package/mcp/fdeops-ingest/server.js +1 -1
- package/mcp/recipes/README.md +3 -3
- package/mcp/recipes/file.md +1 -1
- package/mcp/recipes/granola.md +5 -5
- package/mcp/recipes/notion.md +2 -2
- package/mcp/recipes/slack.md +5 -5
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/skills/fde/SKILL.md +52 -39
- package/skills/fde/references/ai.md +9 -9
- package/skills/fde/references/{exec-narrative.md → board-memo.md} +1 -1
- package/skills/fde/references/business-case.md +5 -5
- package/skills/fde/references/close.md +5 -5
- package/skills/fde/references/{ingest-connect.md → connect.md} +7 -7
- package/skills/fde/references/debrief.md +2 -2
- package/skills/fde/references/discover.md +8 -8
- package/skills/fde/references/{trust-engineering.md → earn-trust.md} +2 -2
- package/skills/fde/references/{pattern-extract.md → encode-pattern.md} +1 -1
- package/skills/fde/references/eval-pack.md +6 -6
- package/skills/fde/references/{scope-defense.md → hold-scope.md} +4 -4
- package/skills/fde/references/ingest.md +16 -16
- package/skills/fde/references/land.md +10 -10
- package/skills/fde/references/{initiative-triage.md → pick-three.md} +7 -7
- package/skills/fde/references/plan.md +9 -9
- package/skills/fde/references/{sketch.md → poc.md} +4 -4
- package/skills/fde/references/{status.md → readout.md} +10 -10
- package/skills/fde/references/red-team.md +2 -2
- package/skills/fde/references/rescue.md +1 -1
- package/skills/fde/references/review.md +7 -7
- package/skills/fde/references/{rollback-drill.md → rollback.md} +1 -1
- package/skills/fde/references/{handoff-engineering.md → runbook.md} +5 -5
- package/skills/fde/references/{use-case-scoring.md → score-use-cases.md} +4 -4
- package/skills/fde/references/ship.md +16 -16
- package/skills/fde/references/{multi-customer-ops.md → switch-clients.md} +2 -2
- package/skills/fde/references/{assumption-audit.md → test-assumptions.md} +3 -3
- package/skills/fde/references/{incremental-build.md → thin-slices.md} +22 -13
- package/skills/fde/references/{options-analysis.md → three-options.md} +3 -3
- package/skills/fde/references/{blast-radius.md → what-breaks.md} +4 -4
- package/skills/fde/references/{stakeholder-radar.md → who-decides.md} +5 -5
- package/templates/.fde/assumptions.md +1 -1
package/AGENTS.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# AGENTS.md - working in the fdeops repository
|
|
2
2
|
|
|
3
|
-
This repository **is** fdeops
|
|
3
|
+
This repository **is** fdeops - the engagement record for Forward Deployed Engineers. One `@fde` skill, the `fde` CLI for deterministic work, and per-customer memory in `.fde/` as a side effect of the work (you still confirm judgment).
|
|
4
4
|
|
|
5
5
|
## If you are helping use fdeops in an engagement
|
|
6
6
|
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
**Forward deployed engineering skills for AI coding agents.**
|
|
4
4
|
|
|
5
|
-
Skills encode the workflows, quality gates, and judgment Forward Deployed Engineers use on someone else's site. Packaged so an AI coding agent
|
|
5
|
+
Skills encode the workflows, quality gates, and judgment Forward Deployed Engineers use on someone else's site. Packaged so an AI coding agent can run the embed end-to-end: discovery, POC, slice, on-site proof, eval, signed outcome. The workspace still compiles and commits. `@fde` does not leave.
|
|
6
6
|
|
|
7
7
|
```text
|
|
8
8
|
LAND DISCOVER PLAN SHIP PROVE CLOSE
|
|
@@ -10,27 +10,35 @@ Skills encode the workflows, quality gates, and judgment Forward Deployed Engine
|
|
|
10
10
|
│ Brief │ ───▶ │ Reality│ ───▶ │ Sequence│───▶ │ Live │ ───▶ │ Signed │ ───▶ │ They │
|
|
11
11
|
│ Trust │ │ Terrain│ │ Align │ │ slice │ │ off │ │ run │
|
|
12
12
|
└────────┘ └────────┘ └────────┘ └────────┘ └────────┘ └────────┘
|
|
13
|
-
/brief /discover /plan /ship
|
|
13
|
+
/brief /discover /plan /ship /outcome /close
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
18
18
|
## Commands
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
Each command loads the same `@fde` skill. You never pick from 31 names.
|
|
21
21
|
|
|
22
22
|
| What you're doing | Command | Key principle |
|
|
23
23
|
|-------------------|---------|-----------|
|
|
24
|
-
| Land the embed | `/brief` |
|
|
24
|
+
| Land the embed | `/brief` | Who signs done |
|
|
25
25
|
| Find the real problem | `/discover` | Brief is a hypothesis |
|
|
26
26
|
| Plan the sequence | `/plan` | Backwards from done |
|
|
27
|
-
| Ship a slice | `/ship` |
|
|
28
|
-
| Prove
|
|
29
|
-
| Close the embed | `/close` | They
|
|
27
|
+
| Ship a slice | `/ship` | Live with a rollback |
|
|
28
|
+
| Prove the outcome | `/outcome` | Promised, measured, accepted |
|
|
29
|
+
| Close the embed | `/close` | They run it without you |
|
|
30
30
|
|
|
31
|
-
Also:
|
|
31
|
+
Also:
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
| What you're doing | Command | Key principle |
|
|
34
|
+
|-------------------|---------|-----------|
|
|
35
|
+
| Sponsor went silent | `/trust` | Process or trust |
|
|
36
|
+
| Scope dispute | `/receipts` | Dated, or a gap |
|
|
37
|
+
| After a meeting | `/debrief` | Notes into the record |
|
|
38
|
+
| Walk-in | `/prep` | One page from the record |
|
|
39
|
+
| Friday readout | `/readout` | Promised, measured, accepted |
|
|
40
|
+
|
|
41
|
+
Skills also activate on English: naming a client, running a POC, slicing a feature, asking what was agreed. A throwaway one-liner in an unbound repo can skip `@fde`. A client slice cannot.
|
|
34
42
|
|
|
35
43
|
---
|
|
36
44
|
|
|
@@ -67,7 +75,7 @@ Hooks load where you left off. Slash commands match the map above.
|
|
|
67
75
|
npx skills add suboss87/fdeops --skill fde
|
|
68
76
|
```
|
|
69
77
|
|
|
70
|
-
Or `npx fdeops adapters
|
|
78
|
+
Or `npx fdeops adapters .`. See [adapters/](adapters/README.md).
|
|
71
79
|
|
|
72
80
|
</details>
|
|
73
81
|
|
|
@@ -86,7 +94,7 @@ Fallback if the agent cannot bind:
|
|
|
86
94
|
npx fdeops resume --init acme # ~/fde-engagements/acme + bind this checkout
|
|
87
95
|
```
|
|
88
96
|
|
|
89
|
-
Requires Node.js >= 18. Override: `FDEOPS_ENGAGEMENT
|
|
97
|
+
Requires Node.js >= 18. Override: `FDEOPS_ENGAGEMENT`. See [docs/install.md](docs/install.md). Try the loop: `npx fdeops demo`.
|
|
90
98
|
|
|
91
99
|
</details>
|
|
92
100
|
|
|
@@ -94,7 +102,7 @@ Requires Node.js >= 18. Override: `FDEOPS_ENGAGEMENT` — [docs/install.md](docs
|
|
|
94
102
|
|
|
95
103
|
## All 31 Skills
|
|
96
104
|
|
|
97
|
-
The commands above are the entry points. Under the hood, `@fde` activates these 31 skills
|
|
105
|
+
The commands above are the entry points. Under the hood, `@fde` activates these 31 skills, each a structured workflow with steps, an artifact, and a checkpoint. You never pick one by name. Full detail: [docs/skills-reference.md](docs/skills-reference.md).
|
|
98
106
|
|
|
99
107
|
### Land - Brief and trust
|
|
100
108
|
|
|
@@ -102,18 +110,18 @@ The commands above are the entry points. Under the hood, `@fde` activates these
|
|
|
102
110
|
|--------|--------------|----------|
|
|
103
111
|
| [land](skills/fde/references/land.md) | Interrogate the brief, map stakeholders, define success | New client, first meeting, just got the brief |
|
|
104
112
|
| [audit](skills/fde/references/audit.md) | Verify claims, find the load-bearing wall | Taking over, previous consultant left |
|
|
105
|
-
| [
|
|
106
|
-
| [trust
|
|
107
|
-
| [scope
|
|
113
|
+
| [who-decides](skills/fde/references/who-decides.md) | Who decides, who blocks, who escalates | Need to know who matters |
|
|
114
|
+
| [earn-trust](skills/fde/references/earn-trust.md) | Observer → trusted; navigate AI policy | Need access or credibility |
|
|
115
|
+
| [hold-scope](skills/fde/references/hold-scope.md) | Scope receipts; the accumulation conversation | "Also can you…", timeline unchanged |
|
|
108
116
|
|
|
109
117
|
### Discover - Find the real problem
|
|
110
118
|
|
|
111
119
|
| Skill | What It Does | Use When |
|
|
112
120
|
|--------|--------------|----------|
|
|
113
121
|
| [discover](skills/fde/references/discover.md) | Repo + workaround + the real problem | Brief feels wrong, shadow processes |
|
|
114
|
-
| [
|
|
115
|
-
| [use-
|
|
116
|
-
| [
|
|
122
|
+
| [test-assumptions](skills/fde/references/test-assumptions.md) | Untested assumptions by blast radius | Brief feels too neat |
|
|
123
|
+
| [score-use-cases](skills/fde/references/score-use-cases.md) | Value × urgency × alignment / complexity | Everything is P0 |
|
|
124
|
+
| [poc](skills/fde/references/poc.md) | Kill the killer assumption in a day | POC, spike, need to de-risk |
|
|
117
125
|
|
|
118
126
|
### Plan - Sequence the work
|
|
119
127
|
|
|
@@ -121,40 +129,40 @@ The commands above are the entry points. Under the hood, `@fde` activates these
|
|
|
121
129
|
|--------|--------------|----------|
|
|
122
130
|
| [plan](skills/fde/references/plan.md) | Backwards from done, PR-sized | What order, what is done |
|
|
123
131
|
| [business-case](skills/fde/references/business-case.md) | Cost of nothing → investment → return | Defend budget or timeline |
|
|
124
|
-
| [options
|
|
125
|
-
| [
|
|
132
|
+
| [three-options](skills/fde/references/three-options.md) | Three genuine options | "What should we do?" |
|
|
133
|
+
| [pick-three](skills/fde/references/pick-three.md) | Pick three from twenty urgents | Everything is urgent |
|
|
126
134
|
|
|
127
135
|
### Ship - Go live
|
|
128
136
|
|
|
129
137
|
| Skill | What It Does | Use When |
|
|
130
138
|
|--------|--------------|----------|
|
|
131
|
-
| [
|
|
132
|
-
| [
|
|
139
|
+
| [thin-slices](skills/fde/references/thin-slices.md) | Vertical slices, on-site proof | Building on their codebase |
|
|
140
|
+
| [what-breaks](skills/fde/references/what-breaks.md) | Impact from contained → irreversible | Touching shared infrastructure |
|
|
133
141
|
| [rescue](skills/fde/references/rescue.md) | Production fire or trust fire | Down, or they went quiet |
|
|
134
142
|
| [ship](skills/fde/references/ship.md) | Intent vs diff, pre-flight, rollback | Going live |
|
|
135
143
|
| [review](skills/fde/references/review.md) | Did we only build what we agreed | Before merge, scope creep |
|
|
136
|
-
| [rollback
|
|
144
|
+
| [rollback](skills/fde/references/rollback.md) | Test the escape route before 2am | "We can always revert" |
|
|
137
145
|
|
|
138
|
-
### Prove -
|
|
146
|
+
### Prove - Outcome
|
|
139
147
|
|
|
140
148
|
| Skill | What It Does | Use When |
|
|
141
149
|
|--------|--------------|----------|
|
|
142
|
-
| [
|
|
150
|
+
| [readout](skills/fde/references/readout.md) | Promised → measured → accepted | Friday, sponsor update |
|
|
143
151
|
| [demo-prep](skills/fde/references/demo-prep.md) | One number, five hard questions | Demo or exec walkthrough |
|
|
144
152
|
| [debrief](skills/fde/references/debrief.md) | Meeting notes into the record | Just left a meeting |
|
|
145
|
-
| [
|
|
153
|
+
| [board-memo](skills/fde/references/board-memo.md) | Board / sponsor's boss | Justify continued investment |
|
|
146
154
|
| [dashboard](skills/fde/references/dashboard.md) | Portfolio, trust-ordered | All my customers |
|
|
147
155
|
| [ingest](skills/fde/references/ingest.md) | Pull text you confirm | Transcript, Notion, Slack |
|
|
148
|
-
| [
|
|
156
|
+
| [connect](skills/fde/references/connect.md) | Wire a source MCP | Connect Granola |
|
|
149
157
|
|
|
150
158
|
### Close - They run it
|
|
151
159
|
|
|
152
160
|
| Skill | What It Does | Use When |
|
|
153
161
|
|--------|--------------|----------|
|
|
154
162
|
| [close](skills/fde/references/close.md) | Handoff that survives you | Wrapping up |
|
|
155
|
-
| [
|
|
156
|
-
| [
|
|
157
|
-
| [pattern
|
|
163
|
+
| [runbook](skills/fde/references/runbook.md) | Runbook, confidence scoring | They must operate without you |
|
|
164
|
+
| [switch-clients](skills/fde/references/switch-clients.md) | Switch without bleed | 2+ clients |
|
|
165
|
+
| [encode-pattern](skills/fde/references/encode-pattern.md) | If you did it twice, encode it | It will apply again |
|
|
158
166
|
| [red-team](skills/fde/references/red-team.md) | Stress-test before they do | "Poke holes in this" |
|
|
159
167
|
|
|
160
168
|
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) · [eval-pack](skills/fde/references/eval-pack.md)
|
|
@@ -165,32 +173,31 @@ Optional pull: you add the source MCP; we **pull** on request. [mcp/recipes/](mc
|
|
|
165
173
|
|
|
166
174
|
## How Skills Work
|
|
167
175
|
|
|
168
|
-
|
|
176
|
+
One skill. One reference file per situation. One folder per client.
|
|
169
177
|
|
|
170
178
|
```
|
|
171
|
-
|
|
172
|
-
│
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
│
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
│
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
references/<skill>.md fde CLI (local)
|
|
185
|
-
one file, then stop dating, gates, redaction
|
|
179
|
+
/brief or "@fde this is Acme"
|
|
180
|
+
│
|
|
181
|
+
▼
|
|
182
|
+
skills/fde/SKILL.md hosts load this one file
|
|
183
|
+
│ routes. you never pick a skill by name
|
|
184
|
+
▼
|
|
185
|
+
references/land.md one workflow, then stop
|
|
186
|
+
│
|
|
187
|
+
▼
|
|
188
|
+
fde CLI (local) dates, gates, redacts. no network
|
|
189
|
+
│ after you confirm
|
|
190
|
+
▼
|
|
191
|
+
~/fde-engagements/<client>/.fde/
|
|
186
192
|
```
|
|
187
193
|
|
|
188
|
-
- **Process, not prose.**
|
|
194
|
+
- **Process, not prose.** Each reference is a workflow with an artifact and a checkpoint, not a tip sheet.
|
|
195
|
+
- **Ground loop.** Name → characterise → prove where they live → log. The workspace compiles; `@fde` stays.
|
|
189
196
|
- **You confirm.** Nothing is written until you say so.
|
|
190
|
-
- **Progressive disclosure.**
|
|
191
|
-
- **Local CLI.** Writes
|
|
197
|
+
- **Progressive disclosure.** `SKILL.md` is the entry point. One `references/*.md` loads when routed.
|
|
198
|
+
- **Local CLI.** Writes and status cost zero model tokens. The AI coding agent runs it.
|
|
192
199
|
|
|
193
|
-
|
|
200
|
+
Change hosts, install `@fde` on the new one, bind if needed, keep talking. The record is not inside any vendor.
|
|
194
201
|
|
|
195
202
|
---
|
|
196
203
|
|
|
@@ -198,41 +205,76 @@ The record lives at `~/fde-engagements/<client>/.fde/` — not inside any vendor
|
|
|
198
205
|
|
|
199
206
|
```
|
|
200
207
|
fdeops/
|
|
201
|
-
├── skills/fde/
|
|
202
|
-
│ ├── SKILL.md
|
|
203
|
-
│ └── references/
|
|
204
|
-
├── .
|
|
205
|
-
├── .
|
|
206
|
-
├──
|
|
207
|
-
├──
|
|
208
|
-
├──
|
|
209
|
-
├──
|
|
210
|
-
├──
|
|
211
|
-
├──
|
|
212
|
-
├──
|
|
213
|
-
├──
|
|
214
|
-
|
|
208
|
+
├── skills/fde/ # the one skill hosts load
|
|
209
|
+
│ ├── SKILL.md # router
|
|
210
|
+
│ └── references/ # 31 skills + overlays (you never pick)
|
|
211
|
+
│ ├── land.md # Land
|
|
212
|
+
│ ├── audit.md
|
|
213
|
+
│ ├── who-decides.md
|
|
214
|
+
│ ├── earn-trust.md
|
|
215
|
+
│ ├── hold-scope.md
|
|
216
|
+
│ ├── discover.md # Discover
|
|
217
|
+
│ ├── test-assumptions.md
|
|
218
|
+
│ ├── score-use-cases.md
|
|
219
|
+
│ ├── poc.md
|
|
220
|
+
│ ├── plan.md # Plan
|
|
221
|
+
│ ├── business-case.md
|
|
222
|
+
│ ├── three-options.md
|
|
223
|
+
│ ├── pick-three.md
|
|
224
|
+
│ ├── thin-slices.md # Ship
|
|
225
|
+
│ ├── what-breaks.md
|
|
226
|
+
│ ├── rescue.md
|
|
227
|
+
│ ├── ship.md
|
|
228
|
+
│ ├── review.md
|
|
229
|
+
│ ├── rollback.md
|
|
230
|
+
│ ├── readout.md # Prove
|
|
231
|
+
│ ├── demo-prep.md
|
|
232
|
+
│ ├── debrief.md
|
|
233
|
+
│ ├── board-memo.md
|
|
234
|
+
│ ├── dashboard.md
|
|
235
|
+
│ ├── ingest.md
|
|
236
|
+
│ ├── connect.md
|
|
237
|
+
│ ├── close.md # Close
|
|
238
|
+
│ ├── runbook.md
|
|
239
|
+
│ ├── switch-clients.md
|
|
240
|
+
│ ├── encode-pattern.md
|
|
241
|
+
│ ├── red-team.md
|
|
242
|
+
│ ├── ai.md # overlays (on signal)
|
|
243
|
+
│ ├── artifacts.md
|
|
244
|
+
│ ├── eval-pack.md
|
|
245
|
+
│ ├── fintech.md
|
|
246
|
+
│ ├── healthcare.md
|
|
247
|
+
│ └── gov.md
|
|
248
|
+
├── .claude/commands/ # slash commands (each loads @fde)
|
|
249
|
+
│ ├── brief.md
|
|
250
|
+
│ ├── discover.md
|
|
251
|
+
│ ├── plan.md
|
|
252
|
+
│ ├── ship.md
|
|
253
|
+
│ ├── outcome.md
|
|
254
|
+
│ ├── close.md
|
|
255
|
+
│ ├── trust.md
|
|
256
|
+
│ ├── receipts.md
|
|
257
|
+
│ ├── debrief.md
|
|
258
|
+
│ ├── prep.md
|
|
259
|
+
│ └── readout.md
|
|
260
|
+
├── .claude-plugin/ # Claude Code marketplace
|
|
261
|
+
├── bin/ # local CLI: git + files, no network
|
|
262
|
+
├── hooks/ # session-start / session-stop / pre-compact
|
|
263
|
+
├── adapters/ # Cursor, Gemini, Copilot, Codex pointers
|
|
264
|
+
├── templates/.fde/ # memory files created on bind
|
|
265
|
+
├── examples/ # fictional walkthroughs
|
|
266
|
+
├── mcp/ # optional ingest + source recipes
|
|
267
|
+
├── evals/ # routing checks
|
|
268
|
+
└── docs/ # usage, schema, install
|
|
215
269
|
```
|
|
216
270
|
|
|
217
271
|
---
|
|
218
272
|
|
|
219
273
|
## Why FDEOps?
|
|
220
274
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
The most common failure on an embed is building the portal they asked for. Ops has been running a spreadsheet for two years. `/brief` then `/discover` — who in their company would have to agree it worked?
|
|
224
|
-
|
|
225
|
-
### 2. They went quiet
|
|
275
|
+
AI coding agents are built for a repo, not for a client. They forget the sponsor, the promise, who can say yes, and whether anyone accepted the number. Monday morning they start from the ticket again.
|
|
226
276
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
### 3. When did we agree?
|
|
230
|
-
|
|
231
|
-
Arguments from memory lose. `/agreed` searches dated receipts. No hit is a gap, not proof.
|
|
232
|
-
|
|
233
|
-
### 4. What did they get?
|
|
234
|
-
|
|
235
|
-
A number only you agree with is claimed, not delivered. `/got` reads promised → measured → accepted out loud.
|
|
277
|
+
FDEOps is what you take on site. One `@fde` skill runs the embed from discovery to signed outcome: POC, slice, on-site proof, eval when a model judges, promised → measured → accepted. A local CLI dates every decision. `.fde/` is markdown on your laptop. You confirm; then it is on the record.
|
|
236
278
|
|
|
237
279
|
---
|
|
238
280
|
|
|
@@ -255,19 +297,15 @@ Schema: [docs/schema.md](docs/schema.md). Local HTML: `npx fdeops dashboard`.
|
|
|
255
297
|
|
|
256
298
|
## Who this is for
|
|
257
299
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
| **Consultant / contractor on site** | The engagement stops resetting every morning |
|
|
262
|
-
| **Solutions architect** | Politics and architecture in the same record |
|
|
263
|
-
| **Agency, 3–5 clients** | One `.fde/` each — they stop blurring |
|
|
264
|
-
| **Fractional CTO on client work** | System of record for the embed, and the billable trail |
|
|
300
|
+
You embed with a customer and an AI coding agent. Take this on the ground. Discovery through signed outcome lives in `@fde`. One `.fde/` per client so they do not blur.
|
|
301
|
+
|
|
302
|
+
If you only write code in your own repo with no client record to defend, you do not need this kit.
|
|
265
303
|
|
|
266
304
|
---
|
|
267
305
|
|
|
268
306
|
## Your data stays yours
|
|
269
307
|
|
|
270
|
-
Local only
|
|
308
|
+
Local only - `git` + files, no network, no telemetry. Plain markdown. The model sees client code only when you point the AI coding agent at it. `<private>` is redacted from CLI, dashboard, and hooks. Nothing is written until you confirm. `~/fde-engagements` is in `$HOME`; iCloud/Dropbox is an NDA incident waiting.
|
|
271
309
|
|
|
272
310
|
[PRIVACY.md](PRIVACY.md) · [SECURITY.md](SECURITY.md)
|
|
273
311
|
|
|
@@ -275,20 +313,21 @@ Local only — `git` + files, no network, no telemetry. Plain markdown. The mode
|
|
|
275
313
|
|
|
276
314
|
## Principles
|
|
277
315
|
|
|
278
|
-
- **The artifact is the memory**
|
|
279
|
-
- **
|
|
280
|
-
- **
|
|
281
|
-
- **
|
|
282
|
-
- **
|
|
316
|
+
- **The artifact is the memory** - producing the work and recording it are one action
|
|
317
|
+
- **Ground loop** - name the slice, characterise their code, prove it where they live, log the outcome
|
|
318
|
+
- **Skills, not autonomy** - the kit says what to check; judgment stays yours
|
|
319
|
+
- **Brief is a hypothesis** - discover before building the wrong thing
|
|
320
|
+
- **Evidence on every claim** - these files get defended in the room
|
|
321
|
+
- **One customer, one folder** - context never bleeds
|
|
283
322
|
|
|
284
323
|
---
|
|
285
324
|
|
|
286
325
|
## Contributing
|
|
287
326
|
|
|
288
|
-
**[Subash Natarajan](https://www.linkedin.com/in/subashn/)**. [Issues](https://github.com/suboss87/fdeops/issues) · [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
327
|
+
**[Subash Natarajan](https://www.linkedin.com/in/subashn/)**. [Issues](https://github.com/suboss87/fdeops/issues) · [Discussions](https://github.com/suboss87/fdeops/discussions) · [CONTRIBUTING.md](CONTRIBUTING.md) · [Code of Conduct](CODE_OF_CONDUCT.md)
|
|
289
328
|
|
|
290
329
|
Skills should be **specific** (actionable steps), **verifiable** (an artifact in `.fde/`), and **minimal**. The `fde` CLI stays local-only.
|
|
291
330
|
|
|
292
331
|
## License
|
|
293
332
|
|
|
294
|
-
MIT
|
|
333
|
+
MIT - use these skills on client work.
|
package/adapters/AGENTS.md
CHANGED
|
@@ -4,9 +4,9 @@ You are the AI coding agent for a **Forward Deployed Engineer (FDE)** - the huma
|
|
|
4
4
|
|
|
5
5
|
## Entry
|
|
6
6
|
|
|
7
|
-
When the FDE types **`@fde`**, names a client, pastes meeting notes, asks what was agreed, or describes embed work (quiet sponsor, brief feels wrong, Friday update)
|
|
7
|
+
When the FDE types **`@fde`**, names a client, pastes meeting notes, asks what was agreed, or describes embed work (quiet sponsor, brief feels wrong, Friday update) - load the skill. If `fde resume` says NO ENGAGEMENT: ask the client name once, then **you** run `fde resume --init <slug>`. Never tell them to type it.
|
|
8
8
|
|
|
9
|
-
Do **not** load `@fde` for
|
|
9
|
+
Do **not** load `@fde` for a one-line typo in an unbound repo. On a bound client, stay on `@fde` for POC, slices, characterisation, on-site proof, eval, and go-live.
|
|
10
10
|
|
|
11
11
|
- Skill (single source of truth): `~/.claude/skills/fde/SKILL.md`
|
|
12
12
|
- **Never ask the FDE to pick a skill.** Read the situation, route silently, do the work.
|
package/adapters/GEMINI.md
CHANGED
|
@@ -4,9 +4,9 @@ Context for Gemini CLI when assisting a **Forward Deployed Engineer (FDE)** - th
|
|
|
4
4
|
|
|
5
5
|
## Entry
|
|
6
6
|
|
|
7
|
-
When the FDE types **`@fde`**, names a client, pastes meeting notes, asks what was agreed, or describes embed work (quiet sponsor, brief feels wrong, Friday update)
|
|
7
|
+
When the FDE types **`@fde`**, names a client, pastes meeting notes, asks what was agreed, or describes embed work (quiet sponsor, brief feels wrong, Friday update) - load the skill. If `fde resume` says NO ENGAGEMENT: ask the client name once, then **you** run `fde resume --init <slug>`. Never tell them to type it.
|
|
8
8
|
|
|
9
|
-
Do **not** load `@fde` for
|
|
9
|
+
Do **not** load `@fde` for a one-line typo in an unbound repo. On a bound client, stay on `@fde` for POC, slices, characterisation, on-site proof, eval, and go-live.
|
|
10
10
|
|
|
11
11
|
- Skill (single source of truth): `~/.claude/skills/fde/SKILL.md`
|
|
12
12
|
- **Never ask the FDE to pick a skill.** Read the situation, route silently, do the work.
|
package/adapters/LOCAL-LLM.md
CHANGED
|
@@ -66,9 +66,9 @@ The methodology is detailed (31 skills, routing logic, evidence format, memory c
|
|
|
66
66
|
|
|
67
67
|
| Model class | Experience |
|
|
68
68
|
|-------------|-----------|
|
|
69
|
-
| **7-8B** (Llama 3.1 8B, Mistral 7B, Qwen 2.5 7B) | Handles individual skills (
|
|
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
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 methodology use. |
|
|
71
|
-
| **70B+** (Llama 3.1 405B, DeepSeek V3, Qwen 2.5 72B) | Full capability. Handles regulated overlays,
|
|
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
72
|
|
|
73
73
|
## The CLI works without ANY model
|
|
74
74
|
|
|
@@ -107,4 +107,4 @@ ollama run my-fde-model --system "$(cat skills/fde/SKILL.md)"
|
|
|
107
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
108
|
- **Temperature 0.2-0.4 works best.** The methodology is structured - lower temperature keeps routing accurate and artifacts consistent.
|
|
109
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 scope
|
|
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 method.
|
package/adapters/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
**One brain, thin adapters.** fdeops has a single source of truth - the `@fde` skill at `skills/fde/SKILL.md` and the `fde` CLI. Each AI coding tool discovers it through a small pointer file in the place that tool already looks. No forked logic, no five copies to maintain - every adapter says the same thing: *route via `@fde`, read/write `.fde/` memory, talk like a peer, never touch what isn't yours.*
|
|
4
4
|
|
|
5
|
-
**Switching tools:** the fieldbook does not live in the agent. It lives at `~/fde-engagements/<client>/.fde/`. Point a new tool at a bound workspace, drop adapters (or install the skill/plugin for that tool), and the same client record opens. Auto session hooks are Claude Code
|
|
5
|
+
**Switching tools:** the fieldbook does not live in the agent. It lives at `~/fde-engagements/<client>/.fde/`. Point a new tool at a bound workspace, drop adapters (or install the skill/plugin for that tool), and the same client record opens. Auto session hooks are Claude Code-first; elsewhere load via `@fde` / `fde resume`. See [README § How it works](../README.md#how-it-works).
|
|
6
6
|
|
|
7
7
|
## What goes where
|
|
8
8
|
|
|
@@ -4,9 +4,9 @@ You are the AI coding agent for a **Forward Deployed Engineer (FDE)** - the huma
|
|
|
4
4
|
|
|
5
5
|
## Entry
|
|
6
6
|
|
|
7
|
-
When the FDE types **`@fde`**, names a client, pastes meeting notes, asks what was agreed, or describes embed work (quiet sponsor, brief feels wrong, Friday update)
|
|
7
|
+
When the FDE types **`@fde`**, names a client, pastes meeting notes, asks what was agreed, or describes embed work (quiet sponsor, brief feels wrong, Friday update) - load the skill. If `fde resume` says NO ENGAGEMENT: ask the client name once, then **you** run `fde resume --init <slug>`. Never tell them to type it.
|
|
8
8
|
|
|
9
|
-
Do **not** load `@fde` for
|
|
9
|
+
Do **not** load `@fde` for a one-line typo in an unbound repo. On a bound client, stay on `@fde` for POC, slices, characterisation, on-site proof, eval, and go-live.
|
|
10
10
|
|
|
11
11
|
- Skill (single source of truth): `~/.claude/skills/fde/SKILL.md`
|
|
12
12
|
- **Never ask the FDE to pick a skill.** Read the situation, route silently, do the work.
|
package/adapters/cursor.fde.mdc
CHANGED
|
@@ -9,9 +9,9 @@ You are the AI coding agent for a **Forward Deployed Engineer (FDE)** - the huma
|
|
|
9
9
|
|
|
10
10
|
## Entry
|
|
11
11
|
|
|
12
|
-
When the FDE types **`@fde`**, names a client, pastes meeting notes, asks what was agreed, or describes embed work (quiet sponsor, brief feels wrong, Friday update)
|
|
12
|
+
When the FDE types **`@fde`**, names a client, pastes meeting notes, asks what was agreed, or describes embed work (quiet sponsor, brief feels wrong, Friday update) - load `@fde`. If `fde resume` says NO ENGAGEMENT: ask the client name once, then **you** run `fde resume --init <slug>`. Never tell them to type it.
|
|
13
13
|
|
|
14
|
-
Do **not** load `@fde` for
|
|
14
|
+
Do **not** load `@fde` for a one-line typo in an unbound repo. On a bound client, stay on `@fde` for POC, slices, characterisation, on-site proof, eval, and go-live.
|
|
15
15
|
|
|
16
16
|
- Skill (single source of truth): `~/.claude/skills/fde/SKILL.md` (or the copy this install placed)
|
|
17
17
|
- **Never ask the FDE to pick a skill.** Read the situation, route silently, do the work.
|
|
@@ -21,7 +21,7 @@ Do **not** load `@fde` for ordinary code edits, unit tests, refactors, or git co
|
|
|
21
21
|
|
|
22
22
|
Read and write engagement files under the workspace's bound engagement: run `fde resume` to resolve it (binding created once with `fde resume --init <name>`; default `~/fde-engagements/<name>/.fde/`). `FDEOPS_ENGAGEMENT` (expand `~`) overrides when set. Use `./.fde/` only when the engagement approves it and it is gitignored.
|
|
23
23
|
|
|
24
|
-
**On every session entry (before other work):** run `fde triage` (fallback `node ~/.claude/fdeops/fde.js triage`, then `fde resume`). Lead with that TRIAGE block
|
|
24
|
+
**On every session entry (before other work):** run `fde triage` (fallback `node ~/.claude/fdeops/fde.js triage`, then `fde resume`). Lead with that TRIAGE block - trust, phase, open risks, next action, record owner/hash. Do not invent stakeholders or status.
|
|
25
25
|
|
|
26
26
|
You run the CLI for deterministic work - `fde scan | log | debrief | prep | doctor | receipts | status | dashboard` - instead of improvising shell or handing commands to the human.
|
|
27
27
|
|