fdeops 3.9.15 → 3.9.16
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fdeops",
|
|
3
|
-
"version": "3.9.
|
|
3
|
+
"version": "3.9.16",
|
|
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
|
@@ -49,7 +49,7 @@ These stop confident fiction. They are not optional soft tips.
|
|
|
49
49
|
| Invent a stakeholder, meeting, or quote to make the narrative rich | **Stop.** Write `unknown - ask: <question>`. One fake name poisons every real citation. |
|
|
50
50
|
| 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…"). |
|
|
51
51
|
| 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. |
|
|
52
|
-
| Ship / go-live / irreversible change with "probably fine" | **Stop.** Run **pre-blast challenge** in ship (or red-team) — CLAIM → CHALLENGE → VERDICT — and log
|
|
52
|
+
| Ship / go-live / irreversible change with "probably fine" | **Stop.** Run **intent vs diff** (KEEP/JUSTIFY/SPLIT/DROP) then **pre-blast challenge** in ship (or red-team) — CLAIM → CHALLENGE → VERDICT — and log both. |
|
|
53
53
|
| 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. |
|
|
54
54
|
|
|
55
55
|
When NOT to interrogate or challenge: unambiguous one-liners, mechanical ops, FDE explicitly asked for speed, answer already in `.fde/`.
|
|
@@ -243,6 +243,7 @@ Getting to production without surprises.
|
|
|
243
243
|
|----------|-------|-----------|
|
|
244
244
|
| Ready to deploy, going live, pre-flight check | ship | `references/ship.md` |
|
|
245
245
|
| Review this change, is it safe, does it match what we agreed | review | `references/review.md` |
|
|
246
|
+
| Diff grew / scope creep in the PR / "did we only build what we said" / KEEP JUSTIFY SPLIT DROP | review (+ ship if going live) | `references/review.md` Stage 1 · `references/ship.md` Intent vs diff |
|
|
246
247
|
| "We can always revert" - need to actually test the escape route | rollback-drill | `references/rollback-drill.md` |
|
|
247
248
|
| Need to test from user perspective, "works on my machine" | qa-live | `references/qa-live.md` |
|
|
248
249
|
|
|
@@ -58,7 +58,7 @@ The spec becomes the test list - every line is something to verify after build.
|
|
|
58
58
|
- `[DEFERRED]` intentionally left for a later task (state which one)
|
|
59
59
|
Surface the results to the FDE. If any scenario fails, fix it before cleanup. This is not optional - the spec is the contract.
|
|
60
60
|
9. **Cleanup pass after it works.** Dedupe repeated mechanics into the smallest service module; behavior unchanged; re-run the same tests. If you wrote 200 lines and 50 would do, rewrite before review.
|
|
61
|
-
10. **Review gate (before merge):** two stages, in order - (a) **
|
|
61
|
+
10. **Review gate (before merge):** two stages, in order - (a) **intent vs diff**: every path KEEP / JUSTIFY / SPLIT / DROP against the stated slice in `decisions.md` (see `review.md` Stage 1); (b) **safety**: blast radius honest, tests meaningful, rollback real, secrets absent. Fix real findings, re-verify, repeat until clean or blocked on a human decision.
|
|
62
62
|
11. **Log and deliver.** Update the artifacts (below). Visible progress beats invisible perfection - every 2–3 tasks something shown to a stakeholder.
|
|
63
63
|
|
|
64
64
|
**Touching existing code - classify before changing:**
|
|
@@ -12,13 +12,29 @@ Thousands of lines or dozens of unrelated files → **stop**, recommend the spli
|
|
|
12
12
|
|
|
13
13
|
## Stage 1 - did we build what we agreed? (you do this work)
|
|
14
14
|
|
|
15
|
-
Check the diff against `decisions.md`
|
|
16
|
-
|
|
15
|
+
Check the diff against the **one-line intent** in `decisions.md` / acceptance criteria — what was *explicitly decided*, not what seems right:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
git diff <base>...HEAD --stat
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
For each touched path (or logical hunk), assign one verdict:
|
|
22
|
+
|
|
23
|
+
| Verdict | Meaning |
|
|
24
|
+
|---------|---------|
|
|
25
|
+
| **KEEP** | Required for the stated intent |
|
|
26
|
+
| **JUSTIFY** | Adjacent but must ship now — write one sentence why, or SPLIT |
|
|
27
|
+
| **SPLIT** | Real work for another PR / Next / kill list — do not merge with this slice |
|
|
28
|
+
| **DROP** | Noise / drive-by — revert before Pass |
|
|
29
|
+
|
|
30
|
+
Also check:
|
|
17
31
|
- Any sacred system from `trust-profile.md` touched?
|
|
18
32
|
- Any sensitive data newly in scope?
|
|
19
33
|
- Rollback path defined before build still honoured?
|
|
20
34
|
|
|
21
|
-
**Stage 1 fails → stop
|
|
35
|
+
**Stage 1 fails → stop** if any SPLIT/DROP remains, or JUSTIFY lacks a written sentence. Quality review on out-of-scope code is wasted work. Record the mismatch (and the KEEP/JUSTIFY/SPLIT/DROP tally) in `decisions.md`.
|
|
36
|
+
|
|
37
|
+
Stakeholder "also can you…" mid-build is `scope-defense` — different axis. This stage is **code vs claim**.
|
|
22
38
|
|
|
23
39
|
## Stage 2 - is it safe to live with?
|
|
24
40
|
|
|
@@ -48,6 +64,7 @@ Five dimensions, line-specific ("line 47 fails under concurrent writes - no lock
|
|
|
48
64
|
## Principles
|
|
49
65
|
|
|
50
66
|
- Stage 1 before Stage 2. Wrong scope reviewed well is still wrong scope.
|
|
67
|
+
- KEEP / JUSTIFY / SPLIT / DROP — every path gets a verdict; silent extras fail Stage 1.
|
|
51
68
|
- Specific or silent - vague concerns waste everyone's time.
|
|
52
69
|
- No rollback path = first finding.
|
|
53
70
|
- A clean review proves this diff is safe as agreed - not that the feature was right.
|
|
@@ -63,6 +63,28 @@ Score each dimension green/amber/red. This is the gate, not a suggestion:
|
|
|
63
63
|
|
|
64
64
|
Write the readiness score (including value + receipts) to `delivery.md` before deploying. The score is the evidence if anything goes wrong.
|
|
65
65
|
|
|
66
|
+
## Intent vs diff (before pre-blast)
|
|
67
|
+
|
|
68
|
+
Ship the change you intended — not the drift that snuck in. Run this on the deploy branch against the **one-line intent** from `decisions.md` / `success.md` (the slice you said you were building).
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
git diff <base>...HEAD --stat
|
|
72
|
+
git diff <base>...HEAD
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Score every touched path (or logical hunk):
|
|
76
|
+
|
|
77
|
+
| Path / change | Verdict | Rule |
|
|
78
|
+
|---------------|---------|------|
|
|
79
|
+
| | **KEEP** | Directly required for the stated intent |
|
|
80
|
+
| | **JUSTIFY** | Adjacent but load-bearing — one sentence why it must ship *now*, or split |
|
|
81
|
+
| | **SPLIT** | Real work, wrong PR — park in `decisions.md` kill/Next; do not deploy with this slice |
|
|
82
|
+
| | **DROP** | Noise (format-only, drive-by rename, unrelated tidy) — revert before ship |
|
|
83
|
+
|
|
84
|
+
**Any SPLIT or DROP still in the tree = fix-first.** JUSTIFY without a written sentence = treat as SPLIT. Log a one-line receipt in `delivery.md`: `intent vs diff: KEEP n · JUSTIFY n · SPLIT n · DROP n — <intent>`.
|
|
85
|
+
|
|
86
|
+
This is **code drift**, not stakeholder "also can you…" (that is `scope-defense`). Same family as review Stage 1 — ship refuses green when the diff outgrew the claim.
|
|
87
|
+
|
|
66
88
|
## Pre-blast challenge (before the deploy button)
|
|
67
89
|
|
|
68
90
|
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:
|
|
@@ -162,7 +184,7 @@ Adoption isn't a handoff-stage problem - it starts during build. Software that l
|
|
|
162
184
|
|
|
163
185
|
## Checkpoint
|
|
164
186
|
|
|
165
|
-
Before 100%: canary clean, business metric verified, pulse written into `delivery.md`. Also green: value bucket named, audit receipt dated, eval receipt **n/a or pass
|
|
187
|
+
Before 100%: canary clean, business metric verified, pulse written into `delivery.md`. Also green: value bucket named, audit receipt dated, eval receipt **n/a or pass**, **intent vs diff clean** (no unresolved SPLIT/DROP). Missing any of those → not green. For enterprise-scale: scale-readiness gate passed before broad rollout.
|
|
166
188
|
|
|
167
189
|
## Principles
|
|
168
190
|
|
|
@@ -170,6 +192,7 @@ Before 100%: canary clean, business metric verified, pulse written into `deliver
|
|
|
170
192
|
- Roll back on any canary anomaly; investigate safely.
|
|
171
193
|
- Verify the business metric, not just the technical one.
|
|
172
194
|
- No value bucket, no green ship. No pulse, no done.
|
|
195
|
+
- Diff larger than the stated intent without KEEP/JUSTIFY receipts = fix-first.
|
|
173
196
|
- AI path without eval receipt = fix-first; non-AI ships leave eval as n/a.
|
|
174
197
|
- Scale readiness is organizational, not just technical. Check all 8 dimensions.
|
|
175
198
|
- Adoption is measured from day one, not hoped for at launch.
|