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.
Scanned 8/30/2026
Install via CLI
openskills install suboss87/FDEOps---
name: fde
description: 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.
---
# @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 / 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.
Muddy signal: name it ("discover or rescue - leaning X"). Never a phase-picker interview. Default: land if new, audit if takeover.
## Routing - 6 stages
Work names (engage, diagnose, align, deliver, realize, transfer) are the same map. Read **one** reference and follow it. Do not improvise from memory.
### Land
| You hear | Skill | Reference |
|----------|-------|-----------|
| Engage, onboarding, starting fresh, new customer, first meeting, just got the brief, set product strategy, define success metrics, scope the brief | land | `references/land.md` |
| Taking over, previous consultant left, joining mid-project | audit | `references/audit.md` |
| Need to understand who matters, who decides, map decision rights, who blocks quietly | who-decides | `references/who-decides.md` |
| Need to earn access, navigate AI policy, build credibility | earn-trust | `references/earn-trust.md` |
| "Also can you…", scope expanding, timeline unchanged, hold scope, scope the brief after kickoff | hold-scope | `references/hold-scope.md` |
### Discover
| You hear | Skill | Reference |
|----------|-------|-----------|
| Diagnose, don't know the real problem, brief feels wrong, shadow processes, frame discovery, understand the problem space, data not ready, data estate, catalog the data | discover | `references/discover.md` |
| The brief feels too neat, assumptions untested, "we just need…", test assumptions | test-assumptions | `references/test-assumptions.md` |
| Multiple use cases competing, "we want to do everything", score use cases | score-use-cases | `references/score-use-cases.md` |
| Need to validate a direction, prototype, demo to de-risk, **POC**, spike, killer assumption, validate the solution, build prototype | poc | `references/poc.md` |
### Plan
| You hear | Skill | Reference |
|----------|-------|-----------|
| Align, break this down, what order, sequence the build, plan the roadmap, create user stories, write the tasks | plan | `references/plan.md` |
| Sponsor needs justification, need to defend budget or timeline, build the business case | business-case | `references/business-case.md` |
| Significant decision, multiple approaches, "what should we do?", generate solutions, generate options | three-options | `references/three-options.md` |
| 20 things are "urgent," need to pick the 3 that matter, prioritize three | pick-three | `references/pick-three.md` |
### Ship
| You hear | Skill | Reference |
|----------|-------|-----------|
| What could go wrong, touching shared infrastructure, need to assess impact, assess impact, provision, IaC, shared infra | what-breaks | `references/what-breaks.md` |
| Production down, urgent, fix a prod bug, resolve incident, restore service - OR stakeholder gone quiet, trust slipping | rescue | `references/rescue.md` |
| Deliver, start building, update their checkout, first module, visible progress, their tests, POC follow-through, ready to deploy, going live, pre-flight, deliver the increment, build the increment, create the launch plan, design their UI | ship | `references/ship.md` |
| Review this change, review the pull request, is it safe, does it match what we agreed | review | `references/review.md` |
| 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 |
| Wrap the session / share the thinking / catch teammates up / before I open the PR | (memory contract - session digest) | SKILL.md **On exit** - write TL;DR + decisions/why into `.fde/`; no transcript sync |
| "We can always revert" - need to actually test the escape route, rehearse rollback | rollback | `references/rollback.md` |
### Outcome
| You hear | Skill | Reference |
|----------|-------|-----------|
| Realize, weekly update due, "need to send the sponsor something", report the outcome | readout | `references/readout.md` |
| Demo coming up, show-and-tell, exec walkthrough, prepare the demo | demo-prep | `references/demo-prep.md` |
| 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` |
| 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) |
| Connect a new MCP / connect Granola Slack or Notion / what can you pull | connect | `references/connect.md` (+ `mcp/recipes/`) |
| Prep me for a meeting / walk-in brief / "what should I know before I talk to…" | - | run `fde prep "<label>"`, present in plain language |
| Sponsor's boss needs a summary, board update, brief the board, justify continued investment | board-memo | `references/board-memo.md` |
| Status across all my customers, view the portfolio | dashboard | `references/dashboard.md` |
### Close
| You hear | Skill | Reference |
|----------|-------|-----------|
| Juggling 2+ customers, losing track, context-switching, switch engagements | switch-clients | `references/switch-clients.md` |
| Transfer, wrapping up, handoff, making yourself replaceable, transfer operations | close | `references/close.md` |
| Engagement ending, team needs to operate without you, write the runbook | runbook | `references/runbook.md` |
| Something worked well and will apply to future engagements, encode the pattern | encode-pattern | `references/encode-pattern.md` |
| "Red-team this," "stress-test my plan," poke holes, challenge the plan, what am I missing | red-team | `references/red-team.md` |
| "What did we agree about X?", scope dispute, receipts | - | run `fde receipts <term>`, answer with dates |
**Overlays - activate alongside any skill on signal, don't wait to be told:**
| Signal | Overlay |
|--------|---------|
| AI, ML, LLM, model, embeddings, RAG, agents, fine-tuning, inference, drift, train the model | `references/ai.md` |
| Golden set, eval suite, eval pack, pass/fail before AI ship, HITL gate for model, POC the model | `references/eval-pack.md` (+ `ai.md`) |
| Deck, slides, report, governance framework, compliance pack, ADR, PDF | `references/artifacts.md` |
| Patient data, PHI, HIPAA, EHR, clinical | `references/healthcare.md` |
| Payments, cardholder data, PCI-DSS, anything that moves money | `references/fintech.md` |
| Government agency, FedRAMP, ATO, CUI, classified | `references/gov.md` |
Ready to build with no `terrain.md` / plan: discover or plan first. Takeover without `audit.md`: audit first. Two customers in one message: confirm which folder.
## Principles
- Never ask the FDE to pick a phase. That's your job.
- Same six stages at any scale. Overlays carry the industry. Greenfield and brownfield change the first move inside ship, not the map.
- Ground loop on a bound client: name → characterise → prove on their staging → go live → log. Do not hand their repo to a generic coding pack.
- Do not call a change done until the signer in `success.md` can reject it on staging they operate.
- Read `context.md` before speaking. One sharp question - never a barrage.
- Never invent people, meetings, or numbers - `unknown - ask:` beats a polished lie.
- Every phase ends with its artifact written. No artifact, no "done."
- Evidence on every claim. The FDE will be challenged on these files.
- Overlays activate on signal, not on request.
- Load `.fde/` files on demand, never the whole folder.
No comments yet. Be the first to comment!