fdeops 3.22.2 → 3.24.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/README.md +133 -174
- package/bin/check.js +5 -0
- package/bin/fde.js +146 -14
- package/bin/lib/fieldbook-client.js +166 -0
- package/bin/lib/render.js +135 -174
- package/bin/lib/trust.js +27 -4
- package/mcp/fdeops-ingest/package.json +1 -1
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/skills/fde/SKILL.md +9 -5
- package/skills/fde/references/dashboard.md +5 -5
- package/skills/fde/references/debrief.md +12 -5
- package/skills/fde/references/discover.md +5 -1
- package/skills/fde/references/earn-trust.md +1 -1
- package/skills/fde/references/ingest.md +1 -1
- package/skills/fde/references/land.md +6 -6
- package/skills/fde/references/pick-three.md +1 -1
- package/skills/fde/references/plan.md +8 -0
- package/skills/fde/references/poc.md +1 -1
- package/skills/fde/references/readout.md +4 -2
- package/skills/fde/references/review.md +1 -1
- package/skills/fde/references/score-use-cases.md +1 -1
- package/skills/fde/references/ship.md +4 -2
- package/skills/fde/references/switch-clients.md +2 -2
package/README.md
CHANGED
|
@@ -1,107 +1,144 @@
|
|
|
1
1
|
# FDEOps
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**Turn a customer request into the smallest useful delivery - and keep the evidence that it worked.**
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
FDEOps gives your AI coding agent a method for customer delivery: investigate the request, agree what success means, carry decisions into implementation, and prepare a handoff the customer can operate.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
One `@fde` skill routes 30 field situations. A local CLI keeps dated records in a separate folder for each customer. An offline fieldbook makes those records easy to review before the next meeting.
|
|
8
8
|
|
|
9
|
-
Keep
|
|
9
|
+
Keep your existing coding skills. FDEOps supplies the customer context, scope, approvals, and acceptance criteria around their engineering work.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
[Quick start](#quick-start) · [Daily workflow](#your-daily-workflow) · [30 skills](#all-30-skills) · [Usage guide](docs/USAGE.md) · [Install options](docs/install.md)
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
## What you get
|
|
14
|
+
|
|
15
|
+
| Start with | Work with your agent toward | Keep on the record |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| A customer request and an unfamiliar repository | An evidence-backed problem statement and the smallest useful increment | Brief, constraints, open questions, success criteria |
|
|
18
|
+
| Meeting notes and changing requirements | Reviewed decisions, owners, scope changes, and next actions | Dated customer-specific memory |
|
|
19
|
+
| A shipped change | A readout that distinguishes promised, measured, and accepted results | Delivery evidence, acceptance status, operating handoff |
|
|
20
|
+
|
|
21
|
+
For example: a customer asks for an AI reconciliation agent by Friday. FDEOps guides your agent to inspect the existing workflow, distinguish the requested solution from the underlying problem, and establish a baseline and acceptance owner. An existing integration may be enough. The evidence should determine the plan.
|
|
22
|
+
|
|
23
|
+
This is a workflow you carry out with your agent; the CLI does not diagnose a repository or validate customer outcomes by itself.
|
|
24
|
+
|
|
25
|
+
## Commands
|
|
26
|
+
|
|
27
|
+
One command per stage. Skills load automatically through `@fde`.
|
|
28
|
+
|
|
29
|
+
Use natural language with `@fde` in any supported host. The Claude Code plugin also provides these slash commands. The lifecycle is **Land → Discover → Plan → Ship → Outcome → Close**; your agent routes the situation to the relevant step.
|
|
30
|
+
|
|
31
|
+
| What you need | Command | Stage |
|
|
32
|
+
|---|---|---|
|
|
33
|
+
| Establish the brief and who accepts success | `/brief` | Land |
|
|
34
|
+
| Check the problem against the actual workflow | `/discover` | Discover |
|
|
35
|
+
| Sequence the smallest useful delivery from acceptance backward | `/plan` | Plan |
|
|
36
|
+
| Verify on customer staging and prepare the approved release | `/ship` | Ship |
|
|
37
|
+
| Separate promised, measured, and accepted results | `/outcome` | Outcome |
|
|
38
|
+
| Transfer operations and confirm the handoff | `/close` | Close |
|
|
39
|
+
|
|
40
|
+
For recurring work: `/debrief`, `/prep`, `/trust`, `/receipts`, and `/readout`. A sponsor readout is an Outcome workflow, not an additional lifecycle stage.
|
|
14
41
|
|
|
15
42
|
## Quick Start
|
|
16
43
|
|
|
17
|
-
**
|
|
44
|
+
Requires **Node.js 18+** and Git for versioned engagement memory. Install on your own machine, where you run your coding agent.
|
|
45
|
+
|
|
46
|
+
### 1. See the workflow with fictional data
|
|
18
47
|
|
|
19
48
|
```bash
|
|
20
|
-
npx fdeops
|
|
49
|
+
npx fdeops demo
|
|
21
50
|
```
|
|
22
51
|
|
|
23
|
-
|
|
52
|
+
The demo creates a fictional Acme payments engagement, reviews and applies sample notes, retrieves a dated decision, prepares a meeting brief, and generates an HTML fieldbook. Open the file path printed at the end.
|
|
53
|
+
|
|
54
|
+
It runs real local commands in `~/fde-engagements/.demo/`. Re-running resets that demo; `npx fdeops demo --clean` removes it. Your real engagements are separate. No AI account is required for this CLI walkthrough. The first `npx` invocation may download the package; the CLI itself makes no network requests.
|
|
24
55
|
|
|
25
|
-
|
|
56
|
+
Want repository reconnaissance first? Run `npx fdeops scan` in a repository. It reads local files and Git state, prints findings and questions, and writes nothing.
|
|
57
|
+
|
|
58
|
+
### 2. Install the agent skill
|
|
26
59
|
|
|
27
60
|
```bash
|
|
28
61
|
npx skills add suboss87/fdeops --skill fde
|
|
29
62
|
```
|
|
30
63
|
|
|
31
|
-
|
|
64
|
+
In your coding agent, with the customer workspace open:
|
|
32
65
|
|
|
33
66
|
```text
|
|
34
|
-
@fde this is client01
|
|
67
|
+
@fde this is client01. The customer wants to reduce manual order
|
|
68
|
+
reconciliation. Inspect the relevant workflow before asking questions.
|
|
69
|
+
Help me define the smallest useful increment and how we will prove it worked.
|
|
35
70
|
```
|
|
36
71
|
|
|
37
|
-
|
|
72
|
+
Your agent sets up `~/fde-engagements/client01/.fde/` and binds the workspace to that engagement. It routes to the relevant skill, investigates the available context, and reviews judgment-based changes with you. Unknown baselines and approvals should remain unknown until confirmed.
|
|
73
|
+
|
|
74
|
+
If setup needs a terminal fallback, run `npx fdeops resume --init client01` from the customer workspace. This creates the engagement record and binds that workspace; running it with another client replaces the binding.
|
|
38
75
|
|
|
39
|
-
|
|
76
|
+
### 3. Start the daily loop
|
|
77
|
+
|
|
78
|
+
```text
|
|
79
|
+
@fde Debrief: <meeting notes>
|
|
80
|
+
@fde Prep me for the next customer meeting.
|
|
81
|
+
@fde Draft a readout. Separate what we promised, measured, and the customer accepted.
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Open your engagement's fieldbook:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
npx fdeops dashboard --open
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Continue with the [five-minute walkthrough and daily guide](docs/USAGE.md).
|
|
40
91
|
|
|
41
92
|
<details>
|
|
42
|
-
<summary><b>Claude Code</b></summary>
|
|
93
|
+
<summary><b>Claude Code plugin</b></summary>
|
|
43
94
|
|
|
44
95
|
```text
|
|
45
96
|
/plugin marketplace add suboss87/fdeops
|
|
46
97
|
/plugin install fdeops@fdeops
|
|
47
98
|
```
|
|
48
99
|
|
|
49
|
-
|
|
100
|
+
Includes slash commands and session hooks. The plugin does not add a bare `fde` command to your shell; use `npx fdeops <command>` or install the CLI globally. [Install details](docs/install.md).
|
|
50
101
|
|
|
51
102
|
</details>
|
|
52
103
|
|
|
53
104
|
<details>
|
|
54
|
-
<summary><b>Cursor</b></summary>
|
|
105
|
+
<summary><b>Cursor, Codex, Gemini CLI, and Copilot</b></summary>
|
|
55
106
|
|
|
56
|
-
After the skill
|
|
107
|
+
After installing the skill, run this in the customer workspace to add host pointers:
|
|
57
108
|
|
|
58
109
|
```bash
|
|
59
110
|
npx fdeops adapters .
|
|
60
111
|
```
|
|
61
112
|
|
|
62
|
-
|
|
113
|
+
Adapters point at the same skill rather than copying its method. This command adds instruction files to the workspace; review them as you would other repository changes. Session hooks are Claude Code-first; other hosts use the skill and CLI on demand. [Adapters](adapters/README.md).
|
|
63
114
|
|
|
64
115
|
</details>
|
|
65
116
|
|
|
66
117
|
<details>
|
|
67
|
-
<summary><b>
|
|
118
|
+
<summary><b>Install from a checkout / offline preparation</b></summary>
|
|
68
119
|
|
|
69
|
-
|
|
70
|
-
git clone https://github.com/suboss87/fdeops.git && node bin/install.js
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
If the agent cannot create the folder:
|
|
120
|
+
On a connected machine:
|
|
74
121
|
|
|
75
122
|
```bash
|
|
76
|
-
|
|
123
|
+
git clone https://github.com/suboss87/fdeops.git
|
|
124
|
+
cd fdeops
|
|
125
|
+
node bin/install.js
|
|
77
126
|
```
|
|
78
127
|
|
|
79
|
-
|
|
128
|
+
For an offline machine, transfer the checkout first, then run `node bin/install.js` there. The installer copies the skill and hooks into your local Claude directories. [Install options and overrides](docs/install.md).
|
|
80
129
|
|
|
81
130
|
</details>
|
|
82
131
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
## Commands
|
|
86
|
-
|
|
87
|
-
One command per stage. Skills load automatically.
|
|
132
|
+
## Your daily workflow
|
|
88
133
|
|
|
89
|
-
|
|
134
|
+
| When | In your agent | In the fieldbook |
|
|
135
|
+
|---|---|---|
|
|
136
|
+
| Start the day | `@fde Where did we leave off with this client?` | Review the next action, risks, and gaps needing attention |
|
|
137
|
+
| Before a meeting | `@fde Prep me for the sponsor check-in.` | Review the brief, stakeholders, and recent decisions |
|
|
138
|
+
| After a meeting | `@fde Debrief: <notes>` | Regenerate after reviewing and applying the changes |
|
|
139
|
+
| Before reporting value | `@fde Draft the customer readout with evidence and unresolved gaps.` | Check the promised → measured → accepted ledger |
|
|
90
140
|
|
|
91
|
-
|
|
92
|
-
|-------------------|---------|-------|
|
|
93
|
-
| First days. Get the brief. Name who signs. | `/brief` | Land |
|
|
94
|
-
| Check the brief is the real job. | `/discover` | Discover |
|
|
95
|
-
| Sequence from done, not from the ticket. | `/plan` | Plan |
|
|
96
|
-
| Prove it on their staging, then go live. | `/ship` | Ship |
|
|
97
|
-
| What you promised, measured, and who accepted. | `/outcome` | Outcome |
|
|
98
|
-
| Hand it over. They run it without you. | `/close` | Close |
|
|
99
|
-
|
|
100
|
-
Same `@fde`, when you need them: `/debrief` (notes into the record), `/prep` (one page before you walk in), `/trust` (process gap, or they stopped trusting you), `/receipts` (a dated line, or it did not happen), `/readout` (Friday page for the sponsor; not a seventh stage).
|
|
101
|
-
|
|
102
|
-
You can also just say it: naming a client, a POC, changing their checkout, going live, asking what was agreed. A typo in a repo that is not a client job can skip this. A named client, a POC, or go-live cannot.
|
|
103
|
-
|
|
104
|
-
---
|
|
141
|
+
`npx fdeops dashboard --all --open` shows every engagement. The fieldbook is a **read-only snapshot**, with search, engagement views, and prompts you can copy into your agent for follow-up work. It does not run the agent or edit memory. Regenerate it after changing the record; the generation date tells you how fresh it is.
|
|
105
142
|
|
|
106
143
|
## All 30 Skills
|
|
107
144
|
|
|
@@ -177,161 +214,83 @@ Optional pull: you add the source MCP; we **pull** on request. [mcp/recipes/](mc
|
|
|
177
214
|
|
|
178
215
|
## How Skills Work
|
|
179
216
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
fde CLI (local) dates, gates, redacts. no network
|
|
191
|
-
│ after you confirm
|
|
192
|
-
▼
|
|
193
|
-
~/fde-engagements/client01/.fde/
|
|
217
|
+
```text
|
|
218
|
+
Customer request + repository + available notes
|
|
219
|
+
↓
|
|
220
|
+
@fde → one relevant reference → investigation and proposed next step
|
|
221
|
+
↓
|
|
222
|
+
You review judgment, scope, and commitments
|
|
223
|
+
↓
|
|
224
|
+
Local CLI + customer-specific .fde/ records
|
|
225
|
+
↓
|
|
226
|
+
Meeting prep · dated receipts · offline fieldbook · customer readout
|
|
194
227
|
```
|
|
195
228
|
|
|
196
|
-
|
|
229
|
+
The method lives once in [`skills/fde/SKILL.md`](skills/fde/SKILL.md) and its references. Adapters point to it. The CLI handles deterministic file operations, dates, gates, and output redaction. Your coding agent supplies interpretation; you retain responsibility for decisions and customer approval.
|
|
197
230
|
|
|
198
|
-
|
|
231
|
+
Agent-proposed judgments are reviewed before they enter the record. Setup, explicitly invoked CLI writes, and configured session hooks can write local files without a separate chat confirmation. [Operating rules](docs/OPERATIONS.md).
|
|
199
232
|
|
|
200
|
-
|
|
233
|
+
## Engagement memory (`.fde/`)
|
|
201
234
|
|
|
202
|
-
One
|
|
235
|
+
One folder per client, stored by default at `~/fde-engagements/<client>/.fde/`. Plain Markdown and local Git history keep the record portable across supported agent hosts.
|
|
203
236
|
|
|
204
|
-
|
|
237
|
+
| File | What it answers |
|
|
238
|
+
|---|---|
|
|
239
|
+
| `context.md` | Where are we, and what happens next? |
|
|
240
|
+
| `brief.md` / `success.md` | What did the customer request; what counts as success; who accepts it? |
|
|
241
|
+
| `reality.md` / `terrain.md` | What did investigation reveal? |
|
|
242
|
+
| `stakeholders.md` / `trust-profile.md` | Who is involved; what access and approval constraints apply? |
|
|
243
|
+
| `decisions.md` / `risks.md` | What changed, why, and what could block delivery? |
|
|
244
|
+
| `delivery.md` | What shipped; what evidence, rollback, and acceptance were recorded? |
|
|
205
245
|
|
|
206
|
-
|
|
246
|
+
Memory stores what you recorded. A dated note is evidence of that record, not independent proof that a result occurred or that a customer approved it. Keep supporting sources and explicit uncertainty with the claim.
|
|
207
247
|
|
|
208
|
-
|
|
248
|
+
Use `FDEOPS_ENGAGEMENTS_ROOT` to change the storage root or `FDEOPS_ENGAGEMENT` for an explicit engagement override. See [install options](docs/install.md#advanced-engagement-overrides).
|
|
209
249
|
|
|
210
|
-
|
|
211
|
-
|------|-------|
|
|
212
|
-
| `context.md` | Where you are |
|
|
213
|
-
| `brief.md` / `success.md` | What they asked; what “done” is and who signs |
|
|
214
|
-
| `reality.md` / `terrain.md` | The real problem; the map |
|
|
215
|
-
| `stakeholders.md` | `[signal:green\|amber\|red]` |
|
|
216
|
-
| `trust-profile.md` | Sacred data, AI policy, approval chain |
|
|
217
|
-
| `decisions.md` / `risks.md` / `delivery.md` | Dated choices; live risks; what shipped and how it rolls back |
|
|
250
|
+
[Memory schema](docs/schema.md) · [Multi-client usage](docs/USAGE.md#multiple-engagements)
|
|
218
251
|
|
|
219
|
-
|
|
252
|
+
## Principles
|
|
220
253
|
|
|
221
|
-
|
|
254
|
+
- Investigate the actual workflow before committing to a solution.
|
|
255
|
+
- Define a small useful increment, a success criterion, and an acceptance owner.
|
|
256
|
+
- Keep observations, assumptions, and customer decisions distinguishable.
|
|
257
|
+
- Verify the result in the customer environment and preserve its evidence.
|
|
258
|
+
- Separate promised, measured, and accepted outcomes.
|
|
259
|
+
- Hand over something the customer can operate; keep each customer's record separate.
|
|
222
260
|
|
|
223
261
|
## Who this is for
|
|
224
262
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
If you ship your own company's product from HQ, with no customer team that has to run it after you leave, you do not need this kit.
|
|
263
|
+
Forward deployed engineers, technical consultants, and solutions engineers working with a customer team that must accept and operate the result. Especially useful when you return across sessions or switch between several engagements.
|
|
228
264
|
|
|
229
|
-
|
|
265
|
+
FDEOps adds customer-delivery workflows to your existing coding tools. It does not replace code review, engineering tests, customer relationships, or your organization's release process. It does not provide hosted synchronization or a CRM.
|
|
230
266
|
|
|
231
267
|
## Your data stays yours
|
|
232
268
|
|
|
233
|
-
|
|
269
|
+
- **CLI:** local Git and file operations; no network requests or telemetry. Package installation can require network access.
|
|
270
|
+
- **Agent:** your chosen host model sees the context and code you give it. Local storage does not make a cloud-hosted model local.
|
|
271
|
+
- **Private notes:** `<private>` blocks are redacted from CLI, dashboard, and hook outputs. Do not open raw private blocks with agent file tools or paste them into chat.
|
|
272
|
+
- **Storage:** customer records live outside the customer repository by default. Keep the engagement folder out of shared Git and cloud-synced folders unless your customer policy permits them.
|
|
273
|
+
- **Integrations:** optional source MCPs pull on request through your host. They have their own permissions and data boundaries; the CLI does not push to external services.
|
|
234
274
|
|
|
235
275
|
[PRIVACY.md](PRIVACY.md) · [SECURITY.md](SECURITY.md)
|
|
236
276
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
## Why FDEOps?
|
|
240
|
-
|
|
241
|
-
AI coding agents are built for a repo, not for a client. Left alone they skip who signs, whether the brief is true, and whether anyone accepted the number. Monday they start from the ticket again.
|
|
242
|
-
|
|
243
|
-
This is the kit you take on site. `@fde` runs the client work around the code. A local command dates every decision. The notes are markdown on your laptop. You confirm; then it is on the record.
|
|
244
|
-
|
|
245
|
-
---
|
|
246
|
-
|
|
247
|
-
## Principles
|
|
248
|
-
|
|
249
|
-
- **Who signs** - name them in the first days
|
|
250
|
-
- **Brief vs real job** - check the floor, not only the slide
|
|
251
|
-
- **Back from done** - sequence from signed-off, not from the ticket
|
|
252
|
-
- **Their staging then live** - prove it where they operate, then go live
|
|
253
|
-
- **Promised, measured, accepted** - a number nobody signed is claimed, not delivered
|
|
254
|
-
- **They run it** - if they cannot operate it without you, you are not done
|
|
255
|
-
- **A dated line, or it did not happen** - these files get defended in the room
|
|
256
|
-
- **One customer, one folder** - context never bleeds
|
|
257
|
-
- **The kit says what to check. You still decide.**
|
|
277
|
+
## Quality and contributing
|
|
258
278
|
|
|
259
|
-
|
|
279
|
+
The repository includes deterministic CLI tests, structural checks, and skill-routing evaluations. These verify defined behaviors; they are not a claim of measured customer productivity or fully autonomous delivery.
|
|
260
280
|
|
|
261
|
-
|
|
281
|
+
From a checkout:
|
|
262
282
|
|
|
283
|
+
```bash
|
|
284
|
+
npm run check
|
|
285
|
+
npm run test:skill-routing
|
|
263
286
|
```
|
|
264
|
-
fdeops/
|
|
265
|
-
├── skills/fde/ # the one skill hosts load
|
|
266
|
-
│ ├── SKILL.md # router
|
|
267
|
-
│ └── references/ # 30 skills + overlays (you never pick)
|
|
268
|
-
│ ├── land.md # Land
|
|
269
|
-
│ ├── audit.md
|
|
270
|
-
│ ├── who-decides.md
|
|
271
|
-
│ ├── earn-trust.md
|
|
272
|
-
│ ├── hold-scope.md
|
|
273
|
-
│ ├── discover.md # Discover
|
|
274
|
-
│ ├── test-assumptions.md
|
|
275
|
-
│ ├── score-use-cases.md
|
|
276
|
-
│ ├── poc.md
|
|
277
|
-
│ ├── plan.md # Plan
|
|
278
|
-
│ ├── business-case.md
|
|
279
|
-
│ ├── three-options.md
|
|
280
|
-
│ ├── pick-three.md
|
|
281
|
-
│ ├── ship.md # Ship
|
|
282
|
-
│ ├── what-breaks.md
|
|
283
|
-
│ ├── rescue.md
|
|
284
|
-
│ ├── review.md
|
|
285
|
-
│ ├── rollback.md
|
|
286
|
-
│ ├── readout.md # Outcome
|
|
287
|
-
│ ├── demo-prep.md
|
|
288
|
-
│ ├── debrief.md
|
|
289
|
-
│ ├── board-memo.md
|
|
290
|
-
│ ├── dashboard.md
|
|
291
|
-
│ ├── ingest.md
|
|
292
|
-
│ ├── connect.md
|
|
293
|
-
│ ├── close.md # Close
|
|
294
|
-
│ ├── runbook.md
|
|
295
|
-
│ ├── switch-clients.md
|
|
296
|
-
│ ├── encode-pattern.md
|
|
297
|
-
│ ├── red-team.md
|
|
298
|
-
│ ├── ai.md # overlays (on signal)
|
|
299
|
-
│ ├── artifacts.md
|
|
300
|
-
│ ├── eval-pack.md
|
|
301
|
-
│ ├── fintech.md
|
|
302
|
-
│ ├── healthcare.md
|
|
303
|
-
│ └── gov.md
|
|
304
|
-
├── .claude/commands/ # slash commands (each loads @fde)
|
|
305
|
-
│ ├── brief.md
|
|
306
|
-
│ ├── discover.md
|
|
307
|
-
│ ├── plan.md
|
|
308
|
-
│ ├── ship.md
|
|
309
|
-
│ ├── outcome.md
|
|
310
|
-
│ ├── close.md
|
|
311
|
-
│ ├── trust.md
|
|
312
|
-
│ ├── receipts.md
|
|
313
|
-
│ ├── debrief.md
|
|
314
|
-
│ ├── prep.md
|
|
315
|
-
│ └── readout.md
|
|
316
|
-
├── .claude-plugin/ # Claude Code marketplace
|
|
317
|
-
├── bin/ # local CLI: git + files, no network
|
|
318
|
-
├── hooks/ # session-start / session-stop / pre-compact
|
|
319
|
-
├── adapters/ # Cursor, Gemini, Copilot, Codex pointers
|
|
320
|
-
├── templates/.fde/ # memory files created on first client
|
|
321
|
-
├── examples/ # fictional walkthroughs
|
|
322
|
-
├── mcp/ # optional ingest + source recipes
|
|
323
|
-
├── evals/ # routing checks
|
|
324
|
-
└── docs/ # usage, schema, install
|
|
325
|
-
```
|
|
326
|
-
|
|
327
|
-
---
|
|
328
287
|
|
|
329
|
-
|
|
288
|
+
Live routing evaluation depends on the configured provider; inspect the output for skipped live checks. See [`evals/`](evals/) for scenarios and [`docs/REPO_LAYOUT.md`](docs/REPO_LAYOUT.md) for the code layout.
|
|
330
289
|
|
|
331
|
-
**[Subash Natarajan](https://www.linkedin.com/in/subashn/)**. [Issues](https://github.com/suboss87/fdeops/issues)
|
|
290
|
+
Maintained by **[Subash Natarajan](https://www.linkedin.com/in/subashn/)**. Share bugs and anonymized field situations through [Issues](https://github.com/suboss87/fdeops/issues) or [Discussions](https://github.com/suboss87/fdeops/discussions). Keep customer data out of contributions.
|
|
332
291
|
|
|
333
|
-
|
|
292
|
+
[CONTRIBUTING.md](CONTRIBUTING.md) · [Code of Conduct](CODE_OF_CONDUCT.md)
|
|
334
293
|
|
|
335
294
|
## License
|
|
336
295
|
|
|
337
|
-
MIT
|
|
296
|
+
[MIT](LICENSE) - use these skills on client work.
|
package/bin/check.js
CHANGED
|
@@ -636,6 +636,11 @@ if (apManifest.$schema !== AP_PLUGIN_SCHEMA) {
|
|
|
636
636
|
fail(`version mismatch package.json ${pkg.version} vs plugin.json ${apManifest.version}`)
|
|
637
637
|
} else ok('agent plugins manifest')
|
|
638
638
|
|
|
639
|
+
const ingestPkg = JSON.parse(read('mcp/fdeops-ingest/package.json'))
|
|
640
|
+
if (ingestPkg.version !== pkg.version) {
|
|
641
|
+
fail(`version mismatch package.json ${pkg.version} vs mcp/fdeops-ingest ${ingestPkg.version}`)
|
|
642
|
+
} else ok('ingest package version aligned')
|
|
643
|
+
|
|
639
644
|
const apMcp = JSON.parse(read('mcp.json'))
|
|
640
645
|
const apServers = apMcp.mcpServers || {}
|
|
641
646
|
if (apMcp.$schema !== AP_MCP_SCHEMA) {
|