fdeops 4.1.0 → 5.0.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 (139) hide show
  1. package/AGENTS.md +2 -2
  2. package/README.md +88 -247
  3. package/bin/generate-skills.js +90 -17
  4. package/bin/install.js +30 -2
  5. package/bin/skill-catalog.js +14 -14
  6. package/mcp/fdeops-ingest/package.json +1 -1
  7. package/package.json +1 -1
  8. package/plugin.json +1 -1
  9. package/skills/build/.fde-generated.json +16 -0
  10. package/skills/{fde-build → build}/SKILL.md +2 -2
  11. package/skills/debug/.fde-generated.json +16 -0
  12. package/skills/{fde-debug → debug}/SKILL.md +2 -2
  13. package/skills/discover/.fde-generated.json +10 -0
  14. package/skills/{fde-discover → discover}/SKILL.md +2 -2
  15. package/skills/discover/references/discover.md +112 -0
  16. package/skills/evaluate/.fde-generated.json +16 -0
  17. package/skills/{fde-evaluate → evaluate}/SKILL.md +2 -2
  18. package/skills/fde/SKILL.md +2 -2
  19. package/skills/fde/references/close.md +1 -1
  20. package/skills/fde/references/discover.md +66 -208
  21. package/skills/fde/references/readout.md +6 -4
  22. package/skills/feedback/.fde-generated.json +9 -0
  23. package/skills/{fde-feedback → feedback}/SKILL.md +2 -2
  24. package/skills/handoff/.fde-generated.json +10 -0
  25. package/skills/{fde-handoff → handoff}/SKILL.md +2 -2
  26. package/skills/{fde-handoff → handoff}/references/close.md +1 -1
  27. package/skills/integrate/.fde-generated.json +16 -0
  28. package/skills/{fde-integrate → integrate}/SKILL.md +2 -2
  29. package/skills/options/.fde-generated.json +11 -0
  30. package/skills/{fde-options → options}/SKILL.md +2 -2
  31. package/skills/poc/.fde-generated.json +23 -0
  32. package/skills/{fde-poc → poc}/SKILL.md +2 -2
  33. package/skills/poc/references/discover.md +112 -0
  34. package/skills/qa/.fde-generated.json +16 -0
  35. package/skills/{fde-qa → qa}/SKILL.md +2 -2
  36. package/skills/readout/.fde-generated.json +11 -0
  37. package/skills/{fde-readout → readout}/SKILL.md +2 -2
  38. package/skills/{fde-readout → readout}/references/readout.md +6 -4
  39. package/skills/review/.fde-generated.json +16 -0
  40. package/skills/{fde-review → review}/SKILL.md +2 -2
  41. package/skills/scope/.fde-generated.json +9 -0
  42. package/skills/{fde-scope → scope}/SKILL.md +2 -2
  43. package/skills/ship/.fde-generated.json +16 -0
  44. package/skills/{fde-ship → ship}/SKILL.md +2 -2
  45. package/skills/fde-discover/references/discover.md +0 -254
  46. package/skills/fde-poc/references/discover.md +0 -254
  47. /package/skills/{fde-build → build}/references/build.md +0 -0
  48. /package/skills/{fde-build → build}/references/debug.md +0 -0
  49. /package/skills/{fde-build → build}/references/eval-pack.md +0 -0
  50. /package/skills/{fde-build → build}/references/integrate.md +0 -0
  51. /package/skills/{fde-build → build}/references/qa.md +0 -0
  52. /package/skills/{fde-build → build}/references/review.md +0 -0
  53. /package/skills/{fde-build → build}/references/ship.md +0 -0
  54. /package/skills/{fde-build → build}/references/task-context.md +0 -0
  55. /package/skills/{fde-build → build}/references/verification.md +0 -0
  56. /package/skills/{fde-debug → debug}/references/build.md +0 -0
  57. /package/skills/{fde-debug → debug}/references/debug.md +0 -0
  58. /package/skills/{fde-debug → debug}/references/eval-pack.md +0 -0
  59. /package/skills/{fde-debug → debug}/references/integrate.md +0 -0
  60. /package/skills/{fde-debug → debug}/references/qa.md +0 -0
  61. /package/skills/{fde-debug → debug}/references/review.md +0 -0
  62. /package/skills/{fde-debug → debug}/references/ship.md +0 -0
  63. /package/skills/{fde-debug → debug}/references/task-context.md +0 -0
  64. /package/skills/{fde-debug → debug}/references/verification.md +0 -0
  65. /package/skills/{fde-discover → discover}/references/audit.md +0 -0
  66. /package/skills/{fde-discover → discover}/references/task-context.md +0 -0
  67. /package/skills/{fde-evaluate → evaluate}/references/build.md +0 -0
  68. /package/skills/{fde-evaluate → evaluate}/references/debug.md +0 -0
  69. /package/skills/{fde-evaluate → evaluate}/references/eval-pack.md +0 -0
  70. /package/skills/{fde-evaluate → evaluate}/references/integrate.md +0 -0
  71. /package/skills/{fde-evaluate → evaluate}/references/qa.md +0 -0
  72. /package/skills/{fde-evaluate → evaluate}/references/review.md +0 -0
  73. /package/skills/{fde-evaluate → evaluate}/references/ship.md +0 -0
  74. /package/skills/{fde-evaluate → evaluate}/references/task-context.md +0 -0
  75. /package/skills/{fde-evaluate → evaluate}/references/verification.md +0 -0
  76. /package/skills/{fde-feedback → feedback}/references/encode-pattern.md +0 -0
  77. /package/skills/{fde-feedback → feedback}/references/task-context.md +0 -0
  78. /package/skills/{fde-handoff → handoff}/references/encode-pattern.md +0 -0
  79. /package/skills/{fde-handoff → handoff}/references/task-context.md +0 -0
  80. /package/skills/{fde-integrate → integrate}/references/build.md +0 -0
  81. /package/skills/{fde-integrate → integrate}/references/debug.md +0 -0
  82. /package/skills/{fde-integrate → integrate}/references/eval-pack.md +0 -0
  83. /package/skills/{fde-integrate → integrate}/references/integrate.md +0 -0
  84. /package/skills/{fde-integrate → integrate}/references/qa.md +0 -0
  85. /package/skills/{fde-integrate → integrate}/references/review.md +0 -0
  86. /package/skills/{fde-integrate → integrate}/references/ship.md +0 -0
  87. /package/skills/{fde-integrate → integrate}/references/task-context.md +0 -0
  88. /package/skills/{fde-integrate → integrate}/references/verification.md +0 -0
  89. /package/skills/{fde-options → options}/references/business-case.md +0 -0
  90. /package/skills/{fde-options → options}/references/task-context.md +0 -0
  91. /package/skills/{fde-options → options}/references/test-assumptions.md +0 -0
  92. /package/skills/{fde-options → options}/references/three-options.md +0 -0
  93. /package/skills/{fde-poc → poc}/references/audit.md +0 -0
  94. /package/skills/{fde-poc → poc}/references/build.md +0 -0
  95. /package/skills/{fde-poc → poc}/references/business-case.md +0 -0
  96. /package/skills/{fde-poc → poc}/references/debug.md +0 -0
  97. /package/skills/{fde-poc → poc}/references/eval-pack.md +0 -0
  98. /package/skills/{fde-poc → poc}/references/integrate.md +0 -0
  99. /package/skills/{fde-poc → poc}/references/plan.md +0 -0
  100. /package/skills/{fde-poc → poc}/references/poc.md +0 -0
  101. /package/skills/{fde-poc → poc}/references/qa.md +0 -0
  102. /package/skills/{fde-poc → poc}/references/review.md +0 -0
  103. /package/skills/{fde-poc → poc}/references/ship.md +0 -0
  104. /package/skills/{fde-poc → poc}/references/task-context.md +0 -0
  105. /package/skills/{fde-poc → poc}/references/test-assumptions.md +0 -0
  106. /package/skills/{fde-poc → poc}/references/three-options.md +0 -0
  107. /package/skills/{fde-poc → poc}/references/verification.md +0 -0
  108. /package/skills/{fde-qa → qa}/references/build.md +0 -0
  109. /package/skills/{fde-qa → qa}/references/debug.md +0 -0
  110. /package/skills/{fde-qa → qa}/references/eval-pack.md +0 -0
  111. /package/skills/{fde-qa → qa}/references/integrate.md +0 -0
  112. /package/skills/{fde-qa → qa}/references/qa.md +0 -0
  113. /package/skills/{fde-qa → qa}/references/review.md +0 -0
  114. /package/skills/{fde-qa → qa}/references/ship.md +0 -0
  115. /package/skills/{fde-qa → qa}/references/task-context.md +0 -0
  116. /package/skills/{fde-qa → qa}/references/verification.md +0 -0
  117. /package/skills/{fde-readout → readout}/references/board-memo.md +0 -0
  118. /package/skills/{fde-readout → readout}/references/business-case.md +0 -0
  119. /package/skills/{fde-readout → readout}/references/task-context.md +0 -0
  120. /package/skills/{fde-review → review}/references/build.md +0 -0
  121. /package/skills/{fde-review → review}/references/debug.md +0 -0
  122. /package/skills/{fde-review → review}/references/eval-pack.md +0 -0
  123. /package/skills/{fde-review → review}/references/integrate.md +0 -0
  124. /package/skills/{fde-review → review}/references/qa.md +0 -0
  125. /package/skills/{fde-review → review}/references/review.md +0 -0
  126. /package/skills/{fde-review → review}/references/ship.md +0 -0
  127. /package/skills/{fde-review → review}/references/task-context.md +0 -0
  128. /package/skills/{fde-review → review}/references/verification.md +0 -0
  129. /package/skills/{fde-scope → scope}/references/hold-scope.md +0 -0
  130. /package/skills/{fde-scope → scope}/references/task-context.md +0 -0
  131. /package/skills/{fde-ship → ship}/references/build.md +0 -0
  132. /package/skills/{fde-ship → ship}/references/debug.md +0 -0
  133. /package/skills/{fde-ship → ship}/references/eval-pack.md +0 -0
  134. /package/skills/{fde-ship → ship}/references/integrate.md +0 -0
  135. /package/skills/{fde-ship → ship}/references/qa.md +0 -0
  136. /package/skills/{fde-ship → ship}/references/review.md +0 -0
  137. /package/skills/{fde-ship → ship}/references/ship.md +0 -0
  138. /package/skills/{fde-ship → ship}/references/task-context.md +0 -0
  139. /package/skills/{fde-ship → ship}/references/verification.md +0 -0
package/bin/install.js CHANGED
@@ -10,6 +10,8 @@ const HOOKS_SRC = path.join(__dirname, '..', 'hooks')
10
10
  const CLAUDE_MD_SRC = path.join(__dirname, '..', 'CLAUDE.md.template')
11
11
  const FDE_TEMPLATES_SRC = path.join(__dirname, '..', 'templates', '.fde')
12
12
  const ADAPTERS_SRC = path.join(__dirname, '..', 'adapters')
13
+ const TASK_NAMES = new Set(require('./skill-catalog').map(item => item.name))
14
+ const RENAMED_SKILLS = new Set([...TASK_NAMES].map(name => `fde-${name}`))
13
15
  const LIB_SRC = path.join(__dirname, 'lib')
14
16
 
15
17
  const GLOBAL_SKILLS_DIR = path.join(os.homedir(), '.claude', 'skills')
@@ -115,7 +117,7 @@ function removeLegacySkills(opts = {}) {
115
117
  const skipped = []
116
118
  const links = []
117
119
  for (const dir of LEGACY_SKILL_DIRS) {
118
- if (fs.existsSync(path.join(SKILLS_SRC, dir, 'SKILL.md'))) continue
120
+ if (RENAMED_SKILLS.has(dir) || fs.existsSync(path.join(SKILLS_SRC, dir, 'SKILL.md'))) continue
119
121
  const p = path.join(GLOBAL_SKILLS_DIR, dir)
120
122
  if (isLink(p)) { links.push(dir); continue }
121
123
  if (!fs.existsSync(path.join(p, 'SKILL.md'))) continue
@@ -129,6 +131,29 @@ function removeLegacySkills(opts = {}) {
129
131
  return { removed, skipped, links }
130
132
  }
131
133
 
134
+ // Archive the complete previous package only after its replacement is installed.
135
+ // Keep edits and additions outside the discovery directory, without guessing which
136
+ // individual files are personal. Unmarked third-party installs require manual cleanup.
137
+ function archiveRenamedSkill(name) {
138
+ if (!TASK_NAMES.has(name)) return
139
+ const oldName = `fde-${name}`
140
+ const old = path.join(GLOBAL_SKILLS_DIR, oldName)
141
+ checkPath(old)
142
+ if (!fs.existsSync(old)) return
143
+ if (!isManaged(old)) {
144
+ installIncomplete = true
145
+ console.log(` keep ~/.claude/skills/${oldName} (ownership unknown; move it outside skills manually after reviewing ${name})`)
146
+ return
147
+ }
148
+ checkTree(old, old)
149
+ const archiveRoot = path.join(os.homedir(), '.claude', 'fdeops', 'skill-backups')
150
+ mkdir(archiveRoot)
151
+ const archive = fs.mkdtempSync(path.join(archiveRoot, `${oldName}-`))
152
+ try { fs.renameSync(old, path.join(archive, oldName)) }
153
+ catch (error) { fs.rmdirSync(archive); throw error }
154
+ console.log(` archive ~/.claude/skills/${oldName} → ${path.join(archive, oldName)} (all previous content preserved)`)
155
+ }
156
+
132
157
  // Copy each skill in, but never over a directory fdeops did not create.
133
158
  function installSkillDirs(opts = {}) {
134
159
  const skipped = []
@@ -146,8 +171,10 @@ function installSkillDirs(opts = {}) {
146
171
  if (fs.existsSync(dest) && !isManaged(dest) && !opts.force) {
147
172
  // Installs predating the marker are still ours: adopt a same-named dir
148
173
  // whose SKILL.md is recognizably fdeops', so upgrades keep working.
149
- if (!wasInstalledByUs(dest)) {
174
+ // Newly generic task names require an explicit marker, never a fingerprint.
175
+ if (TASK_NAMES.has(entry.name) || !wasInstalledByUs(dest)) {
150
176
  skipped.push(entry.name)
177
+ if (TASK_NAMES.has(entry.name)) installIncomplete = true
151
178
  continue
152
179
  }
153
180
  console.log(` adopt ~/.claude/skills/${entry.name} (earlier fdeops install)`)
@@ -156,6 +183,7 @@ function installSkillDirs(opts = {}) {
156
183
  // say it in human terms, place the rest, and exit non-zero at the end.
157
184
  copyDir(src, dest)
158
185
  markManaged(dest)
186
+ archiveRenamedSkill(entry.name)
159
187
  } catch (e) {
160
188
  failed.push({ name: entry.name, code: e.code || 'error', path: destPathFor(e.path, src, dest) })
161
189
  }
@@ -1,17 +1,17 @@
1
1
  // Public entry points. Methods remain authored once in skills/fde/references/.
2
2
  module.exports = [
3
- ['fde-discover', 'discover', 'Trace a customer workflow and identify the problem, baseline and evidence gaps. Use for discovery or an unclear customer brief, before choosing a solution.'],
4
- ['fde-scope', 'hold-scope', 'Assess a new customer request against agreed scope, trade-offs and ownership. Use when an engagement expands or a custom feature needs a commitment decision.'],
5
- ['fde-options', 'three-options', 'Compare feasible approaches to a customer problem and recommend a path with costs, constraints and evidence. Use for an architecture or delivery decision, not implementation.'],
6
- ['fde-poc', 'poc', 'Run a bounded customer proof of concept to test a consequential uncertainty. Use for a spike or pilot with a question and decision deadline, not a full rollout.'],
7
- ['fde-build', 'build', 'Implement a scoped customer-facing software change in the existing repository and verify its behavior. Use for delivery work with an understood outcome, not incident response.'],
8
- ['fde-integrate', 'integrate', 'Build or change a customer-system integration with explicit data mapping, permissions, retries and reconciliation. Use for connectors, imports, write-back and upstream APIs.'],
9
- ['fde-debug', 'debug', 'Investigate and repair a reproducible failure in a customer integration or application. Use for diagnosis and regression prevention; follow incident authority for live mitigation.'],
10
- ['fde-review', 'review', '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.'],
11
- ['fde-evaluate', 'eval-pack', 'Evaluate an AI workflow against representative cases and its permitted actions. Use for model, retrieval or agent evaluation; tests do not grant release authority.'],
12
- ['fde-qa', 'qa', 'Exercise the delivered customer journey using real runtime or browser evidence. Use for functional acceptance testing after implementation, including failure paths.'],
13
- ['fde-ship', 'ship', 'Prepare or execute an authorized controlled release with verified checks, recovery and an operating owner. Use when a customer increment is ready for deployment.'],
14
- ['fde-readout', 'readout', 'Prepare a sponsor update separating promised outcomes, measured results and customer acceptance. Use for progress readouts or defending a delivery claim.'],
15
- ['fde-handoff', 'close', 'Transfer operation of a customer deployment with ownership, evidence and a tested support path. Use for handoff or an engineer rotation, not merely code delivery.'],
16
- ['fde-feedback', 'encode-pattern', 'Assess a field lesson for reuse or product feedback without exposing customer context. Use for recurring deployment lessons; distinguish a hypothesis from a validated pattern.'],
3
+ ['discover', 'discover', 'Trace a customer workflow and identify the problem, baseline and evidence gaps. Use for discovery or an unclear customer brief, before choosing a solution.'],
4
+ ['scope', 'hold-scope', 'Assess a new customer request against agreed scope, trade-offs and ownership. Use when an engagement expands or a custom feature needs a commitment decision.'],
5
+ ['options', 'three-options', 'Compare feasible approaches to a customer problem and recommend a path with costs, constraints and evidence. Use for an architecture or delivery decision, not implementation.'],
6
+ ['poc', 'poc', 'Run a bounded customer proof of concept to test a consequential uncertainty. Use for a spike or pilot with a question and decision deadline, not a full rollout.'],
7
+ ['build', 'build', 'Implement a scoped customer-facing software change in the existing repository and verify its behavior. Use for delivery work with an understood outcome, not incident response.'],
8
+ ['integrate', 'integrate', 'Build or change a customer-system integration with explicit data mapping, permissions, retries and reconciliation. Use for connectors, imports, write-back and upstream APIs.'],
9
+ ['debug', 'debug', 'Investigate and repair a reproducible failure in a customer integration or application. Use for diagnosis and regression prevention; follow incident authority for live mitigation.'],
10
+ ['review', 'review', '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.'],
11
+ ['evaluate', 'eval-pack', 'Evaluate an AI workflow against representative cases and its permitted actions. Use for model, retrieval or agent evaluation; tests do not grant release authority.'],
12
+ ['qa', 'qa', 'Exercise the delivered customer journey using real runtime or browser evidence. Use for functional acceptance testing after implementation, including failure paths.'],
13
+ ['ship', 'ship', 'Prepare or execute an authorized controlled release with verified checks, recovery and an operating owner. Use when a customer increment is ready for deployment.'],
14
+ ['readout', 'readout', 'Prepare a sponsor update separating promised outcomes, measured results and customer acceptance. Use for progress readouts or defending a delivery claim.'],
15
+ ['handoff', 'close', 'Transfer operation of a customer deployment with ownership, evidence and a tested support path. Use for handoff or an engineer rotation, not merely code delivery.'],
16
+ ['feedback', 'encode-pattern', 'Assess a field lesson for reuse or product feedback without exposing customer context. Use for recurring deployment lessons; distinguish a hypothesis from a validated pattern.'],
17
17
  ].map(([name, method, description]) => ({ name, method, description }))
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fdeops-ingest-mcp",
3
- "version": "4.1.0",
3
+ "version": "5.0.0",
4
4
  "private": true,
5
5
  "description": "Thin stdio MCP sink for FDEOps ingest (stage \u2192 propose \u2192 apply). Zero runtime dependencies.",
6
6
  "bin": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fdeops",
3
- "version": "4.1.0",
3
+ "version": "5.0.0",
4
4
  "description": "Forward deployed engineering skills for AI coding agents. Use focused task skills or @fde for discovery, implementation, verification and handoff, with local engagement records.",
5
5
  "bin": {
6
6
  "fdeops": "bin/install.js",
package/plugin.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
3
  "name": "fdeops",
4
- "version": "4.1.0",
4
+ "version": "5.0.0",
5
5
  "description": "Forward deployed engineering skills for AI coding agents. Use focused task skills or @fde for discovery, implementation, verification and handoff, with local engagement records.",
6
6
  "author": {
7
7
  "name": "Subash Natarajan",
@@ -0,0 +1,16 @@
1
+ {
2
+ "generator": "bin/generate-skills.js",
3
+ "version": 1,
4
+ "files": {
5
+ "SKILL.md": "19f32ecae72b96ee19cb87658ddd998cce96ec2e3960255d13fcc2906c6d0b6b",
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": "8ec90708522e512a50a57ab2a377a7472e93bae169c6f075a93fa603ce2ad780",
14
+ "references/verification.md": "d453c075b849437375338fd23782ca7fe6d427b05137a2b10fc2f724aaf7f8a9"
15
+ }
16
+ }
@@ -1,9 +1,9 @@
1
1
  ---
2
- name: fde-build
2
+ name: build
3
3
  description: Implement a scoped customer-facing software change in the existing repository and verify its behavior. Use for delivery work with an understood outcome, not incident response.
4
4
  ---
5
5
 
6
- # fde-build
6
+ # build
7
7
 
8
8
  <!-- Generated by bin/generate-skills.js; edit the canonical references and catalog. -->
9
9
 
@@ -0,0 +1,16 @@
1
+ {
2
+ "generator": "bin/generate-skills.js",
3
+ "version": 1,
4
+ "files": {
5
+ "SKILL.md": "7862670d5c023f0195e0b3fa8b52a3b33796813e53aaad083ae82a9a469e0faa",
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": "8ec90708522e512a50a57ab2a377a7472e93bae169c6f075a93fa603ce2ad780",
14
+ "references/verification.md": "d453c075b849437375338fd23782ca7fe6d427b05137a2b10fc2f724aaf7f8a9"
15
+ }
16
+ }
@@ -1,9 +1,9 @@
1
1
  ---
2
- name: fde-debug
2
+ name: debug
3
3
  description: Investigate and repair a reproducible failure in a customer integration or application. Use for diagnosis and regression prevention; follow incident authority for live mitigation.
4
4
  ---
5
5
 
6
- # fde-debug
6
+ # debug
7
7
 
8
8
  <!-- Generated by bin/generate-skills.js; edit the canonical references and catalog. -->
9
9
 
@@ -0,0 +1,10 @@
1
+ {
2
+ "generator": "bin/generate-skills.js",
3
+ "version": 1,
4
+ "files": {
5
+ "SKILL.md": "d97d4192064ae4236e03579a65ec7207445624aee8ad41e412fc3dbaaf465ddc",
6
+ "references/audit.md": "ed32ea78cbccb100742dd838e8cf4cd4b6f33ad44b3de7424fc624670d571dbc",
7
+ "references/discover.md": "f65aa11a539b4dbbed70cfaa94ec2a35595aa9a2d0282790510b933ac9c721ce",
8
+ "references/task-context.md": "8ec90708522e512a50a57ab2a377a7472e93bae169c6f075a93fa603ce2ad780"
9
+ }
10
+ }
@@ -1,9 +1,9 @@
1
1
  ---
2
- name: fde-discover
2
+ name: discover
3
3
  description: Trace a customer workflow and identify the problem, baseline and evidence gaps. Use for discovery or an unclear customer brief, before choosing a solution.
4
4
  ---
5
5
 
6
- # fde-discover
6
+ # discover
7
7
 
8
8
  <!-- Generated by bin/generate-skills.js; edit the canonical references and catalog. -->
9
9
 
@@ -0,0 +1,112 @@
1
+ # discover - Find the problem behind the request
2
+
3
+ **Enter when:** the customer brief is unclear, the proposed solution may miss the real problem, or a change has exposed an unmapped part of the work.
4
+
5
+ Apply [task context and evidence](task-context.md) first. Supplied notes are enough to begin. In an existing engagement, use permitted summaries of `context.md`, `brief.md`, `reality.md` and relevant `terrain.md` sections; extend existing findings instead of restarting.
6
+
7
+ ## Choose the depth the task needs
8
+
9
+ - **Notes or meeting preparation:** return the current steps, observations, hypotheses and a few questions that would change the next decision. No repository scan, workshop or customer-record setup is required.
10
+ - **A specific delivery problem:** follow the affected people, systems and data far enough to explain the break and identify what evidence is missing.
11
+ - **A wider engagement:** map dependencies and decision owners across the involved teams. Examine each candidate problem before choosing where to invest; do not make a full enterprise inventory a prerequisite for one useful finding.
12
+
13
+ State what you are investigating and which decision it informs. Reuse the user's stated goal. Ask only when a missing answer changes the next action; otherwise proceed with a clearly labelled provisional interpretation.
14
+
15
+ ## Frame the decision
16
+
17
+ Write a short frame from the evidence available:
18
+
19
+ | Part | What to establish |
20
+ |---|---|
21
+ | Situation | How people complete this task today |
22
+ | Complication | The observed delay, failure, cost or constraint |
23
+ | Question | The decision that further evidence should help someone make |
24
+ | Possible outcomes | Confirm the brief, change its scope, investigate further or pause |
25
+
26
+ Keep the question specific and neutral. “What causes requests to wait before assignment?” leaves room for different explanations. “How should we automate assignment?” assumes the solution before establishing the cause.
27
+
28
+ Name the decision owner when known. An unknown owner or unmeasured baseline is a finding, not a reason to keep questioning indefinitely. Return a provisional frame and identify who or what could verify it. Do not present a new interpretation as agreed scope.
29
+
30
+ ## Trace the work
31
+
32
+ Follow an ordinary case from arrival to completion, then relevant exceptions. Use the customer's terms for the request, system and people involved.
33
+
34
+ For each step, establish:
35
+
36
+ - Who performs it and where the input comes from.
37
+ - What they do, check or decide, and which system they update.
38
+ - Time spent working versus time spent waiting.
39
+ - What happens when information is missing or the normal path fails.
40
+ - Who notices the failure, how they recover, and which record they trust.
41
+
42
+ Distinguish measured timings from estimates. A team lead's recollection is useful evidence about their experience; it is not a measured baseline. Do not infer that the slowest visible step causes the whole delay without following its dependencies.
43
+
44
+ Use concrete questions when the supplied material leaves a gap: “Show me the last request that waited a day. What had to happen before someone could take it?” Ask about spreadsheets, manual transfers or other workarounds when there is evidence of them, without assuming they exist.
45
+
46
+ When a workaround looks surprising, use the targeted history check in [audit](audit.md#before-changing-an-unfamiliar-workaround). History supplies clues, not proof that an old requirement still applies.
47
+
48
+ ## Inspect systems when relevant and permitted
49
+
50
+ If the question depends on application behavior and code access is authorized, use `fde scan` and targeted file reads. If the CLI is unavailable, use the repository's existing search, Git and test tools. Do not load the whole repository or unrelated customer data.
51
+
52
+ Follow the actual path: entry point → validation → processing → storage or downstream action. Inspect the code, configuration and tests that can explain the observed discrepancy.
53
+
54
+ Check existing capability before proposing new work. A disabled feature, frequent edits or a missing nearby test is a lead to investigate, not proof of a root cause. Record the evidence behind any technical risk. When there is no repository access, state that implementation behavior remains unchecked and finish the work possible from the notes.
55
+
56
+ ## Check the data and dependencies the proposed work needs
57
+
58
+ For each relevant source, establish where it lives, how fresh it is, who controls access, which fields the task needs, and what happens when it is unavailable. Inspect a permitted sample appropriate to the question; report its size and limitations rather than treating a small sample as representative by default.
59
+
60
+ | Source or connection | Needed for | Freshness and quality evidence | Access owner | Failure or constraint | Next check |
61
+ |---|---|---|---|---|---|
62
+ | Fill only relevant sources | | | Unknown if unconfirmed | | |
63
+
64
+ Check mappings between systems, supported APIs, permissions and retry behavior where they affect feasibility. A promised export or integration is not yet an available dependency. Record its responsible owner, verification date and required evidence when known; propose missing commitments for confirmation.
65
+
66
+ For AI work, identify which steps can use deterministic logic, which need model judgment, and which require a human decision. Keep that allocation provisional until the affected owners agree. Establish who would operate the resulting change and what access or training they would need.
67
+
68
+ ## Use a workshop only when it resolves a real disagreement
69
+
70
+ A short meeting with the relevant decision makers may help when teams describe different problems or constraints. Bring the observed cases and the decision to be made. Ask participants to state their constraints before discussing options.
71
+
72
+ Summarize areas of agreement and disagreement. A vote or an absence of objections does not establish authority or acceptance. Ask the responsible owner to confirm the decision and record any unresolved objection, next action and date. Draft the summary promptly, then follow the record-confirmation rules before saving it.
73
+
74
+ ## Return a useful discovery result
75
+
76
+ Use the smallest output that answers the user's request:
77
+
78
+ 1. The current task and the decision under investigation.
79
+ 2. What the evidence establishes, with its source.
80
+ 3. The working explanation and plausible alternatives.
81
+ 4. Relevant exceptions, dependencies or technical risks actually observed.
82
+ 5. Missing evidence and the next check that would change the decision.
83
+
84
+ Do not fill a quota of risks, exceptions or questions. If no system was inspected, do not invent code findings. If several interpretations have failed, reassess the evidence and investigation method rather than blaming the person who wrote the brief.
85
+
86
+ For a bound engagement, propose updates to the existing records after the discovery result is reviewed:
87
+
88
+ - `reality.md`: preserve `Working theory`, `Evidence` and `Differs from brief how`; add the decision frame and validation status.
89
+ - `terrain.md`: relevant steps, system behavior, data dependencies and unknowns. Preserve the `## Operating map (exception-led)` section and its columns when recording observed breaks.
90
+ - `assumptions.md`: new or changed assumptions, verification owners and checkpoints.
91
+
92
+ An operating-map row uses: `Exception / break | Who notices first | What they do today | System of record then | Blast | Evidence`. Preserve the existing schema. If no break has been observed, report that gap; do not fabricate a row to satisfy a readiness check.
93
+
94
+ For standalone work, return the same findings in the conversation or requested document. No `.fde/` write or initialization is needed.
95
+
96
+ ## Worked example
97
+
98
+ This example is fictional and uses only supplied meeting notes.
99
+
100
+ The brief asks for an assistant to draft responses. The supplied notes say drafting takes about four minutes, while requests sometimes wait a day for assignment. The timings come from a team lead; no measured baseline is available.
101
+
102
+ **Working theory:** assignment delay may matter more than drafting time. **Evidence:** the lead's estimates in the supplied notes, still unverified. **Differs from brief how:** the requested assistant addresses drafting, while the reported delay concerns assignment. **Question:** what causes the assignment delay, and which change would reduce it? **Next check:** trace a sample of recent requests using arrival and assignment timestamps, then ask the people handling delayed cases what prevented assignment.
103
+
104
+ The discovery result does not reject the assistant or declare an ownership problem solved. It gives the FDE a focused way to find out what to build, change or investigate next. Return this as a short draft for notes-only work; in a bound engagement, propose it for `reality.md` with validation still pending.
105
+
106
+ ## Principles
107
+
108
+ - Investigate the work before choosing a solution.
109
+ - Keep observations, estimates and hypotheses distinct.
110
+ - Match discovery effort to the decision at hand.
111
+ - Unknown ownership and missing evidence remain explicit.
112
+ - Confirmation comes from the responsible person, never from silence.
@@ -0,0 +1,16 @@
1
+ {
2
+ "generator": "bin/generate-skills.js",
3
+ "version": 1,
4
+ "files": {
5
+ "SKILL.md": "6a8f9490294e1a055c25984955d011db23ebb1eb2fb4f8634584d1455331425e",
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": "8ec90708522e512a50a57ab2a377a7472e93bae169c6f075a93fa603ce2ad780",
14
+ "references/verification.md": "d453c075b849437375338fd23782ca7fe6d427b05137a2b10fc2f724aaf7f8a9"
15
+ }
16
+ }
@@ -1,9 +1,9 @@
1
1
  ---
2
- name: fde-evaluate
2
+ name: evaluate
3
3
  description: Evaluate an AI workflow against representative cases and its permitted actions. Use for model, retrieval or agent evaluation; tests do not grant release authority.
4
4
  ---
5
5
 
6
- # fde-evaluate
6
+ # evaluate
7
7
 
8
8
  <!-- Generated by bin/generate-skills.js; edit the canonical references and catalog. -->
9
9
 
@@ -11,7 +11,7 @@ The **engagement record** for one client, from first meeting to signed outcome.
11
11
 
12
12
  ## Task entry
13
13
 
14
- Read `references/task-context.md` first. An explicitly selected `fde-*` task runs directly; do not wrap it in another coordinator or repeat entry. For a one-off task with supplied context, use the relevant method without initializing `.fde/`. For ongoing client work use the bounded entry and memory contract below. Missing record files alone are not a reason to restart discovery.
14
+ Read `references/task-context.md` first. An explicitly selected task skill (such as `discover` or `build`) runs directly; do not wrap it in another coordinator or repeat entry. For a one-off task with supplied context, use the relevant method without initializing `.fde/`. For ongoing client work use the bounded entry and memory contract below. Missing record files alone are not a reason to restart discovery.
15
15
 
16
16
  ## When to use
17
17
 
@@ -54,7 +54,7 @@ Use `references/build.md` for implementation, `references/integrate.md` for cust
54
54
 
55
55
  ## Human surface vs agent plumbing
56
56
 
57
- **FDE (human):** `@fde` + English, or `/brief` `/discover` `/plan` `/ship` `/outcome` `/close` `/debrief` `/prep` `/trust` `/receipts` `/readout`. They may also invoke an individual `fde-*` skill directly.
57
+ **FDE (human):** `@fde` + English, or `/brief` `/discover` `/plan` `/ship` `/outcome` `/close` `/debrief` `/prep` `/trust` `/receipts` `/readout`. They may also invoke an individual task skill directly.
58
58
 
59
59
  **You (agent):** run the CLI. **Never tell the FDE to type** `fde …`. If unbound, you run `fde resume --init` after one question. Never ask them to run the CLI.
60
60
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  **Enter when:** the engagement is ending - the customer team must run this without the FDE.
6
6
 
7
- **Read first:** bounded `fde handoff` or `fde resume`, then targeted `fde recall` for missing evidence. Build the full picture through relevant excerpts, not a full-directory load. Consult `terrain.md` only for the code paths needed by the successor.
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
8
 
9
9
  The engagement doesn't end at ship. It ends when the customer can maintain what was built without calling.
10
10