fdeops 5.0.0 → 5.1.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 +30 -26
- package/bin/catalog-doc.js +38 -0
- package/bin/check.js +20 -49
- package/bin/fde.js +2 -2
- package/bin/generate-skills.js +9 -1
- package/bin/install.js +9 -3
- package/bin/skill-catalog.js +283 -16
- package/mcp/fdeops-ingest/package.json +1 -1
- package/package.json +2 -2
- package/plugin.json +1 -1
- package/skills/README.md +7 -0
- package/skills/audit/.fde-generated.json +10 -0
- package/skills/audit/SKILL.md +21 -0
- package/skills/audit/references/audit.md +71 -0
- package/skills/audit/references/discover.md +112 -0
- package/skills/audit/references/task-context.md +18 -0
- package/skills/board-memo/.fde-generated.json +10 -0
- package/skills/board-memo/SKILL.md +21 -0
- package/skills/board-memo/references/board-memo.md +108 -0
- package/skills/board-memo/references/business-case.md +90 -0
- package/skills/board-memo/references/task-context.md +18 -0
- package/skills/brief/.fde-generated.json +9 -0
- package/skills/brief/SKILL.md +21 -0
- package/skills/brief/references/land.md +136 -0
- package/skills/brief/references/task-context.md +18 -0
- package/skills/build/.fde-generated.json +3 -3
- package/skills/build/references/build.md +1 -1
- package/skills/build/references/integrate.md +12 -2
- package/skills/build/references/task-context.md +7 -1
- package/skills/business-case/.fde-generated.json +9 -0
- package/skills/business-case/SKILL.md +21 -0
- package/skills/business-case/references/business-case.md +90 -0
- package/skills/business-case/references/task-context.md +18 -0
- package/skills/connect/.fde-generated.json +12 -0
- package/skills/connect/SKILL.md +21 -0
- package/skills/connect/references/connect.md +24 -0
- package/skills/connect/references/debrief.md +91 -0
- package/skills/connect/references/ingest.md +75 -0
- package/skills/connect/references/source-setup.md +30 -0
- package/skills/connect/references/task-context.md +18 -0
- package/skills/dashboard/.fde-generated.json +9 -0
- package/skills/dashboard/SKILL.md +21 -0
- package/skills/dashboard/references/dashboard.md +40 -0
- package/skills/dashboard/references/task-context.md +18 -0
- package/skills/debrief/.fde-generated.json +12 -0
- package/skills/debrief/SKILL.md +21 -0
- package/skills/debrief/references/connect.md +24 -0
- package/skills/debrief/references/debrief.md +91 -0
- package/skills/debrief/references/ingest.md +75 -0
- package/skills/debrief/references/source-setup.md +30 -0
- package/skills/debrief/references/task-context.md +18 -0
- package/skills/debug/.fde-generated.json +3 -3
- package/skills/debug/references/build.md +1 -1
- package/skills/debug/references/integrate.md +12 -2
- package/skills/debug/references/task-context.md +7 -1
- package/skills/demo-prep/.fde-generated.json +9 -0
- package/skills/demo-prep/SKILL.md +21 -0
- package/skills/demo-prep/references/demo-prep.md +31 -0
- package/skills/demo-prep/references/task-context.md +18 -0
- package/skills/discover/.fde-generated.json +1 -1
- package/skills/discover/references/task-context.md +7 -1
- package/skills/earn-trust/.fde-generated.json +9 -0
- package/skills/earn-trust/SKILL.md +21 -0
- package/skills/earn-trust/references/earn-trust.md +81 -0
- package/skills/earn-trust/references/task-context.md +18 -0
- package/skills/evaluate/.fde-generated.json +3 -3
- package/skills/evaluate/references/build.md +1 -1
- package/skills/evaluate/references/integrate.md +12 -2
- package/skills/evaluate/references/task-context.md +7 -1
- package/skills/fde/SKILL.md +24 -21
- package/skills/fde/references/build.md +1 -1
- package/skills/fde/references/connect.md +14 -24
- package/skills/fde/references/debrief.md +2 -0
- package/skills/fde/references/earn-trust.md +27 -46
- package/skills/fde/references/hold-scope.md +25 -24
- package/skills/fde/references/ingest.md +4 -2
- package/skills/fde/references/integrate.md +12 -2
- package/skills/fde/references/land.md +28 -28
- package/skills/fde/references/plan.md +6 -6
- package/skills/fde/references/rescue.md +18 -18
- package/skills/fde/references/runbook.md +52 -120
- package/skills/fde/references/source-setup.md +30 -0
- package/skills/fde/references/task-context.md +7 -1
- package/skills/fde/references/who-decides.md +29 -57
- package/skills/feedback/.fde-generated.json +1 -1
- package/skills/feedback/references/task-context.md +7 -1
- package/skills/handoff/.fde-generated.json +1 -1
- package/skills/handoff/references/task-context.md +7 -1
- package/skills/ingest/.fde-generated.json +12 -0
- package/skills/ingest/SKILL.md +21 -0
- package/skills/ingest/references/connect.md +24 -0
- package/skills/ingest/references/debrief.md +91 -0
- package/skills/ingest/references/ingest.md +75 -0
- package/skills/ingest/references/source-setup.md +30 -0
- package/skills/ingest/references/task-context.md +18 -0
- package/skills/integrate/.fde-generated.json +3 -3
- package/skills/integrate/references/build.md +1 -1
- package/skills/integrate/references/integrate.md +12 -2
- package/skills/integrate/references/task-context.md +7 -1
- package/skills/options/.fde-generated.json +1 -1
- package/skills/options/references/task-context.md +7 -1
- package/skills/plan/.fde-generated.json +10 -0
- package/skills/plan/SKILL.md +21 -0
- package/skills/plan/references/business-case.md +90 -0
- package/skills/plan/references/plan.md +167 -0
- package/skills/plan/references/task-context.md +18 -0
- package/skills/poc/.fde-generated.json +4 -4
- package/skills/poc/references/build.md +1 -1
- package/skills/poc/references/integrate.md +12 -2
- package/skills/poc/references/plan.md +6 -6
- package/skills/poc/references/task-context.md +7 -1
- package/skills/prioritize/.fde-generated.json +10 -0
- package/skills/prioritize/SKILL.md +21 -0
- package/skills/prioritize/references/business-case.md +90 -0
- package/skills/prioritize/references/pick-three.md +95 -0
- package/skills/prioritize/references/task-context.md +18 -0
- package/skills/qa/.fde-generated.json +3 -3
- package/skills/qa/references/build.md +1 -1
- package/skills/qa/references/integrate.md +12 -2
- package/skills/qa/references/task-context.md +7 -1
- package/skills/readout/.fde-generated.json +1 -1
- package/skills/readout/references/task-context.md +7 -1
- package/skills/red-team/.fde-generated.json +9 -0
- package/skills/red-team/SKILL.md +21 -0
- package/skills/red-team/references/red-team.md +105 -0
- package/skills/red-team/references/task-context.md +18 -0
- package/skills/rescue/.fde-generated.json +9 -0
- package/skills/rescue/SKILL.md +21 -0
- package/skills/rescue/references/rescue.md +82 -0
- package/skills/rescue/references/task-context.md +18 -0
- package/skills/review/.fde-generated.json +3 -3
- package/skills/review/references/build.md +1 -1
- package/skills/review/references/integrate.md +12 -2
- package/skills/review/references/task-context.md +7 -1
- package/skills/rollback/.fde-generated.json +9 -0
- package/skills/rollback/SKILL.md +21 -0
- package/skills/rollback/references/rollback.md +102 -0
- package/skills/rollback/references/task-context.md +18 -0
- package/skills/runbook/.fde-generated.json +11 -0
- package/skills/runbook/SKILL.md +21 -0
- package/skills/runbook/references/close.md +66 -0
- package/skills/runbook/references/encode-pattern.md +96 -0
- package/skills/runbook/references/runbook.md +73 -0
- package/skills/runbook/references/task-context.md +18 -0
- package/skills/scope/.fde-generated.json +2 -2
- package/skills/scope/references/hold-scope.md +25 -24
- package/skills/scope/references/task-context.md +7 -1
- package/skills/score-use-cases/.fde-generated.json +10 -0
- package/skills/score-use-cases/SKILL.md +21 -0
- package/skills/score-use-cases/references/business-case.md +90 -0
- package/skills/score-use-cases/references/score-use-cases.md +70 -0
- package/skills/score-use-cases/references/task-context.md +18 -0
- package/skills/ship/.fde-generated.json +3 -3
- package/skills/ship/references/build.md +1 -1
- package/skills/ship/references/integrate.md +12 -2
- package/skills/ship/references/task-context.md +7 -1
- package/skills/switch-clients/.fde-generated.json +9 -0
- package/skills/switch-clients/SKILL.md +21 -0
- package/skills/switch-clients/references/switch-clients.md +114 -0
- package/skills/switch-clients/references/task-context.md +18 -0
- package/skills/test-assumptions/.fde-generated.json +9 -0
- package/skills/test-assumptions/SKILL.md +21 -0
- package/skills/test-assumptions/references/task-context.md +18 -0
- package/skills/test-assumptions/references/test-assumptions.md +102 -0
- package/skills/what-breaks/.fde-generated.json +9 -0
- package/skills/what-breaks/SKILL.md +21 -0
- package/skills/what-breaks/references/task-context.md +18 -0
- package/skills/what-breaks/references/what-breaks.md +91 -0
- package/skills/who-decides/.fde-generated.json +9 -0
- package/skills/who-decides/SKILL.md +21 -0
- package/skills/who-decides/references/task-context.md +18 -0
- package/skills/who-decides/references/who-decides.md +63 -0
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
# rescue - Resolve the incident
|
|
2
2
|
|
|
3
|
-
**Enter when:** production is down, something's bleeding - OR a stakeholder went quiet, confidence is slipping, or three weeks into the build the brief turned out to be wrong.
|
|
3
|
+
**Enter when:** production is down, something's bleeding - OR a stakeholder went quiet, confidence is slipping, or three weeks into the build the brief turned out to be wrong. Choose urgency from actual impact and the pending decision; a delayed reply alone is not an outage.
|
|
4
4
|
|
|
5
|
-
**Read first:** `context.md
|
|
5
|
+
**Read first:** apply [task context](task-context.md), then permitted `context.md` and `risks.md` evidence. Pull specific module context only once you know what you're looking at.
|
|
6
6
|
|
|
7
7
|
First move - one disambiguator if unclear: **"Is production broken right now, or is this a trust/alignment problem?"**
|
|
8
8
|
|
|
9
9
|
## A. Technical fire (you do this work)
|
|
10
10
|
|
|
11
|
-
Open by narrowing time, like a human: "Walk me through the last couple hours - deploys, config, anything that moved."
|
|
11
|
+
Open by narrowing time, like a human: "Walk me through the last couple hours - deploys, config, anything that moved." Check recent changes, but keep external dependencies, traffic, expired credentials and latent faults in view; no known deploy does not prove nothing relevant changed:
|
|
12
12
|
```bash
|
|
13
13
|
git log --since="6 hours ago" --format="%ad %an %s" --date=relative
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
**The sequence:**
|
|
16
|
+
**The sequence:** separate authorized containment from a root-cause fix. Do not wait for a complete diagnosis to reduce ongoing harm safely, and do not claim the cause is established merely because containment worked.
|
|
17
17
|
|
|
18
|
-
1. **Stabilise first.**
|
|
18
|
+
1. **Stabilise first.** Use the applicable incident authority and established containment/recovery procedures. Consider rollback, disabling a path or routing around it against actual side effects and recovery limits; do not invent production permission.
|
|
19
19
|
2. **Name the unknowns.** "We don't know if the queue is corrupted / if this hits all users / if the cache is stale." Written down. Named unknowns are safer than assumed knowns.
|
|
20
|
-
3. **
|
|
20
|
+
3. **Bound the blast radius.** State observed affected paths and plausible exposure separately. An unfamiliar integration warrants investigation; it does not prove every user is affected.
|
|
21
21
|
4. **Minimum safe change.** Often a read-only query first - observe before acting. Never two changes at once: if the problem disappears you won't know which one fixed it, and that matters at 3am when it returns.
|
|
22
22
|
5. **One hypothesis at a time.** "If X, then Y should produce Z." Test, document, next.
|
|
23
23
|
6. **Instrument before touching.** A change without observability is a change without evidence.
|
|
@@ -28,20 +28,20 @@ git log --since="6 hours ago" --format="%ad %an %s" --date=relative
|
|
|
28
28
|
|
|
29
29
|
**Signals:** a stakeholder stops responding or routes around the FDE · meetings shorten, decisions defer · "is the timeline still realistic?" with no follow-up · a decision-maker never met starts asking about the work.
|
|
30
30
|
|
|
31
|
-
**The read:** the
|
|
31
|
+
**The read:** compare the observation with the agreed cadence and upcoming decisions. Workload, absence, changed expectations and escalation are possible explanations, not established causes. Clarify the effect on the work without guessing intent; urgency follows the decision deadline and impact.
|
|
32
32
|
|
|
33
|
-
**The move:**
|
|
33
|
+
**The move:** offer a neutral alignment check through the agreed channel: ask whether expectations or the decision timing changed. Continue useful authorized delivery; additional commits alone do not resolve an ownership or acceptance dispute. When a concern is confirmed, propose a dated next step with the responsible person. Record only what was said and agreed, with its source, under the normal confirmation rules. Do not send outreach without authority.
|
|
34
34
|
|
|
35
35
|
## C. Wrong brief, mid-build
|
|
36
36
|
|
|
37
37
|
The most politically dangerous moment in FDE work: visible progress toward the wrong thing. Never absorb it silently.
|
|
38
38
|
|
|
39
|
-
1. **
|
|
39
|
+
1. **Pause the affected work.** Identify which assumptions the evidence invalidates; continue independent authorized work that remains applicable.
|
|
40
40
|
2. **Write the evidence, not the interpretation.** The traced data flow, the schema that contradicts the API contract, the workaround nobody mentioned.
|
|
41
|
-
3. **
|
|
41
|
+
3. **Raise the decision promptly.** Use the agreed channel and urgency appropriate to the impact; a call helps when written context is insufficient. Do not infer concealment from communication timing.
|
|
42
42
|
4. **Evidence before recommendations.** A customer who reaches the conclusion themselves owns the reset.
|
|
43
|
-
5. **
|
|
44
|
-
6. **
|
|
43
|
+
5. **Offer viable paths:** narrow the outcome, revise scope/timing, or pause the affected work to investigate. Include only options supported by the situation; distinguish proposals from authorized changes.
|
|
44
|
+
6. **Confirm the reset** - obtain the applicable scope/acceptance decision before dependent building resumes, then update relevant records under the normal confirmation rules.
|
|
45
45
|
|
|
46
46
|
Customers remember who told them the truth before it cost them money.
|
|
47
47
|
|
|
@@ -53,14 +53,14 @@ Not hold-scope (that's someone adding). This is: budget cut, new CTO arrives, st
|
|
|
53
53
|
|
|
54
54
|
**The pivot protocol:**
|
|
55
55
|
1. **Acknowledge immediately.** Don't pretend the old brief still applies. "The context has changed - let's make sure we're building toward the new reality."
|
|
56
|
-
2. **Protect what's already delivered.**
|
|
56
|
+
2. **Protect what's already delivered.** Identify what remains live and useful with evidence. A pivot may change the value of a feature; keep deployed behavior, measured benefit and accepted outcomes distinct.
|
|
57
57
|
3. **Assess salvageability.** What from the current work applies to the new direction? What's dead? What can be repurposed? Present this honestly - don't stretch to make everything fit.
|
|
58
|
-
4. **
|
|
58
|
+
4. **Consider applicable paths (same pattern as wrong-brief):**
|
|
59
59
|
- **Redirect** - current work pivots to serve the new priority (minimal waste).
|
|
60
60
|
- **Pause** - freeze current scope, start fresh discovery on new direction.
|
|
61
61
|
- **Graceful close** - deliver what's done, document everything, hand off cleanly.
|
|
62
62
|
5. **Reset the artifacts.** Update `success.md` (new definition of success), `reality.md` (new context), `brief.md` (new direction). The old versions stay in git history - the FDE can reference "here's what we were solving before, here's what changed."
|
|
63
|
-
6. **
|
|
63
|
+
6. **Agree the next checkpoint.** Show what can be reused, what needs verification and what authority the new direction requires. Do not promise a first-week win or infer trust from agreement with the pivot.
|
|
64
64
|
|
|
65
65
|
**Commercial awareness:** A pivot may change the SOW. Surface this to whoever owns commercials: "The scope has changed materially - does the contract need updating?" Don't assume; don't ignore.
|
|
66
66
|
|
|
@@ -76,7 +76,7 @@ Stable + log written + one question answered with the FDE: does this change what
|
|
|
76
76
|
|
|
77
77
|
- Stabilise before diagnosing.
|
|
78
78
|
- Named unknowns beat assumed knowns. Minimum safe change, one hypothesis.
|
|
79
|
-
-
|
|
80
|
-
-
|
|
79
|
+
- Use applicable incident authority and recovery evidence; account for effects a code revert cannot undo.
|
|
80
|
+
- Clarify relationship concerns from evidence; urgency follows impact, not a fixed escalation clock.
|
|
81
81
|
- The chaos log is written before the day ends.
|
|
82
|
-
-
|
|
82
|
+
- Confirm changed scope and authority before acting on a proposed pivot.
|
|
@@ -1,141 +1,73 @@
|
|
|
1
|
-
# runbook - Write
|
|
1
|
+
# runbook - Write an operating guide
|
|
2
2
|
|
|
3
|
-
**Enter when:** the
|
|
3
|
+
**Enter when:** the team needs instructions to operate, diagnose or recover a system, or an engineer is preparing to transfer responsibility.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Apply [task context](task-context.md). Use supplied operational facts, relevant code and verified procedures. For a bound engagement, retrieve relevant sanitized delivery, dependency and ownership evidence; do not load the full customer record or raw private material.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## Match the request
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
- **Draft a guide:** write what is known, mark unverified procedures and missing evidence, and return the requested document. No customer record, live access, drill or closure ceremony is required.
|
|
10
|
+
- **Verify an operating guide:** agree the permitted environment and checks, exercise relevant procedures, and record what happened. Do not run a destructive or production drill from a documentation request alone.
|
|
11
|
+
- **Complete a handoff:** use [handoff](close.md) for the wider ownership and acceptance decision. A written guide is one part of that decision, not proof of readiness.
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
## Build the guide from evidence
|
|
12
14
|
|
|
13
|
-
|
|
14
|
-
|----------|-----------------|---------------------------|
|
|
15
|
-
| **Code knowledge** | Architecture decisions (`decisions.md`), why the code is shaped the way it is | Team member can explain the three most important design decisions |
|
|
16
|
-
| **Operational** | Deploy, rollback, incident response, monitoring | Team member runs the deploy and rollback procedure independently |
|
|
17
|
-
| **Tribal** | The things only you know - the workaround, the contact, the context | Written in `handoff.md` and reviewed with the person who'll carry it |
|
|
18
|
-
| **Political** | Stakeholder dynamics, approval chains, who to call when | Documented in `stakeholders.md` with signal history |
|
|
19
|
-
| **Data/AI** | Model versions, retraining triggers, drift monitoring, fallback paths | Owner named for each AI component; kill switch documented |
|
|
20
|
-
|
|
21
|
-
**2. The 2am document.** Written for the person woken up on a Saturday night with zero context:
|
|
22
|
-
|
|
23
|
-
```markdown
|
|
24
|
-
# Operations runbook - <system name>
|
|
25
|
-
|
|
26
|
-
## The 3 things that will break (and the fix for each)
|
|
27
|
-
|
|
28
|
-
### 1. <most likely failure>
|
|
29
|
-
Symptom: <what they'll see>
|
|
30
|
-
Cause: <most likely why>
|
|
31
|
-
Fix: <exact steps, copy-pasteable commands>
|
|
32
|
-
Who to call if this doesn't fix it: <name, contact>
|
|
33
|
-
|
|
34
|
-
### 2. <second most likely failure>
|
|
35
|
-
...
|
|
36
|
-
|
|
37
|
-
### 3. <third most likely failure>
|
|
38
|
-
...
|
|
39
|
-
|
|
40
|
-
## Deploy
|
|
41
|
-
Command: <exact command>
|
|
42
|
-
Time: <how long it takes>
|
|
43
|
-
Verify: <how to confirm it worked>
|
|
44
|
-
Rollback: <exact command and expected time>
|
|
45
|
-
|
|
46
|
-
## Alerts
|
|
47
|
-
| Alert | Means | Do this |
|
|
48
|
-
|-------|-------|---------|
|
|
49
|
-
| <alert name> | <plain English> | <action or link to detailed runbook> |
|
|
50
|
-
|
|
51
|
-
## Contacts
|
|
52
|
-
| Who | When to call | How |
|
|
53
|
-
|-----|-------------|-----|
|
|
54
|
-
| <name> | <scenario> | <phone/slack/email> |
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
**3. The knowledge transfer sessions.** Not a document dump - three structured sessions:
|
|
58
|
-
|
|
59
|
-
| Session | Focus | Attendees | Duration | Output |
|
|
60
|
-
|---------|-------|-----------|----------|--------|
|
|
61
|
-
| **Architecture walkthrough** | Why, not what. The decisions, the trade-offs, the things that almost went wrong. | Full team | 60-90 min | Recording + Q&A log |
|
|
62
|
-
| **Operational drill** | Deploy, rollback, incident response. They do it, you watch. | On-call team | 60 min | Drill report with confidence level |
|
|
63
|
-
| **Floor drill** | They run the real job (the exception on the operating map) while you watch, hands off. Then they teach the next person. If they cannot, the runbook is a PDF. | Named operator on the floor | 45-60 min | They used the 2am doc during the drill, or the embed is not closed |
|
|
64
|
-
| **Edge-case handover** | The things that aren't in any document. The workarounds, the fragile spots, the "ask Sarah because she's the only one who knows." | Team lead + 1 | 30 min | Additions to `handoff.md` |
|
|
65
|
-
|
|
66
|
-
**4. The confidence check.** After the knowledge transfer, score the team's readiness:
|
|
67
|
-
|
|
68
|
-
| Area | Confidence (1-5) | Evidence |
|
|
69
|
-
|------|------------------|----------|
|
|
70
|
-
| Daily operations | | Can they deploy and rollback without help? |
|
|
71
|
-
| Incident response | | Did they complete the drill within acceptable time? |
|
|
72
|
-
| Floor job | | Did the named operator complete Tuesday's real exception without you at the keyboard? |
|
|
73
|
-
| Architecture decisions | | Can they explain why the system is built this way? |
|
|
74
|
-
| AI components (if any) | | Do they know how to monitor, retrain, and disable? |
|
|
75
|
-
| Stakeholder management | | Do they know who to update and how? |
|
|
76
|
-
|
|
77
|
-
**Average below 3.5 → the handoff is not complete.** Extend, or tell the sponsor the embed is not closed. Do not document the gap and leave.
|
|
78
|
-
|
|
79
|
-
**5. The successor brief.** If a new FDE is taking over, write a brief that gets them operational in one hour:
|
|
15
|
+
Identify the system, the intended reader and the decisions that reader can make. Follow the actual operating path and include only relevant sections:
|
|
80
16
|
|
|
81
17
|
```markdown
|
|
82
|
-
#
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
<
|
|
86
|
-
|
|
87
|
-
##
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
<
|
|
18
|
+
# Operating guide - <system>
|
|
19
|
+
Status: Draft / Verified for <environment and scope>
|
|
20
|
+
Evidence: <code, observed run, operator statement or existing document>
|
|
21
|
+
Operating owner: <confirmed role/person and source, or proposed/unconfirmed>
|
|
22
|
+
|
|
23
|
+
## Normal operation
|
|
24
|
+
What should happen, how often, and how to check it.
|
|
25
|
+
|
|
26
|
+
## Known failure modes
|
|
27
|
+
Symptom: <what the operator sees>
|
|
28
|
+
Evidence: <what establishes this behavior>
|
|
29
|
+
Cause: <verified cause or explicit unknown>
|
|
30
|
+
Action: <supported steps, constraints and stop conditions>
|
|
31
|
+
Validation: <tested environment/date/result, or unverified>
|
|
32
|
+
Escalation: <confirmed role/channel, or missing>
|
|
33
|
+
|
|
34
|
+
## Deploy and recover
|
|
35
|
+
Procedure: <verified commands or a source link; do not invent commands>
|
|
36
|
+
Permissions and prerequisites: <required access and safety conditions>
|
|
37
|
+
Check: <expected observable result>
|
|
38
|
+
Recovery: <tested procedure or the missing recovery evidence>
|
|
39
|
+
|
|
40
|
+
## Monitor and escalate
|
|
41
|
+
Signal: <existing alert or check>
|
|
42
|
+
Meaning: <known interpretation>
|
|
43
|
+
Response: <authorized action and when to escalate>
|
|
44
|
+
|
|
45
|
+
## Open readiness gaps
|
|
46
|
+
Missing evidence, owner to confirm, and proposed next check.
|
|
101
47
|
```
|
|
102
48
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
- [ ] All access returned or transferred (repos, environments, admin panels)
|
|
106
|
-
- [ ] No personal credentials left in the system (API keys, tokens, SSH keys)
|
|
107
|
-
- [ ] `.fde/` folder handed to the successor or archived with the team
|
|
108
|
-
- [ ] Final status sent to sponsor (see `readout.md`)
|
|
109
|
-
- [ ] Retrospective completed (see `close.md`)
|
|
110
|
-
- [ ] Patterns extracted (see `encode-pattern.md`)
|
|
49
|
+
Do not pad the document with an arbitrary number of failures, contacts or commands. A stated retry problem without a known cause should remain an investigation item, not become a fabricated repair procedure. A suggested owner is not an accepted operating responsibility.
|
|
111
50
|
|
|
112
|
-
|
|
51
|
+
For AI components, include relevant model and configuration versions, evaluation checks, failure limits and the supported way to pause actions. Do not assume retraining or autonomous operation is required.
|
|
113
52
|
|
|
114
|
-
|
|
53
|
+
## Verify when requested
|
|
115
54
|
|
|
116
|
-
|
|
55
|
+
Select checks based on the system's actual consequences. For example, the receiving operator may demonstrate normal operation, diagnose a known failure, or recover a failed release in a permitted test environment.
|
|
117
56
|
|
|
118
|
-
|
|
57
|
+
Record each critical capability separately as verified, failed or untested, with evidence. A successful walkthrough cannot compensate for an untested recovery path. Avoid an averaged confidence score that hides a critical gap.
|
|
119
58
|
|
|
120
|
-
|
|
59
|
+
If a procedure fails, correct the guide or system within scope and repeat the affected check. If verification is unavailable, deliver the draft with its limits and propose the next check; do not claim the handoff complete or indefinitely extend the engagement yourself.
|
|
121
60
|
|
|
122
|
-
##
|
|
61
|
+
## Deliver and retain ownership boundaries
|
|
123
62
|
|
|
124
|
-
|
|
125
|
-
- The team defers decisions until you're in the room
|
|
126
|
-
- "Can you just stay one more month?" (translation: the handoff hasn't started)
|
|
127
|
-
- You're the only person who's run the deploy or the rollback
|
|
128
|
-
- The sponsor introduces you as "part of the team" in month 4
|
|
129
|
-
- The customer calls you within a week of "close"
|
|
63
|
+
Return the guide, its verification status and any remaining operating decisions. Save it to the requested location. In a bound engagement, propose updates to `handoff.md` and relevant current-state records under their confirmation rules.
|
|
130
64
|
|
|
131
|
-
|
|
65
|
+
Access changes, exports of customer records, sponsor messages and closure decisions require their own authorization. A request for a runbook does not authorize these actions. Transfer only the material the recipient is entitled to receive.
|
|
132
66
|
|
|
133
67
|
## Principles
|
|
134
68
|
|
|
135
|
-
-
|
|
136
|
-
-
|
|
137
|
-
-
|
|
138
|
-
-
|
|
139
|
-
-
|
|
140
|
-
- Clean exit: no personal credentials left behind, ever.
|
|
141
|
-
- If you're still indispensable after close, the engagement failed on the most important criterion.
|
|
69
|
+
- Write for the person handling the actual failure.
|
|
70
|
+
- Supported procedures beat plausible commands.
|
|
71
|
+
- Draft, tested procedure and accepted ownership remain distinct.
|
|
72
|
+
- Verify critical capabilities individually.
|
|
73
|
+
- Keep private relationship notes and credentials out of an operating guide.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Source access for customer notes
|
|
2
|
+
|
|
3
|
+
Use this guide when `connect` needs a source and when `ingest` cannot reach requested material. Configure only the named source. FDEOps does not bundle source authentication or silently install integrations.
|
|
4
|
+
|
|
5
|
+
## Start with what is already available
|
|
6
|
+
|
|
7
|
+
Inspect the current host's tools. Name which requested source can be read and what remains unavailable. A server appearing in a configuration file is not proof that its credentials or scopes work.
|
|
8
|
+
|
|
9
|
+
For setup, use the source provider's current official documentation and the host's documented connector or MCP configuration. Do not invent package names, API methods, secret values or installation flags. Prefer an existing authenticated connector over adding a second one. Put credentials in the host's supported secret storage; never paste them into a customer record, prompt or report.
|
|
10
|
+
|
|
11
|
+
## Choose the source path
|
|
12
|
+
|
|
13
|
+
| Material | First check | If unavailable |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| Pasted notes or a local export | The user permits this content in the agent; identify the relevant file or text | Ask for the specific missing material, not an integration installation |
|
|
16
|
+
| Meeting notes, such as Granola | A notes tool can read the selected meeting and its source identifier | Use a permitted export or the provider's supported setup |
|
|
17
|
+
| Slack or another chat system | Read access to the specified thread or channel and date range | Ask the user or workspace owner to resolve access; a copied thread is an alternative |
|
|
18
|
+
| Notion or another document system | Read access to the specified page and its linked content when required | Use a permitted document export or resolve the missing page access |
|
|
19
|
+
|
|
20
|
+
Test a configured source with the smallest requested read. Report setup, connectivity and successful retrieval separately. Do not widen access to an entire inbox or workspace just because one item is unavailable.
|
|
21
|
+
|
|
22
|
+
## Keep setup separate from record updates
|
|
23
|
+
|
|
24
|
+
Configuring or testing a source does not require a customer record. Reading requested material does not authorize applying it to one.
|
|
25
|
+
|
|
26
|
+
For a review-only request, use the permitted supplied or fetched text and return a sourced draft. For staging or saving, select the intended customer record first, then follow [ingest](ingest.md): stage → propose → review → explicit confirmation → apply. Source permissions do not authorize a record update, and the FDEOps CLI itself makes no network calls.
|
|
27
|
+
|
|
28
|
+
Short notes can use [debrief](debrief.md) directly. Large files should be staged through the CLI when a customer record has been selected. Preserve source IDs and dates when available; absence of a source remains explicit.
|
|
29
|
+
|
|
30
|
+
FDEOps does not post messages, change source documents, background-sync channels or make recurring pulls through this path. Use the requested read scope only.
|
|
@@ -2,11 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
Use this contract for standalone methods and methods routed through `@fde`.
|
|
4
4
|
|
|
5
|
-
- **Standalone work:** use the supplied, permitted facts, notes, code, and artifacts. A client name, `.fde/` directory, or initialized engagement is not a prerequisite. Do not bootstrap records merely to run a method. Ask only for missing information or authority that changes the next action; mark other gaps as unknown.
|
|
5
|
+
- **Standalone work:** use the supplied, permitted facts, notes, code, and artifacts. A client name, `.fde/` directory, or initialized engagement is not a prerequisite for work on supplied context. Tasks that inspect actual records need those records; staging or saving requires a selected customer. Never fabricate records to make an operational task appear complete. Do not bootstrap records merely to run a method. Ask only for missing information or authority that changes the next action; mark other gaps as unknown.
|
|
6
6
|
- **Artifact names are destinations:** names such as `success.md`, `decisions.md`, and `delivery.md` identify relevant evidence and, when bound, record destinations. If absent, use supplied facts and return the requested draft or result in the current workspace or conversation. Do not invent files or require initialization to complete useful work.
|
|
7
7
|
- **Bound engagement:** honor the current client binding and constraints. Before reading records, run `fde privacy` to verify masking support. Obtain a fresh, identity-matching sanitized `fde resume` packet for this task (or reuse a fresh session-hook packet); retrieve missing evidence with targeted `fde recall <topic>`. Use bounded `fde handoff` for transfer work. Refresh after binding, masking, or record changes. Never substitute raw `.fde/` reads, private blocks, masking dictionaries, or full transcripts. If the CLI is unavailable, use only permitted supplied excerpts and report the context limitation.
|
|
8
8
|
- **Authority:** continue reversible work within authorized scope. Reuse prior authorization when it covers the specific action. Show consequential engagement-record judgments and uncertainties for confirmation before saving unless already explicitly confirmed. New scope, acceptance changes, production actions, exports, and external messages need the applicable authority; a method invocation alone does not supply it. Keep one customer's writes in that customer's record.
|
|
9
9
|
- **Evidence:** distinguish supplied facts, estimates, hypotheses, and unknowns. Cite actual sources; a log date is not attribution. Never invent a source, signer, signature, customer reaction, or acceptance. Keep outcomes **promised → measured → accepted** distinct, and implementation, verification, deployment, and customer acceptance separate. Missing evidence means unproven, not an observed failure.
|
|
10
10
|
- **Data boundary:** use only data permitted by the customer's AI policy; clarify unknown policy before loading their code or data. Never load `<private>` content into a model. Cross-client comparison and exporting reusable material require permission and removal of customer-identifying or confidential content; anonymization alone does not grant permission.
|
|
11
11
|
|
|
12
|
+
## CLI availability
|
|
13
|
+
|
|
14
|
+
Only locate the CLI when the selected task needs it. Check `fde` on PATH and its `fde privacy` capability before reading records. If unavailable, use `node ~/.claude/fdeops/fde.js` when the disk installer placed it there, or `npx --yes fdeops <command>` when package downloads are permitted. Respect local installation and network rules. Run commands for the user; do not turn a missing bare `fde` command into unnecessary manual setup.
|
|
15
|
+
|
|
16
|
+
If no permitted executable is available, explain the missing capability. Continue any useful draft from supplied excerpts, but do not claim to have read, switched, staged, saved or rendered real records. Do not read raw private record files as a fallback.
|
|
17
|
+
|
|
12
18
|
Apply the selected method to this context. Follow its linked supporting methods only when needed; do not restart discovery or repeat already answered questions.
|
|
@@ -1,91 +1,63 @@
|
|
|
1
1
|
# who-decides - Map decision rights
|
|
2
2
|
|
|
3
|
-
**Enter when:**
|
|
3
|
+
**Enter when:** a consequential decision has unclear authority, ownership is disputed, stakeholders change, or observed communication changes affect the next action.
|
|
4
4
|
|
|
5
|
-
**Read first:**
|
|
5
|
+
**Read first:** apply [task context](task-context.md), then permitted `stakeholders.md` and `context.md` evidence. Retrieve relevant trust constraints only when access or disclosure is involved.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Titles, influence and responsiveness can help you find the right conversation. They do not establish approval authority or explain someone's motives.
|
|
8
8
|
|
|
9
9
|
## Method (you do this work)
|
|
10
10
|
|
|
11
|
-
**1.
|
|
11
|
+
**1. Resolve the decisions in front of you.** Reuse the customer's existing agreement, delegation or decision process. For each relevant decision, identify who or what can decide, the scope of that right, its source, and whether it is confirmed, proposed, disputed or unknown. Distinguish budget/scope approval, data/AI-policy approval, release authority, customer acceptance, and operating/recovery responsibility when they differ. Do not require separate people or a full matrix for a routine decision already covered by confirmed authority.
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|------|-----------------|------------------------|
|
|
15
|
-
| **Sponsor** | Signed the SOW, owns the budget, asks "are we on track" | Progress in their units (cost saved, risk retired), never technical detail |
|
|
16
|
-
| **Champion** | Wants you to succeed, opens doors, warns you about politics | Early wins they can point to - makes them look right for backing you |
|
|
17
|
-
| **Gatekeeper** | Controls access: repos, environments, meetings, introductions | Respect for their process; go around them and they close every door |
|
|
18
|
-
| **Resistor** | Sceptical, protective, or threatened - not necessarily wrong | To be heard first; resistors who feel consulted become the strongest allies |
|
|
19
|
-
| **Ghost** | Named on the project, never in the room - either checked out or operating above you | Find out which. A checked-out ghost is noise. A ghost operating above you is the real decision-maker. |
|
|
13
|
+
A sponsor naming an operating team is a proposal until that team accepts responsibility. If accounts conflict, record both attributed positions and the unresolved decision; ask the applicable authority to resolve it. Do not choose an owner from seniority, authorship, repository access or silence. Continue authorized work that does not depend on the disputed right.
|
|
20
14
|
|
|
21
|
-
**2.
|
|
15
|
+
**2. Understand participation.** Identify the sponsor, people helping the work, access/process owners, people raising concerns, and required participants not yet consulted. One person may fill several roles; none must exist merely to complete a taxonomy. Capture their stated concerns and useful knowledge. Opposition may identify a real defect or unaccepted obligation. Being absent does not prove hidden authority or disengagement.
|
|
22
16
|
|
|
23
|
-
|
|
24
|
-
|--------|---------------------|
|
|
25
|
-
| **Green** | Responds same-day, shares context unprompted, introduces you to their people |
|
|
26
|
-
| **Amber** | Response time doubles, defers decisions, "let me check with…" when they used to decide alone |
|
|
27
|
-
| **Red** | Stops responding, routes around you, a new person you've never met starts asking questions |
|
|
17
|
+
**3. Track observable changes.** Compare communication and decisions with the agreed cadence and the person's usual pattern. A delayed reply, shortened meeting or new participant may merit a check; holidays, workload, delegation and scheduling are alternative explanations to escalation. Record the observation separately from any hypothesis. Use green/amber/red only when supported by attributed evidence and its effect on the work; do not derive motives or authority from a color.
|
|
28
18
|
|
|
29
|
-
|
|
19
|
+
Choose follow-up timing from the decision deadline and potential impact. An imminent release with a missing owner warrants prompt resolution; an ordinary delayed reply does not have an automatic 48-hour escalation clock. Offer a neutral question such as “Has anything changed in the decision or timing we should account for?” Messages and outreach still require authorization.
|
|
30
20
|
|
|
31
|
-
**
|
|
21
|
+
**4. Learn from the existing team.** Ask what they tried, what constraints remain and what they expect to own. Use established terminology and credit actual contributions. Do not assume the team was passed over, resents outside help, or knows every cause. Verify consequential technical claims through the relevant evidence.
|
|
32
22
|
|
|
33
|
-
**
|
|
34
|
-
- Questions shift from "what are you building" to "when will it be done" - someone above is asking.
|
|
35
|
-
- A meeting gets shortened or cancelled - they're meeting without you.
|
|
36
|
-
- A new stakeholder appears with no introduction - they were sent to check.
|
|
23
|
+
**5. Prepare the decision conversation.** For a decision involving several parties, identify unresolved questions, relevant decision rights and needed evidence. Address dependencies in a useful order through existing channels. Record stated objections faithfully; label any possible motivation as an unverified hypothesis only when it matters to the next action. A short pre-mortem can ask “What missing evidence or unresolved responsibility could prevent this decision?” It must not invent an opponent or predict agreement.
|
|
37
24
|
|
|
38
|
-
|
|
25
|
+
**6. Keep identities consistent.** Use one confirmed spelling per person across the table and contact records. `fde doctor` can flag possible identity clusters; verify that they are the same person before consolidating. Do not erase historical evidence to tidy the display.
|
|
39
26
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
In every engagement where an external FDE was brought in, an internal team was passed over. They know the codebase better than you, they know the politics better than you, and they resent your presence. Three moves:
|
|
43
|
-
|
|
44
|
-
- **Ask what they tried.** Before your first standup. Their previous approach is the real requirements doc.
|
|
45
|
-
- **Use their language.** In every meeting. They hear their words coming back and they feel consulted, not replaced.
|
|
46
|
-
- **Make them look right.** Credit their prior work in your artifacts. They protect you if they feel respected; they wait for your mistake if they don't.
|
|
47
|
-
|
|
48
|
-
**6. Before a decision meeting: pre-wire, then pre-mortem.**
|
|
49
|
-
|
|
50
|
-
A recommendation that needs several people to say yes is not won in the room; it is won in the week before it. When the FDE is heading into a go/no-go, a budget ask, or anything that visibly costs someone territory:
|
|
27
|
+
## Artifact
|
|
51
28
|
|
|
52
|
-
|
|
53
|
-
- **Name what each swing is protecting.** The objection voiced in a meeting is usually a proxy: headcount, budget, credibility, control, or the reporting line that gets messier. Write the underlying motivation next to the stated objection - they are different sentences.
|
|
54
|
-
- **Sequence the conversations.** Whoever makes the others easier to win goes first; whoever is reassured by seeing names already on board goes last. One-on-one for anyone who would lose face conceding in a group.
|
|
55
|
-
- **Pre-mortem the meeting.** "It's Thursday, the meeting went badly - who sank it, and with what sentence?" That sentence is the pre-wire you are missing. If the answer is a specific person's objection, their conversation happens *before* the room convenes, not in it.
|
|
29
|
+
Return the relevant decision rights directly, or update the existing `stakeholders.md` under the confirmed record rules. Link an existing authoritative record instead of duplicating its full contents.
|
|
56
30
|
|
|
57
|
-
|
|
31
|
+
```markdown
|
|
32
|
+
| Decision / responsibility | Person or mechanism | Scope | Source | Status / next action |
|
|
33
|
+
|---------------------------|---------------------|-------|--------|----------------------|
|
|
34
|
+
| <relevant decision> | <confirmed person/mechanism or unknown> | <system, environment, limit> | <actual agreement/policy/reference> | <confirmed / proposed / disputed / unknown; next step> |
|
|
35
|
+
```
|
|
58
36
|
|
|
59
|
-
|
|
37
|
+
Keep a compact participation/signal table where it helps:
|
|
60
38
|
|
|
61
|
-
**`stakeholders.md`** - updated with evidence-dated signal changes:
|
|
62
39
|
```markdown
|
|
63
40
|
| Who | Role | Signal | Last evidence | Notes |
|
|
64
41
|
|-----|------|--------|---------------|-------|
|
|
65
|
-
| <name> |
|
|
66
|
-
| <name> | resistor→champion | amber→green | shared API docs unprompted after we used their naming (Jun 14) | was passed-over lead |
|
|
42
|
+
| <name> | <observed role> | <supported signal or unknown> | <source and date> | <stated concern / unresolved question> |
|
|
67
43
|
```
|
|
68
44
|
|
|
69
|
-
Signal
|
|
45
|
+
Preserve the existing `## Signal history` section and its dated `[signal:...]` entries. CLI status, receipts and dashboard read that history; changing the display table alone does not update those signals. Use the existing confirmed contact/debrief workflow for signal changes. Never delete or overwrite history while refreshing the tables.
|
|
70
46
|
|
|
71
47
|
## Checkpoint
|
|
72
48
|
|
|
73
|
-
|
|
49
|
+
State the decision that can proceed under confirmed authority and any dependent action still blocked by an unknown or disputed right. Include material observed changes and the next evidence or conversation needed. If nothing relevant changed, reuse the map; no calendar interval alone requires a new review.
|
|
74
50
|
|
|
75
51
|
## Worked example
|
|
76
52
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
Two signals, not one feeling: response time doubled *and* a finance analyst nobody introduced started asking when the work completes. That combination is an invisible escalation - someone above Priya is asking, and the meeting is already happening without the FDE.
|
|
80
|
-
|
|
81
|
-
Positions: Priya is a supporter under pressure. Marco is a supporter who does not vote. Denise (finance) is the swing, and what she is protecting is not the budget line she cites - it is that her team's escalation started this and she has nothing to show her own director. Raj is a firm opponent on the rewrite question, and no amount of the same argument moves him.
|
|
53
|
+
A sponsor requests release on Thursday and names Platform as operator. The Platform lead says the team has not accepted on-call responsibility. The sponsor's slower replies and a new finance participant are observed, but their cause is unknown.
|
|
82
54
|
|
|
83
|
-
|
|
55
|
+
Return the map as a draft; when bound and confirmed, save it in `stakeholders.md` and the next action in `context.md`. Record the sponsor's request and Platform's objection with their sources. Existing policy confirms who approves production releases; it does not establish that Platform accepted recovery duties. The release authority row cites that policy; the operating responsibility row remains disputed. Acceptance and data-policy rights are checked only to the extent required by this change, reusing existing evidence. Prepare verification and the release receipt while the responsible parties resolve coverage. Do not infer escalation, assign Platform by title, or turn the sponsor's deadline into deployment permission.
|
|
84
56
|
|
|
85
57
|
## Principles
|
|
86
58
|
|
|
87
|
-
-
|
|
88
|
-
-
|
|
89
|
-
-
|
|
90
|
-
-
|
|
91
|
-
-
|
|
59
|
+
- Resolve scoped authority from evidence; influence is not delegation.
|
|
60
|
+
- Separate observed behavior, stated concerns and possible explanations.
|
|
61
|
+
- Ownership requires applicable agreement, not an unchallenged name in a table.
|
|
62
|
+
- Reuse confirmed decisions and scale follow-up to impact.
|
|
63
|
+
- Preserve attributed history and unknowns; never fabricate agreement.
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
"files": {
|
|
5
5
|
"SKILL.md": "f8666990f8b4463af5f29acdb1d1cd5e8fec68119b82a891aa2322a213f37344",
|
|
6
6
|
"references/encode-pattern.md": "3be7bf9d0f69af31659423c54d6023a4af1556e2ce200fb025bf64d0757de4d8",
|
|
7
|
-
"references/task-context.md": "
|
|
7
|
+
"references/task-context.md": "73eea2d7f164fac3226599e5be26ae4e79dcf69e0d24428dd12d623861410490"
|
|
8
8
|
}
|
|
9
9
|
}
|
|
@@ -2,11 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
Use this contract for standalone methods and methods routed through `@fde`.
|
|
4
4
|
|
|
5
|
-
- **Standalone work:** use the supplied, permitted facts, notes, code, and artifacts. A client name, `.fde/` directory, or initialized engagement is not a prerequisite. Do not bootstrap records merely to run a method. Ask only for missing information or authority that changes the next action; mark other gaps as unknown.
|
|
5
|
+
- **Standalone work:** use the supplied, permitted facts, notes, code, and artifacts. A client name, `.fde/` directory, or initialized engagement is not a prerequisite for work on supplied context. Tasks that inspect actual records need those records; staging or saving requires a selected customer. Never fabricate records to make an operational task appear complete. Do not bootstrap records merely to run a method. Ask only for missing information or authority that changes the next action; mark other gaps as unknown.
|
|
6
6
|
- **Artifact names are destinations:** names such as `success.md`, `decisions.md`, and `delivery.md` identify relevant evidence and, when bound, record destinations. If absent, use supplied facts and return the requested draft or result in the current workspace or conversation. Do not invent files or require initialization to complete useful work.
|
|
7
7
|
- **Bound engagement:** honor the current client binding and constraints. Before reading records, run `fde privacy` to verify masking support. Obtain a fresh, identity-matching sanitized `fde resume` packet for this task (or reuse a fresh session-hook packet); retrieve missing evidence with targeted `fde recall <topic>`. Use bounded `fde handoff` for transfer work. Refresh after binding, masking, or record changes. Never substitute raw `.fde/` reads, private blocks, masking dictionaries, or full transcripts. If the CLI is unavailable, use only permitted supplied excerpts and report the context limitation.
|
|
8
8
|
- **Authority:** continue reversible work within authorized scope. Reuse prior authorization when it covers the specific action. Show consequential engagement-record judgments and uncertainties for confirmation before saving unless already explicitly confirmed. New scope, acceptance changes, production actions, exports, and external messages need the applicable authority; a method invocation alone does not supply it. Keep one customer's writes in that customer's record.
|
|
9
9
|
- **Evidence:** distinguish supplied facts, estimates, hypotheses, and unknowns. Cite actual sources; a log date is not attribution. Never invent a source, signer, signature, customer reaction, or acceptance. Keep outcomes **promised → measured → accepted** distinct, and implementation, verification, deployment, and customer acceptance separate. Missing evidence means unproven, not an observed failure.
|
|
10
10
|
- **Data boundary:** use only data permitted by the customer's AI policy; clarify unknown policy before loading their code or data. Never load `<private>` content into a model. Cross-client comparison and exporting reusable material require permission and removal of customer-identifying or confidential content; anonymization alone does not grant permission.
|
|
11
11
|
|
|
12
|
+
## CLI availability
|
|
13
|
+
|
|
14
|
+
Only locate the CLI when the selected task needs it. Check `fde` on PATH and its `fde privacy` capability before reading records. If unavailable, use `node ~/.claude/fdeops/fde.js` when the disk installer placed it there, or `npx --yes fdeops <command>` when package downloads are permitted. Respect local installation and network rules. Run commands for the user; do not turn a missing bare `fde` command into unnecessary manual setup.
|
|
15
|
+
|
|
16
|
+
If no permitted executable is available, explain the missing capability. Continue any useful draft from supplied excerpts, but do not claim to have read, switched, staged, saved or rendered real records. Do not read raw private record files as a fallback.
|
|
17
|
+
|
|
12
18
|
Apply the selected method to this context. Follow its linked supporting methods only when needed; do not restart discovery or repeat already answered questions.
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
"SKILL.md": "9f08605914670f2c0bd09631d3d40c079e7f63174d1a2607e60ea6eca5d54d93",
|
|
6
6
|
"references/close.md": "095266722624e4bc647628243c8be0e69b02017ef6b4e3a7e7790ec1f53ab7c0",
|
|
7
7
|
"references/encode-pattern.md": "3be7bf9d0f69af31659423c54d6023a4af1556e2ce200fb025bf64d0757de4d8",
|
|
8
|
-
"references/task-context.md": "
|
|
8
|
+
"references/task-context.md": "73eea2d7f164fac3226599e5be26ae4e79dcf69e0d24428dd12d623861410490"
|
|
9
9
|
}
|
|
10
10
|
}
|
|
@@ -2,11 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
Use this contract for standalone methods and methods routed through `@fde`.
|
|
4
4
|
|
|
5
|
-
- **Standalone work:** use the supplied, permitted facts, notes, code, and artifacts. A client name, `.fde/` directory, or initialized engagement is not a prerequisite. Do not bootstrap records merely to run a method. Ask only for missing information or authority that changes the next action; mark other gaps as unknown.
|
|
5
|
+
- **Standalone work:** use the supplied, permitted facts, notes, code, and artifacts. A client name, `.fde/` directory, or initialized engagement is not a prerequisite for work on supplied context. Tasks that inspect actual records need those records; staging or saving requires a selected customer. Never fabricate records to make an operational task appear complete. Do not bootstrap records merely to run a method. Ask only for missing information or authority that changes the next action; mark other gaps as unknown.
|
|
6
6
|
- **Artifact names are destinations:** names such as `success.md`, `decisions.md`, and `delivery.md` identify relevant evidence and, when bound, record destinations. If absent, use supplied facts and return the requested draft or result in the current workspace or conversation. Do not invent files or require initialization to complete useful work.
|
|
7
7
|
- **Bound engagement:** honor the current client binding and constraints. Before reading records, run `fde privacy` to verify masking support. Obtain a fresh, identity-matching sanitized `fde resume` packet for this task (or reuse a fresh session-hook packet); retrieve missing evidence with targeted `fde recall <topic>`. Use bounded `fde handoff` for transfer work. Refresh after binding, masking, or record changes. Never substitute raw `.fde/` reads, private blocks, masking dictionaries, or full transcripts. If the CLI is unavailable, use only permitted supplied excerpts and report the context limitation.
|
|
8
8
|
- **Authority:** continue reversible work within authorized scope. Reuse prior authorization when it covers the specific action. Show consequential engagement-record judgments and uncertainties for confirmation before saving unless already explicitly confirmed. New scope, acceptance changes, production actions, exports, and external messages need the applicable authority; a method invocation alone does not supply it. Keep one customer's writes in that customer's record.
|
|
9
9
|
- **Evidence:** distinguish supplied facts, estimates, hypotheses, and unknowns. Cite actual sources; a log date is not attribution. Never invent a source, signer, signature, customer reaction, or acceptance. Keep outcomes **promised → measured → accepted** distinct, and implementation, verification, deployment, and customer acceptance separate. Missing evidence means unproven, not an observed failure.
|
|
10
10
|
- **Data boundary:** use only data permitted by the customer's AI policy; clarify unknown policy before loading their code or data. Never load `<private>` content into a model. Cross-client comparison and exporting reusable material require permission and removal of customer-identifying or confidential content; anonymization alone does not grant permission.
|
|
11
11
|
|
|
12
|
+
## CLI availability
|
|
13
|
+
|
|
14
|
+
Only locate the CLI when the selected task needs it. Check `fde` on PATH and its `fde privacy` capability before reading records. If unavailable, use `node ~/.claude/fdeops/fde.js` when the disk installer placed it there, or `npx --yes fdeops <command>` when package downloads are permitted. Respect local installation and network rules. Run commands for the user; do not turn a missing bare `fde` command into unnecessary manual setup.
|
|
15
|
+
|
|
16
|
+
If no permitted executable is available, explain the missing capability. Continue any useful draft from supplied excerpts, but do not claim to have read, switched, staged, saved or rendered real records. Do not read raw private record files as a fallback.
|
|
17
|
+
|
|
12
18
|
Apply the selected method to this context. Follow its linked supporting methods only when needed; do not restart discovery or repeat already answered questions.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"generator": "bin/generate-skills.js",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"files": {
|
|
5
|
+
"SKILL.md": "4df02c561ea8d2baf66ac373d67527c8826b72d80bf7b1fedc248c45a572adf9",
|
|
6
|
+
"references/connect.md": "37ad703ece7fe3596be4d5d3697cc4ba5e6062615f9576733c20d055fc3e4927",
|
|
7
|
+
"references/debrief.md": "2d2db9a177f5341a9a2721a9d6ea32a6d07e7e982e621429ca408a38bc5617c1",
|
|
8
|
+
"references/ingest.md": "24880bc3d95cda09ec6c2f5edebd17fba99deb912f93e15c8b715a287283da84",
|
|
9
|
+
"references/source-setup.md": "a28ae7c6dbb2573a66f31b30b7abca34bc52573fe34d48fff4c7490e4dc85d3e",
|
|
10
|
+
"references/task-context.md": "73eea2d7f164fac3226599e5be26ae4e79dcf69e0d24428dd12d623861410490"
|
|
11
|
+
}
|
|
12
|
+
}
|