fdeops 3.6.1 → 3.7.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 +8 -6
- package/bin/check.js +2 -2
- package/bin/fde.js +835 -300
- package/bin/install.js +1 -1
- package/package.json +1 -1
- package/skills/fde/SKILL.md +2 -2
- package/skills/fde/references/multi-customer-ops.md +8 -8
- package/skills/fde/references/red-team.md +3 -3
package/README.md
CHANGED
|
@@ -41,15 +41,15 @@ fdeops adds the missing layer: memory scoped to the **client** - plain markdown
|
|
|
41
41
|
**2. Bind your client workspace** - run once, inside the workspace:
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
fde resume --init
|
|
44
|
+
fde resume --init garvey
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
fdeops' `--init` creates the engagement memory at `~/fde-engagements/
|
|
47
|
+
fdeops' `--init` creates the engagement memory at `~/fde-engagements/garvey/.fde/` (plain markdown, private to your machine) and binds this workspace to it. The hooks read that binding - context auto-loads at session start, auto-captures at session end. That is the whole setup.
|
|
48
48
|
|
|
49
49
|
**3. Work**
|
|
50
50
|
|
|
51
51
|
```text
|
|
52
|
-
@fde I just got the brief. New client, payments platform,
|
|
52
|
+
@fde I just got the brief. New client, payments platform, they want it live before their Q3 audit.
|
|
53
53
|
```
|
|
54
54
|
|
|
55
55
|
`@fde` is the one skill fdeops installs. Describe what's happening; it routes to the right field method and the memory writes itself. Full workflow: [docs/USAGE.md](docs/USAGE.md).
|
|
@@ -120,8 +120,8 @@ fde scan # day-1 recon + ASK ON DAY 1 questions (works
|
|
|
120
120
|
fde resume # load this workspace's engagement
|
|
121
121
|
fde resume --init <client> # THE setup step: create + bind an engagement
|
|
122
122
|
fde debrief notes.md # route meeting notes into memory (also reads stdin)
|
|
123
|
-
fde log decision "descope agreed with
|
|
124
|
-
fde log contact "
|
|
123
|
+
fde log decision "descope agreed with Kowalczyk"
|
|
124
|
+
fde log contact "Denise gone quiet" --signal amber
|
|
125
125
|
fde receipts <term> # dated search; no hit = a gap in the record, not proof of absence
|
|
126
126
|
fde status # portfolio triage across all clients (red > amber > green)
|
|
127
127
|
fde dashboard # render every engagement into one offline HTML fieldbook
|
|
@@ -131,7 +131,9 @@ The latest dated `[signal:...]` token per stakeholder drives the trust column in
|
|
|
131
131
|
|
|
132
132
|
<p align="center"><img src="media/terminal-demo.svg" alt="fde CLI - status, scan, dashboard" width="720"/></p>
|
|
133
133
|
|
|
134
|
-
|
|
134
|
+
`fde dashboard` renders every engagement into one offline HTML fieldbook - engagements sorted by trust, next action and open risks per client, one glance to know where to start:
|
|
135
|
+
|
|
136
|
+
<p align="center"><img width="1176" height="686" alt="fieldbook - portfolio dashboard, sorted by trust" src="https://github.com/user-attachments/assets/c9bd4b03-457e-4770-974a-0495759b1339" /></p>
|
|
135
137
|
|
|
136
138
|
---
|
|
137
139
|
|
package/bin/check.js
CHANGED
|
@@ -182,8 +182,8 @@ else ok('SECURITY.md')
|
|
|
182
182
|
|
|
183
183
|
const exampleFiles = ['reality.md', 'decisions.md', 'delivery.md', 'stakeholders.md']
|
|
184
184
|
for (const f of exampleFiles) {
|
|
185
|
-
const p = path.join(root, 'examples', '
|
|
186
|
-
if (!fs.existsSync(p)) fail(`examples/
|
|
185
|
+
const p = path.join(root, 'examples', 'garvey-payments', '.fde', f)
|
|
186
|
+
if (!fs.existsSync(p)) fail(`examples/garvey-payments/.fde/${f} missing`)
|
|
187
187
|
}
|
|
188
188
|
ok('examples walkthrough files')
|
|
189
189
|
|