fdeops 3.13.0 → 3.15.1
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 +1 -1
- package/README.md +182 -116
- package/adapters/LOCAL-LLM.md +1 -1
- package/adapters/README.md +2 -2
- package/bin/check.js +77 -48
- package/bin/fde.js +20 -11
- package/bin/lib/trust.js +3 -2
- package/mcp/fdeops-ingest/package.json +1 -1
- package/package.json +2 -2
- package/plugin.json +3 -3
- package/skills/fde/SKILL.md +78 -158
- package/skills/fde/references/pattern-extract.md +9 -9
- package/skills/fde/archive/sdlc/README.md +0 -7
- package/skills/fde/archive/sdlc/build.md +0 -154
- package/skills/fde/archive/sdlc/debug.md +0 -55
- package/skills/fde/archive/sdlc/observability.md +0 -103
- package/skills/fde/archive/sdlc/qa-live.md +0 -113
- package/skills/fde/archive/sdlc/security-audit.md +0 -105
- package/skills/fde/archive/sdlc/test-on-legacy.md +0 -108
package/AGENTS.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# AGENTS.md - working in the fdeops repository
|
|
2
2
|
|
|
3
|
-
This repository **is** fdeops
|
|
3
|
+
This repository **is** fdeops — the engagement record for Forward Deployed Engineers. One `@fde` skill, the `fde` CLI for deterministic work, and per-customer memory in `.fde/` as a side effect of the work (you still confirm judgment).
|
|
4
4
|
|
|
5
5
|
## If you are helping use fdeops in an engagement
|
|
6
6
|
|
package/README.md
CHANGED
|
@@ -1,134 +1,238 @@
|
|
|
1
1
|
# FDEOps
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**Forward deployed engineering skills for AI coding agents.**
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
[](https://github.com/suboss87/fdeops/actions)
|
|
7
|
-
[](https://skills.sh/suboss87/fdeops)
|
|
8
|
-
[](LICENSE)
|
|
9
|
-
[](https://nodejs.org)
|
|
5
|
+
Skills encode the workflows, quality gates, and judgment Forward Deployed Engineers use on someone else's site. Packaged so an AI coding agent follows them consistently — and writes a dated record you can defend. The host agent still writes the TypeScript.
|
|
10
6
|
|
|
11
|
-
|
|
7
|
+
```text
|
|
8
|
+
LAND DISCOVER PLAN SHIP PROVE CLOSE
|
|
9
|
+
┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐
|
|
10
|
+
│ Brief │ ───▶ │ Reality│ ───▶ │ Sequence│───▶ │ Live │ ───▶ │ Signed │ ───▶ │ They │
|
|
11
|
+
│ Trust │ │ Terrain│ │ Align │ │ slice │ │ off │ │ run │
|
|
12
|
+
└────────┘ └────────┘ └────────┘ └────────┘ └────────┘ └────────┘
|
|
13
|
+
/brief /discover /plan /ship /got /close
|
|
14
|
+
```
|
|
12
15
|
|
|
13
|
-
|
|
16
|
+
---
|
|
14
17
|
|
|
15
|
-
|
|
18
|
+
## Commands
|
|
16
19
|
|
|
17
|
-
|
|
20
|
+
6 slash commands that map to the engagement. Each one activates `@fde`.
|
|
18
21
|
|
|
19
|
-
|
|
22
|
+
| What you're doing | Command | Key principle |
|
|
23
|
+
|-------------------|---------|-----------|
|
|
24
|
+
| Land the embed | `/brief` | Brief and trust before code |
|
|
25
|
+
| Find the real problem | `/discover` | Brief is a hypothesis |
|
|
26
|
+
| Plan the sequence | `/plan` | Backwards from done |
|
|
27
|
+
| Ship a slice | `/ship` | Pre-flight, then live |
|
|
28
|
+
| Prove what they got | `/got` | Promised → measured → accepted |
|
|
29
|
+
| Close the embed | `/close` | They can run it without you |
|
|
20
30
|
|
|
21
|
-
|
|
31
|
+
Also: `/debrief` (after a meeting) · `/prep` (walk-in) · `/quiet` (sponsor silent) · `/agreed` (scope dispute) · `/status` (Friday readout).
|
|
22
32
|
|
|
23
|
-
`@fde
|
|
33
|
+
Skills also activate automatically based on what you're doing — naming a client, debriefing a meeting, or asking what was agreed triggers `@fde`. Ordinary TypeScript, unit tests, and git commits stay in the host agent.
|
|
24
34
|
|
|
25
|
-
|
|
26
|
-
|------|--------------|--------------|
|
|
27
|
-
| **The brief is wrong** | `@fde this is Acme. Brief says they want a portal.` | Real problem, or a gap. First chat: you name the client; the AI coding agent binds. |
|
|
28
|
-
| **They went quiet** | `@fde the sponsor went quiet` | Trust signal in the record — process gap vs trust problem. |
|
|
29
|
-
| **When did we agree?** | `@fde when did we agree to drop that?` | Dated receipts, or a clear gap. |
|
|
30
|
-
| **What did they get?** | `@fde what did they get this week` | Friday ledger: promised → measured → accepted. |
|
|
31
|
-
| **After a meeting** | `@fde` debrief these notes *(paste or attach)* | Proposed updates. You review, then confirm. |
|
|
32
|
-
| **Optional: pull** | `@fde` connect Granola *(once)* · `@fde` pull today's Acme transcript | You add that source MCP. We **pull** on request — no push, no sync. [mcp/recipes/](mcp/recipes/) |
|
|
35
|
+
---
|
|
33
36
|
|
|
34
|
-
|
|
37
|
+
## Quick Start
|
|
35
38
|
|
|
36
|
-
|
|
39
|
+
```bash
|
|
40
|
+
npx skills add suboss87/fdeops --skill fde
|
|
41
|
+
```
|
|
37
42
|
|
|
38
|
-
|
|
43
|
+
Then one chat. Name the client. The AI coding agent binds.
|
|
39
44
|
|
|
40
|
-
|
|
45
|
+
```text
|
|
46
|
+
@fde this is Acme
|
|
47
|
+
```
|
|
41
48
|
|
|
42
|
-
|
|
49
|
+
Paste kickoff notes in the same thread. `@fde` routes; you confirm judgment. Same folder every time: `~/fde-engagements/<client>/.fde/`. Workflow: [docs/USAGE.md](docs/USAGE.md).
|
|
43
50
|
|
|
44
|
-
|
|
51
|
+
<details>
|
|
52
|
+
<summary><b>Claude Code (recommended)</b></summary>
|
|
45
53
|
|
|
46
54
|
```text
|
|
47
55
|
/plugin marketplace add suboss87/fdeops
|
|
48
56
|
/plugin install fdeops@fdeops
|
|
49
57
|
```
|
|
50
58
|
|
|
51
|
-
|
|
59
|
+
Hooks load where you left off. Slash commands match the map above.
|
|
60
|
+
|
|
61
|
+
</details>
|
|
62
|
+
|
|
63
|
+
<details>
|
|
64
|
+
<summary><b>Cursor</b></summary>
|
|
52
65
|
|
|
53
66
|
```bash
|
|
54
67
|
npx skills add suboss87/fdeops --skill fde
|
|
55
68
|
```
|
|
56
69
|
|
|
57
|
-
|
|
70
|
+
Or `npx fdeops adapters .` — [adapters/](adapters/README.md).
|
|
58
71
|
|
|
59
|
-
|
|
60
|
-
@fde this is Acme
|
|
61
|
-
```
|
|
72
|
+
</details>
|
|
62
73
|
|
|
63
|
-
|
|
74
|
+
<details>
|
|
75
|
+
<summary><b>Other agents</b></summary>
|
|
64
76
|
|
|
65
|
-
|
|
77
|
+
```bash
|
|
78
|
+
npx skills add suboss87/fdeops --skill fde
|
|
79
|
+
```
|
|
66
80
|
|
|
67
|
-
|
|
68
|
-
<summary>Terminal bind · other hosts · env</summary>
|
|
81
|
+
Gemini, Copilot, Codex, local LLMs: [adapters/](adapters/README.md). Air-gapped: `git clone https://github.com/suboss87/fdeops.git && node bin/install.js`.
|
|
69
82
|
|
|
70
|
-
Fallback if the agent cannot bind
|
|
83
|
+
Fallback if the agent cannot bind:
|
|
71
84
|
|
|
72
85
|
```bash
|
|
73
86
|
npx fdeops resume --init acme # ~/fde-engagements/acme + bind this checkout
|
|
74
|
-
npx fdeops resume # where we are
|
|
75
87
|
```
|
|
76
88
|
|
|
77
|
-
|
|
78
|
-
- **Local LLMs:** load `skills/fde/SKILL.md` — [guide](adapters/LOCAL-LLM.md)
|
|
79
|
-
- **Air-gapped:** `git clone https://github.com/suboss87/fdeops.git && cd fdeops && node bin/install.js`
|
|
80
|
-
- **No install:** `npx fdeops demo` · `npx fdeops scan` (heuristic recon, not findings)
|
|
81
|
-
- **Requires:** Node.js >= 18
|
|
82
|
-
- **Override:** `FDEOPS_ENGAGEMENT` — [docs/install.md](docs/install.md)
|
|
89
|
+
Requires Node.js >= 18. Override: `FDEOPS_ENGAGEMENT` — [docs/install.md](docs/install.md). Try the loop: `npx fdeops demo`.
|
|
83
90
|
|
|
84
91
|
</details>
|
|
85
92
|
|
|
86
93
|
---
|
|
87
94
|
|
|
88
|
-
##
|
|
95
|
+
## All 31 Skills
|
|
89
96
|
|
|
90
|
-
|
|
91
|
-
|
|
97
|
+
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](docs/skills-reference.md).
|
|
98
|
+
|
|
99
|
+
### Land - Brief and trust
|
|
100
|
+
|
|
101
|
+
| Skill | What It Does | Use When |
|
|
102
|
+
|--------|--------------|----------|
|
|
103
|
+
| [land](skills/fde/references/land.md) | Interrogate the brief, map stakeholders, define success | New client, first meeting, just got the brief |
|
|
104
|
+
| [audit](skills/fde/references/audit.md) | Verify claims, find the load-bearing wall | Taking over, previous consultant left |
|
|
105
|
+
| [stakeholder-radar](skills/fde/references/stakeholder-radar.md) | Who decides, who blocks, who escalates | Need to know who matters |
|
|
106
|
+
| [trust-engineering](skills/fde/references/trust-engineering.md) | Observer → trusted; navigate AI policy | Need access or credibility |
|
|
107
|
+
| [scope-defense](skills/fde/references/scope-defense.md) | Scope receipts; the accumulation conversation | "Also can you…", timeline unchanged |
|
|
108
|
+
|
|
109
|
+
### Discover - Find the real problem
|
|
110
|
+
|
|
111
|
+
| Skill | What It Does | Use When |
|
|
112
|
+
|--------|--------------|----------|
|
|
113
|
+
| [discover](skills/fde/references/discover.md) | Repo + workaround + the real problem | Brief feels wrong, shadow processes |
|
|
114
|
+
| [assumption-audit](skills/fde/references/assumption-audit.md) | Untested assumptions by blast radius | Brief feels too neat |
|
|
115
|
+
| [use-case-scoring](skills/fde/references/use-case-scoring.md) | Value × urgency × alignment / complexity | Everything is P0 |
|
|
116
|
+
| [sketch](skills/fde/references/sketch.md) | Kill the killer assumption in a day | Need to de-risk a direction |
|
|
117
|
+
|
|
118
|
+
### Plan - Sequence the work
|
|
119
|
+
|
|
120
|
+
| Skill | What It Does | Use When |
|
|
121
|
+
|--------|--------------|----------|
|
|
122
|
+
| [plan](skills/fde/references/plan.md) | Backwards from done, PR-sized | What order, what is done |
|
|
123
|
+
| [business-case](skills/fde/references/business-case.md) | Cost of nothing → investment → return | Defend budget or timeline |
|
|
124
|
+
| [options-analysis](skills/fde/references/options-analysis.md) | Three genuine options | "What should we do?" |
|
|
125
|
+
| [initiative-triage](skills/fde/references/initiative-triage.md) | Pick three from twenty urgents | Everything is urgent |
|
|
126
|
+
|
|
127
|
+
### Ship - Go live
|
|
128
|
+
|
|
129
|
+
| Skill | What It Does | Use When |
|
|
130
|
+
|--------|--------------|----------|
|
|
131
|
+
| [incremental-build](skills/fde/references/incremental-build.md) | Vertical slices, visible every 2–3 days | Large feature on their codebase |
|
|
132
|
+
| [blast-radius](skills/fde/references/blast-radius.md) | Impact from contained → irreversible | Touching shared infrastructure |
|
|
133
|
+
| [rescue](skills/fde/references/rescue.md) | Production fire or trust fire | Down, or they went quiet |
|
|
134
|
+
| [ship](skills/fde/references/ship.md) | Intent vs diff, pre-flight, rollback | Going live |
|
|
135
|
+
| [review](skills/fde/references/review.md) | Did we only build what we agreed | Before merge, scope creep |
|
|
136
|
+
| [rollback-drill](skills/fde/references/rollback-drill.md) | Test the escape route before 2am | "We can always revert" |
|
|
137
|
+
|
|
138
|
+
### Prove - What they got
|
|
139
|
+
|
|
140
|
+
| Skill | What It Does | Use When |
|
|
141
|
+
|--------|--------------|----------|
|
|
142
|
+
| [status](skills/fde/references/status.md) | Promised → measured → accepted | Friday, sponsor update |
|
|
143
|
+
| [demo-prep](skills/fde/references/demo-prep.md) | One number, five hard questions | Demo or exec walkthrough |
|
|
144
|
+
| [debrief](skills/fde/references/debrief.md) | Meeting notes into the record | Just left a meeting |
|
|
145
|
+
| [exec-narrative](skills/fde/references/exec-narrative.md) | Board / sponsor's boss | Justify continued investment |
|
|
146
|
+
| [dashboard](skills/fde/references/dashboard.md) | Portfolio, trust-ordered | All my customers |
|
|
147
|
+
| [ingest](skills/fde/references/ingest.md) | Pull text you confirm | Transcript, Notion, Slack |
|
|
148
|
+
| [ingest-connect](skills/fde/references/ingest-connect.md) | Wire a source MCP | Connect Granola |
|
|
149
|
+
|
|
150
|
+
### Close - They run it
|
|
151
|
+
|
|
152
|
+
| Skill | What It Does | Use When |
|
|
153
|
+
|--------|--------------|----------|
|
|
154
|
+
| [close](skills/fde/references/close.md) | Handoff that survives you | Wrapping up |
|
|
155
|
+
| [handoff-engineering](skills/fde/references/handoff-engineering.md) | Runbook, confidence scoring | They must operate without you |
|
|
156
|
+
| [multi-customer-ops](skills/fde/references/multi-customer-ops.md) | Switch without bleed | 2+ clients |
|
|
157
|
+
| [pattern-extract](skills/fde/references/pattern-extract.md) | If you did it twice, encode it | It will apply again |
|
|
158
|
+
| [red-team](skills/fde/references/red-team.md) | Stress-test before they do | "Poke holes in this" |
|
|
159
|
+
|
|
160
|
+
Overlays (on signal, not on request): [ai](skills/fde/references/ai.md) · [artifacts](skills/fde/references/artifacts.md) · [fintech](skills/fde/references/fintech.md) · [healthcare](skills/fde/references/healthcare.md) · [gov](skills/fde/references/gov.md) · [eval-pack](skills/fde/references/eval-pack.md)
|
|
161
|
+
|
|
162
|
+
Optional pull: you add the source MCP; we **pull** on request. [mcp/recipes/](mcp/recipes/)
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## How Skills Work
|
|
167
|
+
|
|
168
|
+
Every skill follows a consistent anatomy:
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
┌─────────────────────────────────────────────┐
|
|
172
|
+
│ @fde (one skill) │
|
|
173
|
+
│ │
|
|
174
|
+
│ ┌─ Frontmatter ─────────────────────────┐ │
|
|
175
|
+
│ │ name: fde │ │
|
|
176
|
+
│ │ description: Use when [client work] │ │
|
|
177
|
+
│ └───────────────────────────────────────┘ │
|
|
178
|
+
│ │
|
|
179
|
+
│ Commands load it. English loads it. │
|
|
180
|
+
│ You confirm. Then .fde/ is written. │
|
|
181
|
+
└─────────────────────────────────────────────┘
|
|
182
|
+
│
|
|
183
|
+
▼
|
|
184
|
+
references/<skill>.md fde CLI (local)
|
|
185
|
+
one file, then stop dating, gates, redaction
|
|
92
186
|
```
|
|
93
187
|
|
|
94
|
-
|
|
188
|
+
- **Process, not prose.** Skills are workflows with an artifact and a checkpoint, not tip sheets.
|
|
189
|
+
- **You confirm.** Nothing is written until you say so.
|
|
190
|
+
- **Progressive disclosure.** The `SKILL.md` is the entry point. One `references/*.md` loads when routed.
|
|
191
|
+
- **Local CLI.** Writes, status, dated agreements. Zero model tokens. The AI coding agent runs it.
|
|
95
192
|
|
|
96
|
-
|
|
193
|
+
The record lives at `~/fde-engagements/<client>/.fde/` — not inside any vendor. Change hosts, install `@fde` on the new one, bind if needed, keep talking.
|
|
97
194
|
|
|
98
|
-
|
|
195
|
+
---
|
|
99
196
|
|
|
100
|
-
|
|
197
|
+
## Project Structure
|
|
198
|
+
|
|
199
|
+
```
|
|
200
|
+
fdeops/
|
|
201
|
+
├── skills/fde/ # the one skill
|
|
202
|
+
│ ├── SKILL.md # router
|
|
203
|
+
│ └── references/ # 31 skills + overlays
|
|
204
|
+
├── .claude/commands/ # slash commands (each loads @fde)
|
|
205
|
+
├── .claude-plugin/ # Claude Code marketplace
|
|
206
|
+
├── bin/ # local CLI — git + files, no network
|
|
207
|
+
├── hooks/ # session-start / session-stop / pre-compact
|
|
208
|
+
├── adapters/ # Cursor, Gemini, Copilot, Codex pointers
|
|
209
|
+
├── templates/.fde/ # memory files created on bind
|
|
210
|
+
├── examples/ # fictional walkthroughs
|
|
211
|
+
├── mcp/ # optional ingest + source recipes
|
|
212
|
+
├── evals/ # routing checks + CLI attack notes
|
|
213
|
+
├── media/ # recorded session (docs/USAGE.md)
|
|
214
|
+
└── docs/ # usage, schema, install, methodology
|
|
215
|
+
```
|
|
101
216
|
|
|
102
217
|
---
|
|
103
218
|
|
|
104
|
-
##
|
|
219
|
+
## Why FDEOps?
|
|
105
220
|
|
|
106
|
-
|
|
107
|
-
- **Hooks (Claude Code)** load where you left off and snapshot on the way out. Other hosts: same CLI and files; you call `@fde`.
|
|
108
|
-
- **Local CLI** — writes, receipts, status. Zero model tokens. The AI coding agent runs it; you do not live in the CLI. Friday, `fde status` prints promised → measured → accepted. [docs/USAGE.md](docs/USAGE.md)
|
|
109
|
-
- **Pull (optional)** — FDEOps is the sink. Paste is the daily path. A source MCP you add (Granola, Slack, Notion, …) can fetch text; `@fde connect …` walks config. No push, no sync, no tokens in `.fde/`. [mcp/recipes/](mcp/recipes/)
|
|
221
|
+
### 1. The brief is wrong
|
|
110
222
|
|
|
111
|
-
|
|
223
|
+
The most common failure on an embed is building the portal they asked for. Ops has been running a spreadsheet for two years. `/brief` then `/discover` — who in their company would have to agree it worked?
|
|
112
224
|
|
|
113
|
-
###
|
|
225
|
+
### 2. They went quiet
|
|
114
226
|
|
|
115
|
-
|
|
227
|
+
A sponsor who stops answering is not a Jira gap. It is a trust color. `/quiet` — process vs trust, then a dated signal in the record.
|
|
116
228
|
|
|
117
|
-
|
|
118
|
-
<summary>Engagement verbs</summary>
|
|
229
|
+
### 3. When did we agree?
|
|
119
230
|
|
|
120
|
-
|
|
121
|
-
|------|------|
|
|
122
|
-
| **land** | First days — brief, stakeholders, success |
|
|
123
|
-
| **discover** | The brief is wrong — evidence from the repo |
|
|
124
|
-
| **plan** | Sequence backwards from done, PR-sized |
|
|
125
|
-
| log delivery | After the host agent codes — what shipped, how it rolls back |
|
|
126
|
-
| **ship** | Pre-flight, canary, rollback |
|
|
127
|
-
| **close** | Handoff, retro, receipts that survive you |
|
|
231
|
+
Arguments from memory lose. `/agreed` searches dated receipts. No hit is a gap, not proof.
|
|
128
232
|
|
|
129
|
-
|
|
233
|
+
### 4. What did they get?
|
|
130
234
|
|
|
131
|
-
|
|
235
|
+
A number only you agree with is claimed, not delivered. `/got` reads promised → measured → accepted out loud.
|
|
132
236
|
|
|
133
237
|
---
|
|
134
238
|
|
|
@@ -145,15 +249,7 @@ One folder per client. Plain markdown. Grep it, copy it, defend it.
|
|
|
145
249
|
| `trust-profile.md` | Sacred data, AI policy, approval chain |
|
|
146
250
|
| `decisions.md` / `risks.md` / `delivery.md` | Dated choices; live risks; what shipped and how it rolls back |
|
|
147
251
|
|
|
148
|
-
Schema: [docs/schema.md](docs/schema.md).
|
|
149
|
-
|
|
150
|
-
---
|
|
151
|
-
|
|
152
|
-
## Fieldbook UI
|
|
153
|
-
|
|
154
|
-
Local HTML: trust, phase, next, the record. `@fde` dashboard, or `npx fdeops dashboard` (`--all` for the portfolio).
|
|
155
|
-
|
|
156
|
-
<p align="center"><img width="1336" height="624" alt="fdeops Fieldbook in the browser" src="https://github.com/user-attachments/assets/5683614c-7730-4a3a-860d-185053a377eb" /></p>
|
|
252
|
+
Schema: [docs/schema.md](docs/schema.md). Local HTML: `npx fdeops dashboard`.
|
|
157
253
|
|
|
158
254
|
---
|
|
159
255
|
|
|
@@ -161,23 +257,17 @@ Local HTML: trust, phase, next, the record. `@fde` dashboard, or `npx fdeops das
|
|
|
161
257
|
|
|
162
258
|
| You are | What this is |
|
|
163
259
|
|---------|----------------|
|
|
164
|
-
| **Forward Deployed Engineer** |
|
|
260
|
+
| **Forward Deployed Engineer** | Client work that has to survive Monday morning |
|
|
165
261
|
| **Consultant / contractor on site** | The engagement stops resetting every morning |
|
|
166
262
|
| **Solutions architect** | Politics and architecture in the same record |
|
|
167
263
|
| **Agency, 3–5 clients** | One `.fde/` each — they stop blurring |
|
|
168
264
|
| **Fractional CTO on client work** | System of record for the embed, and the billable trail |
|
|
169
265
|
|
|
170
|
-
Ordinary TypeScript, unit tests, and git commits stay in the host agent.
|
|
171
|
-
|
|
172
266
|
---
|
|
173
267
|
|
|
174
268
|
## Your data stays yours
|
|
175
269
|
|
|
176
|
-
|
|
177
|
-
- **Plain markdown.** No database.
|
|
178
|
-
- **No new data path.** The model sees client code only when you point the AI coding agent at it. `<private>` is redacted from CLI, dashboard, and hooks — do not open raw private blocks with file tools.
|
|
179
|
-
- **Nothing unreviewed.** Draft → you confirm. `fde debrief --dry-run` shows routing first.
|
|
180
|
-
- **Know the sync surface.** `~/fde-engagements` is in `$HOME`. iCloud/Dropbox is an NDA incident waiting. `resume --init` warns. [PRIVACY.md](PRIVACY.md) before the first NDA.
|
|
270
|
+
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.
|
|
181
271
|
|
|
182
272
|
[PRIVACY.md](PRIVACY.md) · [SECURITY.md](SECURITY.md)
|
|
183
273
|
|
|
@@ -186,43 +276,19 @@ Ordinary TypeScript, unit tests, and git commits stay in the host agent.
|
|
|
186
276
|
## Principles
|
|
187
277
|
|
|
188
278
|
- **The artifact is the memory** — producing the work and recording it are one action
|
|
189
|
-
- **
|
|
279
|
+
- **Skills, not autonomy** — the kit says what to check; judgment stays yours
|
|
190
280
|
- **Brief is a hypothesis** — discover before building the wrong thing
|
|
191
281
|
- **Evidence on every claim** — these files get defended in the room
|
|
192
282
|
- **One customer, one folder** — context never bleeds
|
|
193
283
|
|
|
194
284
|
---
|
|
195
285
|
|
|
196
|
-
## Updating
|
|
197
|
-
|
|
198
|
-
Re-run the Quickstart install, or from a clone: `git pull && node bin/install.js`
|
|
199
|
-
|
|
200
|
-
---
|
|
201
|
-
|
|
202
286
|
## Contributing
|
|
203
287
|
|
|
204
288
|
**[Subash Natarajan](https://www.linkedin.com/in/subashn/)**. [Issues](https://github.com/suboss87/fdeops/issues) · [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
205
289
|
|
|
206
|
-
|
|
290
|
+
Skills should be **specific** (actionable steps), **verifiable** (an artifact in `.fde/`), and **minimal**. The `fde` CLI stays local-only.
|
|
207
291
|
|
|
208
|
-
|
|
292
|
+
## License
|
|
209
293
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
<details>
|
|
213
|
-
<summary>31 field methods (you never pick one)</summary>
|
|
214
|
-
|
|
215
|
-
You describe the situation; `@fde` routes. **31 methods**, six domains — each a method (thinking, artifact, checkpoint), not a tip sheet. [docs/skills.md](docs/skills.md) · [docs/skills-reference.md](docs/skills-reference.md)
|
|
216
|
-
|
|
217
|
-
| Domain | Methods |
|
|
218
|
-
|--------|---------|
|
|
219
|
-
| **1. Embed & Trust** | [land](skills/fde/references/land.md) · [audit](skills/fde/references/audit.md) · [stakeholder-radar](skills/fde/references/stakeholder-radar.md) · [trust-engineering](skills/fde/references/trust-engineering.md) · [scope-defense](skills/fde/references/scope-defense.md) |
|
|
220
|
-
| **2. Discover & Diagnose** | [discover](skills/fde/references/discover.md) · [assumption-audit](skills/fde/references/assumption-audit.md) · [use-case-scoring](skills/fde/references/use-case-scoring.md) · [sketch](skills/fde/references/sketch.md) |
|
|
221
|
-
| **3. Plan & Align** | [plan](skills/fde/references/plan.md) · [business-case](skills/fde/references/business-case.md) · [options-analysis](skills/fde/references/options-analysis.md) · [initiative-triage](skills/fde/references/initiative-triage.md) |
|
|
222
|
-
| **4. Build & Guard** | [incremental-build](skills/fde/references/incremental-build.md) · [blast-radius](skills/fde/references/blast-radius.md) · [rescue](skills/fde/references/rescue.md) |
|
|
223
|
-
| **5. Ship & Verify** | [ship](skills/fde/references/ship.md) · [review](skills/fde/references/review.md) · [rollback-drill](skills/fde/references/rollback-drill.md) |
|
|
224
|
-
| **6. Operate & Close** | [status](skills/fde/references/status.md) · [demo-prep](skills/fde/references/demo-prep.md) · [debrief](skills/fde/references/debrief.md) · [exec-narrative](skills/fde/references/exec-narrative.md) · [dashboard](skills/fde/references/dashboard.md) · [multi-customer-ops](skills/fde/references/multi-customer-ops.md) · [close](skills/fde/references/close.md) · [handoff-engineering](skills/fde/references/handoff-engineering.md) · [pattern-extract](skills/fde/references/pattern-extract.md) · [red-team](skills/fde/references/red-team.md) · [ingest](skills/fde/references/ingest.md) · [ingest-connect](skills/fde/references/ingest-connect.md) |
|
|
225
|
-
|
|
226
|
-
Overlays: [ai](skills/fde/references/ai.md) · [artifacts](skills/fde/references/artifacts.md) · [fintech](skills/fde/references/fintech.md) · [healthcare](skills/fde/references/healthcare.md) · [gov](skills/fde/references/gov.md)
|
|
227
|
-
|
|
228
|
-
</details>
|
|
294
|
+
MIT — use these skills on client work.
|
package/adapters/LOCAL-LLM.md
CHANGED
|
@@ -62,7 +62,7 @@ The model reads SKILL.md, routes to the right skill, and produces artifacts in y
|
|
|
62
62
|
|
|
63
63
|
## Model size recommendations
|
|
64
64
|
|
|
65
|
-
The methodology is detailed (31
|
|
65
|
+
The methodology is detailed (31 skills, routing logic, evidence format, memory contract). Larger models handle it better:
|
|
66
66
|
|
|
67
67
|
| Model class | Experience |
|
|
68
68
|
|-------------|-----------|
|
package/adapters/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
**One brain, thin adapters.** fdeops has a single source of truth - the `@fde` skill at `skills/fde/SKILL.md` and the `fde` CLI. Each AI coding tool discovers it through a small pointer file in the place that tool already looks. No forked logic, no five copies to maintain - every adapter says the same thing: *route via `@fde`, read/write `.fde/` memory, talk like a peer, never touch what isn't yours.*
|
|
4
4
|
|
|
5
|
-
**Switching tools:** the fieldbook does not live in the agent. It lives at `~/fde-engagements/<client>/.fde/`. Point a new tool at a bound workspace, drop adapters (or install the skill/plugin for that tool), and the same client record opens. Auto session hooks are Claude Code–first; elsewhere load via `@fde` / `fde resume`. See [README §
|
|
5
|
+
**Switching tools:** the fieldbook does not live in the agent. It lives at `~/fde-engagements/<client>/.fde/`. Point a new tool at a bound workspace, drop adapters (or install the skill/plugin for that tool), and the same client record opens. Auto session hooks are Claude Code–first; elsewhere load via `@fde` / `fde resume`. See [README § How it works](../README.md#how-it-works).
|
|
6
6
|
|
|
7
7
|
## What goes where
|
|
8
8
|
|
|
@@ -31,4 +31,4 @@ Defaults to the current directory if no path is given. Existing files are never
|
|
|
31
31
|
|
|
32
32
|
## The principle
|
|
33
33
|
|
|
34
|
-
The adapter only tells the tool **where the brain is and how to behave**. All
|
|
34
|
+
The adapter only tells the tool **where the brain is and how to behave**. All 31 skills, the overlays, and the memory contract live once in `skills/fde/SKILL.md`. Update the brain, every platform gets it. That's why fdeops feels native in whatever the FDE already uses, without five things to keep in sync.
|