fdeops 3.9.1 → 3.9.2
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
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# FDEOps
|
|
2
2
|
|
|
3
|
-
**Your AI agent forgets your client every morning. fdeops remembers.**
|
|
3
|
+
**Your AI coding agent forgets your client every morning. fdeops remembers.**
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/fdeops)
|
|
6
6
|
[](https://github.com/suboss87/fdeops/actions)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fdeops",
|
|
3
|
-
"version": "3.9.
|
|
3
|
+
"version": "3.9.2",
|
|
4
4
|
"description": "Field kit for engineers embedded in client work - a real CLI (recon, memory, portfolio), one @fde skill with field judgment on top, and hooks that make it automatic. Claude Code plugin and any agent that loads skills.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"fdeops": "bin/install.js",
|
package/skills/fde/SKILL.md
CHANGED
|
@@ -30,6 +30,20 @@ This is what makes fdeops a second brain instead of a chat window.
|
|
|
30
30
|
6. **One customer, one folder.** Never merge two engagements into one `.fde/`. Confirm which engagement applies when multiple exist.
|
|
31
31
|
7. **Never delete a code-read section when rewriting an artifact.** `stakeholders.md`'s `## Signal history` holds dated `[signal:...]` tokens that `fde status`/`fde receipts`/the dashboard read verbatim; `risks.md`'s `## Retired` is read the same way. Rewriting either file as an artifact (land, audit, stakeholder-radar) is fine - dropping one of these sections is not. Carry existing entries forward untouched.
|
|
32
32
|
|
|
33
|
+
## Anti-invention gates (field anti-slop)
|
|
34
|
+
|
|
35
|
+
These stop confident fiction. They are not optional soft tips.
|
|
36
|
+
|
|
37
|
+
| Temptation | Gate |
|
|
38
|
+
|------------|------|
|
|
39
|
+
| Invent a stakeholder, meeting, or quote to make the narrative rich | **Stop.** Write `unknown - ask: <question>`. One fake name poisons every real citation. |
|
|
40
|
+
| Route to a phase because it "feels senior" while the signal is muddy | **Stop.** Playback + one natural question, or name the ambiguity ("discover or rescue — leaning X because…"). |
|
|
41
|
+
| Fill `success.md` / `terrain.md` with plausible defaults when the brief is thin | **Stop.** Run **brief interrogation** in land/discover (one Q + GUESS + confidence) until you can write without guessing, or leave gaps explicit. |
|
|
42
|
+
| Ship / go-live / irreversible change with "probably fine" | **Stop.** Run **pre-blast challenge** in ship (or red-team) — CLAIM → CHALLENGE → VERDICT — and log it. |
|
|
43
|
+
| Grill the FDE with a checklist when they're mid-flow | **Stop.** Playback rule wins. Probe only when a missing fact changes the next move. |
|
|
44
|
+
|
|
45
|
+
When NOT to interrogate or challenge: unambiguous one-liners, mechanical ops, FDE explicitly asked for speed, answer already in `.fde/`.
|
|
46
|
+
|
|
33
47
|
## Data boundary (confirm before touching their code)
|
|
34
48
|
|
|
35
49
|
- The `fde` CLI is **local only** - `git` + file reads, no AI, no network. Safe in any environment.
|
|
@@ -248,12 +262,12 @@ Running the engagement and ending it well.
|
|
|
248
262
|
|
|
249
263
|
## Think before you route
|
|
250
264
|
|
|
251
|
-
Do not interview them. Reflect back what you heard, say what you think is going on, name what you're unsure about, then either move or ask **one** natural question.
|
|
265
|
+
Do not interview them as an intake form. Reflect back what you heard, say what you think is going on, name what you're unsure about, then either move or ask **one** natural question. If the brief is thin (no decision-maker, no success, no "why now"), land/discover **brief interrogation** applies — still one question at a time with a GUESS, never a barrage.
|
|
252
266
|
|
|
253
267
|
Bad: "Are you in phase land, discover, build, or rescue?"
|
|
254
268
|
Good: "Feels like you're past the first meeting but the brief still doesn't match what ops told you - I'd dig into that before more code. Unless production's actually on fire?"
|
|
255
269
|
|
|
256
|
-
If the situation maps to multiple skills or none clearly: say so. "This could be discover or rescue - here's why I'm leaning toward X, but tell me if the other fits better." Named uncertainty beats a confident wrong answer. Never silently guess when the signal is ambiguous.
|
|
270
|
+
If the situation maps to multiple skills or none clearly: say so. "This could be discover or rescue - here's why I'm leaning toward X, but tell me if the other fits better." Named uncertainty beats a confident wrong answer. Never silently guess when the signal is ambiguous. See **Anti-invention gates**.
|
|
257
271
|
|
|
258
272
|
If still muddy after one exchange: default to land for new work, audit for takeovers. Ambiguous urgency gets one disambiguator: "Is production broken right now, or is this a trust problem?"
|
|
259
273
|
|
|
@@ -287,6 +301,7 @@ Speed changes the depth of each phase, not which phases exist.
|
|
|
287
301
|
|
|
288
302
|
- Never ask the FDE to pick a phase. That's your job.
|
|
289
303
|
- Read `context.md` before speaking. One sharp question at a time - the checkpoint question before an irreversible step - never a barrage.
|
|
304
|
+
- Never invent people, meetings, or numbers — `unknown - ask:` beats a polished lie (anti-invention gates).
|
|
290
305
|
- Every phase ends with its artifact written. No artifact, no "done."
|
|
291
306
|
- Evidence on every claim. The FDE will be challenged on these files.
|
|
292
307
|
- Overlays activate on signal, not on request.
|
|
@@ -18,6 +18,21 @@ Then check - probe ONLY if it prevents wasted discovery:
|
|
|
18
18
|
|
|
19
19
|
State your read, let the FDE correct, then discover.
|
|
20
20
|
|
|
21
|
+
## Brief interrogation (when the hypothesis is still mush)
|
|
22
|
+
|
|
23
|
+
Use when the "problem" is unfalsifiable, success is undefined, or you cannot name the decision discovery informs. Skip when `reality.md` / `terrain.md` already pin a testable claim and the FDE is ready to dig.
|
|
24
|
+
|
|
25
|
+
Same format as land — one Q + GUESS, no checklist:
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
READ: <the real problem you think exists, in one sentence>
|
|
29
|
+
CONFIDENCE: ~NN% — missing: <what would falsify or confirm it>
|
|
30
|
+
Q: <one question that changes where you dig>
|
|
31
|
+
GUESS: <your answer, so they can correct it>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Stop when you can write the decision sentence under **Frame the decision first**. If a name, quote, or metric is still missing, write `unknown - ask:` — never invent ops folklore to make the map look complete.
|
|
35
|
+
|
|
21
36
|
## Frame the decision first
|
|
22
37
|
|
|
23
38
|
Before any scanning, write one sentence at the top of your working notes:
|
|
@@ -18,6 +18,21 @@ Then check - probe ONLY if it prevents a bad start:
|
|
|
18
18
|
|
|
19
19
|
State your read, let the FDE correct, then land.
|
|
20
20
|
|
|
21
|
+
## Brief interrogation (only when the brief is thin)
|
|
22
|
+
|
|
23
|
+
Use this when the ask is conventional or underspecified — missing who decides, why now, what success looks like, or the binding constraint. **Do not** run it when the FDE already gave a clear brief, is mid-flow, or asked for speed over verification.
|
|
24
|
+
|
|
25
|
+
Format — one question at a time, with a guess the FDE can correct:
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
READ: <one sentence — what you think they actually need>
|
|
29
|
+
CONFIDENCE: ~NN% — missing: <what still blocks a safe start>
|
|
30
|
+
Q: <one focused question>
|
|
31
|
+
GUESS: <your best answer, so they can push back fast>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Wait for the reaction before the next question. Stop when confidence is high enough to write `success.md` without inventing names, or when the FDE says move on. Every answer that is still unknown stays `unknown - ask:` in the artifact — never fill the gap with a plausible stakeholder.
|
|
35
|
+
|
|
21
36
|
## Method - part 1: interrogate the brief (you do this work)
|
|
22
37
|
|
|
23
38
|
Read the brief the FDE gives you. What is **not** in it matters as much as what is. Produce the gap list yourself:
|
|
@@ -23,6 +23,16 @@ You are not a helpful peer right now. You are the skeptical senior who has seen
|
|
|
23
23
|
|
|
24
24
|
**2. Identify what they're defending.** The FDE told you what they want stress-tested. Name it back in one sentence: "You're defending the position that the handoff is ready for next Friday."
|
|
25
25
|
|
|
26
|
+
**2b. Pre-blast challenge (open every red-team with this).** Force the claim into the open before the five angles:
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
CLAIM: <the position under test, one sentence>
|
|
30
|
+
WHY IT MATTERS: <credibility / time / engagement risk if wrong>
|
|
31
|
+
CHALLENGE: <your strongest counter — specific names/dates from .fde/ only>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Wait for their defense. Score it SOLID / THIN / EXPOSED (same scale as step 5). Only then widen into the five angles. If the claim collapses here, stop — the kill list is already clear.
|
|
35
|
+
|
|
26
36
|
**3. Attack from five angles.** Every plan has five failure surfaces. Hit each one:
|
|
27
37
|
|
|
28
38
|
| Angle | The question it answers |
|
|
@@ -47,6 +47,19 @@ Score each dimension green/amber/red. This is the gate, not a suggestion:
|
|
|
47
47
|
|
|
48
48
|
Write the readiness score to `delivery.md` before deploying. The score is the evidence if anything goes wrong.
|
|
49
49
|
|
|
50
|
+
## Pre-blast challenge (before the deploy button)
|
|
51
|
+
|
|
52
|
+
For any non-trivial go-live (shared infra, regulated data, irreversible migration, or first prod touch), run this once before canary — not as theater, as a stop-the-line check:
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
CLAIM: <what you are about to ship, in one sentence>
|
|
56
|
+
WHY IT MATTERS: <blast radius / who feels pain if wrong>
|
|
57
|
+
CHALLENGE: <the strongest argument this is not ready — grounded in delivery.md / risks.md / trust-profile.md>
|
|
58
|
+
VERDICT: proceed | fix-first | sponsor conversation
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Rules: no invented stakeholders; if evidence is missing, the verdict is **fix-first** or **sponsor conversation**, not "probably fine." Log the CLAIM + VERDICT as a dated line in `delivery.md`. Skip for mechanical one-line config with an already-tested rollback.
|
|
62
|
+
|
|
50
63
|
## Method - pre-flight (you verify each, confirmed not assumed)
|
|
51
64
|
|
|
52
65
|
- All tests pass - state the command and result.
|