fdeops 4.1.1 → 5.0.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 +2 -2
- package/README.md +88 -247
- package/bin/generate-skills.js +2 -2
- package/bin/install.js +30 -2
- package/bin/skill-catalog.js +14 -14
- package/mcp/fdeops-ingest/package.json +1 -1
- package/package.json +1 -1
- package/plugin.json +1 -1
- package/skills/{fde-build → build}/.fde-generated.json +1 -1
- package/skills/{fde-build → build}/SKILL.md +2 -2
- package/skills/{fde-debug → debug}/.fde-generated.json +1 -1
- package/skills/{fde-debug → debug}/SKILL.md +2 -2
- package/skills/{fde-discover → discover}/.fde-generated.json +2 -2
- package/skills/{fde-discover → discover}/SKILL.md +2 -2
- package/skills/discover/references/discover.md +112 -0
- package/skills/{fde-integrate → evaluate}/.fde-generated.json +1 -1
- package/skills/{fde-evaluate → evaluate}/SKILL.md +2 -2
- package/skills/fde/SKILL.md +2 -2
- package/skills/fde/references/discover.md +66 -208
- package/skills/{fde-feedback → feedback}/.fde-generated.json +1 -1
- package/skills/{fde-feedback → feedback}/SKILL.md +2 -2
- package/skills/{fde-handoff → handoff}/.fde-generated.json +1 -1
- package/skills/{fde-handoff → handoff}/SKILL.md +2 -2
- package/skills/{fde-evaluate → integrate}/.fde-generated.json +1 -1
- package/skills/{fde-integrate → integrate}/SKILL.md +2 -2
- package/skills/{fde-options → options}/.fde-generated.json +1 -1
- package/skills/{fde-options → options}/SKILL.md +2 -2
- package/skills/{fde-poc → poc}/.fde-generated.json +2 -2
- package/skills/{fde-poc → poc}/SKILL.md +2 -2
- package/skills/poc/references/discover.md +112 -0
- package/skills/qa/.fde-generated.json +16 -0
- package/skills/{fde-qa → qa}/SKILL.md +2 -2
- package/skills/{fde-readout → readout}/.fde-generated.json +1 -1
- package/skills/{fde-readout → readout}/SKILL.md +2 -2
- package/skills/review/.fde-generated.json +16 -0
- package/skills/{fde-review → review}/SKILL.md +2 -2
- package/skills/{fde-scope → scope}/.fde-generated.json +1 -1
- package/skills/{fde-scope → scope}/SKILL.md +2 -2
- package/skills/ship/.fde-generated.json +16 -0
- package/skills/{fde-ship → ship}/SKILL.md +2 -2
- package/skills/fde-discover/references/discover.md +0 -254
- package/skills/fde-poc/references/discover.md +0 -254
- package/skills/fde-qa/.fde-generated.json +0 -16
- package/skills/fde-review/.fde-generated.json +0 -16
- package/skills/fde-ship/.fde-generated.json +0 -16
- /package/skills/{fde-build → build}/references/build.md +0 -0
- /package/skills/{fde-build → build}/references/debug.md +0 -0
- /package/skills/{fde-build → build}/references/eval-pack.md +0 -0
- /package/skills/{fde-build → build}/references/integrate.md +0 -0
- /package/skills/{fde-build → build}/references/qa.md +0 -0
- /package/skills/{fde-build → build}/references/review.md +0 -0
- /package/skills/{fde-build → build}/references/ship.md +0 -0
- /package/skills/{fde-build → build}/references/task-context.md +0 -0
- /package/skills/{fde-build → build}/references/verification.md +0 -0
- /package/skills/{fde-debug → debug}/references/build.md +0 -0
- /package/skills/{fde-debug → debug}/references/debug.md +0 -0
- /package/skills/{fde-debug → debug}/references/eval-pack.md +0 -0
- /package/skills/{fde-debug → debug}/references/integrate.md +0 -0
- /package/skills/{fde-debug → debug}/references/qa.md +0 -0
- /package/skills/{fde-debug → debug}/references/review.md +0 -0
- /package/skills/{fde-debug → debug}/references/ship.md +0 -0
- /package/skills/{fde-debug → debug}/references/task-context.md +0 -0
- /package/skills/{fde-debug → debug}/references/verification.md +0 -0
- /package/skills/{fde-discover → discover}/references/audit.md +0 -0
- /package/skills/{fde-discover → discover}/references/task-context.md +0 -0
- /package/skills/{fde-evaluate → evaluate}/references/build.md +0 -0
- /package/skills/{fde-evaluate → evaluate}/references/debug.md +0 -0
- /package/skills/{fde-evaluate → evaluate}/references/eval-pack.md +0 -0
- /package/skills/{fde-evaluate → evaluate}/references/integrate.md +0 -0
- /package/skills/{fde-evaluate → evaluate}/references/qa.md +0 -0
- /package/skills/{fde-evaluate → evaluate}/references/review.md +0 -0
- /package/skills/{fde-evaluate → evaluate}/references/ship.md +0 -0
- /package/skills/{fde-evaluate → evaluate}/references/task-context.md +0 -0
- /package/skills/{fde-evaluate → evaluate}/references/verification.md +0 -0
- /package/skills/{fde-feedback → feedback}/references/encode-pattern.md +0 -0
- /package/skills/{fde-feedback → feedback}/references/task-context.md +0 -0
- /package/skills/{fde-handoff → handoff}/references/close.md +0 -0
- /package/skills/{fde-handoff → handoff}/references/encode-pattern.md +0 -0
- /package/skills/{fde-handoff → handoff}/references/task-context.md +0 -0
- /package/skills/{fde-integrate → integrate}/references/build.md +0 -0
- /package/skills/{fde-integrate → integrate}/references/debug.md +0 -0
- /package/skills/{fde-integrate → integrate}/references/eval-pack.md +0 -0
- /package/skills/{fde-integrate → integrate}/references/integrate.md +0 -0
- /package/skills/{fde-integrate → integrate}/references/qa.md +0 -0
- /package/skills/{fde-integrate → integrate}/references/review.md +0 -0
- /package/skills/{fde-integrate → integrate}/references/ship.md +0 -0
- /package/skills/{fde-integrate → integrate}/references/task-context.md +0 -0
- /package/skills/{fde-integrate → integrate}/references/verification.md +0 -0
- /package/skills/{fde-options → options}/references/business-case.md +0 -0
- /package/skills/{fde-options → options}/references/task-context.md +0 -0
- /package/skills/{fde-options → options}/references/test-assumptions.md +0 -0
- /package/skills/{fde-options → options}/references/three-options.md +0 -0
- /package/skills/{fde-poc → poc}/references/audit.md +0 -0
- /package/skills/{fde-poc → poc}/references/build.md +0 -0
- /package/skills/{fde-poc → poc}/references/business-case.md +0 -0
- /package/skills/{fde-poc → poc}/references/debug.md +0 -0
- /package/skills/{fde-poc → poc}/references/eval-pack.md +0 -0
- /package/skills/{fde-poc → poc}/references/integrate.md +0 -0
- /package/skills/{fde-poc → poc}/references/plan.md +0 -0
- /package/skills/{fde-poc → poc}/references/poc.md +0 -0
- /package/skills/{fde-poc → poc}/references/qa.md +0 -0
- /package/skills/{fde-poc → poc}/references/review.md +0 -0
- /package/skills/{fde-poc → poc}/references/ship.md +0 -0
- /package/skills/{fde-poc → poc}/references/task-context.md +0 -0
- /package/skills/{fde-poc → poc}/references/test-assumptions.md +0 -0
- /package/skills/{fde-poc → poc}/references/three-options.md +0 -0
- /package/skills/{fde-poc → poc}/references/verification.md +0 -0
- /package/skills/{fde-qa → qa}/references/build.md +0 -0
- /package/skills/{fde-qa → qa}/references/debug.md +0 -0
- /package/skills/{fde-qa → qa}/references/eval-pack.md +0 -0
- /package/skills/{fde-qa → qa}/references/integrate.md +0 -0
- /package/skills/{fde-qa → qa}/references/qa.md +0 -0
- /package/skills/{fde-qa → qa}/references/review.md +0 -0
- /package/skills/{fde-qa → qa}/references/ship.md +0 -0
- /package/skills/{fde-qa → qa}/references/task-context.md +0 -0
- /package/skills/{fde-qa → qa}/references/verification.md +0 -0
- /package/skills/{fde-readout → readout}/references/board-memo.md +0 -0
- /package/skills/{fde-readout → readout}/references/business-case.md +0 -0
- /package/skills/{fde-readout → readout}/references/readout.md +0 -0
- /package/skills/{fde-readout → readout}/references/task-context.md +0 -0
- /package/skills/{fde-review → review}/references/build.md +0 -0
- /package/skills/{fde-review → review}/references/debug.md +0 -0
- /package/skills/{fde-review → review}/references/eval-pack.md +0 -0
- /package/skills/{fde-review → review}/references/integrate.md +0 -0
- /package/skills/{fde-review → review}/references/qa.md +0 -0
- /package/skills/{fde-review → review}/references/review.md +0 -0
- /package/skills/{fde-review → review}/references/ship.md +0 -0
- /package/skills/{fde-review → review}/references/task-context.md +0 -0
- /package/skills/{fde-review → review}/references/verification.md +0 -0
- /package/skills/{fde-scope → scope}/references/hold-scope.md +0 -0
- /package/skills/{fde-scope → scope}/references/task-context.md +0 -0
- /package/skills/{fde-ship → ship}/references/build.md +0 -0
- /package/skills/{fde-ship → ship}/references/debug.md +0 -0
- /package/skills/{fde-ship → ship}/references/eval-pack.md +0 -0
- /package/skills/{fde-ship → ship}/references/integrate.md +0 -0
- /package/skills/{fde-ship → ship}/references/qa.md +0 -0
- /package/skills/{fde-ship → ship}/references/review.md +0 -0
- /package/skills/{fde-ship → ship}/references/ship.md +0 -0
- /package/skills/{fde-ship → ship}/references/task-context.md +0 -0
- /package/skills/{fde-ship → ship}/references/verification.md +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: build
|
|
3
3
|
description: Implement a scoped customer-facing software change in the existing repository and verify its behavior. Use for delivery work with an understood outcome, not incident response.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# build
|
|
7
7
|
|
|
8
8
|
<!-- Generated by bin/generate-skills.js; edit the canonical references and catalog. -->
|
|
9
9
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"generator": "bin/generate-skills.js",
|
|
3
3
|
"version": 1,
|
|
4
4
|
"files": {
|
|
5
|
-
"SKILL.md": "
|
|
5
|
+
"SKILL.md": "7862670d5c023f0195e0b3fa8b52a3b33796813e53aaad083ae82a9a469e0faa",
|
|
6
6
|
"references/build.md": "3dfeed619eeb1c8401f5cdf65e6f803fb209c70cb464dac4e60a1c890fd3a6f7",
|
|
7
7
|
"references/debug.md": "c3bb344d38cc3552cb4e230c601a9be3fe173af2b2efb89aab6b7b04339f24f4",
|
|
8
8
|
"references/eval-pack.md": "0590b85d3cae0903c6b1274540c92eaa2a4373047e8a0548d6942516ef0bb9e1",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: debug
|
|
3
3
|
description: Investigate and repair a reproducible failure in a customer integration or application. Use for diagnosis and regression prevention; follow incident authority for live mitigation.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# debug
|
|
7
7
|
|
|
8
8
|
<!-- Generated by bin/generate-skills.js; edit the canonical references and catalog. -->
|
|
9
9
|
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"generator": "bin/generate-skills.js",
|
|
3
3
|
"version": 1,
|
|
4
4
|
"files": {
|
|
5
|
-
"SKILL.md": "
|
|
5
|
+
"SKILL.md": "d97d4192064ae4236e03579a65ec7207445624aee8ad41e412fc3dbaaf465ddc",
|
|
6
6
|
"references/audit.md": "ed32ea78cbccb100742dd838e8cf4cd4b6f33ad44b3de7424fc624670d571dbc",
|
|
7
|
-
"references/discover.md": "
|
|
7
|
+
"references/discover.md": "f65aa11a539b4dbbed70cfaa94ec2a35595aa9a2d0282790510b933ac9c721ce",
|
|
8
8
|
"references/task-context.md": "8ec90708522e512a50a57ab2a377a7472e93bae169c6f075a93fa603ce2ad780"
|
|
9
9
|
}
|
|
10
10
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: discover
|
|
3
3
|
description: Trace a customer workflow and identify the problem, baseline and evidence gaps. Use for discovery or an unclear customer brief, before choosing a solution.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# discover
|
|
7
7
|
|
|
8
8
|
<!-- Generated by bin/generate-skills.js; edit the canonical references and catalog. -->
|
|
9
9
|
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# discover - Find the problem behind the request
|
|
2
|
+
|
|
3
|
+
**Enter when:** the customer brief is unclear, the proposed solution may miss the real problem, or a change has exposed an unmapped part of the work.
|
|
4
|
+
|
|
5
|
+
Apply [task context and evidence](task-context.md) first. Supplied notes are enough to begin. In an existing engagement, use permitted summaries of `context.md`, `brief.md`, `reality.md` and relevant `terrain.md` sections; extend existing findings instead of restarting.
|
|
6
|
+
|
|
7
|
+
## Choose the depth the task needs
|
|
8
|
+
|
|
9
|
+
- **Notes or meeting preparation:** return the current steps, observations, hypotheses and a few questions that would change the next decision. No repository scan, workshop or customer-record setup is required.
|
|
10
|
+
- **A specific delivery problem:** follow the affected people, systems and data far enough to explain the break and identify what evidence is missing.
|
|
11
|
+
- **A wider engagement:** map dependencies and decision owners across the involved teams. Examine each candidate problem before choosing where to invest; do not make a full enterprise inventory a prerequisite for one useful finding.
|
|
12
|
+
|
|
13
|
+
State what you are investigating and which decision it informs. Reuse the user's stated goal. Ask only when a missing answer changes the next action; otherwise proceed with a clearly labelled provisional interpretation.
|
|
14
|
+
|
|
15
|
+
## Frame the decision
|
|
16
|
+
|
|
17
|
+
Write a short frame from the evidence available:
|
|
18
|
+
|
|
19
|
+
| Part | What to establish |
|
|
20
|
+
|---|---|
|
|
21
|
+
| Situation | How people complete this task today |
|
|
22
|
+
| Complication | The observed delay, failure, cost or constraint |
|
|
23
|
+
| Question | The decision that further evidence should help someone make |
|
|
24
|
+
| Possible outcomes | Confirm the brief, change its scope, investigate further or pause |
|
|
25
|
+
|
|
26
|
+
Keep the question specific and neutral. “What causes requests to wait before assignment?” leaves room for different explanations. “How should we automate assignment?” assumes the solution before establishing the cause.
|
|
27
|
+
|
|
28
|
+
Name the decision owner when known. An unknown owner or unmeasured baseline is a finding, not a reason to keep questioning indefinitely. Return a provisional frame and identify who or what could verify it. Do not present a new interpretation as agreed scope.
|
|
29
|
+
|
|
30
|
+
## Trace the work
|
|
31
|
+
|
|
32
|
+
Follow an ordinary case from arrival to completion, then relevant exceptions. Use the customer's terms for the request, system and people involved.
|
|
33
|
+
|
|
34
|
+
For each step, establish:
|
|
35
|
+
|
|
36
|
+
- Who performs it and where the input comes from.
|
|
37
|
+
- What they do, check or decide, and which system they update.
|
|
38
|
+
- Time spent working versus time spent waiting.
|
|
39
|
+
- What happens when information is missing or the normal path fails.
|
|
40
|
+
- Who notices the failure, how they recover, and which record they trust.
|
|
41
|
+
|
|
42
|
+
Distinguish measured timings from estimates. A team lead's recollection is useful evidence about their experience; it is not a measured baseline. Do not infer that the slowest visible step causes the whole delay without following its dependencies.
|
|
43
|
+
|
|
44
|
+
Use concrete questions when the supplied material leaves a gap: “Show me the last request that waited a day. What had to happen before someone could take it?” Ask about spreadsheets, manual transfers or other workarounds when there is evidence of them, without assuming they exist.
|
|
45
|
+
|
|
46
|
+
When a workaround looks surprising, use the targeted history check in [audit](audit.md#before-changing-an-unfamiliar-workaround). History supplies clues, not proof that an old requirement still applies.
|
|
47
|
+
|
|
48
|
+
## Inspect systems when relevant and permitted
|
|
49
|
+
|
|
50
|
+
If the question depends on application behavior and code access is authorized, use `fde scan` and targeted file reads. If the CLI is unavailable, use the repository's existing search, Git and test tools. Do not load the whole repository or unrelated customer data.
|
|
51
|
+
|
|
52
|
+
Follow the actual path: entry point → validation → processing → storage or downstream action. Inspect the code, configuration and tests that can explain the observed discrepancy.
|
|
53
|
+
|
|
54
|
+
Check existing capability before proposing new work. A disabled feature, frequent edits or a missing nearby test is a lead to investigate, not proof of a root cause. Record the evidence behind any technical risk. When there is no repository access, state that implementation behavior remains unchecked and finish the work possible from the notes.
|
|
55
|
+
|
|
56
|
+
## Check the data and dependencies the proposed work needs
|
|
57
|
+
|
|
58
|
+
For each relevant source, establish where it lives, how fresh it is, who controls access, which fields the task needs, and what happens when it is unavailable. Inspect a permitted sample appropriate to the question; report its size and limitations rather than treating a small sample as representative by default.
|
|
59
|
+
|
|
60
|
+
| Source or connection | Needed for | Freshness and quality evidence | Access owner | Failure or constraint | Next check |
|
|
61
|
+
|---|---|---|---|---|---|
|
|
62
|
+
| Fill only relevant sources | | | Unknown if unconfirmed | | |
|
|
63
|
+
|
|
64
|
+
Check mappings between systems, supported APIs, permissions and retry behavior where they affect feasibility. A promised export or integration is not yet an available dependency. Record its responsible owner, verification date and required evidence when known; propose missing commitments for confirmation.
|
|
65
|
+
|
|
66
|
+
For AI work, identify which steps can use deterministic logic, which need model judgment, and which require a human decision. Keep that allocation provisional until the affected owners agree. Establish who would operate the resulting change and what access or training they would need.
|
|
67
|
+
|
|
68
|
+
## Use a workshop only when it resolves a real disagreement
|
|
69
|
+
|
|
70
|
+
A short meeting with the relevant decision makers may help when teams describe different problems or constraints. Bring the observed cases and the decision to be made. Ask participants to state their constraints before discussing options.
|
|
71
|
+
|
|
72
|
+
Summarize areas of agreement and disagreement. A vote or an absence of objections does not establish authority or acceptance. Ask the responsible owner to confirm the decision and record any unresolved objection, next action and date. Draft the summary promptly, then follow the record-confirmation rules before saving it.
|
|
73
|
+
|
|
74
|
+
## Return a useful discovery result
|
|
75
|
+
|
|
76
|
+
Use the smallest output that answers the user's request:
|
|
77
|
+
|
|
78
|
+
1. The current task and the decision under investigation.
|
|
79
|
+
2. What the evidence establishes, with its source.
|
|
80
|
+
3. The working explanation and plausible alternatives.
|
|
81
|
+
4. Relevant exceptions, dependencies or technical risks actually observed.
|
|
82
|
+
5. Missing evidence and the next check that would change the decision.
|
|
83
|
+
|
|
84
|
+
Do not fill a quota of risks, exceptions or questions. If no system was inspected, do not invent code findings. If several interpretations have failed, reassess the evidence and investigation method rather than blaming the person who wrote the brief.
|
|
85
|
+
|
|
86
|
+
For a bound engagement, propose updates to the existing records after the discovery result is reviewed:
|
|
87
|
+
|
|
88
|
+
- `reality.md`: preserve `Working theory`, `Evidence` and `Differs from brief how`; add the decision frame and validation status.
|
|
89
|
+
- `terrain.md`: relevant steps, system behavior, data dependencies and unknowns. Preserve the `## Operating map (exception-led)` section and its columns when recording observed breaks.
|
|
90
|
+
- `assumptions.md`: new or changed assumptions, verification owners and checkpoints.
|
|
91
|
+
|
|
92
|
+
An operating-map row uses: `Exception / break | Who notices first | What they do today | System of record then | Blast | Evidence`. Preserve the existing schema. If no break has been observed, report that gap; do not fabricate a row to satisfy a readiness check.
|
|
93
|
+
|
|
94
|
+
For standalone work, return the same findings in the conversation or requested document. No `.fde/` write or initialization is needed.
|
|
95
|
+
|
|
96
|
+
## Worked example
|
|
97
|
+
|
|
98
|
+
This example is fictional and uses only supplied meeting notes.
|
|
99
|
+
|
|
100
|
+
The brief asks for an assistant to draft responses. The supplied notes say drafting takes about four minutes, while requests sometimes wait a day for assignment. The timings come from a team lead; no measured baseline is available.
|
|
101
|
+
|
|
102
|
+
**Working theory:** assignment delay may matter more than drafting time. **Evidence:** the lead's estimates in the supplied notes, still unverified. **Differs from brief how:** the requested assistant addresses drafting, while the reported delay concerns assignment. **Question:** what causes the assignment delay, and which change would reduce it? **Next check:** trace a sample of recent requests using arrival and assignment timestamps, then ask the people handling delayed cases what prevented assignment.
|
|
103
|
+
|
|
104
|
+
The discovery result does not reject the assistant or declare an ownership problem solved. It gives the FDE a focused way to find out what to build, change or investigate next. Return this as a short draft for notes-only work; in a bound engagement, propose it for `reality.md` with validation still pending.
|
|
105
|
+
|
|
106
|
+
## Principles
|
|
107
|
+
|
|
108
|
+
- Investigate the work before choosing a solution.
|
|
109
|
+
- Keep observations, estimates and hypotheses distinct.
|
|
110
|
+
- Match discovery effort to the decision at hand.
|
|
111
|
+
- Unknown ownership and missing evidence remain explicit.
|
|
112
|
+
- Confirmation comes from the responsible person, never from silence.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"generator": "bin/generate-skills.js",
|
|
3
3
|
"version": 1,
|
|
4
4
|
"files": {
|
|
5
|
-
"SKILL.md": "
|
|
5
|
+
"SKILL.md": "6a8f9490294e1a055c25984955d011db23ebb1eb2fb4f8634584d1455331425e",
|
|
6
6
|
"references/build.md": "3dfeed619eeb1c8401f5cdf65e6f803fb209c70cb464dac4e60a1c890fd3a6f7",
|
|
7
7
|
"references/debug.md": "c3bb344d38cc3552cb4e230c601a9be3fe173af2b2efb89aab6b7b04339f24f4",
|
|
8
8
|
"references/eval-pack.md": "0590b85d3cae0903c6b1274540c92eaa2a4373047e8a0548d6942516ef0bb9e1",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: evaluate
|
|
3
3
|
description: Evaluate an AI workflow against representative cases and its permitted actions. Use for model, retrieval or agent evaluation; tests do not grant release authority.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# evaluate
|
|
7
7
|
|
|
8
8
|
<!-- Generated by bin/generate-skills.js; edit the canonical references and catalog. -->
|
|
9
9
|
|
package/skills/fde/SKILL.md
CHANGED
|
@@ -11,7 +11,7 @@ The **engagement record** for one client, from first meeting to signed outcome.
|
|
|
11
11
|
|
|
12
12
|
## Task entry
|
|
13
13
|
|
|
14
|
-
Read `references/task-context.md` first. An explicitly selected `
|
|
14
|
+
Read `references/task-context.md` first. An explicitly selected task skill (such as `discover` or `build`) runs directly; do not wrap it in another coordinator or repeat entry. For a one-off task with supplied context, use the relevant method without initializing `.fde/`. For ongoing client work use the bounded entry and memory contract below. Missing record files alone are not a reason to restart discovery.
|
|
15
15
|
|
|
16
16
|
## When to use
|
|
17
17
|
|
|
@@ -54,7 +54,7 @@ Use `references/build.md` for implementation, `references/integrate.md` for cust
|
|
|
54
54
|
|
|
55
55
|
## Human surface vs agent plumbing
|
|
56
56
|
|
|
57
|
-
**FDE (human):** `@fde` + English, or `/brief` `/discover` `/plan` `/ship` `/outcome` `/close` `/debrief` `/prep` `/trust` `/receipts` `/readout`. They may also invoke an individual
|
|
57
|
+
**FDE (human):** `@fde` + English, or `/brief` `/discover` `/plan` `/ship` `/outcome` `/close` `/debrief` `/prep` `/trust` `/receipts` `/readout`. They may also invoke an individual task skill directly.
|
|
58
58
|
|
|
59
59
|
**You (agent):** run the CLI. **Never tell the FDE to type** `fde …`. If unbound, you run `fde resume --init` after one question. Never ask them to run the CLI.
|
|
60
60
|
|
|
@@ -1,254 +1,112 @@
|
|
|
1
|
-
# discover -
|
|
1
|
+
# discover - Find the problem behind the request
|
|
2
2
|
|
|
3
|
-
**Enter when:** the brief
|
|
3
|
+
**Enter when:** the customer brief is unclear, the proposed solution may miss the real problem, or a change has exposed an unmapped part of the work.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Apply [task context and evidence](task-context.md) first. Supplied notes are enough to begin. In an existing engagement, use permitted summaries of `context.md`, `brief.md`, `reality.md` and relevant `terrain.md` sections; extend existing findings instead of restarting.
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## Choose the depth the task needs
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
- **Notes or meeting preparation:** return the current steps, observations, hypotheses and a few questions that would change the next decision. No repository scan, workshop or customer-record setup is required.
|
|
10
|
+
- **A specific delivery problem:** follow the affected people, systems and data far enough to explain the break and identify what evidence is missing.
|
|
11
|
+
- **A wider engagement:** map dependencies and decision owners across the involved teams. Examine each candidate problem before choosing where to invest; do not make a full enterprise inventory a prerequisite for one useful finding.
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
State what you are investigating and which decision it informs. Reuse the user's stated goal. Ask only when a missing answer changes the next action; otherwise proceed with a clearly labelled provisional interpretation.
|
|
12
14
|
|
|
13
|
-
|
|
15
|
+
## Frame the decision
|
|
14
16
|
|
|
15
|
-
|
|
16
|
-
2. **Discovery feeds a decision.** If there's no named decision → one line: "What changes depending on what we find? That keeps the discovery focused."
|
|
17
|
-
3. **Not repeating previous work.** If terrain.md already covers this area → name it: "Terrain already maps this from Day [X]. Extending it or has something shifted?"
|
|
17
|
+
Write a short frame from the evidence available:
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
| Part | What to establish |
|
|
20
|
+
|---|---|
|
|
21
|
+
| Situation | How people complete this task today |
|
|
22
|
+
| Complication | The observed delay, failure, cost or constraint |
|
|
23
|
+
| Question | The decision that further evidence should help someone make |
|
|
24
|
+
| Possible outcomes | Confirm the brief, change its scope, investigate further or pause |
|
|
20
25
|
|
|
21
|
-
|
|
26
|
+
Keep the question specific and neutral. “What causes requests to wait before assignment?” leaves room for different explanations. “How should we automate assignment?” assumes the solution before establishing the cause.
|
|
22
27
|
|
|
23
|
-
|
|
28
|
+
Name the decision owner when known. An unknown owner or unmeasured baseline is a finding, not a reason to keep questioning indefinitely. Return a provisional frame and identify who or what could verify it. Do not present a new interpretation as agreed scope.
|
|
24
29
|
|
|
25
|
-
|
|
30
|
+
## Trace the work
|
|
26
31
|
|
|
27
|
-
|
|
32
|
+
Follow an ordinary case from arrival to completion, then relevant exceptions. Use the customer's terms for the request, system and people involved.
|
|
28
33
|
|
|
29
|
-
|
|
30
|
-
READ: <the real problem you think exists, in one sentence>
|
|
31
|
-
CONFIDENCE: ~NN% - missing: <what would falsify or confirm it>
|
|
32
|
-
Q: <one question that changes where you dig>
|
|
33
|
-
GUESS: <your answer, so they can correct it>
|
|
34
|
-
```
|
|
34
|
+
For each step, establish:
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
- Who performs it and where the input comes from.
|
|
37
|
+
- What they do, check or decide, and which system they update.
|
|
38
|
+
- Time spent working versus time spent waiting.
|
|
39
|
+
- What happens when information is missing or the normal path fails.
|
|
40
|
+
- Who notices the failure, how they recover, and which record they trust.
|
|
37
41
|
|
|
38
|
-
|
|
42
|
+
Distinguish measured timings from estimates. A team lead's recollection is useful evidence about their experience; it is not a measured baseline. Do not infer that the slowest visible step causes the whole delay without following its dependencies.
|
|
39
43
|
|
|
40
|
-
|
|
44
|
+
Use concrete questions when the supplied material leaves a gap: “Show me the last request that waited a day. What had to happen before someone could take it?” Ask about spreadsheets, manual transfers or other workarounds when there is evidence of them, without assuming they exist.
|
|
41
45
|
|
|
42
|
-
|
|
43
|
-
|------|------------|---------|
|
|
44
|
-
| **Situation** | What they already treat as true - the workaround, the sheet, the owner who left | It could be copied from the RFP |
|
|
45
|
-
| **Complication** | What broke, so they cannot stay here | No tension, or three problems joined by "and" |
|
|
46
|
-
| **Question** | One decision the named signer must make | It smuggles the solution ("how do we add alerting") |
|
|
47
|
-
| **Answer-space** | Shape of a satisfying answer: confirm brief / descope / rescope / pause | A novel, or "insights" |
|
|
46
|
+
When a workaround looks surprising, use the targeted history check in [audit](audit.md#before-changing-an-unfamiliar-workaround). History supplies clues, not proof that an old requirement still applies.
|
|
48
47
|
|
|
49
|
-
|
|
48
|
+
## Inspect systems when relevant and permitted
|
|
50
49
|
|
|
51
|
-
|
|
52
|
-
2. **Single** - one thing, not three.
|
|
53
|
-
3. **Scoped** - who, where, by when.
|
|
54
|
-
4. **Answerable** - evidence could settle it in this engagement.
|
|
55
|
-
5. **Neutral** - does not assume the fix.
|
|
50
|
+
If the question depends on application behavior and code access is authorized, use `fde scan` and targeted file reads. If the CLI is unavailable, use the repository's existing search, Git and test tools. Do not load the whole repository or unrelated customer data.
|
|
56
51
|
|
|
57
|
-
|
|
52
|
+
Follow the actual path: entry point → validation → processing → storage or downstream action. Inspect the code, configuration and tests that can explain the observed discrepancy.
|
|
58
53
|
|
|
59
|
-
|
|
54
|
+
Check existing capability before proposing new work. A disabled feature, frequent edits or a missing nearby test is a lead to investigate, not proof of a root cause. Record the evidence behind any technical risk. When there is no repository access, state that implementation behavior remains unchecked and finish the work possible from the notes.
|
|
60
55
|
|
|
61
|
-
|
|
56
|
+
## Check the data and dependencies the proposed work needs
|
|
62
57
|
|
|
63
|
-
|
|
58
|
+
For each relevant source, establish where it lives, how fresh it is, who controls access, which fields the task needs, and what happens when it is unavailable. Inspect a permitted sample appropriate to the question; report its size and limitations rather than treating a small sample as representative by default.
|
|
64
59
|
|
|
65
|
-
|
|
60
|
+
| Source or connection | Needed for | Freshness and quality evidence | Access owner | Failure or constraint | Next check |
|
|
61
|
+
|---|---|---|---|---|---|
|
|
62
|
+
| Fill only relevant sources | | | Unknown if unconfirmed | | |
|
|
66
63
|
|
|
67
|
-
|
|
64
|
+
Check mappings between systems, supported APIs, permissions and retry behavior where they affect feasibility. A promised export or integration is not yet an available dependency. Record its responsible owner, verification date and required evidence when known; propose missing commitments for confirmation.
|
|
68
65
|
|
|
69
|
-
|
|
66
|
+
For AI work, identify which steps can use deterministic logic, which need model judgment, and which require a human decision. Keep that allocation provisional until the affected owners agree. Establish who would operate the resulting change and what access or training they would need.
|
|
70
67
|
|
|
71
|
-
|
|
68
|
+
## Use a workshop only when it resolves a real disagreement
|
|
72
69
|
|
|
73
|
-
|
|
70
|
+
A short meeting with the relevant decision makers may help when teams describe different problems or constraints. Bring the observed cases and the decision to be made. Ask participants to state their constraints before discussing options.
|
|
74
71
|
|
|
75
|
-
|
|
76
|
-
```bash
|
|
77
|
-
git log --reverse --format="%ad" --date=short | head -1 # repo birth
|
|
78
|
-
git log -1 --format="%ad" --date=short # last commit
|
|
79
|
-
```
|
|
72
|
+
Summarize areas of agreement and disagreement. A vote or an absence of objections does not establish authority or acceptance. Ask the responsible owner to confirm the decision and record any unresolved objection, next action and date. Draft the summary promptly, then follow the record-confirmation rules before saving it.
|
|
80
73
|
|
|
81
|
-
|
|
82
|
-
```bash
|
|
83
|
-
git log --since="90 days ago" --name-only --pretty=format: | sort | uniq -c | sort -rn | head -20
|
|
84
|
-
```
|
|
85
|
-
The highest-churn file in a legacy codebase is the one everyone is afraid to refactor but cannot avoid touching. Cross-reference with complexity (file size, nesting) and mark "handle with care."
|
|
74
|
+
## Return a useful discovery result
|
|
86
75
|
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
find . -path ./node_modules -prune -o -name "*test*" -print | head -30
|
|
90
|
-
```
|
|
91
|
-
Map test files against the churn list. A high-churn module with no test neighbors is a load-bearing wall with no insurance. Spot-read the tests that do exist: tests that pass but assert nothing are worse than no tests - note them.
|
|
76
|
+
Use the smallest output that answers the user's request:
|
|
92
77
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
```
|
|
99
|
-
Temporary code in production is permanent code with an excuse. Each hit is a candidate for "what was never built properly."
|
|
78
|
+
1. The current task and the decision under investigation.
|
|
79
|
+
2. What the evidence establishes, with its source.
|
|
80
|
+
3. The working explanation and plausible alternatives.
|
|
81
|
+
4. Relevant exceptions, dependencies or technical risks actually observed.
|
|
82
|
+
5. Missing evidence and the next check that would change the decision.
|
|
100
83
|
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
grep -rlnE "openai|anthropic|llm|prompt|embedding|vector|inference" \
|
|
104
|
-
--include="*.js" --include="*.ts" --include="*.py" --include="*.java" \
|
|
105
|
-
--include="*.go" . | head -20
|
|
106
|
-
```
|
|
107
|
-
Flag every one. AI components don't fail like regular code - they degrade as the world changes. Each needs: model version, fallback path (or note its absence), observability (or note its absence).
|
|
84
|
+
Do not fill a quota of risks, exceptions or questions. If no system was inspected, do not invent code findings. If several interpretations have failed, reassess the evidence and investigation method rather than blaming the person who wrote the brief.
|
|
108
85
|
|
|
109
|
-
|
|
86
|
+
For a bound engagement, propose updates to the existing records after the discovery result is reviewed:
|
|
110
87
|
|
|
111
|
-
|
|
88
|
+
- `reality.md`: preserve `Working theory`, `Evidence` and `Differs from brief how`; add the decision frame and validation status.
|
|
89
|
+
- `terrain.md`: relevant steps, system behavior, data dependencies and unknowns. Preserve the `## Operating map (exception-led)` section and its columns when recording observed breaks.
|
|
90
|
+
- `assumptions.md`: new or changed assumptions, verification owners and checkpoints.
|
|
112
91
|
|
|
113
|
-
|
|
92
|
+
An operating-map row uses: `Exception / break | Who notices first | What they do today | System of record then | Blast | Evidence`. Preserve the existing schema. If no break has been observed, report that gap; do not fabricate a row to satisfy a readiness check.
|
|
114
93
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
- **"How is the team coping today without the fix?"** - the workaround is the honest requirements doc.
|
|
118
|
-
- **Find the spreadsheet.** Almost always there. Whoever maintains it is the best interview in the building.
|
|
119
|
-
- **The hesitation.** When someone says "well, there's also this other thing we do…" - stop them, ask them to finish. The main story is what they're comfortable explaining; the hesitation is the real problem.
|
|
120
|
-
- **"Which part of the codebase do you least want to touch?"** The answer is unanimous and it's the load-bearing wall. Check it against your churn scan - when the human answer and the churn data agree, that's your first map landmark.
|
|
121
|
-
- **Shadow AI.** Someone pasting data into ChatGPT to cope = a real unmet need + an uncontrolled data risk. Note both.
|
|
122
|
-
- **Exception-led operating map.** For each real break (not the slide-deck process): what fails, who notices first, what they do today, and which artifact is trusted in that moment. Prefer exceptions over happy-path swimlanes - the workaround is the operating system. Write rows under `terrain.md` → `## Operating map (exception-led)`. If the section is missing on an older engagement, add it; never regenerate the rest of terrain. When AI is in play, also fill `## Intelligence placement` (deterministic vs LLM judgement vs human approve). **`fde doctor` requires at least one filled exception row before plan/ship/outcome/close** - empty map after discover is a hygiene fail, not optional polish.
|
|
123
|
-
|
|
124
|
-
## Method - part 3: workshop facilitation
|
|
125
|
-
|
|
126
|
-
When discovery requires a structured session with multiple stakeholders (alignment, prioritisation, design):
|
|
127
|
-
|
|
128
|
-
**Before the room:**
|
|
129
|
-
- Define the single decision the workshop must produce - not "discuss options" but "rank the three candidates and commit to one."
|
|
130
|
-
- Cap at 8 people. Every person above 8 halves the probability of a decision.
|
|
131
|
-
- Time-box: 90 minutes max. Anything longer splits into two sessions.
|
|
132
|
-
- Pre-read: one page, sent 48 hours ahead. Nobody will read more.
|
|
133
|
-
|
|
134
|
-
**In the room (the FDE facilitates, not presents):**
|
|
135
|
-
1. **5 min - frame.** One slide: the decision, the constraint, the deadline. No history lesson.
|
|
136
|
-
2. **15 min - diverge.** Silent post-its (or digital equivalent). Everyone writes before anyone talks - prevents the loudest voice dominating.
|
|
137
|
-
3. **20 min - cluster.** Group themes, name them. The FDE does NOT label - the room labels.
|
|
138
|
-
4. **30 min - converge.** Dot-vote or forced-rank. The FDE counts, the room decides.
|
|
139
|
-
5. **10 min - lock.** State the decision back. "We're saying X. Anyone who can't live with this, speak now." Silence = consent.
|
|
140
|
-
6. **10 min - next steps.** Who does what by when. Written before people stand up.
|
|
141
|
-
|
|
142
|
-
**After the room:** Summary in `decisions.md` within 2 hours. Decisions decay - what felt clear at 3pm is debatable by 5pm if unwritten.
|
|
143
|
-
|
|
144
|
-
## Method - part 4: data estate and the pipe
|
|
145
|
-
|
|
146
|
-
Always map the estate before you score a use case - not only when someone said "AI." A path they cannot feed is a discover miss, not a ship surprise.
|
|
147
|
-
|
|
148
|
-
**Their words first.** In `terrain.md`, write the names the floor uses for the workaround, the sheet, the exception path, and the person who left. Later plan/ship/review sentences use those names. Do not translate their floor into generic product language.
|
|
149
|
-
|
|
150
|
-
**The 5 questions (ask the data owner, not the sponsor):**
|
|
151
|
-
1. **Where does data live?** - List every source: databases, warehouses, SaaS exports, spreadsheets, S3 buckets, vendor APIs. Map it.
|
|
152
|
-
2. **How fresh is it?** - Real-time, daily batch, "someone uploads a CSV on Mondays"? Freshness determines what's buildable.
|
|
153
|
-
3. **Who owns it?** - Not "IT" - the named person who can grant access and explain the schema. No named owner: access responsibility remains unverified.
|
|
154
|
-
4. **What's the quality?** - Sample 100 rows from each critical source. Check: nulls, duplicates, format consistency, semantic correctness. A 60% null rate in a key field = that source is fiction.
|
|
155
|
-
5. **What are the governance constraints?** - PII classification, retention policies, cross-border rules, consent basis. One missed constraint = a compliance stop later.
|
|
156
|
-
|
|
157
|
-
**The pipe (what talks to what).** For each source that a use case depends on, write: the system it flows from and to, the contract (object, table, file, API), whose credentials, what happens when the vendor 500s or the Monday file does not land, and whether the join the sponsor described actually exists. Their IdP, CRM, and warehouse are delivery work when the path needs them - policy questions in `trust-profile.md` are not a substitute.
|
|
158
|
-
|
|
159
|
-
**The data readiness matrix:**
|
|
160
|
-
|
|
161
|
-
| Source | Location | Freshness | Owner | Quality (sample) | Governance | Pipe | Verdict |
|
|
162
|
-
|--------|----------|-----------|-------|-----------------|------------|------|---------|
|
|
163
|
-
| _fill per source_ | | | | | | | Ready / Needs work / Blocker |
|
|
164
|
-
|
|
165
|
-
A use case that depends on a "Blocker" source **or a Blocker pipe** doesn't get scored - it gets a remediation conversation first. `what-breaks` finding an invisible integration at ship is already too late. Write this to `terrain.md` under a `## Data estate` section.
|
|
166
|
-
|
|
167
|
-
**Promised dependencies are not ready dependencies.** For consequential promises such as "data in two weeks," record or update one dependency entry in `assumptions.md` with the responsible owner, dated verification checkpoint, and evidence needed. Unknown owners or dates stay unknown; propose a checkpoint for confirmation. Link the affected work; if the checkpoint slips, identify what can proceed and what needs replanning. Missing ownership is an unresolved dependency, not proof that the project will fail. On-prem or restricted access is a constraint to investigate, not a red flag by itself.
|
|
168
|
-
|
|
169
|
-
**Verify the future operator now.** Check the proposed owner in `success.md` against who will actually monitor, recover, and support the result. Record whether they have agreed, access or training gaps, and a practical handoff check there; carry these into `handoff.md` at close. Keep unconfirmed ownership explicit. Reuse supplied evidence and ask only what changes the plan.
|
|
170
|
-
|
|
171
|
-
## When scope is a transformation, not a single problem
|
|
172
|
-
|
|
173
|
-
Score every candidate use case before anything gets prototyped:
|
|
174
|
-
|
|
175
|
-
| Dimension | Question | 1-5 |
|
|
176
|
-
|---|---|---|
|
|
177
|
-
| Business value | What does it cost them unsolved? | |
|
|
178
|
-
| Complexity | How hard to build safely? (5 = hardest) | |
|
|
179
|
-
| Data readiness | Available, clean, sufficient volume today? | |
|
|
180
|
-
|
|
181
|
-
**Score = (Value × Data readiness) / Complexity.** Highest score gets prototyped first (hand to `poc`). A 5-value/1-complexity/5-readiness case scores 25; a 5-value/5-complexity/2-readiness case scores 2 - they look identical on a whiteboard. Never let a technically interesting use case override the score.
|
|
182
|
-
|
|
183
|
-
## Artifact (this IS the memory - write it as you work)
|
|
184
|
-
|
|
185
|
-
**`reality.md`** - the readout the FDE takes into the sponsor meeting. Keep the three schema lines the dashboard reads (`Working theory` / `Evidence` / `Differs from brief how`). Then the decision frame:
|
|
186
|
-
|
|
187
|
-
```markdown
|
|
188
|
-
# Reality (actual problem)
|
|
189
|
-
**Working theory:** <the real problem, one sentence>
|
|
190
|
-
**Evidence:** <workaround/data/quote, source, day>
|
|
191
|
-
**Differs from brief how:** <delta, with evidence>
|
|
192
|
-
**Situation:** <what the floor already treats as true>
|
|
193
|
-
**Complication:** <what forces a decision now>
|
|
194
|
-
**Question:** <one decision-shaped sentence>
|
|
195
|
-
**Answer-space:** confirm brief / descope / rescope / pause - and what a yes looks like
|
|
196
|
-
**Implication for build:** <first change they can see>
|
|
197
|
-
**Validated with:** <who, when>
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
**`terrain.md`** - the map every later phase loads:
|
|
201
|
-
```markdown
|
|
202
|
-
# Terrain
|
|
203
|
-
**Stack:** <lang/framework/build, age>
|
|
204
|
-
**Hotspots (handle with care):** <file - churn n/90d - tests: none/weak/ok - why it matters>
|
|
205
|
-
**AI components:** <file - model - fallback? - observability?>
|
|
206
|
-
**Data flow:** <entry → transform → store → exit>
|
|
207
|
-
**Test landscape:** <covered / gaps / lies>
|
|
208
|
-
**Unknowns:** <named explicitly - an honest gap beats a confident guess>
|
|
209
|
-
|
|
210
|
-
## Operating map (exception-led)
|
|
211
|
-
| Exception / break | Who notices first | What they do today | System of record then | Blast | Evidence |
|
|
212
|
-
|-------------------|-------------------|--------------------|----------------------|-------|----------|
|
|
213
|
-
| <break> | <role> | <workaround> | <sheet/DB/person> | CRITICAL / LOAD-BEARING / CONVENIENCE | <who/day> |
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
Every line carries its evidence. `(churn: 47/90d)` `(ops lead, Day 5)` `(stated, unverified)`.
|
|
217
|
-
|
|
218
|
-
**`assumptions.md`** - update statuses from what discovery proved or disproved. Seed any new OPEN assumptions the brief never named. CRITICAL + OPEN must be named in the checkpoint.
|
|
219
|
-
|
|
220
|
-
## Checkpoint (before any build)
|
|
221
|
-
|
|
222
|
-
Present to the FDE, five things, one paragraph each - no padding:
|
|
223
|
-
1. The Question, then the real problem, with the two strongest pieces of evidence.
|
|
224
|
-
2. The top 3 risk areas of the codebase, one line of why each.
|
|
225
|
-
3. What must not be touched without characterisation tests.
|
|
226
|
-
4. The exception-led operating map: the two breaks that matter most, who owns the workaround, and where shadow systems live.
|
|
227
|
-
5. The Answer-space: confirm brief / descope / rescope - and the decision it puts in front of the sponsor.
|
|
228
|
-
|
|
229
|
-
If discovery revealed the problem is 3× the brief: the FDE tells the customer **before** telling themselves it's manageable. Lead with evidence, offer three paths (descope / rescope / pause-and-plan), confirm any reset in writing - update `success.md` and `brief.md` before continuing.
|
|
230
|
-
|
|
231
|
-
## If you've formed three wrong reads
|
|
232
|
-
|
|
233
|
-
Stop. Don't form a fourth hypothesis. Three disproven reads means the brief is actively misleading - usually the person who briefed doesn't know, or knows and can't say. Change method: stop analysing the system, ask three people separately "if you had to bet on what's actually wrong here, what would you say?" The thing they all hesitate before saying is the real problem.
|
|
94
|
+
For standalone work, return the same findings in the conversation or requested document. No `.fde/` write or initialization is needed.
|
|
234
95
|
|
|
235
96
|
## Worked example
|
|
236
97
|
|
|
237
|
-
|
|
98
|
+
This example is fictional and uses only supplied meeting notes.
|
|
238
99
|
|
|
239
|
-
|
|
100
|
+
The brief asks for an assistant to draft responses. The supplied notes say drafting takes about four minutes, while requests sometimes wait a day for assignment. The timings come from a team lead; no measured baseline is available.
|
|
240
101
|
|
|
241
|
-
|
|
102
|
+
**Working theory:** assignment delay may matter more than drafting time. **Evidence:** the lead's estimates in the supplied notes, still unverified. **Differs from brief how:** the requested assistant addresses drafting, while the reported delay concerns assignment. **Question:** what causes the assignment delay, and which change would reduce it? **Next check:** trace a sample of recent requests using arrival and assignment timestamps, then ask the people handling delayed cases what prevented assignment.
|
|
242
103
|
|
|
243
|
-
|
|
104
|
+
The discovery result does not reject the assistant or declare an ownership problem solved. It gives the FDE a focused way to find out what to build, change or investigate next. Return this as a short draft for notes-only work; in a bound engagement, propose it for `reality.md` with validation still pending.
|
|
244
105
|
|
|
245
106
|
## Principles
|
|
246
107
|
|
|
247
|
-
-
|
|
248
|
-
-
|
|
249
|
-
-
|
|
250
|
-
-
|
|
251
|
-
-
|
|
252
|
-
- Scan wide, read deep only on hotspots.
|
|
253
|
-
|
|
254
|
-
Before changing a surprising workaround, use the targeted history check in [audit](audit.md#before-changing-an-unfamiliar-workaround). Inspect only the implicated file or region; commit messages supply clues, not proof of current requirements.
|
|
108
|
+
- Investigate the work before choosing a solution.
|
|
109
|
+
- Keep observations, estimates and hypotheses distinct.
|
|
110
|
+
- Match discovery effort to the decision at hand.
|
|
111
|
+
- Unknown ownership and missing evidence remain explicit.
|
|
112
|
+
- Confirmation comes from the responsible person, never from silence.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"generator": "bin/generate-skills.js",
|
|
3
3
|
"version": 1,
|
|
4
4
|
"files": {
|
|
5
|
-
"SKILL.md": "
|
|
5
|
+
"SKILL.md": "f8666990f8b4463af5f29acdb1d1cd5e8fec68119b82a891aa2322a213f37344",
|
|
6
6
|
"references/encode-pattern.md": "3be7bf9d0f69af31659423c54d6023a4af1556e2ce200fb025bf64d0757de4d8",
|
|
7
7
|
"references/task-context.md": "8ec90708522e512a50a57ab2a377a7472e93bae169c6f075a93fa603ce2ad780"
|
|
8
8
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: feedback
|
|
3
3
|
description: Assess a field lesson for reuse or product feedback without exposing customer context. Use for recurring deployment lessons; distinguish a hypothesis from a validated pattern.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# feedback
|
|
7
7
|
|
|
8
8
|
<!-- Generated by bin/generate-skills.js; edit the canonical references and catalog. -->
|
|
9
9
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"generator": "bin/generate-skills.js",
|
|
3
3
|
"version": 1,
|
|
4
4
|
"files": {
|
|
5
|
-
"SKILL.md": "
|
|
5
|
+
"SKILL.md": "9f08605914670f2c0bd09631d3d40c079e7f63174d1a2607e60ea6eca5d54d93",
|
|
6
6
|
"references/close.md": "095266722624e4bc647628243c8be0e69b02017ef6b4e3a7e7790ec1f53ab7c0",
|
|
7
7
|
"references/encode-pattern.md": "3be7bf9d0f69af31659423c54d6023a4af1556e2ce200fb025bf64d0757de4d8",
|
|
8
8
|
"references/task-context.md": "8ec90708522e512a50a57ab2a377a7472e93bae169c6f075a93fa603ce2ad780"
|