Forward deployed engineering skills for AI coding agents.
Skills encode the workflows, quality gates, and judgment Forward Deployed Engineers use on someone else's site. Packaged so an AI coding agent can run the embed end-to-end: discovery, POC, slice, on-site proof, eval, signed outcome. The workspace still compiles and commits. @fde does not leave.
Each command loads the same @fde skill. You never pick from 31 names.
| What you're doing | Command | Key principle |
|---|---|---|
| Land the embed | /brief |
Who signs done |
| Find the real problem | /discover |
Brief is a hypothesis |
| Plan the sequence | /plan |
Backwards from done |
| Ship a slice | /ship |
Live with a rollback |
| Prove the outcome | /outcome |
Promised, measured, accepted |
| Close the embed | /close |
They run it without you |
Also:
| What you're doing | Command | Key principle |
|---|---|---|
| Sponsor went silent | /trust |
Process or trust |
| Scope dispute | /receipts |
Dated, or a gap |
| After a meeting | /debrief |
Notes into the record |
| Walk-in | /prep |
One page from the record |
| Friday readout | /readout |
Promised, measured, accepted |
Skills also activate on English: naming a client, running a POC, slicing a feature, asking what was agreed. A throwaway one-liner in an unbound repo can skip @fde. A client slice cannot.
npx skills add suboss87/fdeops --skill fdeThen one chat. Name the client. The AI coding agent binds.
@fde this is Acme
Paste kickoff notes in the same thread. @fde routes; you confirm judgment. Same folder every time: ~/fde-engagements/<client>/.fde/. Workflow: docs/USAGE.md.
Claude Code (recommended)
/plugin marketplace add suboss87/fdeops
/plugin install fdeops@fdeops
Hooks load where you left off. Slash commands match the map above.
Other agents
npx skills add suboss87/fdeops --skill fdeGemini, Copilot, Codex, local LLMs: adapters/. Air-gapped: git clone https://github.com/suboss87/fdeops.git && node bin/install.js.
Fallback if the agent cannot bind:
npx fdeops resume --init acme # ~/fde-engagements/acme + bind this checkoutRequires Node.js >= 18. Override: FDEOPS_ENGAGEMENT. See docs/install.md. Try the loop: npx fdeops demo.
The commands above are the entry points. Under the hood, @fde activates these 31 skills, each a structured workflow with steps, an artifact, and a checkpoint. You never pick one by name. Full detail: docs/skills-reference.md.
| Skill | What It Does | Use When |
|---|---|---|
| land | Interrogate the brief, map stakeholders, define success | New client, first meeting, just got the brief |
| audit | Verify claims, find the load-bearing wall | Taking over, previous consultant left |
| who-decides | Who decides, who blocks, who escalates | Need to know who matters |
| earn-trust | Observer → trusted; navigate AI policy | Need access or credibility |
| hold-scope | Scope receipts; the accumulation conversation | "Also can you…", timeline unchanged |
| Skill | What It Does | Use When |
|---|---|---|
| discover | Repo + workaround + the real problem | Brief feels wrong, shadow processes |
| test-assumptions | Untested assumptions by blast radius | Brief feels too neat |
| score-use-cases | Value × urgency × alignment / complexity | Everything is P0 |
| poc | Kill the killer assumption in a day | POC, spike, need to de-risk |
| Skill | What It Does | Use When |
|---|---|---|
| plan | Backwards from done, PR-sized | What order, what is done |
| business-case | Cost of nothing → investment → return | Defend budget or timeline |
| three-options | Three genuine options | "What should we do?" |
| pick-three | Pick three from twenty urgents | Everything is urgent |
| Skill | What It Does | Use When |
|---|---|---|
| thin-slices | Vertical slices, on-site proof | Building on their codebase |
| what-breaks | Impact from contained → irreversible | Touching shared infrastructure |
| rescue | Production fire or trust fire | Down, or they went quiet |
| ship | Intent vs diff, pre-flight, rollback | Going live |
| review | Did we only build what we agreed | Before merge, scope creep |
| rollback | Test the escape route before 2am | "We can always revert" |
| Skill | What It Does | Use When |
|---|---|---|
| readout | Promised → measured → accepted | Friday, sponsor update |
| demo-prep | One number, five hard questions | Demo or exec walkthrough |
| debrief | Meeting notes into the record | Just left a meeting |
| board-memo | Board / sponsor's boss | Justify continued investment |
| dashboard | Portfolio, trust-ordered | All my customers |
| ingest | Pull text you confirm | Transcript, Notion, Slack |
| connect | Wire a source MCP | Connect Granola |
| Skill | What It Does | Use When |
|---|---|---|
| close | Handoff that survives you | Wrapping up |
| runbook | Runbook, confidence scoring | They must operate without you |
| switch-clients | Switch without bleed | 2+ clients |
| encode-pattern | If you did it twice, encode it | It will apply again |
| red-team | Stress-test before they do | "Poke holes in this" |
Overlays (on signal, not on request): ai · artifacts · fintech · healthcare · gov · eval-pack
Optional pull: you add the source MCP; we pull on request. mcp/recipes/
One skill. One reference file per situation. One folder per client.
/brief or "@fde this is Acme"
│
▼
skills/fde/SKILL.md hosts load this one file
│ routes. you never pick a skill by name
▼
references/land.md one workflow, then stop
│
▼
fde CLI (local) dates, gates, redacts. no network
│ after you confirm
▼
~/fde-engagements/<client>/.fde/
- Process, not prose. Each reference is a workflow with an artifact and a checkpoint, not a tip sheet.
- Ground loop. Name → characterise → prove where they live → log. The workspace compiles;
@fdestays. - You confirm. Nothing is written until you say so.
- Progressive disclosure.
SKILL.mdis the entry point. Onereferences/*.mdloads when routed. - Local CLI. Writes and status cost zero model tokens. The AI coding agent runs it.
Change hosts, install @fde on the new one, bind if needed, keep talking. The record is not inside any vendor.
fdeops/
├── skills/fde/ # the one skill hosts load
│ ├── SKILL.md # router
│ └── references/ # 31 skills + overlays (you never pick)
│ ├── land.md # Land
│ ├── audit.md
│ ├── who-decides.md
│ ├── earn-trust.md
│ ├── hold-scope.md
│ ├── discover.md # Discover
│ ├── test-assumptions.md
│ ├── score-use-cases.md
│ ├── poc.md
│ ├── plan.md # Plan
│ ├── business-case.md
│ ├── three-options.md
│ ├── pick-three.md
│ ├── thin-slices.md # Ship
│ ├── what-breaks.md
│ ├── rescue.md
│ ├── ship.md
│ ├── review.md
│ ├── rollback.md
│ ├── readout.md # Prove
│ ├── demo-prep.md
│ ├── debrief.md
│ ├── board-memo.md
│ ├── dashboard.md
│ ├── ingest.md
│ ├── connect.md
│ ├── close.md # Close
│ ├── runbook.md
│ ├── switch-clients.md
│ ├── encode-pattern.md
│ ├── red-team.md
│ ├── ai.md # overlays (on signal)
│ ├── artifacts.md
│ ├── eval-pack.md
│ ├── fintech.md
│ ├── healthcare.md
│ └── gov.md
├── .claude/commands/ # slash commands (each loads @fde)
│ ├── brief.md
│ ├── discover.md
│ ├── plan.md
│ ├── ship.md
│ ├── outcome.md
│ ├── close.md
│ ├── trust.md
│ ├── receipts.md
│ ├── debrief.md
│ ├── prep.md
│ └── readout.md
├── .claude-plugin/ # Claude Code marketplace
├── bin/ # local CLI: git + files, no network
├── hooks/ # session-start / session-stop / pre-compact
├── adapters/ # Cursor, Gemini, Copilot, Codex pointers
├── templates/.fde/ # memory files created on bind
├── examples/ # fictional walkthroughs
├── mcp/ # optional ingest + source recipes
├── evals/ # routing checks
└── docs/ # usage, schema, install
AI coding agents are built for a repo, not for a client. They forget the sponsor, the promise, who can say yes, and whether anyone accepted the number. Monday morning they start from the ticket again.
FDEOps is what you take on site. One @fde skill runs the embed from discovery to signed outcome: POC, slice, on-site proof, eval when a model judges, promised → measured → accepted. A local CLI dates every decision. .fde/ is markdown on your laptop. You confirm; then it is on the record.
One folder per client. Plain markdown. Grep it, copy it, defend it.
| File | Holds |
|---|---|
context.md |
Where you are |
brief.md / success.md |
What they asked; what “done” is and who signs |
reality.md / terrain.md |
The real problem; the map |
stakeholders.md |
[signal:green|amber|red] |
trust-profile.md |
Sacred data, AI policy, approval chain |
decisions.md / risks.md / delivery.md |
Dated choices; live risks; what shipped and how it rolls back |
Schema: docs/schema.md. Local HTML: npx fdeops dashboard.
You embed with a customer and an AI coding agent. Take this on the ground. Discovery through signed outcome lives in @fde. One .fde/ per client so they do not blur.
If you only write code in your own repo with no client record to defend, you do not need this kit.
Local only - git + files, no network, no telemetry. Plain markdown. The model sees client code only when you point the AI coding agent at it. <private> is redacted from CLI, dashboard, and hooks. Nothing is written until you confirm. ~/fde-engagements is in $HOME; iCloud/Dropbox is an NDA incident waiting.
- The artifact is the memory - producing the work and recording it are one action
- Ground loop - name the slice, characterise their code, prove it where they live, log the outcome
- Skills, not autonomy - the kit says what to check; judgment stays yours
- Brief is a hypothesis - discover before building the wrong thing
- Evidence on every claim - these files get defended in the room
- One customer, one folder - context never bleeds
Subash Natarajan. Issues · Discussions · CONTRIBUTING.md · Code of Conduct
Skills should be specific (actionable steps), verifiable (an artifact in .fde/), and minimal. The fde CLI stays local-only.
MIT - use these skills on client work.