fdeops 4.1.1 → 5.1.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 (264) hide show
  1. package/AGENTS.md +2 -2
  2. package/README.md +85 -246
  3. package/bin/catalog-doc.js +38 -0
  4. package/bin/check.js +20 -49
  5. package/bin/fde.js +2 -2
  6. package/bin/generate-skills.js +11 -3
  7. package/bin/install.js +37 -3
  8. package/bin/skill-catalog.js +283 -16
  9. package/mcp/fdeops-ingest/package.json +1 -1
  10. package/package.json +2 -2
  11. package/plugin.json +1 -1
  12. package/skills/README.md +7 -0
  13. package/skills/audit/.fde-generated.json +10 -0
  14. package/skills/audit/SKILL.md +21 -0
  15. package/skills/audit/references/discover.md +112 -0
  16. package/skills/{fde-build → audit}/references/task-context.md +7 -1
  17. package/skills/board-memo/.fde-generated.json +10 -0
  18. package/skills/board-memo/SKILL.md +21 -0
  19. package/skills/{fde-debug → board-memo}/references/task-context.md +7 -1
  20. package/skills/brief/.fde-generated.json +9 -0
  21. package/skills/brief/SKILL.md +21 -0
  22. package/skills/brief/references/land.md +136 -0
  23. package/skills/{fde-discover → brief}/references/task-context.md +7 -1
  24. package/skills/{fde-build → build}/.fde-generated.json +2 -2
  25. package/skills/{fde-build → build}/SKILL.md +2 -2
  26. package/skills/{fde-evaluate → build}/references/task-context.md +7 -1
  27. package/skills/business-case/.fde-generated.json +9 -0
  28. package/skills/business-case/SKILL.md +21 -0
  29. package/skills/business-case/references/task-context.md +18 -0
  30. package/skills/connect/.fde-generated.json +12 -0
  31. package/skills/connect/SKILL.md +21 -0
  32. package/skills/connect/references/connect.md +24 -0
  33. package/skills/connect/references/debrief.md +91 -0
  34. package/skills/connect/references/ingest.md +75 -0
  35. package/skills/connect/references/source-setup.md +30 -0
  36. package/skills/connect/references/task-context.md +18 -0
  37. package/skills/dashboard/.fde-generated.json +9 -0
  38. package/skills/dashboard/SKILL.md +21 -0
  39. package/skills/dashboard/references/dashboard.md +40 -0
  40. package/skills/dashboard/references/task-context.md +18 -0
  41. package/skills/debrief/.fde-generated.json +12 -0
  42. package/skills/debrief/SKILL.md +21 -0
  43. package/skills/debrief/references/connect.md +24 -0
  44. package/skills/debrief/references/debrief.md +91 -0
  45. package/skills/debrief/references/ingest.md +75 -0
  46. package/skills/debrief/references/source-setup.md +30 -0
  47. package/skills/debrief/references/task-context.md +18 -0
  48. package/skills/{fde-debug → debug}/.fde-generated.json +2 -2
  49. package/skills/{fde-debug → debug}/SKILL.md +2 -2
  50. package/skills/debug/references/task-context.md +18 -0
  51. package/skills/demo-prep/.fde-generated.json +9 -0
  52. package/skills/demo-prep/SKILL.md +21 -0
  53. package/skills/demo-prep/references/demo-prep.md +31 -0
  54. package/skills/demo-prep/references/task-context.md +18 -0
  55. package/skills/discover/.fde-generated.json +10 -0
  56. package/skills/{fde-discover → discover}/SKILL.md +2 -2
  57. package/skills/discover/references/discover.md +112 -0
  58. package/skills/discover/references/task-context.md +18 -0
  59. package/skills/earn-trust/.fde-generated.json +9 -0
  60. package/skills/earn-trust/SKILL.md +21 -0
  61. package/skills/earn-trust/references/earn-trust.md +100 -0
  62. package/skills/earn-trust/references/task-context.md +18 -0
  63. package/skills/{fde-integrate → evaluate}/.fde-generated.json +2 -2
  64. package/skills/{fde-evaluate → evaluate}/SKILL.md +2 -2
  65. package/skills/evaluate/references/task-context.md +18 -0
  66. package/skills/fde/SKILL.md +11 -10
  67. package/skills/fde/references/connect.md +14 -24
  68. package/skills/fde/references/debrief.md +2 -0
  69. package/skills/fde/references/discover.md +66 -208
  70. package/skills/fde/references/ingest.md +4 -2
  71. package/skills/fde/references/plan.md +6 -6
  72. package/skills/fde/references/runbook.md +52 -120
  73. package/skills/fde/references/source-setup.md +30 -0
  74. package/skills/fde/references/task-context.md +7 -1
  75. package/skills/feedback/.fde-generated.json +9 -0
  76. package/skills/{fde-feedback → feedback}/SKILL.md +2 -2
  77. package/skills/feedback/references/task-context.md +18 -0
  78. package/skills/{fde-handoff → handoff}/.fde-generated.json +2 -2
  79. package/skills/{fde-handoff → handoff}/SKILL.md +2 -2
  80. package/skills/handoff/references/task-context.md +18 -0
  81. package/skills/ingest/.fde-generated.json +12 -0
  82. package/skills/ingest/SKILL.md +21 -0
  83. package/skills/ingest/references/connect.md +24 -0
  84. package/skills/ingest/references/debrief.md +91 -0
  85. package/skills/ingest/references/ingest.md +75 -0
  86. package/skills/ingest/references/source-setup.md +30 -0
  87. package/skills/ingest/references/task-context.md +18 -0
  88. package/skills/{fde-evaluate → integrate}/.fde-generated.json +2 -2
  89. package/skills/{fde-integrate → integrate}/SKILL.md +2 -2
  90. package/skills/integrate/references/task-context.md +18 -0
  91. package/skills/{fde-options → options}/.fde-generated.json +2 -2
  92. package/skills/{fde-options → options}/SKILL.md +2 -2
  93. package/skills/options/references/task-context.md +18 -0
  94. package/skills/plan/.fde-generated.json +10 -0
  95. package/skills/plan/SKILL.md +21 -0
  96. package/skills/plan/references/business-case.md +90 -0
  97. package/skills/{fde-poc → plan}/references/plan.md +6 -6
  98. package/skills/plan/references/task-context.md +18 -0
  99. package/skills/{fde-poc → poc}/.fde-generated.json +4 -4
  100. package/skills/{fde-poc → poc}/SKILL.md +2 -2
  101. package/skills/poc/references/audit.md +71 -0
  102. package/skills/poc/references/business-case.md +90 -0
  103. package/skills/poc/references/discover.md +112 -0
  104. package/skills/poc/references/plan.md +167 -0
  105. package/skills/poc/references/task-context.md +18 -0
  106. package/skills/prioritize/.fde-generated.json +10 -0
  107. package/skills/prioritize/SKILL.md +21 -0
  108. package/skills/prioritize/references/business-case.md +90 -0
  109. package/skills/prioritize/references/pick-three.md +95 -0
  110. package/skills/prioritize/references/task-context.md +18 -0
  111. package/skills/qa/.fde-generated.json +16 -0
  112. package/skills/{fde-qa → qa}/SKILL.md +2 -2
  113. package/skills/qa/references/task-context.md +18 -0
  114. package/skills/{fde-readout → readout}/.fde-generated.json +2 -2
  115. package/skills/{fde-readout → readout}/SKILL.md +2 -2
  116. package/skills/readout/references/board-memo.md +108 -0
  117. package/skills/readout/references/business-case.md +90 -0
  118. package/skills/readout/references/task-context.md +18 -0
  119. package/skills/red-team/.fde-generated.json +9 -0
  120. package/skills/red-team/SKILL.md +21 -0
  121. package/skills/red-team/references/red-team.md +105 -0
  122. package/skills/red-team/references/task-context.md +18 -0
  123. package/skills/rescue/.fde-generated.json +9 -0
  124. package/skills/rescue/SKILL.md +21 -0
  125. package/skills/rescue/references/rescue.md +82 -0
  126. package/skills/rescue/references/task-context.md +18 -0
  127. package/skills/review/.fde-generated.json +16 -0
  128. package/skills/{fde-review → review}/SKILL.md +2 -2
  129. package/skills/review/references/task-context.md +18 -0
  130. package/skills/rollback/.fde-generated.json +9 -0
  131. package/skills/rollback/SKILL.md +21 -0
  132. package/skills/rollback/references/rollback.md +102 -0
  133. package/skills/rollback/references/task-context.md +18 -0
  134. package/skills/runbook/.fde-generated.json +11 -0
  135. package/skills/runbook/SKILL.md +21 -0
  136. package/skills/runbook/references/close.md +66 -0
  137. package/skills/runbook/references/encode-pattern.md +96 -0
  138. package/skills/runbook/references/runbook.md +73 -0
  139. package/skills/runbook/references/task-context.md +18 -0
  140. package/skills/scope/.fde-generated.json +9 -0
  141. package/skills/{fde-scope → scope}/SKILL.md +2 -2
  142. package/skills/scope/references/task-context.md +18 -0
  143. package/skills/score-use-cases/.fde-generated.json +10 -0
  144. package/skills/score-use-cases/SKILL.md +21 -0
  145. package/skills/score-use-cases/references/business-case.md +90 -0
  146. package/skills/score-use-cases/references/score-use-cases.md +70 -0
  147. package/skills/score-use-cases/references/task-context.md +18 -0
  148. package/skills/ship/.fde-generated.json +16 -0
  149. package/skills/{fde-ship → ship}/SKILL.md +2 -2
  150. package/skills/ship/references/task-context.md +18 -0
  151. package/skills/switch-clients/.fde-generated.json +9 -0
  152. package/skills/switch-clients/SKILL.md +21 -0
  153. package/skills/switch-clients/references/switch-clients.md +114 -0
  154. package/skills/switch-clients/references/task-context.md +18 -0
  155. package/skills/test-assumptions/.fde-generated.json +9 -0
  156. package/skills/test-assumptions/SKILL.md +21 -0
  157. package/skills/test-assumptions/references/task-context.md +18 -0
  158. package/skills/test-assumptions/references/test-assumptions.md +102 -0
  159. package/skills/what-breaks/.fde-generated.json +9 -0
  160. package/skills/what-breaks/SKILL.md +21 -0
  161. package/skills/what-breaks/references/task-context.md +18 -0
  162. package/skills/what-breaks/references/what-breaks.md +91 -0
  163. package/skills/who-decides/.fde-generated.json +9 -0
  164. package/skills/who-decides/SKILL.md +21 -0
  165. package/skills/who-decides/references/task-context.md +18 -0
  166. package/skills/who-decides/references/who-decides.md +91 -0
  167. package/skills/fde-discover/.fde-generated.json +0 -10
  168. package/skills/fde-discover/references/discover.md +0 -254
  169. package/skills/fde-feedback/.fde-generated.json +0 -9
  170. package/skills/fde-feedback/references/task-context.md +0 -12
  171. package/skills/fde-handoff/references/task-context.md +0 -12
  172. package/skills/fde-integrate/references/task-context.md +0 -12
  173. package/skills/fde-options/references/task-context.md +0 -12
  174. package/skills/fde-poc/references/discover.md +0 -254
  175. package/skills/fde-poc/references/task-context.md +0 -12
  176. package/skills/fde-qa/.fde-generated.json +0 -16
  177. package/skills/fde-qa/references/task-context.md +0 -12
  178. package/skills/fde-readout/references/task-context.md +0 -12
  179. package/skills/fde-review/.fde-generated.json +0 -16
  180. package/skills/fde-review/references/task-context.md +0 -12
  181. package/skills/fde-scope/.fde-generated.json +0 -9
  182. package/skills/fde-scope/references/task-context.md +0 -12
  183. package/skills/fde-ship/.fde-generated.json +0 -16
  184. package/skills/fde-ship/references/task-context.md +0 -12
  185. /package/skills/{fde-discover → audit}/references/audit.md +0 -0
  186. /package/skills/{fde-readout → board-memo}/references/board-memo.md +0 -0
  187. /package/skills/{fde-options → board-memo}/references/business-case.md +0 -0
  188. /package/skills/{fde-build → build}/references/build.md +0 -0
  189. /package/skills/{fde-build → build}/references/debug.md +0 -0
  190. /package/skills/{fde-build → build}/references/eval-pack.md +0 -0
  191. /package/skills/{fde-build → build}/references/integrate.md +0 -0
  192. /package/skills/{fde-build → build}/references/qa.md +0 -0
  193. /package/skills/{fde-build → build}/references/review.md +0 -0
  194. /package/skills/{fde-build → build}/references/ship.md +0 -0
  195. /package/skills/{fde-build → build}/references/verification.md +0 -0
  196. /package/skills/{fde-poc → business-case}/references/business-case.md +0 -0
  197. /package/skills/{fde-debug → debug}/references/build.md +0 -0
  198. /package/skills/{fde-debug → debug}/references/debug.md +0 -0
  199. /package/skills/{fde-debug → debug}/references/eval-pack.md +0 -0
  200. /package/skills/{fde-debug → debug}/references/integrate.md +0 -0
  201. /package/skills/{fde-debug → debug}/references/qa.md +0 -0
  202. /package/skills/{fde-debug → debug}/references/review.md +0 -0
  203. /package/skills/{fde-debug → debug}/references/ship.md +0 -0
  204. /package/skills/{fde-debug → debug}/references/verification.md +0 -0
  205. /package/skills/{fde-poc → discover}/references/audit.md +0 -0
  206. /package/skills/{fde-evaluate → evaluate}/references/build.md +0 -0
  207. /package/skills/{fde-evaluate → evaluate}/references/debug.md +0 -0
  208. /package/skills/{fde-evaluate → evaluate}/references/eval-pack.md +0 -0
  209. /package/skills/{fde-evaluate → evaluate}/references/integrate.md +0 -0
  210. /package/skills/{fde-evaluate → evaluate}/references/qa.md +0 -0
  211. /package/skills/{fde-evaluate → evaluate}/references/review.md +0 -0
  212. /package/skills/{fde-evaluate → evaluate}/references/ship.md +0 -0
  213. /package/skills/{fde-evaluate → evaluate}/references/verification.md +0 -0
  214. /package/skills/{fde-feedback → feedback}/references/encode-pattern.md +0 -0
  215. /package/skills/{fde-handoff → handoff}/references/close.md +0 -0
  216. /package/skills/{fde-handoff → handoff}/references/encode-pattern.md +0 -0
  217. /package/skills/{fde-integrate → integrate}/references/build.md +0 -0
  218. /package/skills/{fde-integrate → integrate}/references/debug.md +0 -0
  219. /package/skills/{fde-integrate → integrate}/references/eval-pack.md +0 -0
  220. /package/skills/{fde-integrate → integrate}/references/integrate.md +0 -0
  221. /package/skills/{fde-integrate → integrate}/references/qa.md +0 -0
  222. /package/skills/{fde-integrate → integrate}/references/review.md +0 -0
  223. /package/skills/{fde-integrate → integrate}/references/ship.md +0 -0
  224. /package/skills/{fde-integrate → integrate}/references/verification.md +0 -0
  225. /package/skills/{fde-readout → options}/references/business-case.md +0 -0
  226. /package/skills/{fde-options → options}/references/test-assumptions.md +0 -0
  227. /package/skills/{fde-options → options}/references/three-options.md +0 -0
  228. /package/skills/{fde-poc → poc}/references/build.md +0 -0
  229. /package/skills/{fde-poc → poc}/references/debug.md +0 -0
  230. /package/skills/{fde-poc → poc}/references/eval-pack.md +0 -0
  231. /package/skills/{fde-poc → poc}/references/integrate.md +0 -0
  232. /package/skills/{fde-poc → poc}/references/poc.md +0 -0
  233. /package/skills/{fde-poc → poc}/references/qa.md +0 -0
  234. /package/skills/{fde-poc → poc}/references/review.md +0 -0
  235. /package/skills/{fde-poc → poc}/references/ship.md +0 -0
  236. /package/skills/{fde-poc → poc}/references/test-assumptions.md +0 -0
  237. /package/skills/{fde-poc → poc}/references/three-options.md +0 -0
  238. /package/skills/{fde-poc → poc}/references/verification.md +0 -0
  239. /package/skills/{fde-qa → qa}/references/build.md +0 -0
  240. /package/skills/{fde-qa → qa}/references/debug.md +0 -0
  241. /package/skills/{fde-qa → qa}/references/eval-pack.md +0 -0
  242. /package/skills/{fde-qa → qa}/references/integrate.md +0 -0
  243. /package/skills/{fde-qa → qa}/references/qa.md +0 -0
  244. /package/skills/{fde-qa → qa}/references/review.md +0 -0
  245. /package/skills/{fde-qa → qa}/references/ship.md +0 -0
  246. /package/skills/{fde-qa → qa}/references/verification.md +0 -0
  247. /package/skills/{fde-readout → readout}/references/readout.md +0 -0
  248. /package/skills/{fde-review → review}/references/build.md +0 -0
  249. /package/skills/{fde-review → review}/references/debug.md +0 -0
  250. /package/skills/{fde-review → review}/references/eval-pack.md +0 -0
  251. /package/skills/{fde-review → review}/references/integrate.md +0 -0
  252. /package/skills/{fde-review → review}/references/qa.md +0 -0
  253. /package/skills/{fde-review → review}/references/review.md +0 -0
  254. /package/skills/{fde-review → review}/references/ship.md +0 -0
  255. /package/skills/{fde-review → review}/references/verification.md +0 -0
  256. /package/skills/{fde-scope → scope}/references/hold-scope.md +0 -0
  257. /package/skills/{fde-ship → ship}/references/build.md +0 -0
  258. /package/skills/{fde-ship → ship}/references/debug.md +0 -0
  259. /package/skills/{fde-ship → ship}/references/eval-pack.md +0 -0
  260. /package/skills/{fde-ship → ship}/references/integrate.md +0 -0
  261. /package/skills/{fde-ship → ship}/references/qa.md +0 -0
  262. /package/skills/{fde-ship → ship}/references/review.md +0 -0
  263. /package/skills/{fde-ship → ship}/references/ship.md +0 -0
  264. /package/skills/{fde-ship → ship}/references/verification.md +0 -0
@@ -1,9 +1,9 @@
1
1
  ---
2
- name: fde-readout
2
+ name: readout
3
3
  description: Prepare a sponsor update separating promised outcomes, measured results and customer acceptance. Use for progress readouts or defending a delivery claim.
4
4
  ---
5
5
 
6
- # fde-readout
6
+ # readout
7
7
 
8
8
  <!-- Generated by bin/generate-skills.js; edit the canonical references and catalog. -->
9
9
 
@@ -0,0 +1,108 @@
1
+ # board-memo - Brief the board
2
+
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
+
5
+ **Read first:** `delivery.md`, `success.md`, `reality.md`, `risks.md`, `stakeholders.md`, `context.md`. The narrative is built from the engagement record, not from memory.
6
+
7
+ Technical FDEs lose renewals by presenting work instead of outcomes. The exec doesn't want to know what was built - they want to know what it changed. A good exec narrative takes 60 seconds to deliver and survives hostile questions.
8
+
9
+ ## Method (you do this work)
10
+
11
+ **1. The Pyramid Principle.** One governing thought, supported by three arguments, each backed by evidence. The exec hears the conclusion first, not the journey:
12
+
13
+ ```
14
+ GOVERNING THOUGHT: (one sentence - the conclusion)
15
+ "The payment processing overhaul cut manual reconciliation from
16
+ 3 FTEs to 0.5 FTE and eliminated the $2M annual audit risk."
17
+
18
+ SUPPORT 1: What was done (one paragraph)
19
+ → Evidence from delivery.md
20
+
21
+ SUPPORT 2: What it saved (quantified)
22
+ → Evidence from business-case.md + delivery.md
23
+
24
+ SUPPORT 3: What's next (the ask)
25
+ → Evidence from decisions.md + risks.md
26
+ ```
27
+
28
+ **2. Four narrative lengths.** The same story, scaled for the context:
29
+
30
+ | Length | When | Format |
31
+ |--------|------|--------|
32
+ | **30 seconds** | Elevator, hallway, Slack thread | The governing thought + one number |
33
+ | **2 minutes** | Stand-up, exec check-in | Governing thought + 3 supports + the ask |
34
+ | **10 minutes** | Quarterly review, steering committee | Full pyramid + hard questions answered + visual |
35
+ | **60 minutes** | Board presentation, transformation review | Full pyramid + demos + deep-dive appendix |
36
+
37
+ Write all four. The FDE will need different lengths at different moments - having them pre-written means they're never caught improvising.
38
+
39
+ **3. The opening frame - SCQA.** Structure the first 30 seconds:
40
+
41
+ | Element | Purpose | Example |
42
+ |---------|---------|---------|
43
+ | **Situation** | Where we are (shared context) | "We started this engagement to fix the payment failures that were costing $200K/month in manual reconciliation." |
44
+ | **Complication** | What changed or what's at stake | "The problem was deeper than expected - the reconciliation failures traced to a data integrity issue in the core ledger." |
45
+ | **Question** | The decision the exec needs to make | "Should we extend the engagement to fix the root cause, or ship the workaround?" |
46
+ | **Answer** | Your recommendation | "Fix the root cause. The workaround adds $40K/year in maintenance and doesn't eliminate the audit risk." |
47
+
48
+ **4. Value in their units.** Translate every technical achievement:
49
+
50
+ | What you did (internal) | What it means (their units) |
51
+ |------------------------|---------------------------|
52
+ | Reduced p95 latency from 3s to 200ms | Customers complete checkout 15x faster |
53
+ | Added test coverage from 12% to 78% | Change failure rate dropped from 40% to 5% |
54
+ | Migrated from monolith to three services | Team can deploy independently - shipping frequency from monthly to weekly |
55
+ | Built ML fraud detection | $1.2M/year in fraud losses reduced to <$200K projected |
56
+
57
+ Never: "we refactored the authentication module." Always: what the refactoring *did* for them.
58
+
59
+ **5. Pre-wire the hostile questions.** Before any exec presentation, write the five toughest questions and one-line answers:
60
+
61
+ ```markdown
62
+ ## Hard questions - <presentation date>
63
+ 1. "Why did this take longer than estimated?"
64
+ → The original brief assumed API-only work; discovery revealed a database integrity issue. We surfaced it in week 2 instead of shipping a patch that would have required rework.
65
+
66
+ 2. "How do we know it won't break again?"
67
+ → Three guards: automated reconciliation check (runs daily), alerting on drift >0.1%, and the characterisation test suite covering the 12 failure modes we found.
68
+
69
+ 3. "What happens when the FDE leaves?"
70
+ → Handoff document written for the 2am scenario. The team ran the runbook independently last Thursday - no callbacks.
71
+
72
+ 4. "Why should we fund phase 2?"
73
+ → Phase 1 addressed the bleeding. Phase 2 eliminates the root cause. Without it: $40K/year maintenance on the workaround + the audit risk remains.
74
+
75
+ 5. "Can the internal team do phase 2 without you?"
76
+ → They can, with 2x the timeline. The value of an FDE in phase 2 is speed - the patterns are established and the trust with the ledger team is built.
77
+ ```
78
+
79
+ **6. The one number.** Every exec narrative needs a single memorable quantity:
80
+
81
+ - "31 spreadsheet rows to zero"
82
+ - "p95 held at 180ms"
83
+ - "$200K monthly risk retired"
84
+ - "Time-to-deploy from 4 hours to 12 minutes"
85
+
86
+ The number should appear in the first 30 seconds and be the thing they repeat to *their* boss.
87
+
88
+ ## Artifact
89
+
90
+ **`delivery.md`** - append under `## Exec narrative - <date>`:
91
+ - The four narrative lengths (30s, 2min, 10min, 60min)
92
+ - The SCQA frame
93
+ - The hard-question sheet
94
+ - The one number
95
+
96
+ **`context.md`** - note: exec narrative prepared, presentation date, what must be updated before delivery.
97
+
98
+ ## Checkpoint
99
+
100
+ Dry-run the 2-minute version with the FDE. Confirm: the one number lands in the first 30 seconds, the SCQA frame answers "why now," and the hardest question has a prepared answer. If the FDE can't deliver the 30-second version from memory, simplify.
101
+
102
+ ## Principles
103
+
104
+ - Conclusion first, evidence second. The exec decides in the first 30 seconds.
105
+ - Value in their units. Never present work; present outcomes.
106
+ - One number per narrative. The room remembers one thing - make it the right thing.
107
+ - Pre-wire every hostile question. Surprise in an exec meeting is a trust withdrawal.
108
+ - Write all four lengths. The FDE will need them at different moments.
@@ -0,0 +1,90 @@
1
+ # business-case - Build the business case
2
+
3
+ **Context:** apply [task context and evidence](task-context.md) before using the named records below.
4
+
5
+ **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.
6
+
7
+ **Read first:** `reality.md`, `success.md`, `delivery.md`, `context.md`. Load `business-case.md` from poc if it exists - extend it, don't restart.
8
+
9
+ 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.
10
+
11
+ ## Method (you do this work)
12
+
13
+ **1. Name the cost of doing nothing.** This is the anchor. Every business case starts not with what you'll build, but with what it costs them to leave the problem unsolved:
14
+
15
+ | Cost type | How to find it | Example |
16
+ |-----------|---------------|---------|
17
+ | **Labor capacity / direct spend** | Ask: "What does this problem cost per month in money?" | Manual reconciliation hours × loaded rate = capacity value; separately identify reducible spend |
18
+ | **Opportunity cost** | Ask: "What can't you do because of this problem?" | Can't onboard enterprise clients because the API can't handle their volume |
19
+ | **Risk cost** | Ask: "What happens if this breaks at the worst time?" | A payment processing outage during Black Friday = $X/hour in lost sales |
20
+ | **Velocity cost** | Measure: deployment frequency, lead time, change failure rate | Team ships once/month instead of once/week; each delay = N features not reaching customers |
21
+
22
+ **2. Build the driver model.** Not a spreadsheet - a logic chain the sponsor can trace:
23
+
24
+ ```
25
+ Investment: <hours × rate, or fixed cost>
26
+ → Delivers: <specific outcome from success.md>
27
+ → Benefit: <capacity released, avoidable cash spend, revenue, or risk reduction>
28
+ → Net cash: realizable incremental cash benefit - full costs over <time horizon>
29
+ ```
30
+
31
+ Keep drivers, units, sources, and ranges explicit. For example, 3 people × 8h/week × $75/h × 52 weeks = $93.6K/year of labor capacity value. It is cash savings only if spend actually falls (for example, paid overtime or a contractor cost ends). Name who can realize the benefit and how. Include build, ongoing operation, adoption, and transition costs; avoid double-counting capacity and revenue enabled by the same hours. Do not calculate cash payback from capacity value alone.
32
+
33
+ **3. Sensitivity check - name the two drivers that swing the result:**
34
+
35
+ Every business case has 1-2 variables where a small change flips the outcome. Name them explicitly:
36
+
37
+ > "The capacity case assumes the team reclaims 6 hours/week per person. At 3 hours, that benefit halves. Cash payback remains unproven until finance identifies avoidable spend. Validate time-spent before and after the pilot with representative team members."
38
+
39
+ The sponsor who sees you've identified where the case could break trusts the case more, not less.
40
+
41
+ **4. Frame for the audience.** Different stakeholders need different lenses on the same case:
42
+
43
+ | Audience | Lead with | Avoid |
44
+ |----------|----------|-------|
45
+ | **CFO / finance** | ROI, payback period, cash flow impact | Technical architecture, feature lists |
46
+ | **CTO / engineering** | Technical debt retired, velocity improved, risk reduced | Revenue projections they can't verify |
47
+ | **CEO / founder** | Strategic enablement, competitive edge, customer impact | Detailed calculations (give the summary, offer the detail) |
48
+ | **Product** | User impact, adoption metrics, feature velocity | Cost structures that aren't their domain |
49
+
50
+ **5. The one-page format.** The business case fits one page or it isn't understood:
51
+
52
+ ```markdown
53
+ ## Business case: <initiative name>
54
+
55
+ **The problem costs:** <one line, quantified>
56
+ **The investment:** <hours and cost>
57
+ **The return:** <quantified, with time horizon>
58
+ **Payback:** <months from realizable cash benefits, or not established>
59
+ **Sensitivity:** <the 1-2 drivers that swing it, with thresholds>
60
+ **Risks:** <what must be true for this to hold>
61
+ **Recommendation:** <proceed / proceed-with-conditions / defer>
62
+ ```
63
+
64
+ ## Artifact
65
+
66
+ **`business-case.md`** - the one-page case. Lives alongside `success.md` and `reality.md` as a first-class engagement artifact. Referenced by plan, status, and close.
67
+
68
+ **`decisions.md`** - log the sponsor's response: approved, modified, deferred. With the date.
69
+
70
+ ## Checkpoint
71
+
72
+ Walk the FDE through: the cost of doing nothing (anchor), the investment, the return, and the one sensitivity that matters most. If the FDE says "the sponsor won't buy the ROI number," inspect the disputed inputs and sources, test plausible ranges, and identify what measurement would resolve the disagreement. Never reverse-engineer assumptions to hit a desired number.
73
+
74
+ ## Worked example
75
+
76
+ Acme phase 2 needs funding. The case starts with the cost of doing nothing, not the cost of building.
77
+
78
+ Anchor: two silent failures since March, each one day of finance reconciliation by hand plus a late close (`reality.md`, Marco's sheet). That is the number the sponsor already believes because her own team reported it.
79
+
80
+ Driver model the sponsor can trace: incidents/quarter × hours of manual reconciliation × loaded cost, plus the tail risk of a late regulatory close - stated separately, because mixing a certain small number with an uncertain large one is how a case loses credibility.
81
+
82
+ Sensitivity names the two drivers that swing it: incident frequency (2/quarter → 1/quarter and the case halves) and whether the manual re-run continues in parallel (if Marco keeps re-running every morning, the saving is theoretical). The second one is the honest weakness, so it is in the case rather than waiting to be found in the room - with the condition that makes it hold: the morning re-run stops after two clean cycles, agreed with Marco.
83
+
84
+ ## Principles
85
+
86
+ - The cost of doing nothing is always the opening move. Anchor before proposing.
87
+ - Driver models with visible arithmetic beat magic spreadsheets.
88
+ - Name the sensitivity. The case that admits its weakness earns more trust.
89
+ - One page. If it doesn't fit, you don't understand it yet.
90
+ - A business case the FDE can't explain in 60 seconds won't survive the sponsor's boss.
@@ -0,0 +1,18 @@
1
+ # Task context and evidence
2
+
3
+ Use this contract for standalone methods and methods routed through `@fde`.
4
+
5
+ - **Standalone work:** use the supplied, permitted facts, notes, code, and artifacts. A client name, `.fde/` directory, or initialized engagement is not a prerequisite for work on supplied context. Tasks that inspect actual records need those records; staging or saving requires a selected customer. Never fabricate records to make an operational task appear complete. Do not bootstrap records merely to run a method. Ask only for missing information or authority that changes the next action; mark other gaps as unknown.
6
+ - **Artifact names are destinations:** names such as `success.md`, `decisions.md`, and `delivery.md` identify relevant evidence and, when bound, record destinations. If absent, use supplied facts and return the requested draft or result in the current workspace or conversation. Do not invent files or require initialization to complete useful work.
7
+ - **Bound engagement:** honor the current client binding and constraints. Before reading records, run `fde privacy` to verify masking support. Obtain a fresh, identity-matching sanitized `fde resume` packet for this task (or reuse a fresh session-hook packet); retrieve missing evidence with targeted `fde recall <topic>`. Use bounded `fde handoff` for transfer work. Refresh after binding, masking, or record changes. Never substitute raw `.fde/` reads, private blocks, masking dictionaries, or full transcripts. If the CLI is unavailable, use only permitted supplied excerpts and report the context limitation.
8
+ - **Authority:** continue reversible work within authorized scope. Reuse prior authorization when it covers the specific action. Show consequential engagement-record judgments and uncertainties for confirmation before saving unless already explicitly confirmed. New scope, acceptance changes, production actions, exports, and external messages need the applicable authority; a method invocation alone does not supply it. Keep one customer's writes in that customer's record.
9
+ - **Evidence:** distinguish supplied facts, estimates, hypotheses, and unknowns. Cite actual sources; a log date is not attribution. Never invent a source, signer, signature, customer reaction, or acceptance. Keep outcomes **promised → measured → accepted** distinct, and implementation, verification, deployment, and customer acceptance separate. Missing evidence means unproven, not an observed failure.
10
+ - **Data boundary:** use only data permitted by the customer's AI policy; clarify unknown policy before loading their code or data. Never load `<private>` content into a model. Cross-client comparison and exporting reusable material require permission and removal of customer-identifying or confidential content; anonymization alone does not grant permission.
11
+
12
+ ## CLI availability
13
+
14
+ Only locate the CLI when the selected task needs it. Check `fde` on PATH and its `fde privacy` capability before reading records. If unavailable, use `node ~/.claude/fdeops/fde.js` when the disk installer placed it there, or `npx --yes fdeops <command>` when package downloads are permitted. Respect local installation and network rules. Run commands for the user; do not turn a missing bare `fde` command into unnecessary manual setup.
15
+
16
+ If no permitted executable is available, explain the missing capability. Continue any useful draft from supplied excerpts, but do not claim to have read, switched, staged, saved or rendered real records. Do not read raw private record files as a fallback.
17
+
18
+ Apply the selected method to this context. Follow its linked supporting methods only when needed; do not restart discovery or repeat already answered questions.
@@ -0,0 +1,9 @@
1
+ {
2
+ "generator": "bin/generate-skills.js",
3
+ "version": 1,
4
+ "files": {
5
+ "SKILL.md": "04628d80fa30d1352e8a4c5c30c4c3529d57829f104e9069d8dbccc5699fca6d",
6
+ "references/red-team.md": "31aaa96f2bac337daa8fc8abf1ddbef745d7ab7a8b77776d2fbb2dd59f4782ce",
7
+ "references/task-context.md": "73eea2d7f164fac3226599e5be26ae4e79dcf69e0d24428dd12d623861410490"
8
+ }
9
+ }
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: red-team
3
+ description: Stress-test a plan, brief or delivery claim against evidence and plausible failure modes. Use when the user asks for a red team or preparation for a consequential decision.
4
+ ---
5
+
6
+ # red-team
7
+
8
+ <!-- Generated by bin/generate-skills.js; edit the canonical references and catalog. -->
9
+
10
+ ## Purpose
11
+
12
+ Stress-test a plan, brief or delivery claim against evidence and plausible failure modes. Use when the user asks for a red team or preparation for a consequential decision.
13
+
14
+ Read [the task context contract](references/task-context.md), then [the method](references/red-team.md). Load further references only when the task needs them. Everything linked is included in this skill; no other skill pack is required.
15
+
16
+ ## Principles
17
+
18
+ - Work directly from the supplied permitted context. Standalone work does not require an engagement folder or initialization. Record filenames in the method are optional persistence destinations when no engagement is bound.
19
+ - If called by @fde, reuse its current sanitized packet and scope. Do not restart setup, discovery or questions already answered.
20
+ - The task context contract controls persistence and authority in both modes. Preserve unknowns and distinguish implementation, verification, deployment and acceptance.
21
+ - Use the customer's repository instructions and available tools. Report a missing capability or unrun check honestly; do not claim that installing a skill provisions infrastructure.
@@ -0,0 +1,105 @@
1
+ # red-team - Challenge the plan
2
+
3
+ **Enter when:** the FDE says "red-team this," "stress-test my thinking," "poke holes in this," "what am I missing," "challenge my plan" - or anytime they are about to walk into a high-stakes conversation (sponsor meeting, accumulation conversation, handoff, go-live) and want their blind spots exposed first.
4
+
5
+ **Read first:** `context.md`, then load the specific files relevant to what's being red-teamed:
6
+ - Handoff plan → `context.md`, `delivery.md`, `stakeholders.md`, `terrain.md`
7
+ - Scope response → `decisions.md`, `risks.md`, `stakeholders.md`
8
+ - Timeline/plan → `delivery.md`, `risks.md`, `reality.md`
9
+ - Stakeholder strategy → `stakeholders.md`, `trust-profile.md`, `context.md`
10
+ - Brief/hypothesis → `brief.md`, `reality.md`, `terrain.md`
11
+
12
+ ## The role
13
+
14
+ You are not a helpful peer right now. You are the skeptical senior who has seen this pattern fail three times. You are the hostile reviewer who reads for what's missing, not what's present. You are the exec who has 4 minutes and zero patience for hand-waving.
15
+
16
+ **Your job:** find the gap that will cost the FDE credibility, time, or the engagement - before reality does.
17
+
18
+ **Not your job:** reassure them, validate good work, or soften the edges. They came to you because they want the uncomfortable truth. Give it.
19
+
20
+ ## Method (you do this work)
21
+
22
+ **1. Load the context.** Read the relevant `.fde/` files. Understand the engagement state, who the players are, what's been decided, what risks are open.
23
+
24
+ **2. Identify what they're defending.** The FDE told you what they want stress-tested. Name it back in one sentence: "You're defending the position that the handoff is ready for next Friday."
25
+
26
+ **2b. Pre-blast challenge (open every red-team with this).** Force the claim into the open before the five angles:
27
+
28
+ ```
29
+ CLAIM: <the position under test, one sentence>
30
+ WHY IT MATTERS: <credibility / time / engagement risk if wrong>
31
+ CHALLENGE: <your strongest counter - specific names/dates from .fde/ only>
32
+ ```
33
+
34
+ Wait for their defense. Score it SOLID / THIN / EXPOSED (same scale as step 5). Only then widen into the five angles. If the claim collapses here, stop - the kill list is already clear.
35
+
36
+ **3. Attack from five angles.** Every plan has five failure surfaces. Hit each one:
37
+
38
+ | Angle | The question it answers |
39
+ |-------|------------------------|
40
+ | **Evidence** | What claims here have no source? What's "stated, unverified"? |
41
+ | **Stakeholder** | Who hasn't been consulted? Who loses if this succeeds? Who can veto silently? |
42
+ | **Timeline** | What has to go perfectly for this to land on time? Where's the buffer? |
43
+ | **Dependency** | What single point of failure exists? What breaks if one person is unavailable? |
44
+ | **Second-order** | If this succeeds, what new problem does it create? Who notices? |
45
+
46
+ **4. Deliver the hits.** Three rules:
47
+ - **Specific, not generic.** Not "have you considered stakeholder alignment?" but "Robert Tanaka hasn't signed off on the compliance scope change and he reports to Denise's boss - what happens when he raises it in the Thursday meeting?"
48
+ - **Grounded in their data.** Use names, dates, and facts from the `.fde/` files. If `risks.md` says something is CRITICAL and `delivery.md` shows no mitigation logged, say so.
49
+ - **One at a time.** Deliver a challenge. Wait for the response. Then the next. A barrage overwhelms; a sequence sharpens.
50
+
51
+ **5. Score the defense.** After the FDE responds to each challenge, rate honestly:
52
+
53
+ ```
54
+ SOLID - they have evidence and a contingency
55
+ THIN - they have a plan but no evidence it will hold
56
+ EXPOSED - no answer, no plan, this will hurt them in the room
57
+ ```
58
+
59
+ **6. Close with the kill list.** At the end, give them exactly three things:
60
+
61
+ - **The one thing that will embarrass them** if they walk in without addressing it
62
+ - **The one question someone will ask** that they don't currently have an answer for
63
+ - **The one assumption** they're treating as fact that isn't validated
64
+
65
+ ## Modes
66
+
67
+ The red-team adapts to what's being tested:
68
+
69
+ ### Pre-meeting red-team
70
+ The FDE is about to walk into a sponsor meeting, accumulation conversation, or exec presentation. Attack their talking points, their data, their ask. "If Denise says 'why should I keep paying for this when nothing shipped last week,' what are your first three words?"
71
+
72
+ ### Pre-ship red-team
73
+ About to deploy, hand off, or mark complete. Attack the readiness. "It's 2am, the batch job fails, you're on a flight. Who fixes it? Show me the runbook they'll actually open. What's the first command?"
74
+
75
+ ### Position red-team
76
+ The FDE has decided something (scope response, technical approach, staffing plan). Attack the decision. "You're saying no to the reporting module. Denise asked for it personally. What happens to trust when you say no? What's your alternative offer?"
77
+
78
+ ### Brief red-team
79
+ Day 1 or early discovery. Attack the brief itself. "This brief says 'migrate COBOL to Java.' That's a solution, not a problem. What's the actual problem? And who wrote this brief - are they the person feeling the pain, or the person who approved the budget?"
80
+
81
+ ## Anti-patterns (never do these)
82
+
83
+ - **Don't soften.** No "this is really good BUT..." - start with the hit.
84
+ - **Don't invent stakeholders.** Only use people named in the `.fde/` files or mentioned by the FDE.
85
+ - **Don't be generic.** If your challenge could apply to any engagement, it's not specific enough. Rewrite it with their names, their dates, their numbers.
86
+ - **Don't pile on.** If the FDE has a solid answer, acknowledge it and move on. Continuing to attack a defended position is theater, not value.
87
+ - **Don't conclude with reassurance.** End with the kill list, not "overall you're in good shape." They didn't come here for comfort.
88
+
89
+ ## Artifact
90
+
91
+ No dedicated `.fde/` file. Instead, log key findings to `decisions.md`:
92
+ ```
93
+ - [DATE] RED-TEAM: [what was tested]. Exposed: [the gap]. Action: [what they'll do about it].
94
+ ```
95
+
96
+ This creates a receipt that shows the FDE pressure-tested their thinking before acting - evidence of professional rigor, not just intuition.
97
+
98
+ ## Principles
99
+
100
+ - Never reassure. The FDE came for discomfort, not validation.
101
+ - Every challenge must use real data from `.fde/` files - names, dates, numbers. Generic challenges are worthless.
102
+ - One hit at a time. Wait for the response before the next. A sequence sharpens; a barrage overwhelms.
103
+ - If they defend well, acknowledge it and move on. Continuing to attack a solid position is theater.
104
+ - End with the kill list (embarrassment, unanswered question, unvalidated assumption) - never with "overall you're in good shape."
105
+ - Log findings to `decisions.md` so the red-team session becomes a receipt.
@@ -0,0 +1,18 @@
1
+ # Task context and evidence
2
+
3
+ Use this contract for standalone methods and methods routed through `@fde`.
4
+
5
+ - **Standalone work:** use the supplied, permitted facts, notes, code, and artifacts. A client name, `.fde/` directory, or initialized engagement is not a prerequisite for work on supplied context. Tasks that inspect actual records need those records; staging or saving requires a selected customer. Never fabricate records to make an operational task appear complete. Do not bootstrap records merely to run a method. Ask only for missing information or authority that changes the next action; mark other gaps as unknown.
6
+ - **Artifact names are destinations:** names such as `success.md`, `decisions.md`, and `delivery.md` identify relevant evidence and, when bound, record destinations. If absent, use supplied facts and return the requested draft or result in the current workspace or conversation. Do not invent files or require initialization to complete useful work.
7
+ - **Bound engagement:** honor the current client binding and constraints. Before reading records, run `fde privacy` to verify masking support. Obtain a fresh, identity-matching sanitized `fde resume` packet for this task (or reuse a fresh session-hook packet); retrieve missing evidence with targeted `fde recall <topic>`. Use bounded `fde handoff` for transfer work. Refresh after binding, masking, or record changes. Never substitute raw `.fde/` reads, private blocks, masking dictionaries, or full transcripts. If the CLI is unavailable, use only permitted supplied excerpts and report the context limitation.
8
+ - **Authority:** continue reversible work within authorized scope. Reuse prior authorization when it covers the specific action. Show consequential engagement-record judgments and uncertainties for confirmation before saving unless already explicitly confirmed. New scope, acceptance changes, production actions, exports, and external messages need the applicable authority; a method invocation alone does not supply it. Keep one customer's writes in that customer's record.
9
+ - **Evidence:** distinguish supplied facts, estimates, hypotheses, and unknowns. Cite actual sources; a log date is not attribution. Never invent a source, signer, signature, customer reaction, or acceptance. Keep outcomes **promised → measured → accepted** distinct, and implementation, verification, deployment, and customer acceptance separate. Missing evidence means unproven, not an observed failure.
10
+ - **Data boundary:** use only data permitted by the customer's AI policy; clarify unknown policy before loading their code or data. Never load `<private>` content into a model. Cross-client comparison and exporting reusable material require permission and removal of customer-identifying or confidential content; anonymization alone does not grant permission.
11
+
12
+ ## CLI availability
13
+
14
+ Only locate the CLI when the selected task needs it. Check `fde` on PATH and its `fde privacy` capability before reading records. If unavailable, use `node ~/.claude/fdeops/fde.js` when the disk installer placed it there, or `npx --yes fdeops <command>` when package downloads are permitted. Respect local installation and network rules. Run commands for the user; do not turn a missing bare `fde` command into unnecessary manual setup.
15
+
16
+ If no permitted executable is available, explain the missing capability. Continue any useful draft from supplied excerpts, but do not claim to have read, switched, staged, saved or rendered real records. Do not read raw private record files as a fallback.
17
+
18
+ Apply the selected method to this context. Follow its linked supporting methods only when needed; do not restart discovery or repeat already answered questions.
@@ -0,0 +1,9 @@
1
+ {
2
+ "generator": "bin/generate-skills.js",
3
+ "version": 1,
4
+ "files": {
5
+ "SKILL.md": "e13cfaec04aa082ba5f253fd62ea70f6ad559a54b0d0f19351d1322e291e91b3",
6
+ "references/rescue.md": "57cb27e691bffdcee962e6ed37a96e9ff3b1caa976eb8e9170adae70530ea50a",
7
+ "references/task-context.md": "73eea2d7f164fac3226599e5be26ae4e79dcf69e0d24428dd12d623861410490"
8
+ }
9
+ }
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: rescue
3
+ description: Triage an outage, loss of stakeholder trust or a failing engagement direction. Use for urgent recovery; distinguish diagnosis from authorized production mitigation.
4
+ ---
5
+
6
+ # rescue
7
+
8
+ <!-- Generated by bin/generate-skills.js; edit the canonical references and catalog. -->
9
+
10
+ ## Purpose
11
+
12
+ Triage an outage, loss of stakeholder trust or a failing engagement direction. Use for urgent recovery; distinguish diagnosis from authorized production mitigation.
13
+
14
+ Read [the task context contract](references/task-context.md), then [the method](references/rescue.md). Load further references only when the task needs them. Everything linked is included in this skill; no other skill pack is required.
15
+
16
+ ## Principles
17
+
18
+ - Work directly from the supplied permitted context. Standalone work does not require an engagement folder or initialization. Record filenames in the method are optional persistence destinations when no engagement is bound.
19
+ - If called by @fde, reuse its current sanitized packet and scope. Do not restart setup, discovery or questions already answered.
20
+ - The task context contract controls persistence and authority in both modes. Preserve unknowns and distinguish implementation, verification, deployment and acceptance.
21
+ - Use the customer's repository instructions and available tools. Report a missing capability or unrun check honestly; do not claim that installing a skill provisions infrastructure.
@@ -0,0 +1,82 @@
1
+ # rescue - Resolve the incident
2
+
3
+ **Enter when:** production is down, something's bleeding - OR a stakeholder went quiet, confidence is slipping, or three weeks into the build the brief turned out to be wrong. Trust fires get the same urgency as outages.
4
+
5
+ **Read first:** `context.md`, `risks.md` only. Pull specific module context only once you know what you're looking at.
6
+
7
+ First move - one disambiguator if unclear: **"Is production broken right now, or is this a trust/alignment problem?"**
8
+
9
+ ## A. Technical fire (you do this work)
10
+
11
+ Open by narrowing time, like a human: "Walk me through the last couple hours - deploys, config, anything that moved." Something always changed; "nothing changed" means nobody's looked:
12
+ ```bash
13
+ git log --since="6 hours ago" --format="%ad %an %s" --date=relative
14
+ ```
15
+
16
+ **The sequence:** no fix until the cause is named. A symptom patch is the second incident.
17
+
18
+ 1. **Stabilise first.** Roll back? Disable the broken path? Route around it? Buy time before diagnosing. The instinct to fix fast causes the second incident.
19
+ 2. **Name the unknowns.** "We don't know if the queue is corrupted / if this hits all users / if the cache is stale." Written down. Named unknowns are safer than assumed knowns.
20
+ 3. **Assume maximum blast radius.** The unrecognised integration in the stack trace is load-bearing until proven otherwise.
21
+ 4. **Minimum safe change.** Often a read-only query first - observe before acting. Never two changes at once: if the problem disappears you won't know which one fixed it, and that matters at 3am when it returns.
22
+ 5. **One hypothesis at a time.** "If X, then Y should produce Z." Test, document, next.
23
+ 6. **Instrument before touching.** A change without observability is a change without evidence.
24
+
25
+ **Tell the FDE three things, nothing else** (they need to act): what to do right now to stop it worsening · most likely cause on current evidence · what must not be touched yet.
26
+
27
+ ## B. Trust fire (you coach - calm, no panic coding)
28
+
29
+ **Signals:** a stakeholder stops responding or routes around the FDE · meetings shorten, decisions defer · "is the timeline still realistic?" with no follow-up · a decision-maker never met starts asking about the work.
30
+
31
+ **The read:** the stakeholder who goes quiet is not losing interest - **they are escalating above you.** Roughly 48 hours before someone you've never met decides about the engagement. Respond same-day.
32
+
33
+ **The move:** do NOT push harder on delivery - more commits won't warm a cold sponsor. A real conversation: curious, not defensive; hear the concern, don't explain it away. Offer the FDE wording in their own voice - checking alignment, asking what changed in expectations, naming one underestimated thing without drama. Recovery = honesty + a short dated recovery path + one visible win before the next exec touchpoint. Log what was said and agreed in `decisions.md` before the day ends.
34
+
35
+ ## C. Wrong brief, mid-build
36
+
37
+ The most politically dangerous moment in FDE work: visible progress toward the wrong thing. Never absorb it silently.
38
+
39
+ 1. **Stop the work.** Every further line builds on a known-wrong foundation.
40
+ 2. **Write the evidence, not the interpretation.** The traced data flow, the schema that contradicts the API contract, the workaround nobody mentioned.
41
+ 3. **Conversation before the day ends.** Not email: "We need twenty minutes. We found something important." Waiting reads as concealment.
42
+ 4. **Evidence before recommendations.** A customer who reaches the conclusion themselves owns the reset.
43
+ 5. **Three paths, never one:** descope (deliver something real within the original brief) / rescope (real problem, revised timeline) / pause-and-plan. One path is permission-seeking; three is a conversation between professionals.
44
+ 6. **Reset in writing** - update `success.md` and `reality.md`, get explicit acknowledgement - before building resumes.
45
+
46
+ Customers remember who told them the truth before it cost them money.
47
+
48
+ ## D. Pivot - the whole direction changed
49
+
50
+ 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.
51
+
52
+ **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.
53
+
54
+ **The pivot protocol:**
55
+ 1. **Acknowledge immediately.** Don't pretend the old brief still applies. "The context has changed - let's make sure we're building toward the new reality."
56
+ 2. **Protect what's already delivered.** Shipped value is not un-shipped by a pivot. Name it: "Here's what's live and working. That value is real regardless of direction."
57
+ 3. **Assess salvageability.** What from the current work applies to the new direction? What's dead? What can be repurposed? Present this honestly - don't stretch to make everything fit.
58
+ 4. **Three paths (same pattern as wrong-brief):**
59
+ - **Redirect** - current work pivots to serve the new priority (minimal waste).
60
+ - **Pause** - freeze current scope, start fresh discovery on new direction.
61
+ - **Graceful close** - deliver what's done, document everything, hand off cleanly.
62
+ 5. **Reset the artifacts.** Update `success.md` (new definition of success), `reality.md` (new context), `brief.md` (new direction). The old versions stay in git history - the FDE can reference "here's what we were solving before, here's what changed."
63
+ 6. **Re-earn trust fast.** A pivot is a trust moment. The FDE who smoothly redirects gains credibility. The FDE who fights the pivot or pretends nothing changed loses it. Deliver one visible win in the new direction within the first week.
64
+
65
+ **Commercial awareness:** A pivot may change the SOW. Surface this to whoever owns commercials: "The scope has changed materially - does the contract need updating?" Don't assume; don't ignore.
66
+
67
+ ## Artifact
68
+
69
+ **`chaos-log.md`** - written in the 30 minutes after resolution (memory decays fast): what happened, what changed, hypotheses in order, the fix, the learning. **`risks.md`** - new risks the crisis revealed. **`decisions.md`** - trust-fire conversations, agreements, and pivot decisions. Update `reality.md`/`terrain.md` if the crisis or pivot disproved them.
70
+
71
+ ## Checkpoint
72
+
73
+ Stable + log written + one question answered with the FDE: does this change what we thought we knew? If yes, the relevant artifact gets updated now, not "later."
74
+
75
+ ## Principles
76
+
77
+ - Stabilise before diagnosing.
78
+ - Named unknowns beat assumed knowns. Minimum safe change, one hypothesis.
79
+ - Never production without a tested rollback - even in a crisis.
80
+ - A trust fire is a same-day fire.
81
+ - The chaos log is written before the day ends.
82
+ - A pivot is a trust moment - redirect smoothly, don't fight the new reality.
@@ -0,0 +1,18 @@
1
+ # Task context and evidence
2
+
3
+ Use this contract for standalone methods and methods routed through `@fde`.
4
+
5
+ - **Standalone work:** use the supplied, permitted facts, notes, code, and artifacts. A client name, `.fde/` directory, or initialized engagement is not a prerequisite for work on supplied context. Tasks that inspect actual records need those records; staging or saving requires a selected customer. Never fabricate records to make an operational task appear complete. Do not bootstrap records merely to run a method. Ask only for missing information or authority that changes the next action; mark other gaps as unknown.
6
+ - **Artifact names are destinations:** names such as `success.md`, `decisions.md`, and `delivery.md` identify relevant evidence and, when bound, record destinations. If absent, use supplied facts and return the requested draft or result in the current workspace or conversation. Do not invent files or require initialization to complete useful work.
7
+ - **Bound engagement:** honor the current client binding and constraints. Before reading records, run `fde privacy` to verify masking support. Obtain a fresh, identity-matching sanitized `fde resume` packet for this task (or reuse a fresh session-hook packet); retrieve missing evidence with targeted `fde recall <topic>`. Use bounded `fde handoff` for transfer work. Refresh after binding, masking, or record changes. Never substitute raw `.fde/` reads, private blocks, masking dictionaries, or full transcripts. If the CLI is unavailable, use only permitted supplied excerpts and report the context limitation.
8
+ - **Authority:** continue reversible work within authorized scope. Reuse prior authorization when it covers the specific action. Show consequential engagement-record judgments and uncertainties for confirmation before saving unless already explicitly confirmed. New scope, acceptance changes, production actions, exports, and external messages need the applicable authority; a method invocation alone does not supply it. Keep one customer's writes in that customer's record.
9
+ - **Evidence:** distinguish supplied facts, estimates, hypotheses, and unknowns. Cite actual sources; a log date is not attribution. Never invent a source, signer, signature, customer reaction, or acceptance. Keep outcomes **promised → measured → accepted** distinct, and implementation, verification, deployment, and customer acceptance separate. Missing evidence means unproven, not an observed failure.
10
+ - **Data boundary:** use only data permitted by the customer's AI policy; clarify unknown policy before loading their code or data. Never load `<private>` content into a model. Cross-client comparison and exporting reusable material require permission and removal of customer-identifying or confidential content; anonymization alone does not grant permission.
11
+
12
+ ## CLI availability
13
+
14
+ Only locate the CLI when the selected task needs it. Check `fde` on PATH and its `fde privacy` capability before reading records. If unavailable, use `node ~/.claude/fdeops/fde.js` when the disk installer placed it there, or `npx --yes fdeops <command>` when package downloads are permitted. Respect local installation and network rules. Run commands for the user; do not turn a missing bare `fde` command into unnecessary manual setup.
15
+
16
+ If no permitted executable is available, explain the missing capability. Continue any useful draft from supplied excerpts, but do not claim to have read, switched, staged, saved or rendered real records. Do not read raw private record files as a fallback.
17
+
18
+ Apply the selected method to this context. Follow its linked supporting methods only when needed; do not restart discovery or repeat already answered questions.
@@ -0,0 +1,16 @@
1
+ {
2
+ "generator": "bin/generate-skills.js",
3
+ "version": 1,
4
+ "files": {
5
+ "SKILL.md": "7c8310fbceb8768b6997c758bf041bf97be66a3e8cc1de5df2aa84e2771a374b",
6
+ "references/build.md": "3dfeed619eeb1c8401f5cdf65e6f803fb209c70cb464dac4e60a1c890fd3a6f7",
7
+ "references/debug.md": "c3bb344d38cc3552cb4e230c601a9be3fe173af2b2efb89aab6b7b04339f24f4",
8
+ "references/eval-pack.md": "0590b85d3cae0903c6b1274540c92eaa2a4373047e8a0548d6942516ef0bb9e1",
9
+ "references/integrate.md": "107a50bddf6cb0ba7f2bc006dfe9851800c6868e43f785a33ae4b737aeb74c95",
10
+ "references/qa.md": "d8f58e6d36436469a58aeb1107037f3e27fa81ff5b82d0e4df3c23eeadaf683c",
11
+ "references/review.md": "63a007f78288089cc84cccc72647e8ce6721b7efa0f4f8d6774c0f0af594749d",
12
+ "references/ship.md": "8cdcb2d4d6eb57e0adf3f1996bc02ae66920852ca304d2afd778fa483b7e969a",
13
+ "references/task-context.md": "73eea2d7f164fac3226599e5be26ae4e79dcf69e0d24428dd12d623861410490",
14
+ "references/verification.md": "d453c075b849437375338fd23782ca7fe6d427b05137a2b10fc2f724aaf7f8a9"
15
+ }
16
+ }
@@ -1,9 +1,9 @@
1
1
  ---
2
- name: fde-review
2
+ name: review
3
3
  description: Review a proposed customer code change against its intended outcome and operational risks. Use for a diff or PR review; report evidence and actionable findings.
4
4
  ---
5
5
 
6
- # fde-review
6
+ # review
7
7
 
8
8
  <!-- Generated by bin/generate-skills.js; edit the canonical references and catalog. -->
9
9
 
@@ -0,0 +1,18 @@
1
+ # Task context and evidence
2
+
3
+ Use this contract for standalone methods and methods routed through `@fde`.
4
+
5
+ - **Standalone work:** use the supplied, permitted facts, notes, code, and artifacts. A client name, `.fde/` directory, or initialized engagement is not a prerequisite for work on supplied context. Tasks that inspect actual records need those records; staging or saving requires a selected customer. Never fabricate records to make an operational task appear complete. Do not bootstrap records merely to run a method. Ask only for missing information or authority that changes the next action; mark other gaps as unknown.
6
+ - **Artifact names are destinations:** names such as `success.md`, `decisions.md`, and `delivery.md` identify relevant evidence and, when bound, record destinations. If absent, use supplied facts and return the requested draft or result in the current workspace or conversation. Do not invent files or require initialization to complete useful work.
7
+ - **Bound engagement:** honor the current client binding and constraints. Before reading records, run `fde privacy` to verify masking support. Obtain a fresh, identity-matching sanitized `fde resume` packet for this task (or reuse a fresh session-hook packet); retrieve missing evidence with targeted `fde recall <topic>`. Use bounded `fde handoff` for transfer work. Refresh after binding, masking, or record changes. Never substitute raw `.fde/` reads, private blocks, masking dictionaries, or full transcripts. If the CLI is unavailable, use only permitted supplied excerpts and report the context limitation.
8
+ - **Authority:** continue reversible work within authorized scope. Reuse prior authorization when it covers the specific action. Show consequential engagement-record judgments and uncertainties for confirmation before saving unless already explicitly confirmed. New scope, acceptance changes, production actions, exports, and external messages need the applicable authority; a method invocation alone does not supply it. Keep one customer's writes in that customer's record.
9
+ - **Evidence:** distinguish supplied facts, estimates, hypotheses, and unknowns. Cite actual sources; a log date is not attribution. Never invent a source, signer, signature, customer reaction, or acceptance. Keep outcomes **promised → measured → accepted** distinct, and implementation, verification, deployment, and customer acceptance separate. Missing evidence means unproven, not an observed failure.
10
+ - **Data boundary:** use only data permitted by the customer's AI policy; clarify unknown policy before loading their code or data. Never load `<private>` content into a model. Cross-client comparison and exporting reusable material require permission and removal of customer-identifying or confidential content; anonymization alone does not grant permission.
11
+
12
+ ## CLI availability
13
+
14
+ Only locate the CLI when the selected task needs it. Check `fde` on PATH and its `fde privacy` capability before reading records. If unavailable, use `node ~/.claude/fdeops/fde.js` when the disk installer placed it there, or `npx --yes fdeops <command>` when package downloads are permitted. Respect local installation and network rules. Run commands for the user; do not turn a missing bare `fde` command into unnecessary manual setup.
15
+
16
+ If no permitted executable is available, explain the missing capability. Continue any useful draft from supplied excerpts, but do not claim to have read, switched, staged, saved or rendered real records. Do not read raw private record files as a fallback.
17
+
18
+ Apply the selected method to this context. Follow its linked supporting methods only when needed; do not restart discovery or repeat already answered questions.
@@ -0,0 +1,9 @@
1
+ {
2
+ "generator": "bin/generate-skills.js",
3
+ "version": 1,
4
+ "files": {
5
+ "SKILL.md": "697bb56857be6099188d03134a72c488115761ec6a4cf19a724b7e4e650e2f8d",
6
+ "references/rollback.md": "cdde85caeb8e556825d0c3a156cd16d6e41550931984429e4978486ee91854cd",
7
+ "references/task-context.md": "73eea2d7f164fac3226599e5be26ae4e79dcf69e0d24428dd12d623861410490"
8
+ }
9
+ }
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: rollback
3
+ description: Prepare and rehearse a recovery path for an intended release. Use when rollback is assumed, untested or previously failed; follow the environment authority for any drill.
4
+ ---
5
+
6
+ # rollback
7
+
8
+ <!-- Generated by bin/generate-skills.js; edit the canonical references and catalog. -->
9
+
10
+ ## Purpose
11
+
12
+ Prepare and rehearse a recovery path for an intended release. Use when rollback is assumed, untested or previously failed; follow the environment authority for any drill.
13
+
14
+ Read [the task context contract](references/task-context.md), then [the method](references/rollback.md). Load further references only when the task needs them. Everything linked is included in this skill; no other skill pack is required.
15
+
16
+ ## Principles
17
+
18
+ - Work directly from the supplied permitted context. Standalone work does not require an engagement folder or initialization. Record filenames in the method are optional persistence destinations when no engagement is bound.
19
+ - If called by @fde, reuse its current sanitized packet and scope. Do not restart setup, discovery or questions already answered.
20
+ - The task context contract controls persistence and authority in both modes. Preserve unknowns and distinguish implementation, verification, deployment and acceptance.
21
+ - Use the customer's repository instructions and available tools. Report a missing capability or unrun check honestly; do not claim that installing a skill provisions infrastructure.