fdeops 5.0.0 → 5.1.1

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 (173) hide show
  1. package/AGENTS.md +1 -1
  2. package/README.md +30 -26
  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 +9 -1
  7. package/bin/install.js +9 -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/audit.md +71 -0
  16. package/skills/audit/references/discover.md +112 -0
  17. package/skills/audit/references/task-context.md +18 -0
  18. package/skills/board-memo/.fde-generated.json +10 -0
  19. package/skills/board-memo/SKILL.md +21 -0
  20. package/skills/board-memo/references/board-memo.md +108 -0
  21. package/skills/board-memo/references/business-case.md +90 -0
  22. package/skills/board-memo/references/task-context.md +18 -0
  23. package/skills/brief/.fde-generated.json +9 -0
  24. package/skills/brief/SKILL.md +21 -0
  25. package/skills/brief/references/land.md +136 -0
  26. package/skills/brief/references/task-context.md +18 -0
  27. package/skills/build/.fde-generated.json +3 -3
  28. package/skills/build/references/build.md +1 -1
  29. package/skills/build/references/integrate.md +12 -2
  30. package/skills/build/references/task-context.md +7 -1
  31. package/skills/business-case/.fde-generated.json +9 -0
  32. package/skills/business-case/SKILL.md +21 -0
  33. package/skills/business-case/references/business-case.md +90 -0
  34. package/skills/business-case/references/task-context.md +18 -0
  35. package/skills/connect/.fde-generated.json +12 -0
  36. package/skills/connect/SKILL.md +21 -0
  37. package/skills/connect/references/connect.md +24 -0
  38. package/skills/connect/references/debrief.md +91 -0
  39. package/skills/connect/references/ingest.md +75 -0
  40. package/skills/connect/references/source-setup.md +30 -0
  41. package/skills/connect/references/task-context.md +18 -0
  42. package/skills/dashboard/.fde-generated.json +9 -0
  43. package/skills/dashboard/SKILL.md +21 -0
  44. package/skills/dashboard/references/dashboard.md +40 -0
  45. package/skills/dashboard/references/task-context.md +18 -0
  46. package/skills/debrief/.fde-generated.json +12 -0
  47. package/skills/debrief/SKILL.md +21 -0
  48. package/skills/debrief/references/connect.md +24 -0
  49. package/skills/debrief/references/debrief.md +91 -0
  50. package/skills/debrief/references/ingest.md +75 -0
  51. package/skills/debrief/references/source-setup.md +30 -0
  52. package/skills/debrief/references/task-context.md +18 -0
  53. package/skills/debug/.fde-generated.json +3 -3
  54. package/skills/debug/references/build.md +1 -1
  55. package/skills/debug/references/integrate.md +12 -2
  56. package/skills/debug/references/task-context.md +7 -1
  57. package/skills/demo-prep/.fde-generated.json +9 -0
  58. package/skills/demo-prep/SKILL.md +21 -0
  59. package/skills/demo-prep/references/demo-prep.md +31 -0
  60. package/skills/demo-prep/references/task-context.md +18 -0
  61. package/skills/discover/.fde-generated.json +1 -1
  62. package/skills/discover/references/task-context.md +7 -1
  63. package/skills/earn-trust/.fde-generated.json +9 -0
  64. package/skills/earn-trust/SKILL.md +21 -0
  65. package/skills/earn-trust/references/earn-trust.md +81 -0
  66. package/skills/earn-trust/references/task-context.md +18 -0
  67. package/skills/evaluate/.fde-generated.json +3 -3
  68. package/skills/evaluate/references/build.md +1 -1
  69. package/skills/evaluate/references/integrate.md +12 -2
  70. package/skills/evaluate/references/task-context.md +7 -1
  71. package/skills/fde/SKILL.md +24 -21
  72. package/skills/fde/references/build.md +1 -1
  73. package/skills/fde/references/connect.md +14 -24
  74. package/skills/fde/references/debrief.md +2 -0
  75. package/skills/fde/references/earn-trust.md +27 -46
  76. package/skills/fde/references/hold-scope.md +25 -24
  77. package/skills/fde/references/ingest.md +4 -2
  78. package/skills/fde/references/integrate.md +12 -2
  79. package/skills/fde/references/land.md +28 -28
  80. package/skills/fde/references/plan.md +6 -6
  81. package/skills/fde/references/rescue.md +18 -18
  82. package/skills/fde/references/runbook.md +52 -120
  83. package/skills/fde/references/source-setup.md +30 -0
  84. package/skills/fde/references/task-context.md +7 -1
  85. package/skills/fde/references/who-decides.md +29 -57
  86. package/skills/feedback/.fde-generated.json +1 -1
  87. package/skills/feedback/references/task-context.md +7 -1
  88. package/skills/handoff/.fde-generated.json +1 -1
  89. package/skills/handoff/references/task-context.md +7 -1
  90. package/skills/ingest/.fde-generated.json +12 -0
  91. package/skills/ingest/SKILL.md +21 -0
  92. package/skills/ingest/references/connect.md +24 -0
  93. package/skills/ingest/references/debrief.md +91 -0
  94. package/skills/ingest/references/ingest.md +75 -0
  95. package/skills/ingest/references/source-setup.md +30 -0
  96. package/skills/ingest/references/task-context.md +18 -0
  97. package/skills/integrate/.fde-generated.json +3 -3
  98. package/skills/integrate/references/build.md +1 -1
  99. package/skills/integrate/references/integrate.md +12 -2
  100. package/skills/integrate/references/task-context.md +7 -1
  101. package/skills/options/.fde-generated.json +1 -1
  102. package/skills/options/references/task-context.md +7 -1
  103. package/skills/plan/.fde-generated.json +10 -0
  104. package/skills/plan/SKILL.md +21 -0
  105. package/skills/plan/references/business-case.md +90 -0
  106. package/skills/plan/references/plan.md +167 -0
  107. package/skills/plan/references/task-context.md +18 -0
  108. package/skills/poc/.fde-generated.json +4 -4
  109. package/skills/poc/references/build.md +1 -1
  110. package/skills/poc/references/integrate.md +12 -2
  111. package/skills/poc/references/plan.md +6 -6
  112. package/skills/poc/references/task-context.md +7 -1
  113. package/skills/prioritize/.fde-generated.json +10 -0
  114. package/skills/prioritize/SKILL.md +21 -0
  115. package/skills/prioritize/references/business-case.md +90 -0
  116. package/skills/prioritize/references/pick-three.md +95 -0
  117. package/skills/prioritize/references/task-context.md +18 -0
  118. package/skills/qa/.fde-generated.json +3 -3
  119. package/skills/qa/references/build.md +1 -1
  120. package/skills/qa/references/integrate.md +12 -2
  121. package/skills/qa/references/task-context.md +7 -1
  122. package/skills/readout/.fde-generated.json +1 -1
  123. package/skills/readout/references/task-context.md +7 -1
  124. package/skills/red-team/.fde-generated.json +9 -0
  125. package/skills/red-team/SKILL.md +21 -0
  126. package/skills/red-team/references/red-team.md +105 -0
  127. package/skills/red-team/references/task-context.md +18 -0
  128. package/skills/rescue/.fde-generated.json +9 -0
  129. package/skills/rescue/SKILL.md +21 -0
  130. package/skills/rescue/references/rescue.md +82 -0
  131. package/skills/rescue/references/task-context.md +18 -0
  132. package/skills/review/.fde-generated.json +3 -3
  133. package/skills/review/references/build.md +1 -1
  134. package/skills/review/references/integrate.md +12 -2
  135. package/skills/review/references/task-context.md +7 -1
  136. package/skills/rollback/.fde-generated.json +9 -0
  137. package/skills/rollback/SKILL.md +21 -0
  138. package/skills/rollback/references/rollback.md +102 -0
  139. package/skills/rollback/references/task-context.md +18 -0
  140. package/skills/runbook/.fde-generated.json +11 -0
  141. package/skills/runbook/SKILL.md +21 -0
  142. package/skills/runbook/references/close.md +66 -0
  143. package/skills/runbook/references/encode-pattern.md +96 -0
  144. package/skills/runbook/references/runbook.md +73 -0
  145. package/skills/runbook/references/task-context.md +18 -0
  146. package/skills/scope/.fde-generated.json +2 -2
  147. package/skills/scope/references/hold-scope.md +25 -24
  148. package/skills/scope/references/task-context.md +7 -1
  149. package/skills/score-use-cases/.fde-generated.json +10 -0
  150. package/skills/score-use-cases/SKILL.md +21 -0
  151. package/skills/score-use-cases/references/business-case.md +90 -0
  152. package/skills/score-use-cases/references/score-use-cases.md +70 -0
  153. package/skills/score-use-cases/references/task-context.md +18 -0
  154. package/skills/ship/.fde-generated.json +3 -3
  155. package/skills/ship/references/build.md +1 -1
  156. package/skills/ship/references/integrate.md +12 -2
  157. package/skills/ship/references/task-context.md +7 -1
  158. package/skills/switch-clients/.fde-generated.json +9 -0
  159. package/skills/switch-clients/SKILL.md +21 -0
  160. package/skills/switch-clients/references/switch-clients.md +114 -0
  161. package/skills/switch-clients/references/task-context.md +18 -0
  162. package/skills/test-assumptions/.fde-generated.json +9 -0
  163. package/skills/test-assumptions/SKILL.md +21 -0
  164. package/skills/test-assumptions/references/task-context.md +18 -0
  165. package/skills/test-assumptions/references/test-assumptions.md +102 -0
  166. package/skills/what-breaks/.fde-generated.json +9 -0
  167. package/skills/what-breaks/SKILL.md +21 -0
  168. package/skills/what-breaks/references/task-context.md +18 -0
  169. package/skills/what-breaks/references/what-breaks.md +91 -0
  170. package/skills/who-decides/.fde-generated.json +9 -0
  171. package/skills/who-decides/SKILL.md +21 -0
  172. package/skills/who-decides/references/task-context.md +18 -0
  173. package/skills/who-decides/references/who-decides.md +63 -0
@@ -0,0 +1,102 @@
1
+ # rollback - Rehearse rollback
2
+
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
+
5
+ **Read first:** `delivery.md` (the deployment record), `terrain.md`, `trust-profile.md` (for change-approval requirements), `context.md`.
6
+
7
+ "We can always revert" is the most dangerous sentence in deployment. A rollback plan that hasn't been tested is a wish, not a plan. The drill proves the escape route works before you need it at 2am.
8
+
9
+ ## Method (you do this work)
10
+
11
+ **1. Map the rollback path for every change type:**
12
+
13
+ | Change type | Rollback method | Complication | Test |
14
+ |-------------|----------------|--------------|------|
15
+ | **Code deploy** | Revert the PR / redeploy previous version | Feature flags, cache invalidation | Deploy previous version to staging, verify function |
16
+ | **Database migration** | Compatible rollback, restore, or roll-forward | Irreversible transforms, concurrent writes, old/new schema compatibility | Rehearse on representative staging data; verify integrity, elapsed time, and possible data loss |
17
+ | **Config change** | Restore previous config | Propagation delay, dependent service restarts | Flip config, verify all services pick it up |
18
+ | **Infrastructure** | Terraform/Pulumi rollback or manual | State drift, dependent resources | Plan the rollback, review the diff |
19
+ | **Data backfill** | Restore from backup or reverse script | Mixed old/new data states | Run reverse on a 100-row sample |
20
+
21
+ **2. Identify the irreversible components.** Some changes can't be rolled back:
22
+
23
+ - Column drops after data migration
24
+ - Encryption key rotations after old key is destroyed
25
+ - External API version deprecations
26
+ - Emails/notifications already sent
27
+ - Published API changes consumed by third parties
28
+
29
+ For each irreversible component: **what's the compensating action?** Not "undo" but "what do we do to recover the same effect?"
30
+
31
+ **3. Run the drill.** On staging or a test environment - never on production:
32
+
33
+ ```
34
+ DRILL PROTOCOL:
35
+ 1. Deploy the change (confirm it works)
36
+ 2. Start a timer
37
+ 3. Execute the documented rollback procedure - exactly as written, no shortcuts
38
+ 4. Measure: time to complete, services affected, data state after
39
+ 5. Verify: can users still do the critical path?
40
+ 6. Record: what worked, what was unclear, what failed
41
+ ```
42
+
43
+ **4. The drill report.** Honest, specific, actionable:
44
+
45
+ ```markdown
46
+ ## Rollback drill - <date>
47
+ Change: <what was deployed>
48
+ Environment: staging
49
+ Rollback method: <what was executed>
50
+ Time to rollback: <minutes:seconds>
51
+ Result: PASS / FAIL / PARTIAL
52
+
53
+ What worked:
54
+ - Code revert completed in 45s
55
+ - Feature flag disabled correctly
56
+
57
+ What didn't:
58
+ - Database down migration left orphan rows in junction table
59
+ - Cache took 3 minutes to invalidate (stale data served)
60
+
61
+ Actions before production deploy:
62
+ - [ ] Fix down migration to clean junction table
63
+ - [ ] Add cache-bust step to rollback procedure
64
+ - [ ] Verify cache invalidation time is acceptable
65
+ ```
66
+
67
+ **5. The "acceptable rollback time" conversation.** With the FDE and the team:
68
+
69
+ > "If this deploy fails in production, how long can the system be in a degraded state before it's a business problem?"
70
+
71
+ | Answer | Implication |
72
+ |--------|-------------|
73
+ | "Minutes" | Automated rollback trigger needed - human decision loop is too slow |
74
+ | "An hour" | Manual rollback is acceptable if the procedure is tested and documented |
75
+ | "A day" | Gradual rollback is fine - feature flag off, monitor, clean up next morning |
76
+ | "It can't fail" | Blue/green deployment with instant traffic switch - test both environments |
77
+
78
+ **6. Change-approval environments (CAB).** In regulated industries:
79
+
80
+ - The rollback procedure is part of the change ticket - filed before the approval window.
81
+ - The drill evidence goes with the change request: "Rollback tested on <date>, completed in <time>, no issues."
82
+ - A drill that fails → the change ticket isn't ready. Better to discover that now than during the CAB.
83
+
84
+ ## Artifact
85
+
86
+ **`delivery.md`** - the drill report, attached to the deployment record for this change. The evidence that the rollback works.
87
+
88
+ **`risks.md`** - any irreversible components identified, with the compensating action.
89
+
90
+ **`decisions.md`** - if the drill failed and the deployment is delayed: what failed, the fix, the revised timeline.
91
+
92
+ ## Checkpoint
93
+
94
+ One statement: "Rollback tested on staging. Time: <N minutes>. Result: <pass/fail>. Production deploy is / is not ready." If not ready: the specific blocker and when it'll be resolved.
95
+
96
+ ## Principles
97
+
98
+ - A rollback plan that hasn't been tested is a wish.
99
+ - Time the drill and account for differences in production scale and operating conditions; do not assume a fixed multiplier.
100
+ - Identify the irreversible components and name the compensating action.
101
+ - The drill report is evidence for the change ticket and the team's confidence.
102
+ - A drill that fails is a success - you found the problem before production did.
@@ -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,11 @@
1
+ {
2
+ "generator": "bin/generate-skills.js",
3
+ "version": 1,
4
+ "files": {
5
+ "SKILL.md": "5488cddb607cb05face73ad1a838dd87babb00716544793f36997ca15dcb1560",
6
+ "references/close.md": "095266722624e4bc647628243c8be0e69b02017ef6b4e3a7e7790ec1f53ab7c0",
7
+ "references/encode-pattern.md": "3be7bf9d0f69af31659423c54d6023a4af1556e2ce200fb025bf64d0757de4d8",
8
+ "references/runbook.md": "1233aa1943da8db6d3c7624b7a54b3a1afc340b97e16f95d70b42cdbf521b63c",
9
+ "references/task-context.md": "73eea2d7f164fac3226599e5be26ae4e79dcf69e0d24428dd12d623861410490"
10
+ }
11
+ }
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: runbook
3
+ description: Write an operating runbook from the delivered system and verified procedures. Use when the customer team or a successor needs to operate without the original engineer.
4
+ ---
5
+
6
+ # runbook
7
+
8
+ <!-- Generated by bin/generate-skills.js; edit the canonical references and catalog. -->
9
+
10
+ ## Purpose
11
+
12
+ Write an operating runbook from the delivered system and verified procedures. Use when the customer team or a successor needs to operate without the original engineer.
13
+
14
+ Read [the task context contract](references/task-context.md), then [the method](references/runbook.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,66 @@
1
+ # close - Transfer operations
2
+
3
+ **Context:** apply [task context and evidence](task-context.md) before using the named records below.
4
+
5
+ **Enter when:** the engagement is ending - the customer team must run this without the FDE.
6
+
7
+ **Read first:** for standalone work, use the supplied permitted operating notes, evidence and ownership; no engagement binding or CLI command is required. For a bound engagement, use bounded `fde handoff` or `fde resume`, then targeted `fde recall` for missing evidence. Never initialize records merely to draft a handoff. Build the picture through relevant excerpts, not a full-directory load. Consult `terrain.md` only for code paths needed by the successor.
8
+
9
+ The engagement doesn't end at ship. It ends when the customer can maintain what was built without calling.
10
+
11
+ ## Method (you do this work, with the FDE's answers)
12
+
13
+ **0. The opening question:** "What will bite them when you're gone?" Their answer shapes everything written below.
14
+
15
+ **1. The retrospective.** Work through, blame-free and specific:
16
+ - Did the real problem match the brief? (Compare `brief.md` vs `reality.md` - you have the receipts.)
17
+ - Which trust moments mattered?
18
+ - What did the codebase teach that `terrain.md` didn't know at the start?
19
+ - Which risk almost became real?
20
+ - AI components: did they behave in production? What failure modes did the prototype hide? Is the team equipped to maintain them?
21
+
22
+ **1b. Value + receipts close gate (refuse green close if any fail):**
23
+ - Primary value bucket in `success.md` matches what the sponsor funded; at least one ledger row has **Measured** (not forever-`pending`) with evidence **and a named customer-side owner in Accepted by** for that bucket - or the retrospective explicitly records “not measured; sponsor accepted pending.” A measured-but-unaccepted number closes as `claimed`; say so in the retrospective rather than closing green on arithmetic nobody signed.
24
+ - Audit receipt exists for the final shipped path (exceptions/operating map walked; cite file).
25
+ - Eval receipt: **n/a if no AI**, else final scoped eval result + operating owner and required human-review or bounded-automation authority recorded; kill switch / fallback named in `handoff.md`.
26
+ - One line in the retrospective: which bucket moved, by how much, vs baseline.
27
+
28
+ **2. The pattern.** Anything that happened here and will happen again - a compliance approach, a migration pattern, a stakeholder dynamic - gets encoded for reuse. Use [encode-pattern](encode-pattern.md) to distinguish candidate patterns from supported ones and protect customer data.
29
+
30
+ **3. The handoff.** Operational knowledge for the person woken at 2am, not technical documentation: the 3 things that will break and the fix for each · who holds the tribal knowledge · what each alert means · deploy and rollback in plain language. AI components additionally: model version, what normal output looks like (so drift is recognisable), fallback behaviour, who owns retraining, **how to disable the AI path without taking down the feature** - without this the team turns it off at the first misbehaviour and it stays off.
31
+
32
+ **4. Transformation engagements - four extra answers in `handoff.md`:**
33
+ - Who owns AI governance after the FDE leaves? (Who can pull a model from production?)
34
+ - The retraining trigger, exactly: "precision < 0.82 on validation for 3 consecutive weeks → <owner> retrains." A number, a condition, an owner - not "when performance drops."
35
+ - The operating model at scale: who coordinates twenty use cases across five teams?
36
+ - Decision authority for new use cases: intake, risk assessment, approver.
37
+
38
+ ## Artifact
39
+
40
+ **`retrospectives/YYYY-MM-DD-<engagement>.md`** - one file per close (separate files make cross-engagement patterns scannable). **`patterns.md`** - reusable patterns extracted. **`handoff.md`** - the 2am document.
41
+
42
+ ## Checkpoint
43
+
44
+ **Check the handoff as a lookup tool.** Give the intended operator one realistic task, such as finding the owner and recovery steps for a failed run. Can they locate the answer and its source in the permitted handoff without your explanation? A reader finding the instructions is not proof they can execute them; verify operation separately in the agreed safe environment. Correct the passage they could not use, rather than adding a longer introduction.
45
+
46
+ If the operator is unavailable, a fresh reviewer can attempt the same lookup using only the permitted draft and task. Report this as a simulated clarity check, not operator validation, customer approval, or a green close. Claim independent review only if a separate reviewer actually performed it; identify the reviewer and evidence available. If none is available, perform a labeled self-check and report independent review as unperformed. Use one focused pass for a consequential handoff; do not add a committee or a second approval ritual.
47
+
48
+ Direct assessment to the FDE: did the engagement achieve `success.md` · 2-3 lessons that matter · is the pattern worth encoding · is the handoff complete or where are the gaps. Also: value bucket + audit receipt green; eval **n/a or green**. Pending Measured without sponsor acceptance = gap, not green close. Honest - a gap named now is cheaper than a callback in six weeks.
49
+
50
+ ## Worked example
51
+
52
+ Acme, twelve weeks in, the FDE is rolling off.
53
+
54
+ Retrospective against the receipts: `brief.md` asked for monitoring, `reality.md` proved it was ownership - and the delta is the most useful paragraph in the file, because it is exactly the argument the next engagement will need.
55
+
56
+ The close gate bites in a useful way. The ledger shows detection at 12 minutes measured across two real incidents, but **Accepted by** is empty - Marco confirmed it in Slack, Denise (finance) never did, and Denise is whose escalation started the engagement. So it closes as `claimed` with a one-line retrospective note and a named next step, rather than a green close on a number nobody with budget agreed to.
57
+
58
+ `handoff.md` is written for the person woken at 2am: the three things that break, what the page means, how to re-run manually the way Marco does, and who holds the tribal knowledge (Raj, who built the original job - credited, because he protects it now). `patterns.md` gets *"unowned job" presents as "unmonitored job"* - it has now happened twice.
59
+
60
+ ## Principles
61
+
62
+ - Done = the customer operates without you.
63
+ - No named value bucket moved (or sponsor-accepted pending) = not a green close.
64
+ - The retrospective is an investment in the next engagement, not a post-mortem.
65
+ - Encode what repeated. The same lesson learned twice is a process failure.
66
+ - Write the handoff for 2am.
@@ -0,0 +1,96 @@
1
+ # encode-pattern - Encode the pattern
2
+
3
+ **Context:** apply [task context and evidence](task-context.md) before using the named records below.
4
+
5
+ **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.
6
+
7
+ **Read first:** `decisions.md`, `reality.md`, `delivery.md`, `retrospectives/`, `context.md`. Patterns live in what was *done*, not what was planned.
8
+
9
+ The difference between a 5-year FDE and a 15-year FDE is not talent - it's encoded patterns. The 15-year FDE walks into a new engagement and recognises the situation in minutes because they've seen it before, named it, and know the move. Pattern extraction turns experience into reusable intelligence.
10
+
11
+ ## Method (you do this work)
12
+
13
+ **1. Identify the pattern candidates.** Scan the engagement for things that:
14
+
15
+ | Signal | Example |
16
+ |--------|---------|
17
+ | Worked well and would work again in a similar situation | The "show the workaround first" approach to earning ops team trust |
18
+ | Failed and the failure mode is predictable | The "refactor before understanding" mistake on legacy codebases |
19
+ | Was discovered late and should have been discovered early | The hidden cron job that broke the migration - always ask about cron jobs |
20
+ | Required a workaround that others would face too | The compliance dance for getting AI tools approved in regulated environments |
21
+ | Involved a political dynamic that repeats | The passed-over internal team dynamic - present in every engagement with external FDEs |
22
+
23
+ **2. Write the pattern in a transferable format.** Each pattern must be usable by a future FDE who has never heard of this engagement:
24
+
25
+ ```markdown
26
+ ## Pattern: <name>
27
+
28
+ ### Situation
29
+ <When does this pattern apply? What does the FDE see/hear that triggers recognition?>
30
+
31
+ ### The move
32
+ <What to do, specifically. Not advice - steps.>
33
+
34
+ ### Why it works
35
+ <The mechanism - why this approach succeeds where the obvious approach fails.>
36
+
37
+ ### Watch out for
38
+ <The failure mode or edge case that makes the pattern not apply.>
39
+
40
+ ### Evidence
41
+ <Permitted source, what happened, measured result, and limits. Keep identifying evidence in its original customer record.>
42
+ ```
43
+
44
+ **3. The pattern quality test.** Before encoding:
45
+
46
+ | Test | Pass | Fail |
47
+ |------|------|------|
48
+ | **Transferable?** | Another FDE could apply this without context from this engagement | Only makes sense if you know the specific client |
49
+ | **Specific enough?** | Contains concrete steps, not just principles | "Build trust" / "Communicate well" - too vague to act on |
50
+ | **Repeatable?** | Applies to a class of situations, not just this one | Only worked because of a unique circumstance |
51
+ | **Falsifiable?** | You can tell when the pattern is working or not | No way to measure whether applying it helped |
52
+ | **Monday bag?** | You would refuse the next similar embed without this in your bag - a named move plus an artifact you can drop on day one (pipe questions, CAB dance, eval golden shape, floor-drill script) | "We learned to communicate." Patterns that only live in this client's `.fde/` do not compound |
53
+
54
+ **4. Classify by stage.** Patterns sort into the same stages as the skills:
55
+
56
+ | Stage | Pattern type | Example |
57
+ |--------|-------------|---------|
58
+ | **Land** | Political / relational | "The passed-over team warm-up protocol" |
59
+ | **Discover** | Investigative / analytical | "The cron-job discovery checklist for legacy systems" |
60
+ | **Plan** | Structural / strategic | "The three-option presentation for nervous sponsors" |
61
+ | **Ship** | Technical / safety | "The Strangler Fig on financial transaction code" |
62
+ | **Outcome** | Operational / process | "The regulated-environment change-approval timeline buffer" |
63
+ | **Close** | Knowledge / handoff | "The 2am document format that actually gets used" |
64
+
65
+ **5. Version and evolve.** Patterns are living documents:
66
+
67
+ - First use: **v0.1** - hypothesis based on one engagement
68
+ - Later uses: record context, observed results, failures, and refinements. Repetition supplies evidence; it does not automatically validate the pattern. Promote a version when a substantive revision warrants it, not at a fixed use count.
69
+ - After modification: increment minor version with what changed and why
70
+ - After contradiction: note the counter-example, adjust the "watch out for" section
71
+
72
+ **6. Cross-engagement pattern mining.** Only when explicitly authorized for the named engagements and permitted by each customer's data policy. Keep records separate; use sanitized CLI packets or targeted recall in each authorized context, never raw file comparisons. Otherwise extract a candidate from the current permitted context only.
73
+
74
+ - Compare permitted problem summaries - do the same problems recur?
75
+ - Compare permitted decision summaries - are the same decisions being made?
76
+ - Compare permitted lessons - are the same lessons being learned twice?
77
+
78
+ A pattern learned twice is a process failure. Encoding it prevents the third time.
79
+
80
+ ## Artifact
81
+
82
+ **`patterns.md`** - candidates and evidence for this engagement, indexed by stage and situation trigger. A shared library is a separate, authorized export: remove names, identifiers, distinctive operational details, secrets, and confidential code or data. Keep source receipts in the original record and export only permitted generalizations.
83
+
84
+ **`retrospectives/YYYY-MM-DD-<engagement>.md`** - reference to which patterns were extracted from this engagement.
85
+
86
+ ## Checkpoint
87
+
88
+ Present the extracted patterns to the FDE: "From this engagement, I've identified N patterns worth encoding. The highest-value one is <name> because <it will apply to future engagements in these situations>." Confirm the pattern is accurate - the FDE's field judgment outranks the analysis.
89
+
90
+ ## Principles
91
+
92
+ - If you did it twice, encode it. The same lesson learned three times is a failure.
93
+ - Patterns are steps, not principles. "Build trust" isn't a pattern; "fix a small visible bug on day one" is.
94
+ - Every pattern needs a situation trigger - the FDE must recognise when it applies.
95
+ - Version substantive changes. State the evidence and limits; repeated use is not automatic confirmation.
96
+ - The pattern library is the FDE's compound interest. It's what separates 5 years of experience from 1 year repeated 5 times.
@@ -0,0 +1,73 @@
1
+ # runbook - Write an operating guide
2
+
3
+ **Enter when:** the team needs instructions to operate, diagnose or recover a system, or an engineer is preparing to transfer responsibility.
4
+
5
+ Apply [task context](task-context.md). Use supplied operational facts, relevant code and verified procedures. For a bound engagement, retrieve relevant sanitized delivery, dependency and ownership evidence; do not load the full customer record or raw private material.
6
+
7
+ ## Match the request
8
+
9
+ - **Draft a guide:** write what is known, mark unverified procedures and missing evidence, and return the requested document. No customer record, live access, drill or closure ceremony is required.
10
+ - **Verify an operating guide:** agree the permitted environment and checks, exercise relevant procedures, and record what happened. Do not run a destructive or production drill from a documentation request alone.
11
+ - **Complete a handoff:** use [handoff](close.md) for the wider ownership and acceptance decision. A written guide is one part of that decision, not proof of readiness.
12
+
13
+ ## Build the guide from evidence
14
+
15
+ Identify the system, the intended reader and the decisions that reader can make. Follow the actual operating path and include only relevant sections:
16
+
17
+ ```markdown
18
+ # Operating guide - <system>
19
+ Status: Draft / Verified for <environment and scope>
20
+ Evidence: <code, observed run, operator statement or existing document>
21
+ Operating owner: <confirmed role/person and source, or proposed/unconfirmed>
22
+
23
+ ## Normal operation
24
+ What should happen, how often, and how to check it.
25
+
26
+ ## Known failure modes
27
+ Symptom: <what the operator sees>
28
+ Evidence: <what establishes this behavior>
29
+ Cause: <verified cause or explicit unknown>
30
+ Action: <supported steps, constraints and stop conditions>
31
+ Validation: <tested environment/date/result, or unverified>
32
+ Escalation: <confirmed role/channel, or missing>
33
+
34
+ ## Deploy and recover
35
+ Procedure: <verified commands or a source link; do not invent commands>
36
+ Permissions and prerequisites: <required access and safety conditions>
37
+ Check: <expected observable result>
38
+ Recovery: <tested procedure or the missing recovery evidence>
39
+
40
+ ## Monitor and escalate
41
+ Signal: <existing alert or check>
42
+ Meaning: <known interpretation>
43
+ Response: <authorized action and when to escalate>
44
+
45
+ ## Open readiness gaps
46
+ Missing evidence, owner to confirm, and proposed next check.
47
+ ```
48
+
49
+ Do not pad the document with an arbitrary number of failures, contacts or commands. A stated retry problem without a known cause should remain an investigation item, not become a fabricated repair procedure. A suggested owner is not an accepted operating responsibility.
50
+
51
+ For AI components, include relevant model and configuration versions, evaluation checks, failure limits and the supported way to pause actions. Do not assume retraining or autonomous operation is required.
52
+
53
+ ## Verify when requested
54
+
55
+ Select checks based on the system's actual consequences. For example, the receiving operator may demonstrate normal operation, diagnose a known failure, or recover a failed release in a permitted test environment.
56
+
57
+ Record each critical capability separately as verified, failed or untested, with evidence. A successful walkthrough cannot compensate for an untested recovery path. Avoid an averaged confidence score that hides a critical gap.
58
+
59
+ If a procedure fails, correct the guide or system within scope and repeat the affected check. If verification is unavailable, deliver the draft with its limits and propose the next check; do not claim the handoff complete or indefinitely extend the engagement yourself.
60
+
61
+ ## Deliver and retain ownership boundaries
62
+
63
+ Return the guide, its verification status and any remaining operating decisions. Save it to the requested location. In a bound engagement, propose updates to `handoff.md` and relevant current-state records under their confirmation rules.
64
+
65
+ Access changes, exports of customer records, sponsor messages and closure decisions require their own authorization. A request for a runbook does not authorize these actions. Transfer only the material the recipient is entitled to receive.
66
+
67
+ ## Principles
68
+
69
+ - Write for the person handling the actual failure.
70
+ - Supported procedures beat plausible commands.
71
+ - Draft, tested procedure and accepted ownership remain distinct.
72
+ - Verify critical capabilities individually.
73
+ - Keep private relationship notes and credentials out of an operating guide.
@@ -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.
@@ -3,7 +3,7 @@
3
3
  "version": 1,
4
4
  "files": {
5
5
  "SKILL.md": "13640b029f34068b08f2b0532ad7d2bae2d1063eeff17ec85a840bfbf832311e",
6
- "references/hold-scope.md": "42b3823f6b49b87b432f81208b0a61115f22340f6a922a4e858012e908c6643d",
7
- "references/task-context.md": "8ec90708522e512a50a57ab2a377a7472e93bae169c6f075a93fa603ce2ad780"
6
+ "references/hold-scope.md": "7779188df1d7f5aef9f878719499f9c0e974deba45289329ae8fa3d62e6c5090",
7
+ "references/task-context.md": "73eea2d7f164fac3226599e5be26ae4e79dcf69e0d24428dd12d623861410490"
8
8
  }
9
9
  }
@@ -6,51 +6,52 @@
6
6
 
7
7
  **Read first:** `success.md` (the agreed boundary), `decisions.md`, `context.md`. Load `stakeholders.md` to know who's asking and their signal.
8
8
 
9
- Scope creep is the leading cause of FDE engagement failure - not technical complexity, not timeline pressure. It's silent: no single request feels unreasonable, but twenty reasonable requests add three months. The skill is saying "that's phase two" without the customer hearing "no."
9
+ Small requests can accumulate into material changes to cost, timing or acceptance. Compare the request with the actual agreement before classifying it; an adjacent request may already be in scope, and a clarification is not automatically an addition.
10
10
 
11
11
  ## Method (you do this work)
12
12
 
13
- **1. Detect before it compounds.** Three patterns that signal creep before it's named:
13
+ **1. Detect before it compounds.** Patterns worth checking against the agreement:
14
14
 
15
- | Pattern | What it sounds like | What's actually happening |
15
+ | Pattern | What it sounds like | What to check |
16
16
  |---------|--------------------|--------------------------|
17
- | **The friendly addition** | "While you're in there, could you also…" | Adjacent work getting absorbed without timeline adjustment |
18
- | **The evolved requirement** | "Oh, what I actually meant was…" | The original scope was never clear enough - `success.md` needs updating |
19
- | **The stakeholder swap** | A new person starts requesting features the original sponsor didn't | Power shifted; the real scope is being rewritten informally |
17
+ | **The friendly addition** | "While you're in there, could you also…" | Whether the work is already covered and what it changes |
18
+ | **The evolved requirement** | "Oh, what I actually meant was…" | Whether this clarifies existing acceptance or proposes a change |
19
+ | **The stakeholder swap** | A new person starts requesting features the original sponsor didn't | The requester's authority and whether the request changes the agreed outcome |
20
20
 
21
- **2. The scope receipt.** Every request gets logged with its origin and cost - not as bureaucracy, but as evidence for the conversation that's coming:
21
+ **2. The scope receipt.** Record consequential proposed changes and cumulative impact in the existing task or engagement record. Routine clarifications within confirmed scope can share a concise update; do not add a separate ceremony for each request. Distinguish estimates from measured effort and proposals from decisions:
22
22
 
23
23
  ```markdown
24
24
  ## Scope change - <date>
25
25
  Requested by: <who>
26
26
  Request: <what, in their words>
27
- Impact: <hours/days added, what gets pushed>
28
- Status: absorbed / deferred to phase 2 / needs conversation
27
+ Impact: <estimate with assumptions, or unknown; affected work/risk/acceptance>
28
+ Authority: <applicable agreement/decision source or unknown>
29
+ Status: proposed / confirmed in scope / agreed change / deferred / declined / disputed
29
30
  ```
30
31
 
31
- Log via `fde log decision "scope change: <summary> - requested by <who>, impact: <estimate>"` or direct append to `decisions.md`.
32
+ Show consequential judgments and uncertainties for confirmation before saving unless already explicitly confirmed. Use the existing task or `decisions.md` workflow; label an unapproved request as proposed rather than logging it as an agreed scope change.
32
33
 
33
- **3. The three-bucket response.** Never say "no" - say "here's where it fits":
34
+ **3. Recommend a disposition.** Explain the fit and tradeoffs; use the relevant authority for any change:
34
35
 
35
36
  | Bucket | What you say | When to use |
36
37
  |--------|-------------|-------------|
37
- | **This phase** | "That fits - I'll add it to the current plan. Timeline stays the same." | The request is small and genuinely within the agreed scope |
38
- | **Next phase** | "That's real - let me capture it properly so it doesn't get lost. It's phase-two work because <reason>." | The request is valid but adds to the timeline |
39
- | **Separate engagement** | "That's a different problem - it deserves its own brief and its own timeline." | The request is a new project wearing a small-ask costume |
38
+ | **This phase** | "That is covered by the current agreement. Here is its impact on the plan." | The request is within confirmed scope and authority; do not promise unchanged timing without evidence |
39
+ | **Next phase** | "This adds <impact>. I recommend deferring it or agreeing a tradeoff." | The request changes current commitments; a future phase is proposed, not promised |
40
+ | **Separate engagement** | "That's a different problem - it deserves its own brief and its own timeline." | The request requires a materially different outcome, access or commercial agreement |
40
41
 
41
- **The key phrase: "Let me place it."** Not "that's out of scope" (adversarial) or "sure" (absorbed). "Let me place it" signals you're taking it seriously while buying time to assess the real cost.
42
+ Decline a request clearly when it conflicts with policy or the applicable authority rejects it. No wording can substitute for a real scope decision.
42
43
 
43
44
  **4. The accumulation conversation.** When the scope receipts show a pattern - a material cumulative impact on delivery, cost, risk, or acceptance - the FDE needs a conversation with the sponsor:
44
45
 
45
46
  Frame it as **protection, not complaint:**
46
47
  > "We've absorbed five changes since the original agreement. Each one made sense individually. Together, they've added roughly two weeks. I want to make sure the timeline expectation still matches - should we adjust the delivery date, or reprioritise to keep the original date?"
47
48
 
48
- Evidence-based: point to `decisions.md` scope receipts with dates and requesters. The sponsor who sees the pattern is an ally; the sponsor who discovers the delay at the end is a problem.
49
+ Evidence-based: point to `decisions.md` scope receipts with dates and requesters. Use the actual scope decision-maker; sponsorship alone does not establish delegated authority.
49
50
 
50
51
  **5. The commercial boundary.** In paid engagements, scope creep silently moves billing and liability:
51
52
 
52
53
  - If the engagement is time-and-materials: scope creep is the client's money, but flag it - they deserve to know what they're buying.
53
- - If the engagement is fixed-price: every absorbed scope change is a gift the FDE's company didn't agree to. Surface it to whoever owns the commercials.
54
+ - If the engagement is fixed-price: check the change terms and contingency; material changes may affect margin or commitments. Surface the evidence to whoever owns the commercials.
54
55
  - If the engagement has a success fee: scope changes that move the success criteria affect compensation. Log it.
55
56
 
56
57
  ## Artifact
@@ -69,15 +70,15 @@ Acme, week 5. Nothing has been formally added, and the slice is a week late.
69
70
 
70
71
  The pattern shows in three requests: 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 sounds reasonable; their cumulative estimates explain part of the slip and need a scope decision.
71
72
 
72
- Three-bucket response, applied while the requests can still be placed: the CSV export fits this phase only 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.
73
+ Three-bucket response, applied while the requests can still be placed: the CSV export fits this phase only 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 - included in the existing progress receipt so cumulative impact remains visible.
73
74
 
74
- That conversation happens with Priya when the added work threatens the date, with the receipts on screen: "here are the asks, their estimated impact, and what moved." Not a complaint - a decision she gets to make, with evidence, before the deadline makes it for her.
75
+ That conversation happens with Priya when the added work threatens the date, with the receipts on screen: "here are the asks, their estimated impact, and what moved." Confirm Priya holds the relevant scope authority before treating her response as agreement.
75
76
 
76
77
  ## Principles
77
78
 
78
- - "Let me place it" is the phrase. Not "no," not "sure."
79
- - Every scope change gets a receipt. The receipt is the evidence.
79
+ - Compare requests with the agreement before classifying them.
80
+ - Record consequential changes with their source, authority and status; batch routine work.
80
81
  - Escalate material impact, not an arbitrary count of requests.
81
- - Scope creep kills engagements that technical failure couldn't.
82
- - `success.md` is a contract - update it explicitly or defend it.
83
- - The FDE who absorbs everything is liked for three weeks and blamed for three months.
82
+ - Missing boundaries do not grant permission to expand scope.
83
+ - `success.md` records agreed scope; it does not replace the governing agreement.
84
+ - Make tradeoffs visible without inventing motives, approval or future commitments.
@@ -2,11 +2,17 @@
2
2
 
3
3
  Use this contract for standalone methods and methods routed through `@fde`.
4
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. 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.
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
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
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
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
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
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
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
+
12
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,10 @@
1
+ {
2
+ "generator": "bin/generate-skills.js",
3
+ "version": 1,
4
+ "files": {
5
+ "SKILL.md": "d201fe1d784eea04ce25bde63fb3e6beb129ac4924b8f654b7c4fd5b3022f2d1",
6
+ "references/business-case.md": "32e000e8351cd59f9eaad8be40babb276df69948ea4f81e01a4672e47f48cb25",
7
+ "references/score-use-cases.md": "bb304cf2de26a2df0b9f2a299e3a6b2760ebce15b8b523d9cb4a584cc26038f8",
8
+ "references/task-context.md": "73eea2d7f164fac3226599e5be26ae4e79dcf69e0d24428dd12d623861410490"
9
+ }
10
+ }
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: score-use-cases
3
+ description: Compare competing customer use cases by value, feasibility and evidence. Use when several problems compete for delivery capacity.
4
+ ---
5
+
6
+ # score-use-cases
7
+
8
+ <!-- Generated by bin/generate-skills.js; edit the canonical references and catalog. -->
9
+
10
+ ## Purpose
11
+
12
+ Compare competing customer use cases by value, feasibility and evidence. Use when several problems compete for delivery capacity.
13
+
14
+ Read [the task context contract](references/task-context.md), then [the method](references/score-use-cases.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.