fdeops 5.0.0 → 5.1.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/AGENTS.md +1 -1
- package/README.md +22 -24
- 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 +1 -1
- 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 +1 -1
- 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 +100 -0
- package/skills/earn-trust/references/task-context.md +18 -0
- package/skills/evaluate/.fde-generated.json +1 -1
- package/skills/evaluate/references/task-context.md +7 -1
- package/skills/fde/SKILL.md +9 -8
- package/skills/fde/references/connect.md +14 -24
- package/skills/fde/references/debrief.md +2 -0
- package/skills/fde/references/ingest.md +4 -2
- package/skills/fde/references/plan.md +6 -6
- 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/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 +1 -1
- 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 +2 -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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +91 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: earn-trust
|
|
3
|
+
description: Plan how to earn customer trust and appropriate access. Use when credibility, permissions or AI policy constrain the engagement.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# earn-trust
|
|
7
|
+
|
|
8
|
+
<!-- Generated by bin/generate-skills.js; edit the canonical references and catalog. -->
|
|
9
|
+
|
|
10
|
+
## Purpose
|
|
11
|
+
|
|
12
|
+
Plan how to earn customer trust and appropriate access. Use when credibility, permissions or AI policy constrain the engagement.
|
|
13
|
+
|
|
14
|
+
Read [the task context contract](references/task-context.md), then [the method](references/earn-trust.md). Load further references only when the task needs them. Everything linked is included in this skill; no other skill pack is required.
|
|
15
|
+
|
|
16
|
+
## Principles
|
|
17
|
+
|
|
18
|
+
- Work directly from the supplied permitted context. Standalone work does not require an engagement folder or initialization. Record filenames in the method are optional persistence destinations when no engagement is bound.
|
|
19
|
+
- If called by @fde, reuse its current sanitized packet and scope. Do not restart setup, discovery or questions already answered.
|
|
20
|
+
- The task context contract controls persistence and authority in both modes. Preserve unknowns and distinguish implementation, verification, deployment and acceptance.
|
|
21
|
+
- Use the customer's repository instructions and available tools. Report a missing capability or unrun check honestly; do not claim that installing a skill provisions infrastructure.
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# earn-trust - Earn access
|
|
2
|
+
|
|
3
|
+
**Enter when:** new engagement where you don't have full access yet, trust is thin, the customer said "let's start small," or you need to navigate "we don't trust AI-generated code."
|
|
4
|
+
|
|
5
|
+
**Read first:** `trust-profile.md`, `stakeholders.md`, `context.md`. The trust profile tells you where the walls are; the stakeholder map tells you who built them.
|
|
6
|
+
|
|
7
|
+
Trust is the currency of FDE work. Code quality gets you a second week; trust gets you the engagement. It's earned in small, visible moves - never demanded, never assumed, and never recovered once burned.
|
|
8
|
+
|
|
9
|
+
## Method (you do this work)
|
|
10
|
+
|
|
11
|
+
**1. The trust ladder - every engagement climbs it in order:**
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
Level 0: Observer → read-only access, watching
|
|
15
|
+
Level 1: Advisor → recommendations, no code changes
|
|
16
|
+
Level 2: Contributor → PRs reviewed by their team
|
|
17
|
+
Level 3: Committer → direct push to feature branches
|
|
18
|
+
Level 4: Owner → production access, deploy authority
|
|
19
|
+
Level 5: Trusted → they call you before making decisions
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**Never skip a level.** The FDE who asks for production access on day two gets observer access for a month. The FDE who ships a clean PR on day two gets committer access by week two. Each level is earned by demonstrating competence AND respect at the current level.
|
|
23
|
+
|
|
24
|
+
**2. The first-week trust plays - specific, not generic:**
|
|
25
|
+
|
|
26
|
+
| Day | Move | Why it works |
|
|
27
|
+
|-----|------|-------------|
|
|
28
|
+
| 1 | Fix a small, visible, annoying bug - something the team has been stepping over (only after `success.md` has a signer, or the FDE overrides with the unknown still visible) | Proves you can ship in their environment without breaking things |
|
|
29
|
+
| 1 | Ask the passed-over team what naming conventions they use - then use them | Shows respect before competence |
|
|
30
|
+
| 2 | Send a one-paragraph status to the sponsor without being asked | Sets the pattern: they hear from you before they have to ask |
|
|
31
|
+
| 3 | Find a genuine risk and flag it without drama | Demonstrates you're protecting them, not performing |
|
|
32
|
+
| 5 | Show a small win to the champion so they can share it upward | Gives them evidence their bet on you was right |
|
|
33
|
+
|
|
34
|
+
**3. Navigate "we don't trust AI-generated code":**
|
|
35
|
+
|
|
36
|
+
This is increasingly common. The right response is respect, not persuasion:
|
|
37
|
+
|
|
38
|
+
- **Ask the policy, don't assume.** "Does your organisation have a position on AI-assisted code in production?"
|
|
39
|
+
- **If prohibited:** work without AI on their code. Use fdeops for engagement memory (`.fde/` files) and your own planning - that's your tooling, not theirs.
|
|
40
|
+
- **If permitted with review:** every AI-touched line goes through their normal review process. Flag it: "AI-assisted, human-reviewed" in commit messages if they want traceability.
|
|
41
|
+
- **If grey area:** treat as prohibited until someone with authority says otherwise. The cost of asking is zero; the cost of guessing wrong is the engagement.
|
|
42
|
+
- **Never hide it.** An FDE caught using prohibited AI tools loses the engagement and the reputation. Full stop.
|
|
43
|
+
|
|
44
|
+
**4. Trust recovery - when you've made a mistake:**
|
|
45
|
+
|
|
46
|
+
Mistakes happen. What matters is speed and honesty:
|
|
47
|
+
|
|
48
|
+
- **Own it in the first hour.** Not "we found an issue" - "I introduced this bug." Passive voice erodes trust faster than the mistake.
|
|
49
|
+
- **Show the fix AND the prevention.** "Here's what happened, here's the fix, here's the test that prevents it next time."
|
|
50
|
+
- **One visible win within 48 hours.** Trust recovery needs a concrete success close to the mistake - not weeks later.
|
|
51
|
+
- **Never minimise.** "It was a small bug" is your assessment, not theirs. Let them size it.
|
|
52
|
+
|
|
53
|
+
**5. The trust account - deposits and withdrawals:**
|
|
54
|
+
|
|
55
|
+
| Deposits (slow, steady) | Withdrawals (fast, expensive) |
|
|
56
|
+
|-------------------------|-------------------------------|
|
|
57
|
+
| On-time status updates | Surprises - especially bad ones they hear from someone else |
|
|
58
|
+
| Using their conventions | "I know better" energy - even when you do |
|
|
59
|
+
| Flagging risks early | Breaking something in production |
|
|
60
|
+
| Crediting the internal team | Taking credit for shared work |
|
|
61
|
+
| Asking before touching sensitive code | Assuming access you haven't been given |
|
|
62
|
+
| Over-communicating during incidents | Going quiet when things are hard |
|
|
63
|
+
|
|
64
|
+
## Artifact
|
|
65
|
+
|
|
66
|
+
**`trust-profile.md`** - updated sections:
|
|
67
|
+
```markdown
|
|
68
|
+
## Trust level
|
|
69
|
+
Current: <level 0-5> as of <date>
|
|
70
|
+
Evidence: <what earned this level>
|
|
71
|
+
Next target: <level> - requires: <specific action>
|
|
72
|
+
|
|
73
|
+
## AI policy
|
|
74
|
+
Status: <prohibited / permitted-with-review / grey-area-treating-as-prohibited>
|
|
75
|
+
Source: <who confirmed, when>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**`decisions.md`** - log trust-significant moves: "Flagged migration risk to ops lead before they discovered it (Day 3) - trust deposit."
|
|
79
|
+
|
|
80
|
+
## Checkpoint
|
|
81
|
+
|
|
82
|
+
One question to the FDE: "Are we at the right trust level for what we need to do next week?" If not: name the gap, name the move, and put it in `context.md` as the next action.
|
|
83
|
+
|
|
84
|
+
## The week 2-4 valley
|
|
85
|
+
|
|
86
|
+
Week 1 is the honeymoon - everyone's excited, access is fresh, the brief is new. Weeks 2-4 are the valley: novelty wears off, real problems surface, the sponsor's patience shifts from "take your time" to "when do we see results." Most engagements silently fail here, not at ship.
|
|
87
|
+
|
|
88
|
+
Counter it:
|
|
89
|
+
- Ship one visible artifact per week, even if discovery isn't done. A terrain map, a risk register, a stakeholder signal update - something the sponsor can point to.
|
|
90
|
+
- Proactive status update at end of week 2 - explicitly name what discovery revealed that wasn't in the brief. This resets expectations with evidence.
|
|
91
|
+
- If still in discovery at week 3: the conversation with the sponsor about scope or timeline reset is overdue. Don't wait for them to ask.
|
|
92
|
+
|
|
93
|
+
## Principles
|
|
94
|
+
|
|
95
|
+
- Trust is earned in small moves, lost in one. Never skip the ladder.
|
|
96
|
+
- The first-week plays are specific and deliberate - not "be helpful."
|
|
97
|
+
- AI policy: ask, never assume. Prohibited until confirmed.
|
|
98
|
+
- Mistakes happen; hiding them doesn't. Own it in the first hour.
|
|
99
|
+
- The FDE who makes the internal team look right earns trust faster than the FDE who ships the most code.
|
|
100
|
+
- Weeks 2-4 are where engagements silently die. Ship visible artifacts weekly to survive the valley.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Task context and evidence
|
|
2
|
+
|
|
3
|
+
Use this contract for standalone methods and methods routed through `@fde`.
|
|
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 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
|
+
- **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
|
+
- **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
|
+
- **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
|
+
- **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
|
+
- **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
|
+
|
|
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
|
+
|
|
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.
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"references/qa.md": "d8f58e6d36436469a58aeb1107037f3e27fa81ff5b82d0e4df3c23eeadaf683c",
|
|
11
11
|
"references/review.md": "63a007f78288089cc84cccc72647e8ce6721b7efa0f4f8d6774c0f0af594749d",
|
|
12
12
|
"references/ship.md": "8cdcb2d4d6eb57e0adf3f1996bc02ae66920852ca304d2afd778fa483b7e969a",
|
|
13
|
-
"references/task-context.md": "
|
|
13
|
+
"references/task-context.md": "73eea2d7f164fac3226599e5be26ae4e79dcf69e0d24428dd12d623861410490",
|
|
14
14
|
"references/verification.md": "d453c075b849437375338fd23782ca7fe6d427b05137a2b10fc2f724aaf7f8a9"
|
|
15
15
|
}
|
|
16
16
|
}
|
|
@@ -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.
|
package/skills/fde/SKILL.md
CHANGED
|
@@ -126,7 +126,7 @@ Direct. Their words. No "Certainly." Playback 2-4 lines, then act. One question
|
|
|
126
126
|
|
|
127
127
|
New embed: sprint / standard / programme changes depth, not which skills exist. Before first code: safe place to break things, plus AI-code policy. Before go-live: who needs to know, what's the rollback. Before a sponsor artifact: as-is or gut-check first.
|
|
128
128
|
|
|
129
|
-
Muddy signal: name it ("discover or rescue - leaning X"). Never a phase-picker interview. Default:
|
|
129
|
+
Muddy signal: name it ("discover or rescue - leaning X"). Never a phase-picker interview. Default: brief if new, audit if takeover.
|
|
130
130
|
|
|
131
131
|
## Routing - 6 stages
|
|
132
132
|
|
|
@@ -136,11 +136,11 @@ Work names (engage, diagnose, align, deliver, realize, transfer) are the same ma
|
|
|
136
136
|
|
|
137
137
|
| You hear | Skill | Reference |
|
|
138
138
|
|----------|-------|-----------|
|
|
139
|
-
| Engage, onboarding, starting fresh, new customer, first meeting, just got the brief, set product strategy, define success metrics, scope the brief |
|
|
139
|
+
| Engage, onboarding, starting fresh, new customer, first meeting, just got the brief, set product strategy, define success metrics, scope the brief | brief | `references/land.md` |
|
|
140
140
|
| Taking over, previous consultant left, joining mid-project | audit | `references/audit.md` |
|
|
141
141
|
| Need to understand who matters, who decides, map decision rights, who blocks quietly | who-decides | `references/who-decides.md` |
|
|
142
142
|
| Need to earn access, navigate AI policy, build credibility | earn-trust | `references/earn-trust.md` |
|
|
143
|
-
| "Also can you…", scope expanding, timeline unchanged, hold scope, scope the brief after kickoff |
|
|
143
|
+
| "Also can you…", scope expanding, timeline unchanged, hold scope, scope the brief after kickoff | scope | `references/hold-scope.md` |
|
|
144
144
|
|
|
145
145
|
### Discover
|
|
146
146
|
|
|
@@ -157,8 +157,8 @@ Work names (engage, diagnose, align, deliver, realize, transfer) are the same ma
|
|
|
157
157
|
|----------|-------|-----------|
|
|
158
158
|
| Align, break this down, what order, sequence the delivery, align the plan | plan | `references/plan.md` |
|
|
159
159
|
| Sponsor needs justification, need to defend budget or timeline, build the business case | business-case | `references/business-case.md` |
|
|
160
|
-
| Significant decision, multiple approaches, "what should we do?", generate solutions, generate options, not the playbook, from the surviving facts |
|
|
161
|
-
| 20 things are "urgent," need to pick the 3 that matter, prioritize three |
|
|
160
|
+
| Significant decision, multiple approaches, "what should we do?", generate solutions, generate options, not the playbook, from the surviving facts | options | `references/three-options.md` |
|
|
161
|
+
| 20 things are "urgent," need to pick the 3 that matter, prioritize three | prioritize | `references/pick-three.md` |
|
|
162
162
|
|
|
163
163
|
### Ship
|
|
164
164
|
|
|
@@ -172,6 +172,7 @@ Work names (engage, diagnose, align, deliver, realize, transfer) are the same ma
|
|
|
172
172
|
| Exercise the customer journey, browser acceptance, functional QA | qa | `references/qa.md` |
|
|
173
173
|
| Ready to deploy, going live, pre-flight, release the verified increment | ship | `references/ship.md` |
|
|
174
174
|
| Review this change, review the pull request, is it safe, does it match what we agreed | review | `references/review.md` |
|
|
175
|
+
| Evaluate model answers, retrieval or agent actions against representative cases | evaluate | `references/eval-pack.md` |
|
|
175
176
|
| 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 |
|
|
176
177
|
| Wrap the session / share the thinking / catch teammates up / before I open the PR | (memory contract - session digest) | SKILL.md **Session digest** - write TL;DR + decisions/why into `.fde/`; no transcript sync |
|
|
177
178
|
| "We can always revert" - need to actually test the escape route, rehearse rollback | rollback | `references/rollback.md` |
|
|
@@ -184,7 +185,7 @@ Work names (engage, diagnose, align, deliver, realize, transfer) are the same ma
|
|
|
184
185
|
| Demo coming up, show-and-tell, exec walkthrough, prepare the demo | demo-prep | `references/demo-prep.md` |
|
|
185
186
|
| Just out of a meeting, raw notes, "they said…", "debrief", user interviews, workshop notes, capture the meeting | debrief | the debrief verb (above) + `references/debrief.md` |
|
|
186
187
|
| Make sure we're up to date, pull what's relevant, fetch from Granola/Slack/Gmail/transcript | ingest | `references/ingest.md` (capability check → stage → propose → confirm → apply) |
|
|
187
|
-
| Connect a new MCP / connect Granola Slack or Notion / what can you pull | connect | `references/connect.md` (+ `
|
|
188
|
+
| Connect a new MCP / connect Granola Slack or Notion / what can you pull | connect | `references/connect.md` (+ `references/source-setup.md`) |
|
|
188
189
|
| Prep me for a meeting / walk-in brief / "what should I know before I talk to…" | - | run `fde prep "<label>"`, present in plain language |
|
|
189
190
|
| Sponsor's boss needs a summary, board update, brief the board, justify continued investment | board-memo | `references/board-memo.md` |
|
|
190
191
|
| Status across all my customers, view the portfolio | dashboard | `references/dashboard.md` |
|
|
@@ -194,9 +195,9 @@ Work names (engage, diagnose, align, deliver, realize, transfer) are the same ma
|
|
|
194
195
|
| You hear | Skill | Reference |
|
|
195
196
|
|----------|-------|-----------|
|
|
196
197
|
| Juggling 2+ customers, losing track, context-switching, switch engagements | switch-clients | `references/switch-clients.md` |
|
|
197
|
-
| Transfer, wrapping up, handoff, making yourself replaceable, transfer operations |
|
|
198
|
+
| Transfer, wrapping up, handoff, making yourself replaceable, transfer operations | handoff | `references/close.md` |
|
|
198
199
|
| Engagement ending, team needs to operate without you, write the runbook | runbook | `references/runbook.md` |
|
|
199
|
-
| Something worked well and will apply to future engagements, encode the pattern |
|
|
200
|
+
| Something worked well and will apply to future engagements, encode the pattern | feedback | `references/encode-pattern.md` |
|
|
200
201
|
| "Red-team this," "stress-test my plan," poke holes, challenge the plan, what am I missing | red-team | `references/red-team.md` |
|
|
201
202
|
| "What did we agree about X?", scope dispute, receipts | - | run `fde receipts <term>`, answer with dates |
|
|
202
203
|
|
|
@@ -1,34 +1,24 @@
|
|
|
1
1
|
# connect - Connect a source
|
|
2
2
|
|
|
3
|
-
**Enter when:** the
|
|
3
|
+
**Enter when:** the user asks to connect a notes, chat or document source, or an expected source cannot be read.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
**Who runs setup:** you guide; the **host** (Cursor/Claude) must save MCP config. You cannot silently install servers into the host.
|
|
8
|
-
|
|
9
|
-
## Honest contract
|
|
10
|
-
|
|
11
|
-
- **Daily work does not need a source MCP.** Paste notes → debrief. File on disk → `fde ingest`.
|
|
12
|
-
- **Connect means a source**, not FDEOps. Granola/Slack/Notion credentials stay with that MCP. FDEOps never pushes, never ambient-syncs, never stores their tokens.
|
|
13
|
-
- **Sink is the CLI in this bound workspace** (`fde ingest`). `fdeops-ingest` MCP is optional. If you use it, pass `engagement` as the `.fde/` path from `fde resume --bind` (MCP servers often do not inherit the workspace bind).
|
|
14
|
-
- Never invent that Granola/Slack is available if tools are missing. Never auto-apply to `.fde/`.
|
|
5
|
+
Apply [task context](task-context.md). Source setup can run independently of a customer record. Follow [source setup](source-setup.md) for permitted tools, credentials, connectivity checks and export alternatives.
|
|
15
6
|
|
|
16
7
|
## Method
|
|
17
8
|
|
|
18
|
-
1.
|
|
19
|
-
2.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
3. **Emit config for the source only** - open `mcp/recipes/<source>.md`. Fill placeholders from *that product's* docs. Tell them to paste secrets into host env - never into `.fde/`.
|
|
24
|
-
4. **Tell them where to paste** - Cursor MCP settings / `mcp.json`. Claude Code: their MCP config. Save → reload MCP / restart session.
|
|
25
|
-
5. **Verify** - after reload: re-run capability check. If source tools appear, offer a **test pull** staged to `.inbox/` only. Stop before apply unless they ask to propose.
|
|
26
|
-
6. **Handoff phrase** - e.g. `@fde pull today's Acme Granola into the fieldbook`.
|
|
9
|
+
1. Identify the source and the material the user wants to read. Inspect the host's actual available tools before recommending setup.
|
|
10
|
+
2. If the source already works, use a narrowly scoped requested read. Do not install another connector.
|
|
11
|
+
3. If setup is needed, verify current provider and host documentation, explain the required access, and make only authorized configuration changes. Never put credentials into prompts or customer records.
|
|
12
|
+
4. Test the selected source and distinguish configuration from successful retrieval. If access is blocked, report the specific limitation and an available file or paste alternative.
|
|
13
|
+
5. If the user also wants to update a customer record, continue with [ingest](ingest.md) after selecting that record. Otherwise stop after the requested setup or read.
|
|
27
14
|
|
|
28
|
-
##
|
|
15
|
+
## Checkpoint
|
|
29
16
|
|
|
30
|
-
Do not
|
|
17
|
+
Return what is connected, what read was verified, any access gap, and how to request the next pull. Do not claim an integration works from configuration alone or write customer records during setup.
|
|
31
18
|
|
|
32
|
-
##
|
|
19
|
+
## Principles
|
|
33
20
|
|
|
34
|
-
|
|
21
|
+
- Existing source tools first; configuration only when needed.
|
|
22
|
+
- Minimum requested read, no ambient synchronization.
|
|
23
|
+
- Credentials stay in supported secret storage.
|
|
24
|
+
- Record updates require their own review and confirmation.
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
**Enter when:** the FDE just left a meeting/call and dumps raw notes, a transcript, or "they said…". Highest-frequency moment in FDE life. Capture within the hour.
|
|
4
4
|
|
|
5
|
+
**Standalone review:** apply [task context](task-context.md). If the user supplies notes and wants a summary or review, interpret them using **Prepare one update** below and return a draft. Keep requests, confirmed decisions, reported results and unknowns distinct. No CLI or customer record is needed; do not claim anything was saved. Use the bound-record path below only when updating an existing record or when the user asks to start one.
|
|
6
|
+
|
|
5
7
|
**Large transcripts or emails** sitting in Granola/Gmail/Notion → prefer **`fde ingest stage`** first (via source MCPs the FDE configured), then the same propose → confirm → **`fde ingest apply`** path. See `references/ingest.md`. Pasted short notes stay on this debrief verb.
|
|
6
8
|
|
|
7
9
|
**Read first:** the bounded `fde resume` packet for the bound client. Use `fde recall` for the specific prior decision, action, or delivery result needed to reconcile this update. Do not reload the whole engagement.
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
**Enter when:** the FDE wants to catch the engagement up from external sources - "make sure Acme is up to date," "pull what's relevant," "grab today's Granola and Denise's last email." Raw transcripts and long emails that are too big to paste usefully.
|
|
4
4
|
|
|
5
|
-
**Connect / capability (different entry):** "connect a new MCP", "connect Granola/Slack/Notion", "what can you pull?" → `references/connect.md` first.
|
|
5
|
+
**Connect / capability (different entry):** "connect a new MCP", "connect Granola/Slack/Notion", "what can you pull?" → `references/connect.md` first. Use [source setup](source-setup.md) for files and supported source tools.
|
|
6
|
+
|
|
7
|
+
**Review only:** requested source reads and a sourced draft can proceed without a customer record. Use [source setup](source-setup.md) and [debrief](debrief.md). Do not stage or apply anything until the intended customer is selected; do not silently create a record for a review-only request.
|
|
6
8
|
|
|
7
9
|
**Read first:** the bounded `fde resume` packet and targeted recall for affected prior facts. Bind the engagement before staging anything.
|
|
8
10
|
|
|
@@ -60,7 +62,7 @@ Carry an actual `[source: ...]` locator on each consequential fact. Preserve ups
|
|
|
60
62
|
|
|
61
63
|
## MCP sink + recipes
|
|
62
64
|
|
|
63
|
-
Optional `mcp/fdeops-ingest` wraps the same verbs over stdio. Source MCPs remain separate - the FDE adds whichever fetch tools they trust. Setup coach: `connect.md`.
|
|
65
|
+
Optional `mcp/fdeops-ingest` wraps the same verbs over stdio. Source MCPs remain separate - the FDE adds whichever fetch tools they trust. Setup coach: `connect.md`. Portable setup guidance: [source setup](source-setup.md).
|
|
64
66
|
|
|
65
67
|
## Checkpoint
|
|
66
68
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
**Read first:** `reality.md`, `success.md`, `terrain.md`, `stakeholders.md`. Load `business-case.md` if poc produced one. Not the full folder.
|
|
8
8
|
|
|
9
|
-
**On an initialized engagement, before a new delivery plan or material scope change:** run `fde doctor --ready`. For standalone planning, check the supplied outcome, scope, acceptance and authority directly; do not initialize records to run this validator. Missing
|
|
9
|
+
**On an initialized engagement, before a new delivery plan or material scope change:** run `fde doctor --ready`. For standalone planning, check the supplied outcome, scope, acceptance and authority directly; do not initialize records to run this validator. Missing acceptance criteria or authority blocks the affected implementation commitment, not a provisional plan. Draft proposed checks and next steps, mark them pending, and ask only what changes the next action. Use a test/input and observable pass/fail under **Done when:** or **Acceptance check:**. A number, role, or successful demo alone is insufficient. Do not invent missing facts to pass lint. Routine reversible fixes within confirmed scope reuse the existing signer, acceptance criteria, and engineering plan; record verification without reopening settled decisions.
|
|
10
10
|
|
|
11
11
|
## Validation gate (confirm understanding, clarify where it elevates)
|
|
12
12
|
|
|
@@ -17,8 +17,8 @@ Before planning, state what you're working from in 2-3 lines:
|
|
|
17
17
|
Then check - probe ONLY if it prevents a bad plan:
|
|
18
18
|
|
|
19
19
|
1. **Success is measurable.** If "done" is vague ("make it better") → rephrase it: "I'm reading success as: [specific measurable outcome]. That the target?"
|
|
20
|
-
2. **Reality matches the brief.** If discovery contradicted the brief → name it: "Discovery found [X] but the brief says [Y].
|
|
21
|
-
3. **Out-of-scope exists.** If missing → one line: "
|
|
20
|
+
2. **Reality matches the brief.** If discovery contradicted the brief → name it: "Discovery found [X] but the brief says [Y]. Here is the proposed adjustment; it remains unagreed until confirmed."
|
|
21
|
+
3. **Out-of-scope exists.** If missing → one line: "I will keep this draft within the supplied request and mark proposed exclusions for confirmation."
|
|
22
22
|
|
|
23
23
|
State your read, let the FDE correct, then plan.
|
|
24
24
|
|
|
@@ -42,19 +42,19 @@ An FDE plan is not a sprint backlog. The technical sequence is the easy part. Th
|
|
|
42
42
|
|
|
43
43
|
**6. Stakeholder touchpoints every 2-3 tasks.** "Show progress to <name from stakeholders.md>." Not ceremony: a customer who sees small wins stays bought in; silence gets filled with doubt.
|
|
44
44
|
|
|
45
|
-
**7. End with a kill list.** Every plan names what you will **not** do this phase. If everything is "later," you have no plan - you have a wish list.
|
|
45
|
+
**7. End with a kill list.** Every plan names what you will **not** do this phase. If everything is "later," you have no plan - you have a wish list. Keep **Now** small enough to review and act on; split by independently verifiable outcomes.
|
|
46
46
|
|
|
47
47
|
**Acceptance criteria gate:** no task moves to build without written happy-path AND unhappy-path criteria. Can't write them = the task isn't understood; the open question goes to the customer **before** the task starts. Vague criteria surface later as scope creep and rework.
|
|
48
48
|
|
|
49
49
|
## Artifact
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
For standalone planning, return the requested draft or save to the authorized project document. In a bound engagement, propose the plan for **`decisions.md`** under its confirmation rules, or link the existing approved plan; do not duplicate it.
|
|
52
52
|
|
|
53
53
|
A plan is **not done** until all four blocks exist:
|
|
54
54
|
|
|
55
55
|
```markdown
|
|
56
56
|
## Plan - <date>
|
|
57
|
-
### Now
|
|
57
|
+
### Now
|
|
58
58
|
Task N: <outcome, not activity>
|
|
59
59
|
Delivers: <what someone can see/test>
|
|
60
60
|
Accepts: <happy path> / <unhappy path>
|
|
@@ -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.
|