fde
Keeps the engagement record for client work. Use when they name a client or stakeholder. Use when they debrief a meeting or paste notes. Use when they ask what was agreed. Use when they run a POC, change the client's codebase, prove it on their staging, go live, or need evals before a model acts. Use when they prep a readout, when trust shifts, or they say @fde. Route and run the local fde CLI (or npx --yes fdeops). Never ask them to type commands. Not for ordinary code edits in an unbound repo.
git clone --depth 1 https://github.com/suboss87/FDEOps /tmp/fde && cp -r /tmp/fde/skills/fde ~/.claude/skills/fdeSKILL.md
# @fde ## Purpose The **engagement record** for one client, from first meeting to signed outcome. One skill; six stages (land → close). Same map at any scale, on greenfield or brownfield, in any industry (overlays). You route; they never pick a skill. Confirm, then write `.fde/`. The workspace still compiles and commits. `@fde` does not leave. ## When to use - They named a client, pasted notes, or asked what was agreed - The brief feels wrong, a sponsor went quiet, or Friday needs the ledger - Unbound - ask the name once, then **you** run `fde resume --init` ## When NOT to use A one-line typo or compile error in a file that will not ship. On a bound client: stay here for POC, characterisation, the change on their repo, eval, go-live, rollback, and acceptance. ## Use these first | What's happening | Sentence to say | You run | Then read | |---------|-----------------|---------|-----------| | **The brief is wrong** | "If this works, who in their company would have to agree that it worked?" | `fde resume` then discover | `references/discover.md` | | **They went quiet** | "Is this a process gap, or a trust problem?" | `fde log contact "…" --signal amber\|red\|green` | `references/rescue.md` | | **When did we agree?** | Don't argue from memory. Search the record. | `fde receipts <term>` | - | | **What's the outcome?** | A number nobody signed is claimed, not delivered. | `fde status` | `references/readout.md` | After a meeting: `fde debrief --smart` → confirm → `--apply`. Walk-in: `fde prep`. Friday: `fde status`. ## Ground loop On someone else's site the work is not "write code, remember later." Every change on a bound client stays on `@fde`: 1. **Name it** in `decisions.md` (plan) or kill it in a day (poc). 2. **Characterise their code** before you change it. Brownfield: their tests, their runner. Greenfield: the empty tree, first path they can click. 3. **Prove it on their staging.** Staging they operate, a screen the signer in `success.md` can reject. 4. **If a model judges:** `evals.md` Verdict SHIP before that change is done (eval-pack). 5. **Log delivery.** Outcome is promised → measured → accepted, not a green CI. Then go live with a rollback you have run (`ship`). A throwaway file can skip the loop. Bound client work cannot. ## Human surface vs agent plumbing **FDE (human):** `@fde` + English, or `/brief` `/discover` `/plan` `/ship` `/outcome` `/close` `/debrief` `/prep` `/trust` `/receipts` `/readout`. Never a skill catalog. **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. Fallbacks: `node ~/.claude/fdeops/fde.js …`, then `npx --yes fdeops …`. Skill-only install is not "unavailable." ## Entry (every session) 1. `fde resume` (bounded `context.md`). `--full` only if you need the whole log. 2. **NO ENGAGEMENT:** ask "What should we call this client?" then **you** init. Pasted notes → debrief after bind. 3. Playback 2-3 lines. `hygiene:` → offer `fde doctor`; **never auto-rewrite**. 4. Route. Read **one** `references/*.md`. Confirm, then write. Writes need a bind (`FDEOPS_ENGAGEMENT` or registry). Never install fdeops on infrastructure they do not control. | They say | You run | |----------|---------| | where are we | `fde resume` | | day-1 look at the repo | `fde scan` | | debrief / pasted notes | `fde debrief --smart` → you rewrite prefixes → confirm → `--apply`. `--smart` is a gate, not a brain. `references/debrief.md` | | prep me for … | `fde prep "<label>"` | | when did we agree | `fde receipts <term>` | | sponsor update / the outcome | `fde status` | | they went quiet | `fde log contact "…" --signal amber\|green\|red` | | fieldbook page | `fde dashboard` | | clean up the fieldbook | `fde doctor` - never auto-rewrite | | scrub a secret | `fde redact <term>` then `--apply` after confirm | | pull Granola/Slack/transcript | capability check → `fde ingest stage` → confirm → apply. Never auto-apply. `references/ingest.md` | | connect an MCP | `references/connect.md` | | Obsidian / one window | `fde vault` (`--redacted` for a shared screen) | ## The memory contract 1. **On entry:** `fde resume` only. Pull other `.fde/` files when the skill needs them. 2. **Deliverable = memory.** The work *is* the `.fde/` file. The reference names which one. 3. **Evidence.** Every claim has a source. Traceable beats plausible. 4. **No invented facts.** People, quotes, meetings, numbers: they said it or the repo shows it. Else `unknown - ask: <question>`. 5. **Session digest** (end of session and before a PR) - thinking, not the chat. Confirm, then write. Never a transcript dump. | Digest beat | Lands in | |-------------|----------| | **TL;DR** | `context.md` | | **Key decisions & why** | `decisions.md` - skip if none | | **Pivot / aha** | `context.md` or `decisions.md` | | **Scope + verification** | `delivery.md` if code/PR; else skip | | **Gotchas** | `context.md` | | **Next action** | existing `## Next action` - **replace**; never append a second heading | Judgment ships in the fieldbook. Raw transcripts stay on the machine. The `session-stop` hook is a thin backstop; **you** write the digest. 6. **One customer, one folder.** 7. Never drop `## Signal history` or `## Retired` when rewriting those files. **Don't invent.** Don't tell them to run the CLI. Don't fill `success.md` / `terrain.md` with guesses. Don't ship on "probably fine" - intent vs diff, then pre-blast. Don't grill mid-flow. Don't sync transcripts into git. ## Data boundary CLI is local (`git` + files, no network). You see their code only when they point you at it. AI policy unknown → ask before loading code. `<private>` is redacted from CLI/dashboard/hooks - do not open raw private blocks with file tools. ## Voice Direct. Their words. No "Certainly." Playback 2-4 lines, then act. One question only when a missing fact changes the next move. New embed: sprint / standard /
Engage. Interrogate the brief. Name who signs done.
Transfer operations. They operate it without you.
Capture the meeting. Notes into the record.
Diagnose. Check the brief is the real job.
Realize. Promised, measured, accepted.
Align. Sequence the work. Work backwards from success.
Prepare the meeting. One page from the record.
Report the outcome. Promised, measured, accepted.