fdeops 4.1.1 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +2 -2
- package/README.md +85 -246
- package/bin/catalog-doc.js +38 -0
- package/bin/check.js +20 -49
- package/bin/fde.js +2 -2
- package/bin/generate-skills.js +11 -3
- package/bin/install.js +37 -3
- package/bin/skill-catalog.js +283 -16
- package/mcp/fdeops-ingest/package.json +1 -1
- package/package.json +2 -2
- package/plugin.json +1 -1
- package/skills/README.md +7 -0
- package/skills/audit/.fde-generated.json +10 -0
- package/skills/audit/SKILL.md +21 -0
- package/skills/audit/references/discover.md +112 -0
- package/skills/{fde-build → audit}/references/task-context.md +7 -1
- package/skills/board-memo/.fde-generated.json +10 -0
- package/skills/board-memo/SKILL.md +21 -0
- package/skills/{fde-debug → board-memo}/references/task-context.md +7 -1
- package/skills/brief/.fde-generated.json +9 -0
- package/skills/brief/SKILL.md +21 -0
- package/skills/brief/references/land.md +136 -0
- package/skills/{fde-discover → brief}/references/task-context.md +7 -1
- package/skills/{fde-build → build}/.fde-generated.json +2 -2
- package/skills/{fde-build → build}/SKILL.md +2 -2
- package/skills/{fde-evaluate → build}/references/task-context.md +7 -1
- package/skills/business-case/.fde-generated.json +9 -0
- package/skills/business-case/SKILL.md +21 -0
- package/skills/business-case/references/task-context.md +18 -0
- package/skills/connect/.fde-generated.json +12 -0
- package/skills/connect/SKILL.md +21 -0
- package/skills/connect/references/connect.md +24 -0
- package/skills/connect/references/debrief.md +91 -0
- package/skills/connect/references/ingest.md +75 -0
- package/skills/connect/references/source-setup.md +30 -0
- package/skills/connect/references/task-context.md +18 -0
- package/skills/dashboard/.fde-generated.json +9 -0
- package/skills/dashboard/SKILL.md +21 -0
- package/skills/dashboard/references/dashboard.md +40 -0
- package/skills/dashboard/references/task-context.md +18 -0
- package/skills/debrief/.fde-generated.json +12 -0
- package/skills/debrief/SKILL.md +21 -0
- package/skills/debrief/references/connect.md +24 -0
- package/skills/debrief/references/debrief.md +91 -0
- package/skills/debrief/references/ingest.md +75 -0
- package/skills/debrief/references/source-setup.md +30 -0
- package/skills/debrief/references/task-context.md +18 -0
- package/skills/{fde-debug → debug}/.fde-generated.json +2 -2
- package/skills/{fde-debug → debug}/SKILL.md +2 -2
- package/skills/debug/references/task-context.md +18 -0
- package/skills/demo-prep/.fde-generated.json +9 -0
- package/skills/demo-prep/SKILL.md +21 -0
- package/skills/demo-prep/references/demo-prep.md +31 -0
- package/skills/demo-prep/references/task-context.md +18 -0
- package/skills/discover/.fde-generated.json +10 -0
- package/skills/{fde-discover → discover}/SKILL.md +2 -2
- package/skills/discover/references/discover.md +112 -0
- package/skills/discover/references/task-context.md +18 -0
- package/skills/earn-trust/.fde-generated.json +9 -0
- package/skills/earn-trust/SKILL.md +21 -0
- package/skills/earn-trust/references/earn-trust.md +100 -0
- package/skills/earn-trust/references/task-context.md +18 -0
- package/skills/{fde-integrate → evaluate}/.fde-generated.json +2 -2
- package/skills/{fde-evaluate → evaluate}/SKILL.md +2 -2
- package/skills/evaluate/references/task-context.md +18 -0
- package/skills/fde/SKILL.md +11 -10
- package/skills/fde/references/connect.md +14 -24
- package/skills/fde/references/debrief.md +2 -0
- package/skills/fde/references/discover.md +66 -208
- package/skills/fde/references/ingest.md +4 -2
- package/skills/fde/references/plan.md +6 -6
- package/skills/fde/references/runbook.md +52 -120
- package/skills/fde/references/source-setup.md +30 -0
- package/skills/fde/references/task-context.md +7 -1
- package/skills/feedback/.fde-generated.json +9 -0
- package/skills/{fde-feedback → feedback}/SKILL.md +2 -2
- package/skills/feedback/references/task-context.md +18 -0
- package/skills/{fde-handoff → handoff}/.fde-generated.json +2 -2
- package/skills/{fde-handoff → handoff}/SKILL.md +2 -2
- package/skills/handoff/references/task-context.md +18 -0
- package/skills/ingest/.fde-generated.json +12 -0
- package/skills/ingest/SKILL.md +21 -0
- package/skills/ingest/references/connect.md +24 -0
- package/skills/ingest/references/debrief.md +91 -0
- package/skills/ingest/references/ingest.md +75 -0
- package/skills/ingest/references/source-setup.md +30 -0
- package/skills/ingest/references/task-context.md +18 -0
- package/skills/{fde-evaluate → integrate}/.fde-generated.json +2 -2
- package/skills/{fde-integrate → integrate}/SKILL.md +2 -2
- package/skills/integrate/references/task-context.md +18 -0
- package/skills/{fde-options → options}/.fde-generated.json +2 -2
- package/skills/{fde-options → options}/SKILL.md +2 -2
- package/skills/options/references/task-context.md +18 -0
- package/skills/plan/.fde-generated.json +10 -0
- package/skills/plan/SKILL.md +21 -0
- package/skills/plan/references/business-case.md +90 -0
- package/skills/{fde-poc → plan}/references/plan.md +6 -6
- package/skills/plan/references/task-context.md +18 -0
- package/skills/{fde-poc → poc}/.fde-generated.json +4 -4
- package/skills/{fde-poc → poc}/SKILL.md +2 -2
- package/skills/poc/references/audit.md +71 -0
- package/skills/poc/references/business-case.md +90 -0
- package/skills/poc/references/discover.md +112 -0
- package/skills/poc/references/plan.md +167 -0
- package/skills/poc/references/task-context.md +18 -0
- package/skills/prioritize/.fde-generated.json +10 -0
- package/skills/prioritize/SKILL.md +21 -0
- package/skills/prioritize/references/business-case.md +90 -0
- package/skills/prioritize/references/pick-three.md +95 -0
- package/skills/prioritize/references/task-context.md +18 -0
- package/skills/qa/.fde-generated.json +16 -0
- package/skills/{fde-qa → qa}/SKILL.md +2 -2
- package/skills/qa/references/task-context.md +18 -0
- package/skills/{fde-readout → readout}/.fde-generated.json +2 -2
- package/skills/{fde-readout → readout}/SKILL.md +2 -2
- package/skills/readout/references/board-memo.md +108 -0
- package/skills/readout/references/business-case.md +90 -0
- package/skills/readout/references/task-context.md +18 -0
- package/skills/red-team/.fde-generated.json +9 -0
- package/skills/red-team/SKILL.md +21 -0
- package/skills/red-team/references/red-team.md +105 -0
- package/skills/red-team/references/task-context.md +18 -0
- package/skills/rescue/.fde-generated.json +9 -0
- package/skills/rescue/SKILL.md +21 -0
- package/skills/rescue/references/rescue.md +82 -0
- package/skills/rescue/references/task-context.md +18 -0
- package/skills/review/.fde-generated.json +16 -0
- package/skills/{fde-review → review}/SKILL.md +2 -2
- package/skills/review/references/task-context.md +18 -0
- package/skills/rollback/.fde-generated.json +9 -0
- package/skills/rollback/SKILL.md +21 -0
- package/skills/rollback/references/rollback.md +102 -0
- package/skills/rollback/references/task-context.md +18 -0
- package/skills/runbook/.fde-generated.json +11 -0
- package/skills/runbook/SKILL.md +21 -0
- package/skills/runbook/references/close.md +66 -0
- package/skills/runbook/references/encode-pattern.md +96 -0
- package/skills/runbook/references/runbook.md +73 -0
- package/skills/runbook/references/task-context.md +18 -0
- package/skills/scope/.fde-generated.json +9 -0
- package/skills/{fde-scope → scope}/SKILL.md +2 -2
- package/skills/scope/references/task-context.md +18 -0
- package/skills/score-use-cases/.fde-generated.json +10 -0
- package/skills/score-use-cases/SKILL.md +21 -0
- package/skills/score-use-cases/references/business-case.md +90 -0
- package/skills/score-use-cases/references/score-use-cases.md +70 -0
- package/skills/score-use-cases/references/task-context.md +18 -0
- package/skills/ship/.fde-generated.json +16 -0
- package/skills/{fde-ship → ship}/SKILL.md +2 -2
- package/skills/ship/references/task-context.md +18 -0
- package/skills/switch-clients/.fde-generated.json +9 -0
- package/skills/switch-clients/SKILL.md +21 -0
- package/skills/switch-clients/references/switch-clients.md +114 -0
- package/skills/switch-clients/references/task-context.md +18 -0
- package/skills/test-assumptions/.fde-generated.json +9 -0
- package/skills/test-assumptions/SKILL.md +21 -0
- package/skills/test-assumptions/references/task-context.md +18 -0
- package/skills/test-assumptions/references/test-assumptions.md +102 -0
- package/skills/what-breaks/.fde-generated.json +9 -0
- package/skills/what-breaks/SKILL.md +21 -0
- package/skills/what-breaks/references/task-context.md +18 -0
- package/skills/what-breaks/references/what-breaks.md +91 -0
- package/skills/who-decides/.fde-generated.json +9 -0
- package/skills/who-decides/SKILL.md +21 -0
- package/skills/who-decides/references/task-context.md +18 -0
- package/skills/who-decides/references/who-decides.md +91 -0
- package/skills/fde-discover/.fde-generated.json +0 -10
- package/skills/fde-discover/references/discover.md +0 -254
- package/skills/fde-feedback/.fde-generated.json +0 -9
- package/skills/fde-feedback/references/task-context.md +0 -12
- package/skills/fde-handoff/references/task-context.md +0 -12
- package/skills/fde-integrate/references/task-context.md +0 -12
- package/skills/fde-options/references/task-context.md +0 -12
- package/skills/fde-poc/references/discover.md +0 -254
- package/skills/fde-poc/references/task-context.md +0 -12
- package/skills/fde-qa/.fde-generated.json +0 -16
- package/skills/fde-qa/references/task-context.md +0 -12
- package/skills/fde-readout/references/task-context.md +0 -12
- package/skills/fde-review/.fde-generated.json +0 -16
- package/skills/fde-review/references/task-context.md +0 -12
- package/skills/fde-scope/.fde-generated.json +0 -9
- package/skills/fde-scope/references/task-context.md +0 -12
- package/skills/fde-ship/.fde-generated.json +0 -16
- package/skills/fde-ship/references/task-context.md +0 -12
- /package/skills/{fde-discover → audit}/references/audit.md +0 -0
- /package/skills/{fde-readout → board-memo}/references/board-memo.md +0 -0
- /package/skills/{fde-options → board-memo}/references/business-case.md +0 -0
- /package/skills/{fde-build → build}/references/build.md +0 -0
- /package/skills/{fde-build → build}/references/debug.md +0 -0
- /package/skills/{fde-build → build}/references/eval-pack.md +0 -0
- /package/skills/{fde-build → build}/references/integrate.md +0 -0
- /package/skills/{fde-build → build}/references/qa.md +0 -0
- /package/skills/{fde-build → build}/references/review.md +0 -0
- /package/skills/{fde-build → build}/references/ship.md +0 -0
- /package/skills/{fde-build → build}/references/verification.md +0 -0
- /package/skills/{fde-poc → business-case}/references/business-case.md +0 -0
- /package/skills/{fde-debug → debug}/references/build.md +0 -0
- /package/skills/{fde-debug → debug}/references/debug.md +0 -0
- /package/skills/{fde-debug → debug}/references/eval-pack.md +0 -0
- /package/skills/{fde-debug → debug}/references/integrate.md +0 -0
- /package/skills/{fde-debug → debug}/references/qa.md +0 -0
- /package/skills/{fde-debug → debug}/references/review.md +0 -0
- /package/skills/{fde-debug → debug}/references/ship.md +0 -0
- /package/skills/{fde-debug → debug}/references/verification.md +0 -0
- /package/skills/{fde-poc → discover}/references/audit.md +0 -0
- /package/skills/{fde-evaluate → evaluate}/references/build.md +0 -0
- /package/skills/{fde-evaluate → evaluate}/references/debug.md +0 -0
- /package/skills/{fde-evaluate → evaluate}/references/eval-pack.md +0 -0
- /package/skills/{fde-evaluate → evaluate}/references/integrate.md +0 -0
- /package/skills/{fde-evaluate → evaluate}/references/qa.md +0 -0
- /package/skills/{fde-evaluate → evaluate}/references/review.md +0 -0
- /package/skills/{fde-evaluate → evaluate}/references/ship.md +0 -0
- /package/skills/{fde-evaluate → evaluate}/references/verification.md +0 -0
- /package/skills/{fde-feedback → feedback}/references/encode-pattern.md +0 -0
- /package/skills/{fde-handoff → handoff}/references/close.md +0 -0
- /package/skills/{fde-handoff → handoff}/references/encode-pattern.md +0 -0
- /package/skills/{fde-integrate → integrate}/references/build.md +0 -0
- /package/skills/{fde-integrate → integrate}/references/debug.md +0 -0
- /package/skills/{fde-integrate → integrate}/references/eval-pack.md +0 -0
- /package/skills/{fde-integrate → integrate}/references/integrate.md +0 -0
- /package/skills/{fde-integrate → integrate}/references/qa.md +0 -0
- /package/skills/{fde-integrate → integrate}/references/review.md +0 -0
- /package/skills/{fde-integrate → integrate}/references/ship.md +0 -0
- /package/skills/{fde-integrate → integrate}/references/verification.md +0 -0
- /package/skills/{fde-readout → options}/references/business-case.md +0 -0
- /package/skills/{fde-options → options}/references/test-assumptions.md +0 -0
- /package/skills/{fde-options → options}/references/three-options.md +0 -0
- /package/skills/{fde-poc → poc}/references/build.md +0 -0
- /package/skills/{fde-poc → poc}/references/debug.md +0 -0
- /package/skills/{fde-poc → poc}/references/eval-pack.md +0 -0
- /package/skills/{fde-poc → poc}/references/integrate.md +0 -0
- /package/skills/{fde-poc → poc}/references/poc.md +0 -0
- /package/skills/{fde-poc → poc}/references/qa.md +0 -0
- /package/skills/{fde-poc → poc}/references/review.md +0 -0
- /package/skills/{fde-poc → poc}/references/ship.md +0 -0
- /package/skills/{fde-poc → poc}/references/test-assumptions.md +0 -0
- /package/skills/{fde-poc → poc}/references/three-options.md +0 -0
- /package/skills/{fde-poc → poc}/references/verification.md +0 -0
- /package/skills/{fde-qa → qa}/references/build.md +0 -0
- /package/skills/{fde-qa → qa}/references/debug.md +0 -0
- /package/skills/{fde-qa → qa}/references/eval-pack.md +0 -0
- /package/skills/{fde-qa → qa}/references/integrate.md +0 -0
- /package/skills/{fde-qa → qa}/references/qa.md +0 -0
- /package/skills/{fde-qa → qa}/references/review.md +0 -0
- /package/skills/{fde-qa → qa}/references/ship.md +0 -0
- /package/skills/{fde-qa → qa}/references/verification.md +0 -0
- /package/skills/{fde-readout → readout}/references/readout.md +0 -0
- /package/skills/{fde-review → review}/references/build.md +0 -0
- /package/skills/{fde-review → review}/references/debug.md +0 -0
- /package/skills/{fde-review → review}/references/eval-pack.md +0 -0
- /package/skills/{fde-review → review}/references/integrate.md +0 -0
- /package/skills/{fde-review → review}/references/qa.md +0 -0
- /package/skills/{fde-review → review}/references/review.md +0 -0
- /package/skills/{fde-review → review}/references/ship.md +0 -0
- /package/skills/{fde-review → review}/references/verification.md +0 -0
- /package/skills/{fde-scope → scope}/references/hold-scope.md +0 -0
- /package/skills/{fde-ship → ship}/references/build.md +0 -0
- /package/skills/{fde-ship → ship}/references/debug.md +0 -0
- /package/skills/{fde-ship → ship}/references/eval-pack.md +0 -0
- /package/skills/{fde-ship → ship}/references/integrate.md +0 -0
- /package/skills/{fde-ship → ship}/references/qa.md +0 -0
- /package/skills/{fde-ship → ship}/references/review.md +0 -0
- /package/skills/{fde-ship → ship}/references/ship.md +0 -0
- /package/skills/{fde-ship → ship}/references/verification.md +0 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# demo-prep - Prepare the demo
|
|
2
|
+
|
|
3
|
+
**Enter when:** a demo, show-and-tell, or exec walkthrough is coming. FDE engagements live demo-to-demo; a flat demo costs more than a slipped task.
|
|
4
|
+
|
|
5
|
+
**Read first:** `delivery.md` (what actually works), `stakeholders.md` (who's in the room, what they care about, current signals), `success.md` (the promise being demonstrated), `trust-profile.md` (what must never appear on screen).
|
|
6
|
+
|
|
7
|
+
## Method (you do this work)
|
|
8
|
+
|
|
9
|
+
1. **Pick the ONE outcome** the room cares about - from `stakeholders.md`, not from what was hardest to build. Engineers demo effort; the room buys outcomes.
|
|
10
|
+
2. **Build the arc:** the problem in their words → before (the pain, ideally the workaround they recognize) → after, **live** → the one number → what's next. Five beats, ten minutes.
|
|
11
|
+
3. **The one number.** Every demo needs a single memorable quantity ("31 spreadsheet rows to zero", "p95 held at 180ms"). Pull it from `delivery.md`; if no number exists, that's a gap to fix *before* the demo, not narrate around.
|
|
12
|
+
4. **Live vs. canned, decided per beat.** Demo live only what has run clean **twice today**. Everything else: recording or screenshot. A live failure in front of a skeptical room undoes three weeks of trust.
|
|
13
|
+
5. **The hard-question sheet.** Write the five toughest questions this room will ask (check `risks.md` and amber/red stakeholders for where they'll push) + one-line answers with evidence. Include the question you're afraid of.
|
|
14
|
+
6. **The failure plan.** If the live path breaks: the pre-recorded fallback, and the one sentence that keeps the room ("let me show you the captured run while that resets").
|
|
15
|
+
7. **Sacred-data sweep.** Nothing from `trust-profile.md` `<private>` on screen - real customer data, carrier rates, PHI, keys. Demo data is staged data.
|
|
16
|
+
|
|
17
|
+
## Artifact
|
|
18
|
+
|
|
19
|
+
`delivery.md` under `## Demo plan - <date>`: the arc, live/canned split, the one number, hard-question sheet, fallback. `context.md`: demo scheduled, prep state, what must run clean twice before it.
|
|
20
|
+
|
|
21
|
+
## Checkpoint
|
|
22
|
+
|
|
23
|
+
Dry-run the arc with the FDE once, timed. Confirm: the one number lands in the first three minutes; the riskiest beat has a fallback; the opening line is about *their* problem, not our work.
|
|
24
|
+
|
|
25
|
+
## Principles
|
|
26
|
+
|
|
27
|
+
- Demo the outcome, never the architecture.
|
|
28
|
+
- One number per demo. Rooms remember numbers, not features.
|
|
29
|
+
- Never demo live what hasn't run clean twice today.
|
|
30
|
+
- Rough is honest in week one; rough is alarming in week four - match polish to engagement stage.
|
|
31
|
+
- Sacred data stays off screen, every time, no exceptions.
|
|
@@ -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,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": "73eea2d7f164fac3226599e5be26ae4e79dcf69e0d24428dd12d623861410490"
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
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
|
-
#
|
|
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,18 @@
|
|
|
1
|
+
# Task context and evidence
|
|
2
|
+
|
|
3
|
+
Use this contract for standalone methods and methods routed through `@fde`.
|
|
4
|
+
|
|
5
|
+
- **Standalone work:** use the supplied, permitted facts, notes, code, and artifacts. A client name, `.fde/` directory, or initialized engagement is not a prerequisite for work on supplied context. Tasks that inspect actual records need those records; staging or saving requires a selected customer. Never fabricate records to make an operational task appear complete. Do not bootstrap records merely to run a method. Ask only for missing information or authority that changes the next action; mark other gaps as unknown.
|
|
6
|
+
- **Artifact names are destinations:** names such as `success.md`, `decisions.md`, and `delivery.md` identify relevant evidence and, when bound, record destinations. If absent, use supplied facts and return the requested draft or result in the current workspace or conversation. Do not invent files or require initialization to complete useful work.
|
|
7
|
+
- **Bound engagement:** honor the current client binding and constraints. Before reading records, run `fde privacy` to verify masking support. Obtain a fresh, identity-matching sanitized `fde resume` packet for this task (or reuse a fresh session-hook packet); retrieve missing evidence with targeted `fde recall <topic>`. Use bounded `fde handoff` for transfer work. Refresh after binding, masking, or record changes. Never substitute raw `.fde/` reads, private blocks, masking dictionaries, or full transcripts. If the CLI is unavailable, use only permitted supplied excerpts and report the context limitation.
|
|
8
|
+
- **Authority:** continue reversible work within authorized scope. Reuse prior authorization when it covers the specific action. Show consequential engagement-record judgments and uncertainties for confirmation before saving unless already explicitly confirmed. New scope, acceptance changes, production actions, exports, and external messages need the applicable authority; a method invocation alone does not supply it. Keep one customer's writes in that customer's record.
|
|
9
|
+
- **Evidence:** distinguish supplied facts, estimates, hypotheses, and unknowns. Cite actual sources; a log date is not attribution. Never invent a source, signer, signature, customer reaction, or acceptance. Keep outcomes **promised → measured → accepted** distinct, and implementation, verification, deployment, and customer acceptance separate. Missing evidence means unproven, not an observed failure.
|
|
10
|
+
- **Data boundary:** use only data permitted by the customer's AI policy; clarify unknown policy before loading their code or data. Never load `<private>` content into a model. Cross-client comparison and exporting reusable material require permission and removal of customer-identifying or confidential content; anonymization alone does not grant permission.
|
|
11
|
+
|
|
12
|
+
## CLI availability
|
|
13
|
+
|
|
14
|
+
Only locate the CLI when the selected task needs it. Check `fde` on PATH and its `fde privacy` capability before reading records. If unavailable, use `node ~/.claude/fdeops/fde.js` when the disk installer placed it there, or `npx --yes fdeops <command>` when package downloads are permitted. Respect local installation and network rules. Run commands for the user; do not turn a missing bare `fde` command into unnecessary manual setup.
|
|
15
|
+
|
|
16
|
+
If no permitted executable is available, explain the missing capability. Continue any useful draft from supplied excerpts, but do not claim to have read, switched, staged, saved or rendered real records. Do not read raw private record files as a fallback.
|
|
17
|
+
|
|
18
|
+
Apply the selected method to this context. Follow its linked supporting methods only when needed; do not restart discovery or repeat already answered questions.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"generator": "bin/generate-skills.js",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"files": {
|
|
5
|
+
"SKILL.md": "c4152a7ee98027f810c3ab11403dea75dee5aae26da24f84de34630c1fd529b6",
|
|
6
|
+
"references/earn-trust.md": "a3dc4b44686066fbc94fafa4b2fac3c5120d7940256898cec31279f565b912bb",
|
|
7
|
+
"references/task-context.md": "73eea2d7f164fac3226599e5be26ae4e79dcf69e0d24428dd12d623861410490"
|
|
8
|
+
}
|
|
9
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: earn-trust
|
|
3
|
+
description: Plan how to earn customer trust and appropriate access. Use when credibility, permissions or AI policy constrain the engagement.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# earn-trust
|
|
7
|
+
|
|
8
|
+
<!-- Generated by bin/generate-skills.js; edit the canonical references and catalog. -->
|
|
9
|
+
|
|
10
|
+
## Purpose
|
|
11
|
+
|
|
12
|
+
Plan how to earn customer trust and appropriate access. Use when credibility, permissions or AI policy constrain the engagement.
|
|
13
|
+
|
|
14
|
+
Read [the task context contract](references/task-context.md), then [the method](references/earn-trust.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,100 @@
|
|
|
1
|
+
# earn-trust - Earn access
|
|
2
|
+
|
|
3
|
+
**Enter when:** new engagement where you don't have full access yet, trust is thin, the customer said "let's start small," or you need to navigate "we don't trust AI-generated code."
|
|
4
|
+
|
|
5
|
+
**Read first:** `trust-profile.md`, `stakeholders.md`, `context.md`. The trust profile tells you where the walls are; the stakeholder map tells you who built them.
|
|
6
|
+
|
|
7
|
+
Trust is the currency of FDE work. Code quality gets you a second week; trust gets you the engagement. It's earned in small, visible moves - never demanded, never assumed, and never recovered once burned.
|
|
8
|
+
|
|
9
|
+
## Method (you do this work)
|
|
10
|
+
|
|
11
|
+
**1. The trust ladder - every engagement climbs it in order:**
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
Level 0: Observer → read-only access, watching
|
|
15
|
+
Level 1: Advisor → recommendations, no code changes
|
|
16
|
+
Level 2: Contributor → PRs reviewed by their team
|
|
17
|
+
Level 3: Committer → direct push to feature branches
|
|
18
|
+
Level 4: Owner → production access, deploy authority
|
|
19
|
+
Level 5: Trusted → they call you before making decisions
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**Never skip a level.** The FDE who asks for production access on day two gets observer access for a month. The FDE who ships a clean PR on day two gets committer access by week two. Each level is earned by demonstrating competence AND respect at the current level.
|
|
23
|
+
|
|
24
|
+
**2. The first-week trust plays - specific, not generic:**
|
|
25
|
+
|
|
26
|
+
| Day | Move | Why it works |
|
|
27
|
+
|-----|------|-------------|
|
|
28
|
+
| 1 | Fix a small, visible, annoying bug - something the team has been stepping over (only after `success.md` has a signer, or the FDE overrides with the unknown still visible) | Proves you can ship in their environment without breaking things |
|
|
29
|
+
| 1 | Ask the passed-over team what naming conventions they use - then use them | Shows respect before competence |
|
|
30
|
+
| 2 | Send a one-paragraph status to the sponsor without being asked | Sets the pattern: they hear from you before they have to ask |
|
|
31
|
+
| 3 | Find a genuine risk and flag it without drama | Demonstrates you're protecting them, not performing |
|
|
32
|
+
| 5 | Show a small win to the champion so they can share it upward | Gives them evidence their bet on you was right |
|
|
33
|
+
|
|
34
|
+
**3. Navigate "we don't trust AI-generated code":**
|
|
35
|
+
|
|
36
|
+
This is increasingly common. The right response is respect, not persuasion:
|
|
37
|
+
|
|
38
|
+
- **Ask the policy, don't assume.** "Does your organisation have a position on AI-assisted code in production?"
|
|
39
|
+
- **If prohibited:** work without AI on their code. Use fdeops for engagement memory (`.fde/` files) and your own planning - that's your tooling, not theirs.
|
|
40
|
+
- **If permitted with review:** every AI-touched line goes through their normal review process. Flag it: "AI-assisted, human-reviewed" in commit messages if they want traceability.
|
|
41
|
+
- **If grey area:** treat as prohibited until someone with authority says otherwise. The cost of asking is zero; the cost of guessing wrong is the engagement.
|
|
42
|
+
- **Never hide it.** An FDE caught using prohibited AI tools loses the engagement and the reputation. Full stop.
|
|
43
|
+
|
|
44
|
+
**4. Trust recovery - when you've made a mistake:**
|
|
45
|
+
|
|
46
|
+
Mistakes happen. What matters is speed and honesty:
|
|
47
|
+
|
|
48
|
+
- **Own it in the first hour.** Not "we found an issue" - "I introduced this bug." Passive voice erodes trust faster than the mistake.
|
|
49
|
+
- **Show the fix AND the prevention.** "Here's what happened, here's the fix, here's the test that prevents it next time."
|
|
50
|
+
- **One visible win within 48 hours.** Trust recovery needs a concrete success close to the mistake - not weeks later.
|
|
51
|
+
- **Never minimise.** "It was a small bug" is your assessment, not theirs. Let them size it.
|
|
52
|
+
|
|
53
|
+
**5. The trust account - deposits and withdrawals:**
|
|
54
|
+
|
|
55
|
+
| Deposits (slow, steady) | Withdrawals (fast, expensive) |
|
|
56
|
+
|-------------------------|-------------------------------|
|
|
57
|
+
| On-time status updates | Surprises - especially bad ones they hear from someone else |
|
|
58
|
+
| Using their conventions | "I know better" energy - even when you do |
|
|
59
|
+
| Flagging risks early | Breaking something in production |
|
|
60
|
+
| Crediting the internal team | Taking credit for shared work |
|
|
61
|
+
| Asking before touching sensitive code | Assuming access you haven't been given |
|
|
62
|
+
| Over-communicating during incidents | Going quiet when things are hard |
|
|
63
|
+
|
|
64
|
+
## Artifact
|
|
65
|
+
|
|
66
|
+
**`trust-profile.md`** - updated sections:
|
|
67
|
+
```markdown
|
|
68
|
+
## Trust level
|
|
69
|
+
Current: <level 0-5> as of <date>
|
|
70
|
+
Evidence: <what earned this level>
|
|
71
|
+
Next target: <level> - requires: <specific action>
|
|
72
|
+
|
|
73
|
+
## AI policy
|
|
74
|
+
Status: <prohibited / permitted-with-review / grey-area-treating-as-prohibited>
|
|
75
|
+
Source: <who confirmed, when>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**`decisions.md`** - log trust-significant moves: "Flagged migration risk to ops lead before they discovered it (Day 3) - trust deposit."
|
|
79
|
+
|
|
80
|
+
## Checkpoint
|
|
81
|
+
|
|
82
|
+
One question to the FDE: "Are we at the right trust level for what we need to do next week?" If not: name the gap, name the move, and put it in `context.md` as the next action.
|
|
83
|
+
|
|
84
|
+
## The week 2-4 valley
|
|
85
|
+
|
|
86
|
+
Week 1 is the honeymoon - everyone's excited, access is fresh, the brief is new. Weeks 2-4 are the valley: novelty wears off, real problems surface, the sponsor's patience shifts from "take your time" to "when do we see results." Most engagements silently fail here, not at ship.
|
|
87
|
+
|
|
88
|
+
Counter it:
|
|
89
|
+
- Ship one visible artifact per week, even if discovery isn't done. A terrain map, a risk register, a stakeholder signal update - something the sponsor can point to.
|
|
90
|
+
- Proactive status update at end of week 2 - explicitly name what discovery revealed that wasn't in the brief. This resets expectations with evidence.
|
|
91
|
+
- If still in discovery at week 3: the conversation with the sponsor about scope or timeline reset is overdue. Don't wait for them to ask.
|
|
92
|
+
|
|
93
|
+
## Principles
|
|
94
|
+
|
|
95
|
+
- Trust is earned in small moves, lost in one. Never skip the ladder.
|
|
96
|
+
- The first-week plays are specific and deliberate - not "be helpful."
|
|
97
|
+
- AI policy: ask, never assume. Prohibited until confirmed.
|
|
98
|
+
- Mistakes happen; hiding them doesn't. Own it in the first hour.
|
|
99
|
+
- The FDE who makes the internal team look right earns trust faster than the FDE who ships the most code.
|
|
100
|
+
- Weeks 2-4 are where engagements silently die. Ship visible artifacts weekly to survive the valley.
|
|
@@ -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.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"generator": "bin/generate-skills.js",
|
|
3
3
|
"version": 1,
|
|
4
4
|
"files": {
|
|
5
|
-
"SKILL.md": "
|
|
5
|
+
"SKILL.md": "6a8f9490294e1a055c25984955d011db23ebb1eb2fb4f8634584d1455331425e",
|
|
6
6
|
"references/build.md": "3dfeed619eeb1c8401f5cdf65e6f803fb209c70cb464dac4e60a1c890fd3a6f7",
|
|
7
7
|
"references/debug.md": "c3bb344d38cc3552cb4e230c601a9be3fe173af2b2efb89aab6b7b04339f24f4",
|
|
8
8
|
"references/eval-pack.md": "0590b85d3cae0903c6b1274540c92eaa2a4373047e8a0548d6942516ef0bb9e1",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"references/qa.md": "d8f58e6d36436469a58aeb1107037f3e27fa81ff5b82d0e4df3c23eeadaf683c",
|
|
11
11
|
"references/review.md": "63a007f78288089cc84cccc72647e8ce6721b7efa0f4f8d6774c0f0af594749d",
|
|
12
12
|
"references/ship.md": "8cdcb2d4d6eb57e0adf3f1996bc02ae66920852ca304d2afd778fa483b7e969a",
|
|
13
|
-
"references/task-context.md": "
|
|
13
|
+
"references/task-context.md": "73eea2d7f164fac3226599e5be26ae4e79dcf69e0d24428dd12d623861410490",
|
|
14
14
|
"references/verification.md": "d453c075b849437375338fd23782ca7fe6d427b05137a2b10fc2f724aaf7f8a9"
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
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
|
-
#
|
|
6
|
+
# evaluate
|
|
7
7
|
|
|
8
8
|
<!-- Generated by bin/generate-skills.js; edit the canonical references and catalog. -->
|
|
9
9
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Task context and evidence
|
|
2
|
+
|
|
3
|
+
Use this contract for standalone methods and methods routed through `@fde`.
|
|
4
|
+
|
|
5
|
+
- **Standalone work:** use the supplied, permitted facts, notes, code, and artifacts. A client name, `.fde/` directory, or initialized engagement is not a prerequisite for work on supplied context. Tasks that inspect actual records need those records; staging or saving requires a selected customer. Never fabricate records to make an operational task appear complete. Do not bootstrap records merely to run a method. Ask only for missing information or authority that changes the next action; mark other gaps as unknown.
|
|
6
|
+
- **Artifact names are destinations:** names such as `success.md`, `decisions.md`, and `delivery.md` identify relevant evidence and, when bound, record destinations. If absent, use supplied facts and return the requested draft or result in the current workspace or conversation. Do not invent files or require initialization to complete useful work.
|
|
7
|
+
- **Bound engagement:** honor the current client binding and constraints. Before reading records, run `fde privacy` to verify masking support. Obtain a fresh, identity-matching sanitized `fde resume` packet for this task (or reuse a fresh session-hook packet); retrieve missing evidence with targeted `fde recall <topic>`. Use bounded `fde handoff` for transfer work. Refresh after binding, masking, or record changes. Never substitute raw `.fde/` reads, private blocks, masking dictionaries, or full transcripts. If the CLI is unavailable, use only permitted supplied excerpts and report the context limitation.
|
|
8
|
+
- **Authority:** continue reversible work within authorized scope. Reuse prior authorization when it covers the specific action. Show consequential engagement-record judgments and uncertainties for confirmation before saving unless already explicitly confirmed. New scope, acceptance changes, production actions, exports, and external messages need the applicable authority; a method invocation alone does not supply it. Keep one customer's writes in that customer's record.
|
|
9
|
+
- **Evidence:** distinguish supplied facts, estimates, hypotheses, and unknowns. Cite actual sources; a log date is not attribution. Never invent a source, signer, signature, customer reaction, or acceptance. Keep outcomes **promised → measured → accepted** distinct, and implementation, verification, deployment, and customer acceptance separate. Missing evidence means unproven, not an observed failure.
|
|
10
|
+
- **Data boundary:** use only data permitted by the customer's AI policy; clarify unknown policy before loading their code or data. Never load `<private>` content into a model. Cross-client comparison and exporting reusable material require permission and removal of customer-identifying or confidential content; anonymization alone does not grant permission.
|
|
11
|
+
|
|
12
|
+
## CLI availability
|
|
13
|
+
|
|
14
|
+
Only locate the CLI when the selected task needs it. Check `fde` on PATH and its `fde privacy` capability before reading records. If unavailable, use `node ~/.claude/fdeops/fde.js` when the disk installer placed it there, or `npx --yes fdeops <command>` when package downloads are permitted. Respect local installation and network rules. Run commands for the user; do not turn a missing bare `fde` command into unnecessary manual setup.
|
|
15
|
+
|
|
16
|
+
If no permitted executable is available, explain the missing capability. Continue any useful draft from supplied excerpts, but do not claim to have read, switched, staged, saved or rendered real records. Do not read raw private record files as a fallback.
|
|
17
|
+
|
|
18
|
+
Apply the selected method to this context. Follow its linked supporting methods only when needed; do not restart discovery or repeat already answered questions.
|
package/skills/fde/SKILL.md
CHANGED
|
@@ -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 `
|
|
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
|
|
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
|
|
|
@@ -126,7 +126,7 @@ Direct. Their words. No "Certainly." Playback 2-4 lines, then act. One question
|
|
|
126
126
|
|
|
127
127
|
New embed: sprint / standard / programme changes depth, not which skills exist. Before first code: safe place to break things, plus AI-code policy. Before go-live: who needs to know, what's the rollback. Before a sponsor artifact: as-is or gut-check first.
|
|
128
128
|
|
|
129
|
-
Muddy signal: name it ("discover or rescue - leaning X"). Never a phase-picker interview. Default:
|
|
129
|
+
Muddy signal: name it ("discover or rescue - leaning X"). Never a phase-picker interview. Default: brief if new, audit if takeover.
|
|
130
130
|
|
|
131
131
|
## Routing - 6 stages
|
|
132
132
|
|
|
@@ -136,11 +136,11 @@ Work names (engage, diagnose, align, deliver, realize, transfer) are the same ma
|
|
|
136
136
|
|
|
137
137
|
| You hear | Skill | Reference |
|
|
138
138
|
|----------|-------|-----------|
|
|
139
|
-
| Engage, onboarding, starting fresh, new customer, first meeting, just got the brief, set product strategy, define success metrics, scope the brief |
|
|
139
|
+
| Engage, onboarding, starting fresh, new customer, first meeting, just got the brief, set product strategy, define success metrics, scope the brief | brief | `references/land.md` |
|
|
140
140
|
| Taking over, previous consultant left, joining mid-project | audit | `references/audit.md` |
|
|
141
141
|
| Need to understand who matters, who decides, map decision rights, who blocks quietly | who-decides | `references/who-decides.md` |
|
|
142
142
|
| Need to earn access, navigate AI policy, build credibility | earn-trust | `references/earn-trust.md` |
|
|
143
|
-
| "Also can you…", scope expanding, timeline unchanged, hold scope, scope the brief after kickoff |
|
|
143
|
+
| "Also can you…", scope expanding, timeline unchanged, hold scope, scope the brief after kickoff | scope | `references/hold-scope.md` |
|
|
144
144
|
|
|
145
145
|
### Discover
|
|
146
146
|
|
|
@@ -157,8 +157,8 @@ Work names (engage, diagnose, align, deliver, realize, transfer) are the same ma
|
|
|
157
157
|
|----------|-------|-----------|
|
|
158
158
|
| Align, break this down, what order, sequence the delivery, align the plan | plan | `references/plan.md` |
|
|
159
159
|
| Sponsor needs justification, need to defend budget or timeline, build the business case | business-case | `references/business-case.md` |
|
|
160
|
-
| Significant decision, multiple approaches, "what should we do?", generate solutions, generate options, not the playbook, from the surviving facts |
|
|
161
|
-
| 20 things are "urgent," need to pick the 3 that matter, prioritize three |
|
|
160
|
+
| Significant decision, multiple approaches, "what should we do?", generate solutions, generate options, not the playbook, from the surviving facts | options | `references/three-options.md` |
|
|
161
|
+
| 20 things are "urgent," need to pick the 3 that matter, prioritize three | prioritize | `references/pick-three.md` |
|
|
162
162
|
|
|
163
163
|
### Ship
|
|
164
164
|
|
|
@@ -172,6 +172,7 @@ Work names (engage, diagnose, align, deliver, realize, transfer) are the same ma
|
|
|
172
172
|
| Exercise the customer journey, browser acceptance, functional QA | qa | `references/qa.md` |
|
|
173
173
|
| Ready to deploy, going live, pre-flight, release the verified increment | ship | `references/ship.md` |
|
|
174
174
|
| Review this change, review the pull request, is it safe, does it match what we agreed | review | `references/review.md` |
|
|
175
|
+
| Evaluate model answers, retrieval or agent actions against representative cases | evaluate | `references/eval-pack.md` |
|
|
175
176
|
| Diff grew / scope creep in the PR / "did we only build what we said" / KEEP JUSTIFY SPLIT DROP | review (+ ship if going live) | `references/review.md` Stage 1 · `references/ship.md` Intent vs diff |
|
|
176
177
|
| Wrap the session / share the thinking / catch teammates up / before I open the PR | (memory contract - session digest) | SKILL.md **Session digest** - write TL;DR + decisions/why into `.fde/`; no transcript sync |
|
|
177
178
|
| "We can always revert" - need to actually test the escape route, rehearse rollback | rollback | `references/rollback.md` |
|
|
@@ -184,7 +185,7 @@ Work names (engage, diagnose, align, deliver, realize, transfer) are the same ma
|
|
|
184
185
|
| Demo coming up, show-and-tell, exec walkthrough, prepare the demo | demo-prep | `references/demo-prep.md` |
|
|
185
186
|
| Just out of a meeting, raw notes, "they said…", "debrief", user interviews, workshop notes, capture the meeting | debrief | the debrief verb (above) + `references/debrief.md` |
|
|
186
187
|
| Make sure we're up to date, pull what's relevant, fetch from Granola/Slack/Gmail/transcript | ingest | `references/ingest.md` (capability check → stage → propose → confirm → apply) |
|
|
187
|
-
| Connect a new MCP / connect Granola Slack or Notion / what can you pull | connect | `references/connect.md` (+ `
|
|
188
|
+
| Connect a new MCP / connect Granola Slack or Notion / what can you pull | connect | `references/connect.md` (+ `references/source-setup.md`) |
|
|
188
189
|
| Prep me for a meeting / walk-in brief / "what should I know before I talk to…" | - | run `fde prep "<label>"`, present in plain language |
|
|
189
190
|
| Sponsor's boss needs a summary, board update, brief the board, justify continued investment | board-memo | `references/board-memo.md` |
|
|
190
191
|
| Status across all my customers, view the portfolio | dashboard | `references/dashboard.md` |
|
|
@@ -194,9 +195,9 @@ Work names (engage, diagnose, align, deliver, realize, transfer) are the same ma
|
|
|
194
195
|
| You hear | Skill | Reference |
|
|
195
196
|
|----------|-------|-----------|
|
|
196
197
|
| Juggling 2+ customers, losing track, context-switching, switch engagements | switch-clients | `references/switch-clients.md` |
|
|
197
|
-
| Transfer, wrapping up, handoff, making yourself replaceable, transfer operations |
|
|
198
|
+
| Transfer, wrapping up, handoff, making yourself replaceable, transfer operations | handoff | `references/close.md` |
|
|
198
199
|
| Engagement ending, team needs to operate without you, write the runbook | runbook | `references/runbook.md` |
|
|
199
|
-
| Something worked well and will apply to future engagements, encode the pattern |
|
|
200
|
+
| Something worked well and will apply to future engagements, encode the pattern | feedback | `references/encode-pattern.md` |
|
|
200
201
|
| "Red-team this," "stress-test my plan," poke holes, challenge the plan, what am I missing | red-team | `references/red-team.md` |
|
|
201
202
|
| "What did we agree about X?", scope dispute, receipts | - | run `fde receipts <term>`, answer with dates |
|
|
202
203
|
|
|
@@ -1,34 +1,24 @@
|
|
|
1
1
|
# connect - Connect a source
|
|
2
2
|
|
|
3
|
-
**Enter when:** the
|
|
3
|
+
**Enter when:** the user asks to connect a notes, chat or document source, or an expected source cannot be read.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
**Who runs setup:** you guide; the **host** (Cursor/Claude) must save MCP config. You cannot silently install servers into the host.
|
|
8
|
-
|
|
9
|
-
## Honest contract
|
|
10
|
-
|
|
11
|
-
- **Daily work does not need a source MCP.** Paste notes → debrief. File on disk → `fde ingest`.
|
|
12
|
-
- **Connect means a source**, not FDEOps. Granola/Slack/Notion credentials stay with that MCP. FDEOps never pushes, never ambient-syncs, never stores their tokens.
|
|
13
|
-
- **Sink is the CLI in this bound workspace** (`fde ingest`). `fdeops-ingest` MCP is optional. If you use it, pass `engagement` as the `.fde/` path from `fde resume --bind` (MCP servers often do not inherit the workspace bind).
|
|
14
|
-
- Never invent that Granola/Slack is available if tools are missing. Never auto-apply to `.fde/`.
|
|
5
|
+
Apply [task context](task-context.md). Source setup can run independently of a customer record. Follow [source setup](source-setup.md) for permitted tools, credentials, connectivity checks and export alternatives.
|
|
15
6
|
|
|
16
7
|
## Method
|
|
17
8
|
|
|
18
|
-
1.
|
|
19
|
-
2.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
3. **Emit config for the source only** - open `mcp/recipes/<source>.md`. Fill placeholders from *that product's* docs. Tell them to paste secrets into host env - never into `.fde/`.
|
|
24
|
-
4. **Tell them where to paste** - Cursor MCP settings / `mcp.json`. Claude Code: their MCP config. Save → reload MCP / restart session.
|
|
25
|
-
5. **Verify** - after reload: re-run capability check. If source tools appear, offer a **test pull** staged to `.inbox/` only. Stop before apply unless they ask to propose.
|
|
26
|
-
6. **Handoff phrase** - e.g. `@fde pull today's Acme Granola into the fieldbook`.
|
|
9
|
+
1. Identify the source and the material the user wants to read. Inspect the host's actual available tools before recommending setup.
|
|
10
|
+
2. If the source already works, use a narrowly scoped requested read. Do not install another connector.
|
|
11
|
+
3. If setup is needed, verify current provider and host documentation, explain the required access, and make only authorized configuration changes. Never put credentials into prompts or customer records.
|
|
12
|
+
4. Test the selected source and distinguish configuration from successful retrieval. If access is blocked, report the specific limitation and an available file or paste alternative.
|
|
13
|
+
5. If the user also wants to update a customer record, continue with [ingest](ingest.md) after selecting that record. Otherwise stop after the requested setup or read.
|
|
27
14
|
|
|
28
|
-
##
|
|
15
|
+
## Checkpoint
|
|
29
16
|
|
|
30
|
-
Do not
|
|
17
|
+
Return what is connected, what read was verified, any access gap, and how to request the next pull. Do not claim an integration works from configuration alone or write customer records during setup.
|
|
31
18
|
|
|
32
|
-
##
|
|
19
|
+
## Principles
|
|
33
20
|
|
|
34
|
-
|
|
21
|
+
- Existing source tools first; configuration only when needed.
|
|
22
|
+
- Minimum requested read, no ambient synchronization.
|
|
23
|
+
- Credentials stay in supported secret storage.
|
|
24
|
+
- Record updates require their own review and confirmation.
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
**Enter when:** the FDE just left a meeting/call and dumps raw notes, a transcript, or "they said…". Highest-frequency moment in FDE life. Capture within the hour.
|
|
4
4
|
|
|
5
|
+
**Standalone review:** apply [task context](task-context.md). If the user supplies notes and wants a summary or review, interpret them using **Prepare one update** below and return a draft. Keep requests, confirmed decisions, reported results and unknowns distinct. No CLI or customer record is needed; do not claim anything was saved. Use the bound-record path below only when updating an existing record or when the user asks to start one.
|
|
6
|
+
|
|
5
7
|
**Large transcripts or emails** sitting in Granola/Gmail/Notion → prefer **`fde ingest stage`** first (via source MCPs the FDE configured), then the same propose → confirm → **`fde ingest apply`** path. See `references/ingest.md`. Pasted short notes stay on this debrief verb.
|
|
6
8
|
|
|
7
9
|
**Read first:** the bounded `fde resume` packet for the bound client. Use `fde recall` for the specific prior decision, action, or delivery result needed to reconcile this update. Do not reload the whole engagement.
|