fdeops 3.15.2 → 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.
Files changed (37) hide show
  1. package/README.md +42 -41
  2. package/adapters/LOCAL-LLM.md +3 -3
  3. package/bin/check.js +10 -10
  4. package/mcp/README.md +1 -1
  5. package/mcp/fdeops-ingest/package.json +1 -1
  6. package/mcp/recipes/README.md +1 -1
  7. package/package.json +1 -1
  8. package/plugin.json +1 -1
  9. package/skills/fde/SKILL.md +22 -22
  10. package/skills/fde/references/ai.md +1 -1
  11. package/skills/fde/references/{exec-narrative.md → board-memo.md} +1 -1
  12. package/skills/fde/references/business-case.md +2 -2
  13. package/skills/fde/references/{ingest-connect.md → connect.md} +1 -1
  14. package/skills/fde/references/discover.md +1 -1
  15. package/skills/fde/references/{trust-engineering.md → earn-trust.md} +1 -1
  16. package/skills/fde/references/{pattern-extract.md → encode-pattern.md} +1 -1
  17. package/skills/fde/references/eval-pack.md +1 -1
  18. package/skills/fde/references/{scope-defense.md → hold-scope.md} +2 -2
  19. package/skills/fde/references/ingest.md +3 -3
  20. package/skills/fde/references/land.md +2 -2
  21. package/skills/fde/references/{initiative-triage.md → pick-three.md} +1 -1
  22. package/skills/fde/references/plan.md +3 -3
  23. package/skills/fde/references/{sketch.md → poc.md} +1 -1
  24. package/skills/fde/references/{status.md → readout.md} +2 -2
  25. package/skills/fde/references/rescue.md +1 -1
  26. package/skills/fde/references/review.md +1 -1
  27. package/skills/fde/references/{rollback-drill.md → rollback.md} +1 -1
  28. package/skills/fde/references/{handoff-engineering.md → runbook.md} +3 -3
  29. package/skills/fde/references/{use-case-scoring.md → score-use-cases.md} +3 -3
  30. package/skills/fde/references/ship.md +1 -1
  31. package/skills/fde/references/{multi-customer-ops.md → switch-clients.md} +1 -1
  32. package/skills/fde/references/{assumption-audit.md → test-assumptions.md} +1 -1
  33. package/skills/fde/references/{incremental-build.md → thin-slices.md} +2 -2
  34. package/skills/fde/references/{options-analysis.md → three-options.md} +1 -1
  35. package/skills/fde/references/{blast-radius.md → what-breaks.md} +3 -3
  36. package/skills/fde/references/{stakeholder-radar.md → who-decides.md} +1 -1
  37. package/templates/.fde/assumptions.md +1 -1
package/README.md CHANGED
@@ -28,14 +28,15 @@ Each command loads the same `@fde` skill. You never pick from 31 names.
28
28
  | Prove the outcome | `/outcome` | Promised, measured, accepted |
29
29
  | Close the embed | `/close` | They run it without you |
30
30
 
31
- Four tells the map does not cover:
31
+ Also:
32
32
 
33
33
  | What you're doing | Command | Key principle |
34
34
  |-------------------|---------|-----------|
35
- | Sponsor went silent | `/quiet` | Process or trust |
36
- | Scope dispute | `/agreed` | Dated receipts, or a gap |
35
+ | Sponsor went silent | `/trust` | Process or trust |
36
+ | Scope dispute | `/receipts` | Dated, or a gap |
37
37
  | After a meeting | `/debrief` | Notes into the record |
38
- | Walk-in / Friday | `/prep` `/status` | One page, then the ledger |
38
+ | Walk-in | `/prep` | One page from the record |
39
+ | Friday readout | `/readout` | Promised, measured, accepted |
39
40
 
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.
41
42
 
@@ -109,18 +110,18 @@ The commands above are the entry points. Under the hood, `@fde` activates these
109
110
  |--------|--------------|----------|
110
111
  | [land](skills/fde/references/land.md) | Interrogate the brief, map stakeholders, define success | New client, first meeting, just got the brief |
111
112
  | [audit](skills/fde/references/audit.md) | Verify claims, find the load-bearing wall | Taking over, previous consultant left |
112
- | [stakeholder-radar](skills/fde/references/stakeholder-radar.md) | Who decides, who blocks, who escalates | Need to know who matters |
113
- | [trust-engineering](skills/fde/references/trust-engineering.md) | Observer → trusted; navigate AI policy | Need access or credibility |
114
- | [scope-defense](skills/fde/references/scope-defense.md) | Scope receipts; the accumulation conversation | "Also can you…", timeline unchanged |
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 |
115
116
 
116
117
  ### Discover - Find the real problem
117
118
 
118
119
  | Skill | What It Does | Use When |
119
120
  |--------|--------------|----------|
120
121
  | [discover](skills/fde/references/discover.md) | Repo + workaround + the real problem | Brief feels wrong, shadow processes |
121
- | [assumption-audit](skills/fde/references/assumption-audit.md) | Untested assumptions by blast radius | Brief feels too neat |
122
- | [use-case-scoring](skills/fde/references/use-case-scoring.md) | Value × urgency × alignment / complexity | Everything is P0 |
123
- | [sketch](skills/fde/references/sketch.md) | Kill the killer assumption in a day | POC, spike, need to de-risk |
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 |
124
125
 
125
126
  ### Plan - Sequence the work
126
127
 
@@ -128,40 +129,40 @@ The commands above are the entry points. Under the hood, `@fde` activates these
128
129
  |--------|--------------|----------|
129
130
  | [plan](skills/fde/references/plan.md) | Backwards from done, PR-sized | What order, what is done |
130
131
  | [business-case](skills/fde/references/business-case.md) | Cost of nothing → investment → return | Defend budget or timeline |
131
- | [options-analysis](skills/fde/references/options-analysis.md) | Three genuine options | "What should we do?" |
132
- | [initiative-triage](skills/fde/references/initiative-triage.md) | Pick three from twenty urgents | Everything is urgent |
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 |
133
134
 
134
135
  ### Ship - Go live
135
136
 
136
137
  | Skill | What It Does | Use When |
137
138
  |--------|--------------|----------|
138
- | [incremental-build](skills/fde/references/incremental-build.md) | Vertical slices, on-site proof | Building on their codebase |
139
- | [blast-radius](skills/fde/references/blast-radius.md) | Impact from contained → irreversible | Touching shared infrastructure |
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 |
140
141
  | [rescue](skills/fde/references/rescue.md) | Production fire or trust fire | Down, or they went quiet |
141
142
  | [ship](skills/fde/references/ship.md) | Intent vs diff, pre-flight, rollback | Going live |
142
143
  | [review](skills/fde/references/review.md) | Did we only build what we agreed | Before merge, scope creep |
143
- | [rollback-drill](skills/fde/references/rollback-drill.md) | Test the escape route before 2am | "We can always revert" |
144
+ | [rollback](skills/fde/references/rollback.md) | Test the escape route before 2am | "We can always revert" |
144
145
 
145
146
  ### Prove - Outcome
146
147
 
147
148
  | Skill | What It Does | Use When |
148
149
  |--------|--------------|----------|
149
- | [status](skills/fde/references/status.md) | Promised → measured → accepted | Friday, sponsor update |
150
+ | [readout](skills/fde/references/readout.md) | Promised → measured → accepted | Friday, sponsor update |
150
151
  | [demo-prep](skills/fde/references/demo-prep.md) | One number, five hard questions | Demo or exec walkthrough |
151
152
  | [debrief](skills/fde/references/debrief.md) | Meeting notes into the record | Just left a meeting |
152
- | [exec-narrative](skills/fde/references/exec-narrative.md) | Board / sponsor's boss | Justify continued investment |
153
+ | [board-memo](skills/fde/references/board-memo.md) | Board / sponsor's boss | Justify continued investment |
153
154
  | [dashboard](skills/fde/references/dashboard.md) | Portfolio, trust-ordered | All my customers |
154
155
  | [ingest](skills/fde/references/ingest.md) | Pull text you confirm | Transcript, Notion, Slack |
155
- | [ingest-connect](skills/fde/references/ingest-connect.md) | Wire a source MCP | Connect Granola |
156
+ | [connect](skills/fde/references/connect.md) | Wire a source MCP | Connect Granola |
156
157
 
157
158
  ### Close - They run it
158
159
 
159
160
  | Skill | What It Does | Use When |
160
161
  |--------|--------------|----------|
161
162
  | [close](skills/fde/references/close.md) | Handoff that survives you | Wrapping up |
162
- | [handoff-engineering](skills/fde/references/handoff-engineering.md) | Runbook, confidence scoring | They must operate without you |
163
- | [multi-customer-ops](skills/fde/references/multi-customer-ops.md) | Switch without bleed | 2+ clients |
164
- | [pattern-extract](skills/fde/references/pattern-extract.md) | If you did it twice, encode it | It will apply again |
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 |
165
166
  | [red-team](skills/fde/references/red-team.md) | Stress-test before they do | "Poke holes in this" |
166
167
 
167
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)
@@ -209,34 +210,34 @@ fdeops/
209
210
  │ └── references/ # 31 skills + overlays (you never pick)
210
211
  │ ├── land.md # Land
211
212
  │ ├── audit.md
212
- │ ├── stakeholder-radar.md
213
- │ ├── trust-engineering.md
214
- │ ├── scope-defense.md
213
+ │ ├── who-decides.md
214
+ │ ├── earn-trust.md
215
+ │ ├── hold-scope.md
215
216
  │ ├── discover.md # Discover
216
- │ ├── assumption-audit.md
217
- │ ├── use-case-scoring.md
218
- │ ├── sketch.md
217
+ │ ├── test-assumptions.md
218
+ │ ├── score-use-cases.md
219
+ │ ├── poc.md
219
220
  │ ├── plan.md # Plan
220
221
  │ ├── business-case.md
221
- │ ├── options-analysis.md
222
- │ ├── initiative-triage.md
223
- │ ├── incremental-build.md # Ship
224
- │ ├── blast-radius.md
222
+ │ ├── three-options.md
223
+ │ ├── pick-three.md
224
+ │ ├── thin-slices.md # Ship
225
+ │ ├── what-breaks.md
225
226
  │ ├── rescue.md
226
227
  │ ├── ship.md
227
228
  │ ├── review.md
228
- │ ├── rollback-drill.md
229
- │ ├── status.md # Prove
229
+ │ ├── rollback.md
230
+ │ ├── readout.md # Prove
230
231
  │ ├── demo-prep.md
231
232
  │ ├── debrief.md
232
- │ ├── exec-narrative.md
233
+ │ ├── board-memo.md
233
234
  │ ├── dashboard.md
234
235
  │ ├── ingest.md
235
- │ ├── ingest-connect.md
236
+ │ ├── connect.md
236
237
  │ ├── close.md # Close
237
- │ ├── handoff-engineering.md
238
- │ ├── multi-customer-ops.md
239
- │ ├── pattern-extract.md
238
+ │ ├── runbook.md
239
+ │ ├── switch-clients.md
240
+ │ ├── encode-pattern.md
240
241
  │ ├── red-team.md
241
242
  │ ├── ai.md # overlays (on signal)
242
243
  │ ├── artifacts.md
@@ -251,11 +252,11 @@ fdeops/
251
252
  │ ├── ship.md
252
253
  │ ├── outcome.md
253
254
  │ ├── close.md
254
- │ ├── quiet.md
255
- │ ├── agreed.md
255
+ │ ├── trust.md
256
+ │ ├── receipts.md
256
257
  │ ├── debrief.md
257
258
  │ ├── prep.md
258
- │ └── status.md
259
+ │ └── readout.md
259
260
  ├── .claude-plugin/ # Claude Code marketplace
260
261
  ├── bin/ # local CLI: git + files, no network
261
262
  ├── hooks/ # session-start / session-stop / pre-compact
@@ -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 (status, log, land). May struggle with complex routing or multi-skill sessions. Good for the CLI-heavy workflow where you invoke skills explicitly. |
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, multi-customer ops, exec-narrative pyramid structure, complex handoff engineering. |
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-defense." The model skips routing and goes straight to the method.
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/bin/check.js CHANGED
@@ -63,8 +63,8 @@ if (fs.existsSync(path.join(root, 'skills', 'fde', 'archive'))) {
63
63
  // v3: one skill + phase references (progressive disclosure)
64
64
  const requiredReferences = [
65
65
  'land.md', 'discover.md', 'audit.md', 'plan.md', 'review.md',
66
- 'rescue.md', 'ship.md', 'sketch.md', 'close.md', 'dashboard.md',
67
- 'debrief.md', 'status.md', 'demo-prep.md',
66
+ 'rescue.md', 'ship.md', 'poc.md', 'close.md', 'dashboard.md',
67
+ 'debrief.md', 'readout.md', 'demo-prep.md',
68
68
  'healthcare.md', 'fintech.md', 'gov.md',
69
69
  'ai.md', 'eval-pack.md',
70
70
  ]
@@ -84,8 +84,8 @@ ok('phase references')
84
84
  // file the work lands in. Prose-only guidance drifts into advice nobody can apply.
85
85
  const exampleReferences = [
86
86
  'land.md', 'discover.md', 'plan.md', 'ship.md', 'close.md',
87
- 'status.md', 'stakeholder-radar.md', 'options-analysis.md', 'business-case.md',
88
- 'assumption-audit.md', 'scope-defense.md',
87
+ 'readout.md', 'who-decides.md', 'three-options.md', 'business-case.md',
88
+ 'test-assumptions.md', 'hold-scope.md',
89
89
  ]
90
90
  for (const f of exampleReferences) {
91
91
  const p = path.join(root, 'skills', 'fde', 'references', f)
@@ -115,7 +115,7 @@ for (const refFile of mentioned) {
115
115
  ok(`router dispatch (${mentioned.length} reference targets verified) + memory contract`)
116
116
 
117
117
  // Public claims must match the router. The docs advertise a method count and a
118
- // per-domain list; both drifted from SKILL.md once (ingest / ingest-connect
118
+ // per-domain list; both drifted from SKILL.md once (ingest / connect
119
119
  // routed but undocumented), and a number nobody can verify is worse than none.
120
120
  {
121
121
  // Every routing row must parse. A row this misses is a method that could go
@@ -186,7 +186,7 @@ ok(`router dispatch (${mentioned.length} reference targets verified) + memory co
186
186
  }
187
187
  for (const rel of ['docs/skills.md', 'docs/skills-reference.md']) {
188
188
  const body = read(rel)
189
- // `-` is a word boundary, so \bingest\b matches inside `ingest-connect`:
189
+ // `-` is a word boundary, so \bscore\b matches inside `score-use-cases`:
190
190
  // a method could disappear from the docs behind a hyphenated sibling.
191
191
  const absent = [...documented].filter(name => !new RegExp(`(?<![\\w-])${name}(?![\\w-])`).test(body))
192
192
  if (absent.length) fail(`${rel} does not list skill(s): ${absent.join(', ')}`)
@@ -262,7 +262,7 @@ if (!readme.includes('AI coding agent')) {
262
262
  }
263
263
  ok('README clarity sections')
264
264
 
265
- for (const cmd of ['/brief', '/discover', '/plan', '/ship', '/outcome', '/close', '/debrief', '/prep', '/quiet', '/agreed', '/status']) {
265
+ for (const cmd of ['/brief', '/discover', '/plan', '/ship', '/outcome', '/close', '/debrief', '/prep', '/trust', '/receipts', '/readout']) {
266
266
  if (!readme.includes(cmd)) fail(`README must document slash command ${cmd}`)
267
267
  }
268
268
  if (/(^|[^\w/])\/got\b/.test(readme)) fail('README must use /outcome, not /got')
@@ -536,7 +536,7 @@ if (pkg.version !== plugin.version) {
536
536
  if (plugin.commands !== './.claude/commands' || plugin.skills !== './skills') {
537
537
  fail('.claude-plugin/plugin.json must declare skills and commands')
538
538
  } else {
539
- for (const cmd of ['brief', 'discover', 'plan', 'ship', 'outcome', 'close', 'debrief', 'prep', 'quiet', 'agreed', 'status']) {
539
+ for (const cmd of ['brief', 'discover', 'plan', 'ship', 'outcome', 'close', 'debrief', 'prep', 'trust', 'receipts', 'readout']) {
540
540
  const rel = `.claude/commands/${cmd}.md`
541
541
  if (!fs.existsSync(path.join(root, rel))) fail(`${rel} missing`)
542
542
  else if (!read(rel).includes('@fde')) fail(`${rel} must load @fde`)
@@ -550,8 +550,8 @@ if (!fs.existsSync(path.join(root, 'mcp', 'fdeops-ingest', 'server.js'))) {
550
550
  fail('ingest MCP must expose ingest_stage')
551
551
  } else if (!read('skills/fde/references/ingest.md').includes('stage')) {
552
552
  fail('skills/fde/references/ingest.md missing stage contract')
553
- } else if (!fs.existsSync(path.join(root, 'skills', 'fde', 'references', 'ingest-connect.md'))) {
554
- fail('skills/fde/references/ingest-connect.md missing')
553
+ } else if (!fs.existsSync(path.join(root, 'skills', 'fde', 'references', 'connect.md'))) {
554
+ fail('skills/fde/references/connect.md missing')
555
555
  } else {
556
556
  for (const recipe of ['file.md', 'granola.md', 'slack.md', 'notion.md']) {
557
557
  if (!fs.existsSync(path.join(root, 'mcp', 'recipes', recipe))) fail(`mcp/recipes/${recipe} missing`)
package/mcp/README.md CHANGED
@@ -38,7 +38,7 @@ Source MCP(s) fdeops-ingest MCP fde CLI
38
38
 
39
39
  ## Recipes (copy-paste connect)
40
40
 
41
- See [`recipes/`](./recipes/) for file, Granola-shaped, and Notion-shaped setup. In chat: `@fde I want to connect Granola` → skill `ingest-connect` walks the FDE through config + reload + verify.
41
+ See [`recipes/`](./recipes/) for file, Granola-shaped, and Notion-shaped setup. In chat: `@fde I want to connect Granola` → skill `connect` walks the FDE through config + reload + verify.
42
42
 
43
43
  ## Adding a source MCP
44
44
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fdeops-ingest-mcp",
3
- "version": "3.15.2",
3
+ "version": "3.16.0",
4
4
  "private": true,
5
5
  "description": "Thin stdio MCP sink for FDEOps ingest (stage → propose → apply). Zero runtime dependencies.",
6
6
  "bin": {
@@ -13,4 +13,4 @@ FDEOps does **not** bundle Granola / Slack / Notion OAuth and does **not** push
13
13
  | [slack.md](./slack.md) | Pull a thread/channel as text - never post |
14
14
  | [notion.md](./notion.md) | Read a Notion page (or export markdown) |
15
15
 
16
- **Natural language:** `@fde I want to connect Granola` (or Slack / Notion) → `skills/fde/references/ingest-connect.md`.
16
+ **Natural language:** `@fde I want to connect Granola` (or Slack / Notion) → `skills/fde/references/connect.md`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fdeops",
3
- "version": "3.15.2",
3
+ "version": "3.16.0",
4
4
  "description": "Forward deployed engineering skills for AI coding agents. Your agent forgets the client every morning - the sponsor, the promise, who signed off. FDEOps keeps that as dated markdown on your laptop: one @fde skill, a deterministic local CLI, and hooks that make it automatic. Claude Code plugin and any agent that loads skills.",
5
5
  "bin": {
6
6
  "fdeops": "bin/install.js",
package/plugin.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
3
  "name": "fdeops",
4
- "version": "3.15.2",
4
+ "version": "3.16.0",
5
5
  "description": "Forward deployed engineering skills for AI coding agents: per-client memory in local .fde/ files, one @fde skill. Local-only, no network.",
6
6
  "author": {
7
7
  "name": "Subash Natarajan",
@@ -26,7 +26,7 @@ A one-line typo or compile error in a file that will not ship. On a bound client
26
26
  | **The brief is wrong** | "If this works, who in their company would have to agree that it worked?" | `fde resume` then discover | `references/discover.md` |
27
27
  | **They went quiet** | "Is this a process gap, or a trust problem?" | `fde log contact "…" --signal amber\|red\|green` | `references/rescue.md` |
28
28
  | **When did we agree?** | Don't argue from memory. Search the record. | `fde receipts <term>` | - |
29
- | **What's the outcome?** | A number nobody signed is claimed, not delivered. | `fde status` | `references/status.md` |
29
+ | **What's the outcome?** | A number nobody signed is claimed, not delivered. | `fde status` | `references/readout.md` |
30
30
 
31
31
  After a meeting: `fde debrief --smart` → confirm → `--apply`. Walk-in: `fde prep`. Friday: `fde status`.
32
32
 
@@ -34,8 +34,8 @@ After a meeting: `fde debrief --smart` → confirm → `--apply`. Walk-in: `fde
34
34
 
35
35
  On someone else's site the work is not "write code, remember later." Every slice stays on `@fde`:
36
36
 
37
- 1. **Name it** in `decisions.md` (plan) or kill it in a day (sketch).
38
- 2. **Characterise their code** before you change it (incremental-build). Their tests, their runner.
37
+ 1. **Name it** in `decisions.md` (plan) or kill it in a day (poc).
38
+ 2. **Characterise their code** before you change it (thin-slices). Their tests, their runner.
39
39
  3. **Prove it where they live.** Staging they operate, a screen the signer in `success.md` can reject.
40
40
  4. **If a model judges:** `evals.md` Verdict SHIP before the slice is done (eval-pack).
41
41
  5. **Log delivery.** Outcome is promised → measured → accepted, not a green CI.
@@ -44,7 +44,7 @@ A throwaway file can skip the loop. A client slice cannot.
44
44
 
45
45
  ## Human surface vs agent plumbing
46
46
 
47
- **FDE (human):** `@fde` + English, or `/brief` `/discover` `/plan` `/ship` `/outcome` `/close` `/debrief` `/prep` `/quiet` `/agreed` `/status`. Never a skill catalog.
47
+ **FDE (human):** `@fde` + English, or `/brief` `/discover` `/plan` `/ship` `/outcome` `/close` `/debrief` `/prep` `/trust` `/receipts` `/readout`. Never a skill catalog.
48
48
 
49
49
  **You (agent):** run the CLI. **Never tell the FDE to type** `fde …`. If unbound, you run `fde resume --init` after one question. Never ask them to run the CLI.
50
50
 
@@ -72,7 +72,7 @@ Writes need a bind (`FDEOPS_ENGAGEMENT` or registry). Never install fdeops on in
72
72
  | clean up the fieldbook | `fde doctor` - never auto-rewrite |
73
73
  | scrub a secret | `fde redact <term>` then `--apply` after confirm |
74
74
  | pull Granola/Slack/transcript | capability check → `fde ingest stage` → confirm → apply. Never auto-apply. `references/ingest.md` |
75
- | connect an MCP | `references/ingest-connect.md` |
75
+ | connect an MCP | `references/connect.md` |
76
76
  | Obsidian / one window | `fde vault` (`--redacted` for a shared screen) |
77
77
 
78
78
  ## The memory contract
@@ -121,18 +121,18 @@ Read **one** reference and follow it. Do not improvise from memory.
121
121
  |----------|-------|-----------|
122
122
  | Starting fresh, new customer, first meeting, just got the brief | land | `references/land.md` |
123
123
  | Taking over, previous consultant left, joining mid-project | audit | `references/audit.md` |
124
- | Need to understand who matters, who decides, who blocks quietly | stakeholder-radar | `references/stakeholder-radar.md` |
125
- | Need to earn access, navigate AI policy, build credibility | trust-engineering | `references/trust-engineering.md` |
126
- | "Also can you…", scope expanding, timeline unchanged | scope-defense | `references/scope-defense.md` |
124
+ | Need to understand who matters, who decides, who blocks quietly | who-decides | `references/who-decides.md` |
125
+ | Need to earn access, navigate AI policy, build credibility | earn-trust | `references/earn-trust.md` |
126
+ | "Also can you…", scope expanding, timeline unchanged | hold-scope | `references/hold-scope.md` |
127
127
 
128
128
  ### Discover
129
129
 
130
130
  | You hear | Skill | Reference |
131
131
  |----------|-------|-----------|
132
132
  | Don't know the real problem, brief feels wrong, shadow processes | discover | `references/discover.md` |
133
- | The brief feels too neat, assumptions untested, "we just need…" | assumption-audit | `references/assumption-audit.md` |
134
- | Multiple use cases competing, "we want to do everything" | use-case-scoring | `references/use-case-scoring.md` |
135
- | Need to validate a direction, prototype, demo to de-risk, **POC**, spike, killer assumption | sketch | `references/sketch.md` |
133
+ | The brief feels too neat, assumptions untested, "we just need…" | test-assumptions | `references/test-assumptions.md` |
134
+ | Multiple use cases competing, "we want to do everything" | score-use-cases | `references/score-use-cases.md` |
135
+ | Need to validate a direction, prototype, demo to de-risk, **POC**, spike, killer assumption | poc | `references/poc.md` |
136
136
 
137
137
  ### Plan
138
138
 
@@ -140,43 +140,43 @@ Read **one** reference and follow it. Do not improvise from memory.
140
140
  |----------|-------|-----------|
141
141
  | Break this down, what order, sequence the build | plan | `references/plan.md` |
142
142
  | Sponsor needs justification, need to defend budget or timeline | business-case | `references/business-case.md` |
143
- | Significant decision, multiple approaches, "what should we do?" | options-analysis | `references/options-analysis.md` |
144
- | 20 things are "urgent," need to pick the 3 that matter | initiative-triage | `references/initiative-triage.md` |
143
+ | Significant decision, multiple approaches, "what should we do?" | three-options | `references/three-options.md` |
144
+ | 20 things are "urgent," need to pick the 3 that matter | pick-three | `references/pick-three.md` |
145
145
 
146
146
  ### Ship
147
147
 
148
148
  | You hear | Skill | Reference |
149
149
  |----------|-------|-----------|
150
- | Large feature, need visible progress every 2-3 days, slice it, characterise their tests, POC follow-through | incremental-build | `references/incremental-build.md` |
151
- | What could go wrong, touching shared infrastructure, need to assess impact | blast-radius | `references/blast-radius.md` |
150
+ | Large feature, need visible progress every 2-3 days, slice it, characterise their tests, POC follow-through | thin-slices | `references/thin-slices.md` |
151
+ | What could go wrong, touching shared infrastructure, need to assess impact | what-breaks | `references/what-breaks.md` |
152
152
  | Production down, urgent - OR stakeholder gone quiet, trust slipping | rescue | `references/rescue.md` |
153
153
  | Ready to deploy, going live, pre-flight check | ship | `references/ship.md` |
154
154
  | Review this change, is it safe, does it match what we agreed | review | `references/review.md` |
155
155
  | Diff grew / scope creep in the PR / "did we only build what we said" / KEEP JUSTIFY SPLIT DROP | review (+ ship if going live) | `references/review.md` Stage 1 · `references/ship.md` Intent vs diff |
156
156
  | Wrap the session / share the thinking / catch teammates up / before I open the PR | (memory contract - session digest) | SKILL.md **On exit** - write TL;DR + decisions/why into `.fde/`; no transcript sync |
157
- | "We can always revert" - need to actually test the escape route | rollback-drill | `references/rollback-drill.md` |
157
+ | "We can always revert" - need to actually test the escape route | rollback | `references/rollback.md` |
158
158
 
159
159
  ### Prove
160
160
 
161
161
  | You hear | Skill | Reference |
162
162
  |----------|-------|-----------|
163
- | Weekly update due, "need to send the sponsor something" | status | `references/status.md` |
163
+ | Weekly update due, "need to send the sponsor something" | readout | `references/readout.md` |
164
164
  | Demo coming up, show-and-tell, exec walkthrough | demo-prep | `references/demo-prep.md` |
165
165
  | Just out of a meeting, raw notes, "they said…", "debrief" | debrief | the debrief verb (above) + `references/debrief.md` |
166
166
  | Make sure we're up to date, pull what's relevant, fetch from Granola/Slack/Gmail/transcript | ingest | `references/ingest.md` (capability check → stage → propose → confirm → apply) |
167
- | Connect a new MCP / connect Granola Slack or Notion / what can you pull | ingest-connect | `references/ingest-connect.md` (+ `mcp/recipes/`) |
167
+ | Connect a new MCP / connect Granola Slack or Notion / what can you pull | connect | `references/connect.md` (+ `mcp/recipes/`) |
168
168
  | Prep me for a meeting / walk-in brief / "what should I know before I talk to…" | - | run `fde prep "<label>"`, present in plain language |
169
- | Sponsor's boss needs a summary, board update, justify continued investment | exec-narrative | `references/exec-narrative.md` |
169
+ | Sponsor's boss needs a summary, board update, justify continued investment | board-memo | `references/board-memo.md` |
170
170
  | Status across all my customers | dashboard | `references/dashboard.md` |
171
171
 
172
172
  ### Close
173
173
 
174
174
  | You hear | Skill | Reference |
175
175
  |----------|-------|-----------|
176
- | Juggling 2+ customers, losing track, context-switching | multi-customer-ops | `references/multi-customer-ops.md` |
176
+ | Juggling 2+ customers, losing track, context-switching | switch-clients | `references/switch-clients.md` |
177
177
  | Wrapping up, handoff, making yourself replaceable | close | `references/close.md` |
178
- | Engagement ending, team needs to operate without you | handoff-engineering | `references/handoff-engineering.md` |
179
- | Something worked well and will apply to future engagements | pattern-extract | `references/pattern-extract.md` |
178
+ | Engagement ending, team needs to operate without you | runbook | `references/runbook.md` |
179
+ | Something worked well and will apply to future engagements | encode-pattern | `references/encode-pattern.md` |
180
180
  | "Red-team this," "stress-test my plan," poke holes, what am I missing | red-team | `references/red-team.md` |
181
181
  | "What did we agree about X?", scope dispute, receipts | - | run `fde receipts <term>`, answer with dates |
182
182
 
@@ -47,7 +47,7 @@ When any slice touches a model, embeddings, RAG, or an agent: create or update `
47
47
  4. **Pass/fail** - dated run; Verdict **SHIP** or **NO-SHIP**; critical fails must be 0.
48
48
  5. **HITL gate** - which decisions need human review before action (align with `trust-profile.md`). Empty when policy requires review → NO-SHIP.
49
49
 
50
- **When to write:** plan seeds the pack; sketch/build grows goldens; ship requires Verdict SHIP and a receipt in `delivery.md` → `## Ship receipts`. Non-AI work skips this file entirely.
50
+ **When to write:** plan seeds the pack; poc/build grows goldens; ship requires Verdict SHIP and a receipt in `delivery.md` → `## Ship receipts`. Non-AI work skips this file entirely.
51
51
 
52
52
  ## RAG architecture (retrieval-augmented generation)
53
53
 
@@ -1,4 +1,4 @@
1
- # exec-narrative - the story that gets the next phase funded
1
+ # board-memo - the story that gets the next phase funded
2
2
 
3
3
  **Enter when:** the sponsor's boss needs a summary, a board update mentions the engagement, the FDE needs to justify continued investment, or a quarterly review is approaching.
4
4
 
@@ -1,8 +1,8 @@
1
1
  # business-case - the economics that get the sponsor to say yes
2
2
 
3
- **Enter when:** the sponsor needs justification for the next phase, the FDE needs to defend budget or timeline, a feature decision needs cost/benefit evidence, or sketch produced a direction that needs funding.
3
+ **Enter when:** the sponsor needs justification for the next phase, the FDE needs to defend budget or timeline, a feature decision needs cost/benefit evidence, or poc produced a direction that needs funding.
4
4
 
5
- **Read first:** `reality.md`, `success.md`, `delivery.md`, `context.md`. Load `business-case.md` from sketch if it exists - extend it, don't restart.
5
+ **Read first:** `reality.md`, `success.md`, `delivery.md`, `context.md`. Load `business-case.md` from poc if it exists - extend it, don't restart.
6
6
 
7
7
  Technical FDEs lose engagements by shipping good code without business justification. The sponsor's boss doesn't ask "is the code clean?" - they ask "what did we get for the money?" A business case translates technical work into the language that keeps the engagement alive.
8
8
 
@@ -1,4 +1,4 @@
1
- # ingest-connect - wire a source MCP in plain language
1
+ # connect - wire a source MCP in plain language
2
2
 
3
3
  **Enter when:** the FDE says "I want to connect a new MCP", "connect Granola / Slack / Notion", "how do I pull from …", or a pull request fails because no source tools exist.
4
4
 
@@ -143,7 +143,7 @@ Score every candidate use case before anything gets prototyped:
143
143
  | Complexity | How hard to build safely? (5 = hardest) | |
144
144
  | Data readiness | Available, clean, sufficient volume today? | |
145
145
 
146
- **Score = (Value × Data readiness) / Complexity.** Highest score gets prototyped first (hand to `sketch`). A 5-value/1-complexity/5-readiness case scores 25; a 5-value/5-complexity/2-readiness case scores 2 - they look identical on a whiteboard. Never let a technically interesting use case override the score.
146
+ **Score = (Value × Data readiness) / Complexity.** Highest score gets prototyped first (hand to `poc`). A 5-value/1-complexity/5-readiness case scores 25; a 5-value/5-complexity/2-readiness case scores 2 - they look identical on a whiteboard. Never let a technically interesting use case override the score.
147
147
 
148
148
  ## Artifact (this IS the memory - write it as you work)
149
149
 
@@ -1,4 +1,4 @@
1
- # trust-engineering - earning commit access one move at a time
1
+ # earn-trust - earning commit access one move at a time
2
2
 
3
3
  **Enter when:** new engagement where you don't have full access yet, trust is thin, the customer said "let's start small," or you need to navigate "we don't trust AI-generated code."
4
4
 
@@ -1,4 +1,4 @@
1
- # pattern-extract - if you did it twice, encode it
1
+ # encode-pattern - if you did it twice, encode it
2
2
 
3
3
  **Enter when:** the engagement is closing and reusable patterns exist, a technique worked well and will apply to future clients, the FDE notices themselves doing the same thing on a second engagement, or close identified a pattern worth preserving.
4
4
 
@@ -1,6 +1,6 @@
1
1
  # eval-pack - prove the system before it acts
2
2
 
3
- **Enter when:** the work touches AI/LLM/agents/RAG, or they need to POC a model, or ship/close is blocked because there is no evidence the non-deterministic path is safe. Activate alongside `ai.md`, `sketch`, `incremental-build`, or `ship` - not instead of them.
3
+ **Enter when:** the work touches AI/LLM/agents/RAG, or they need to POC a model, or ship/close is blocked because there is no evidence the non-deterministic path is safe. Activate alongside `ai.md`, `poc`, `thin-slices`, or `ship` - not instead of them.
4
4
 
5
5
  **Read first:** `trust-profile.md` (AI policy + HITL), `terrain.md` (operating map), `delivery.md`. Create or extend `evals.md`.
6
6
 
@@ -1,4 +1,4 @@
1
- # scope-defense - holding the line without losing the relationship
1
+ # hold-scope - holding the line without losing the relationship
2
2
 
3
3
  **Enter when:** "also can you…" mid-build, a stakeholder adds requirements without adjusting timeline, the FDE feels scope creeping but can't name it, or `success.md` no longer matches what's being asked.
4
4
 
@@ -67,7 +67,7 @@ Acme, week 5. Nothing has been formally added, and the slice is a week late.
67
67
 
68
68
  The pattern shows in three receipts, not one argument: a "quick" finance CSV export (Jun 20, half a day, from Denise directly), retry-logic cleanup asked for mid-build (Jun 24, one day, Tom), and a dashboard tile "while you're in there" (Jun 27, half a day). Each was individually reasonable; together they are the slip.
69
69
 
70
- Three-bucket response, applied at the moment of the third ask rather than in a retrospective: the CSV export goes to Next with an accepted trade (it displaces the runbook polish), the retry cleanup goes to the kill list in `decisions.md` with the blast-radius reason, and the tile is absorbed because it is genuinely twenty minutes - logged anyway, since an unlogged absorption is the one that gets forgotten in the accumulation conversation.
70
+ Three-bucket response, applied at the moment of the third ask rather than in a retrospective: the CSV export goes to Next with an accepted trade (it displaces the runbook polish), the retry cleanup goes to the kill list in `decisions.md` with the what-breaks reason, and the tile is absorbed because it is genuinely twenty minutes - logged anyway, since an unlogged absorption is the one that gets forgotten in the accumulation conversation.
71
71
 
72
72
  That conversation happens with Priya at three receipts, with the dates on screen: "these are the four asks, here is the two days, here is what moved." Not a complaint - a decision she gets to make, with evidence, before the deadline makes it for her.
73
73
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  **Enter when:** the FDE wants to catch the engagement up from external sources - "make sure Acme is up to date," "pull what's relevant," "grab today's Granola and Denise's last email." Raw transcripts and long emails that are too big to paste usefully.
4
4
 
5
- **Connect / capability (different entry):** "connect a new MCP", "connect Granola/Slack/Notion", "what can you pull?" → `references/ingest-connect.md` first. Recipes: `mcp/recipes/` (file, granola, slack, notion).
5
+ **Connect / capability (different entry):** "connect a new MCP", "connect Granola/Slack/Notion", "what can you pull?" → `references/connect.md` first. Recipes: `mcp/recipes/` (file, granola, slack, notion).
6
6
 
7
7
  **Read first:** `context.md` (what's already logged, what's stale). Bind the engagement before staging anything.
8
8
 
@@ -22,7 +22,7 @@ List what you can actually call **this session**:
22
22
 
23
23
  1. **Sink** - `ingest_stage` / `fde ingest` available?
24
24
  2. **Sources** - which fetch tools exist (Granola-shaped, Slack, Notion, Drive, file-only)?
25
- 3. Tell the FDE in one line: *I can pull from X; Y is not connected.* If they asked to pull Y and it is missing → switch to `ingest-connect.md`. Never pretend a source exists.
25
+ 3. Tell the FDE in one line: *I can pull from X; Y is not connected.* If they asked to pull Y and it is missing → switch to `connect.md`. Never pretend a source exists.
26
26
 
27
27
  ## Ground loop (you do this work)
28
28
 
@@ -60,7 +60,7 @@ When a staged fact came from a named source, carry `via:<source>` on the applied
60
60
 
61
61
  ## MCP sink + recipes
62
62
 
63
- Optional `mcp/fdeops-ingest` wraps the same verbs over stdio. Source MCPs remain separate - the FDE adds whichever fetch tools they trust. Setup coach: `ingest-connect.md`. Copy-paste recipes: `mcp/recipes/`.
63
+ Optional `mcp/fdeops-ingest` wraps the same verbs over stdio. Source MCPs remain separate - the FDE adds whichever fetch tools they trust. Setup coach: `connect.md`. Copy-paste recipes: `mcp/recipes/`.
64
64
 
65
65
  ## Checkpoint
66
66
 
@@ -99,7 +99,7 @@ If `stakeholders.md` already has a `## Signal history` section (it does from the
99
99
 
100
100
  **`trust-profile.md`** - sacred data (`<private>` tagged), fears heard, AI policy, approval chain. Sensitive: skip for status reads; use CLI/redacted surfaces; never paste raw `<private>` into prompts or subagents.
101
101
 
102
- **`assumptions.md`** - seed every unverified claim from the brief (and the day-1 hypothesis) as rows with blast radius CRITICAL / LOAD-BEARING / CONVENIENCE and status `OPEN`. Do not wait for assumption-audit - land makes the register exist. Example:
102
+ **`assumptions.md`** - seed every unverified claim from the brief (and the day-1 hypothesis) as rows with blast radius CRITICAL / LOAD-BEARING / CONVENIENCE and status `OPEN`. Do not wait for test-assumptions - land makes the register exist. Example:
103
103
 
104
104
  ```markdown
105
105
  | # | Assumption | Blast radius | How we test | Status | Evidence |
@@ -107,7 +107,7 @@ If `stakeholders.md` already has a `## Signal history` section (it does from the
107
107
  | 1 | <claim from brief> | CRITICAL | <cheapest falsifying test> | OPEN | (stated, unverified) |
108
108
  ```
109
109
 
110
- One falsifiable hypothesis about the real problem also goes at the bottom of `brief.md` - discover / assumption-audit will test it.
110
+ One falsifiable hypothesis about the real problem also goes at the bottom of `brief.md` - discover / test-assumptions will test it.
111
111
 
112
112
  ## Checkpoint
113
113
 
@@ -1,4 +1,4 @@
1
- # initiative-triage - when 20 things are "urgent," pick the 3 that matter
1
+ # pick-three - when 20 things are "urgent," pick the 3 that matter
2
2
 
3
3
  **Enter when:** a transformation engagement with a long list of initiatives, the customer's roadmap has more items than weeks, competing teams want different things, or the FDE needs to recommend what to do *first* across a complex programme.
4
4
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  **Enter when:** scope is understood and the work needs breaking down - a slice, a phase, or the whole delivery.
4
4
 
5
- **Read first:** `reality.md`, `success.md`, `terrain.md`, `stakeholders.md`. Load `business-case.md` if sketch produced one. Not the full folder.
5
+ **Read first:** `reality.md`, `success.md`, `terrain.md`, `stakeholders.md`. Load `business-case.md` if poc produced one. Not the full folder.
6
6
 
7
7
  ## Validation gate (confirm understanding, clarify where it elevates)
8
8
 
@@ -22,7 +22,7 @@ An FDE plan is not a sprint backlog. The technical sequence is the easy part. Th
22
22
 
23
23
  ## Method (you do this work)
24
24
 
25
- **0. Lock scope first.** Read `success.md` and `assumptions.md`. If out-of-scope is undefined, define it now with the FDE - a plan on undefined scope accumulates silent commitments. If any CRITICAL assumption is still `OPEN`, stop and run assumption-audit / discover before sequencing work.
25
+ **0. Lock scope first.** Read `success.md` and `assumptions.md`. If out-of-scope is undefined, define it now with the FDE - a plan on undefined scope accumulates silent commitments. If any CRITICAL assumption is still `OPEN`, stop and run test-assumptions / discover before sequencing work.
26
26
 
27
27
  **1. Work backwards from success.** What's the last thing that must be true before done? And before that? That's the dependency chain - not a wish list.
28
28
 
@@ -36,7 +36,7 @@ An FDE plan is not a sprint backlog. The technical sequence is the easy part. Th
36
36
 
37
37
  **6. Stakeholder touchpoints every 2-3 tasks.** "Show progress to <name from stakeholders.md>." Not ceremony: a customer who sees small wins stays bought in; silence gets filled with doubt.
38
38
 
39
- **7. End with a kill list.** Every plan names what you will **not** do this phase. If everything is "later," you have no plan - you have a wish list. Cap **Now** at 3 slices (same discipline as initiative-triage).
39
+ **7. End with a kill list.** Every plan names what you will **not** do this phase. If everything is "later," you have no plan - you have a wish list. Cap **Now** at 3 slices (same discipline as pick-three).
40
40
 
41
41
  **Acceptance criteria gate:** no task moves to build without written happy-path AND unhappy-path criteria. Can't write them = the task isn't understood; the open question goes to the customer **before** the task starts. Vague criteria surface later as scope creep and rework.
42
42
 
@@ -1,4 +1,4 @@
1
- # sketch - prototype to kill or confirm a direction
1
+ # poc - kill or confirm a direction in a day
2
2
 
3
3
  **Enter when:** a direction needs validating before committing real build time - POC, spike, show something, de-risk, pick between use cases. The output is something a sponsor can reject in a room this week, not a polished product.
4
4
 
@@ -1,4 +1,4 @@
1
- # status - the sponsor update that keeps the engagement alive
1
+ # readout - the sponsor update that keeps the engagement alive
2
2
 
3
3
  **Enter when:** the weekly update is due, an exec asks "where are we," or the FDE says "I need to send Dana something." This artifact decides renewals; engineers underinvest in it.
4
4
 
@@ -24,7 +24,7 @@ Then add, still on the same page:
24
24
 
25
25
  Exec voice: no jargon, no hedging, every claim traceable (`(shipped Tue, delivery.md)`). Draft in the **FDE's voice, for the FDE to send** - never send anything yourself.
26
26
 
27
- For board / renewal / sponsor's boss (longer pyramid): use `exec-narrative.md`. Do not invent a second weekly format.
27
+ For board / renewal / sponsor's boss (longer pyramid): use `board-memo.md`. Do not invent a second weekly format.
28
28
 
29
29
  ## Artifact
30
30
 
@@ -46,7 +46,7 @@ Customers remember who told them the truth before it cost them money.
46
46
 
47
47
  ## D. Pivot - the whole direction changed
48
48
 
49
- Not scope-defense (that's someone adding). This is: budget cut, new CTO arrives, strategic priority shift, acquisition changes everything, "we've decided to go a different direction." The engagement's foundation moved.
49
+ Not hold-scope (that's someone adding). This is: budget cut, new CTO arrives, strategic priority shift, acquisition changes everything, "we've decided to go a different direction." The engagement's foundation moved.
50
50
 
51
51
  **Signals:** new leadership asks "why are we doing this?", the sponsor's boss questions ROI, a competing initiative gets the resources, the quarterly priorities deck doesn't mention your project, the team you're embedded in gets reorganized.
52
52
 
@@ -34,7 +34,7 @@ Also check:
34
34
 
35
35
  **Stage 1 fails → stop** if any SPLIT/DROP remains, or JUSTIFY lacks a written sentence. Quality review on out-of-scope code is wasted work. Record the mismatch (and the KEEP/JUSTIFY/SPLIT/DROP tally) in `decisions.md`.
36
36
 
37
- Stakeholder "also can you…" mid-build is `scope-defense` - different axis. This stage is **code vs claim**.
37
+ Stakeholder "also can you…" mid-build is `hold-scope` - different axis. This stage is **code vs claim**.
38
38
 
39
39
  ## Stage 2 - is it safe to live with?
40
40
 
@@ -1,4 +1,4 @@
1
- # rollback-drill - test the escape route before you need it
1
+ # rollback - test the escape route before you need it
2
2
 
3
3
  **Enter when:** a deploy is planned for the next 48 hours, the FDE says "we can always revert," a previous rollback failed or took too long, or the engagement involves regulated/critical systems.
4
4
 
@@ -1,4 +1,4 @@
1
- # handoff-engineering - making yourself replaceable is the goal
1
+ # runbook - making yourself replaceable is the goal
2
2
 
3
3
  **Enter when:** the engagement is entering its final phase, the customer team needs to operate without the FDE, a new FDE is taking over, or the sponsor asks "what happens when you leave?"
4
4
 
@@ -103,9 +103,9 @@ Rollback: <exact command and expected time>
103
103
  - [ ] All access returned or transferred (repos, environments, admin panels)
104
104
  - [ ] No personal credentials left in the system (API keys, tokens, SSH keys)
105
105
  - [ ] `.fde/` folder handed to the successor or archived with the team
106
- - [ ] Final status sent to sponsor (see `status.md`)
106
+ - [ ] Final status sent to sponsor (see `readout.md`)
107
107
  - [ ] Retrospective completed (see `close.md`)
108
- - [ ] Patterns extracted (see `pattern-extract.md`)
108
+ - [ ] Patterns extracted (see `encode-pattern.md`)
109
109
 
110
110
  ## Artifact
111
111
 
@@ -1,8 +1,8 @@
1
- # use-case-scoring - pick the right battle, not the interesting one
1
+ # score-use-cases - pick the right battle, not the interesting one
2
2
 
3
3
  **Enter when:** multiple potential use cases compete for attention, the customer says "we want to do everything," a transformation engagement needs a starting point, or the FDE needs to recommend which problem to solve first.
4
4
 
5
- **Read first:** `reality.md`, `brief.md`, `terrain.md`, `context.md`. If `business-case.md` or `prototype-log.md` exist from sketch, load those - they carry forward.
5
+ **Read first:** `reality.md`, `brief.md`, `terrain.md`, `context.md`. If `business-case.md` or `prototype-log.md` exist from poc, load those - they carry forward.
6
6
 
7
7
  The most dangerous moment in a multi-use-case engagement is when the technically interesting problem wins over the high-value problem. Scoring replaces opinion with arithmetic. The arithmetic is wrong - all models are - but it's *visibly* wrong, which means it can be debated and corrected. Opinion can't.
8
8
 
@@ -59,7 +59,7 @@ Why this formula:
59
59
 
60
60
  ## Checkpoint
61
61
 
62
- Walk the FDE through the top 3 scores and the recommendation. One question: "Does the sponsor have a strong preference that overrides the scoring?" If yes, log it. If no, proceed with the highest score to sketch or plan.
62
+ Walk the FDE through the top 3 scores and the recommendation. One question: "Does the sponsor have a strong preference that overrides the scoring?" If yes, log it. If no, proceed with the highest score to poc or plan.
63
63
 
64
64
  ## Principles
65
65
 
@@ -83,7 +83,7 @@ Score every touched path (or logical hunk):
83
83
 
84
84
  **Any SPLIT or DROP still in the tree = fix-first.** JUSTIFY without a written sentence = treat as SPLIT. Log a one-line receipt in `delivery.md`: `intent vs diff: KEEP n · JUSTIFY n · SPLIT n · DROP n - <intent>`.
85
85
 
86
- This is **code drift**, not stakeholder "also can you…" (that is `scope-defense`). Same family as review Stage 1 - ship refuses green when the diff outgrew the claim.
86
+ This is **code drift**, not stakeholder "also can you…" (that is `hold-scope`). Same family as review Stage 1 - ship refuses green when the diff outgrew the claim.
87
87
 
88
88
  ## Pre-blast challenge (before the deploy button)
89
89
 
@@ -1,4 +1,4 @@
1
- # multi-customer-ops - juggling engagements without dropping any
1
+ # switch-clients - juggling engagements without dropping any
2
2
 
3
3
  **Enter when:** the FDE is running 2+ engagements simultaneously, context-switching is causing mistakes or delays, a new customer is being onboarded while existing engagements are active, or the FDE says "I'm losing track."
4
4
 
@@ -1,4 +1,4 @@
1
- # assumption-audit - pressure-test the brief before building on it
1
+ # test-assumptions - pressure-test the brief before building on it
2
2
 
3
3
  **Enter when:** the brief feels too neat, the customer is very confident about the solution (not the problem), someone says "we just need…" about a complex system, or discover surfaced contradictions between what was said and what the codebase shows.
4
4
 
@@ -1,4 +1,4 @@
1
- # incremental-build - thin slices on someone else's codebase
1
+ # thin-slices - thin slices on someone else's codebase
2
2
 
3
3
  **Enter when:** the build task is larger than a single PR, multiple files or systems are involved, or the FDE needs to show visible progress to a stakeholder every 2-3 days.
4
4
 
@@ -78,7 +78,7 @@ Technical progress invisible to stakeholders is trust decay. `delivery.md` gets
78
78
  **6. The scope trap.** Mid-slice discoveries - "this module also needs updating," "I should refactor this while I'm here":
79
79
 
80
80
  - If it's in `decisions.md`: do it as a separate slice.
81
- - If it's NOT in `decisions.md`: log it as a scope receipt (see `scope-defense.md`), don't touch it.
81
+ - If it's NOT in `decisions.md`: log it as a scope receipt (see `hold-scope.md`), don't touch it.
82
82
  - The hardest discipline: leaving ugly code alone when it's not in your slice.
83
83
 
84
84
  ## Artifact
@@ -1,4 +1,4 @@
1
- # options-analysis - three paths, not one recommendation
1
+ # three-options - three paths, not one recommendation
2
2
 
3
3
  **Enter when:** a significant technical or strategic decision needs to be made, the FDE is asked "what should we do?", the team is stuck between approaches, or a fork in the engagement requires the sponsor's input.
4
4
 
@@ -1,4 +1,4 @@
1
- # blast-radius - know what breaks before you touch it
1
+ # what-breaks - know what breaks before you touch it
2
2
 
3
3
  **Enter when:** about to make a change on a system you don't fully understand, touching a high-churn module from `terrain.md`, modifying shared infrastructure (auth, database, messaging), or the FDE asks "what could go wrong?"
4
4
 
@@ -38,7 +38,7 @@ IRREVERSIBLE → Cannot be rolled back without data loss or manual intervention
38
38
  Example: data migration, dropping a column, changing encryption keys
39
39
  ```
40
40
 
41
- **3. The blast-radius declaration.** Before writing any code, state it explicitly in `decisions.md`:
41
+ **3. The what-breaks declaration.** Before writing any code, state it explicitly in `decisions.md`:
42
42
 
43
43
  ```markdown
44
44
  ## Blast radius: <change name>
@@ -72,7 +72,7 @@ Time to detect: <5 minutes via error rate alert
72
72
 
73
73
  ## Artifact
74
74
 
75
- **`decisions.md`** - the blast-radius declaration, filed before the change starts. Updated if the blast radius grew during implementation.
75
+ **`decisions.md`** - the what-breaks declaration, filed before the change starts. Updated if the blast radius grew during implementation.
76
76
 
77
77
  **`risks.md`** - new risks discovered during the trace (the invisible integrations, the midnight cron job).
78
78
 
@@ -1,4 +1,4 @@
1
- # stakeholder-radar - reading the room before it reads you
1
+ # who-decides - reading the room before it reads you
2
2
 
3
3
  **Enter when:** new stakeholders appear, signals shift mid-engagement, a meeting felt off but you can't say why, or it's been two weeks and the map hasn't been updated.
4
4
 
@@ -1,6 +1,6 @@
1
1
  # Assumptions
2
2
 
3
- <!-- Brief claims that are not yet evidence. Land seeds; assumption-audit / discover update. -->
3
+ <!-- Brief claims that are not yet evidence. Land seeds; test-assumptions / discover update. -->
4
4
 
5
5
  | # | Assumption | Blast radius | How we test | Status | Evidence |
6
6
  |---|------------|--------------|-------------|--------|----------|