kushi-agents 3.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/.github/config/m365-auth.json.example +56 -0
  2. package/.github/config/m365-mutable.json.example +11 -0
  3. package/LICENSE +201 -0
  4. package/README.md +159 -0
  5. package/bin/cli.mjs +75 -0
  6. package/package.json +35 -0
  7. package/plugin/agents/kushi.agent.md +147 -0
  8. package/plugin/instructions/answer-from-evidence.instructions.md +73 -0
  9. package/plugin/instructions/auth-and-retry.instructions.md +116 -0
  10. package/plugin/instructions/az-auth-conditional.instructions.md +39 -0
  11. package/plugin/instructions/azure-auth-patterns.instructions.md +226 -0
  12. package/plugin/instructions/citation-ledger.instructions.md +52 -0
  13. package/plugin/instructions/engagement-root-resolution.instructions.md +82 -0
  14. package/plugin/instructions/evidence-thoroughness.instructions.md +62 -0
  15. package/plugin/instructions/side-by-side-config.instructions.md +56 -0
  16. package/plugin/instructions/snapshot-vs-stream.instructions.md +87 -0
  17. package/plugin/instructions/thoroughness-detector.instructions.md +105 -0
  18. package/plugin/instructions/workiq-first.instructions.md +47 -0
  19. package/plugin/plugin.json +96 -0
  20. package/plugin/prompts/aggregate.prompt.md +24 -0
  21. package/plugin/prompts/ask.prompt.md +16 -0
  22. package/plugin/prompts/bootstrap.prompt.md +23 -0
  23. package/plugin/prompts/consolidate.prompt.md +21 -0
  24. package/plugin/prompts/fde-intake.prompt.md +41 -0
  25. package/plugin/prompts/fde-report.prompt.md +46 -0
  26. package/plugin/prompts/fde-triage.prompt.md +46 -0
  27. package/plugin/prompts/refresh.prompt.md +17 -0
  28. package/plugin/prompts/state.prompt.md +17 -0
  29. package/plugin/prompts/status.prompt.md +17 -0
  30. package/plugin/reference-packs/README.md +74 -0
  31. package/plugin/reference-packs/fde/README.md +62 -0
  32. package/plugin/reference-packs/fde/core-fde-reference.md +427 -0
  33. package/plugin/reference-packs/fde/intake-questions.md +168 -0
  34. package/plugin/reference-packs/fde/report-doctrine.md +189 -0
  35. package/plugin/skills/aggregate-project/SKILL.md +72 -0
  36. package/plugin/skills/ask-project/SKILL.md +162 -0
  37. package/plugin/skills/bootstrap-project/SKILL.md +129 -0
  38. package/plugin/skills/build-state/SKILL.md +69 -0
  39. package/plugin/skills/consolidate-evidence/SKILL.md +47 -0
  40. package/plugin/skills/fde-intake/SKILL.md +147 -0
  41. package/plugin/skills/fde-report/SKILL.md +159 -0
  42. package/plugin/skills/fde-triage/SKILL.md +114 -0
  43. package/plugin/skills/intro/SKILL.md +449 -0
  44. package/plugin/skills/project-status/SKILL.md +61 -0
  45. package/plugin/skills/pull-ado/SKILL.md +77 -0
  46. package/plugin/skills/pull-crm/SKILL.md +75 -0
  47. package/plugin/skills/pull-email/SKILL.md +75 -0
  48. package/plugin/skills/pull-meetings/SKILL.md +77 -0
  49. package/plugin/skills/pull-onenote/SKILL.md +82 -0
  50. package/plugin/skills/pull-sharepoint/SKILL.md +85 -0
  51. package/plugin/skills/pull-teams/SKILL.md +75 -0
  52. package/plugin/skills/refresh-project/SKILL.md +89 -0
  53. package/plugin/skills/self-check/SKILL.md +166 -0
  54. package/plugin/skills/self-check/run.ps1 +517 -0
  55. package/plugin/skills/self-check/run.sh +33 -0
  56. package/plugin/templates/fde/intake.md +114 -0
  57. package/plugin/templates/fde/report-fitness.md +151 -0
  58. package/plugin/templates/fde/report-long.md +109 -0
  59. package/plugin/templates/fde/report-short.md +45 -0
  60. package/plugin/templates/fde/report-stage-readiness.md +70 -0
  61. package/plugin/templates/fde/report-weekly.md +73 -0
  62. package/plugin/templates/fde/triage-00-fde-analysis.md +78 -0
  63. package/plugin/templates/fde/triage-02-risk-analysis.md +76 -0
  64. package/plugin/templates/fde/triage-03-6Q.md +40 -0
  65. package/plugin/templates/fde/triage-04-readiness-checklist.md +82 -0
  66. package/plugin/templates/fde/triage-05-executive-consolidated.md +78 -0
  67. package/plugin/templates/fde/triage-06-global-opportunity.md +70 -0
  68. package/plugin/templates/fde/triage-07-validation-warnings.md +60 -0
  69. package/plugin/templates/init/ado-config.template.yml +21 -0
  70. package/plugin/templates/init/crm-config.template.yml +16 -0
  71. package/plugin/templates/init/kushi-projects.template.json +14 -0
  72. package/plugin/templates/init/m365-auth.template.json +67 -0
  73. package/plugin/templates/init/m365-mutable.template.json +19 -0
  74. package/plugin/templates/init/project-contributors.template.yml +27 -0
  75. package/plugin/templates/init/project-evidence.template.yml +32 -0
  76. package/plugin/templates/init/project-integrations.template.yml +34 -0
  77. package/plugin/templates/init/project-user-settings.template.yml +71 -0
  78. package/plugin/templates/paste-prompt.md +35 -0
  79. package/plugin/templates/snapshot/ado-item.template.md +45 -0
  80. package/plugin/templates/snapshot/crm-record.template.md +34 -0
  81. package/plugin/templates/snapshot/meetings-series-index.template.md +32 -0
  82. package/plugin/templates/snapshot/onenote-page.template.md +28 -0
  83. package/plugin/templates/snapshot/sharepoint-file.template.md +31 -0
  84. package/plugin/templates/snapshot/sharepoint-tree.template.md +39 -0
  85. package/plugin/templates/snapshot/teams-roster.template.md +27 -0
  86. package/plugin/templates/state/00_overview.template.md +44 -0
  87. package/plugin/templates/state/01_decisions.template.md +41 -0
  88. package/plugin/templates/state/02_stakeholders.template.md +48 -0
  89. package/plugin/templates/state/03_architecture-and-solution.template.md +56 -0
  90. package/plugin/templates/state/04_workshops-and-key-meetings.template.md +43 -0
  91. package/plugin/templates/state/05_action-items.template.md +29 -0
  92. package/plugin/templates/state/06_risks-and-issues.template.md +43 -0
  93. package/plugin/templates/state/07_timeline-and-milestones.template.md +45 -0
  94. package/plugin/templates/state/08_artifacts-and-deliverables.template.md +55 -0
  95. package/plugin/templates/state/09_open-questions.template.md +62 -0
  96. package/plugin/templates/state/README.md +41 -0
  97. package/plugin/templates/weekly/ado-stream.template.md +71 -0
  98. package/plugin/templates/weekly/consolidated.template.md +98 -0
  99. package/plugin/templates/weekly/crm-stream.template.md +74 -0
  100. package/plugin/templates/weekly/email-stream.template.md +103 -0
  101. package/plugin/templates/weekly/meetings-stream.template.md +182 -0
  102. package/plugin/templates/weekly/onenote-stream.template.md +106 -0
  103. package/plugin/templates/weekly/run-log.template.md +88 -0
  104. package/plugin/templates/weekly/sharepoint-stream.template.md +121 -0
  105. package/plugin/templates/weekly/teams-stream.template.md +121 -0
  106. package/src/constants.mjs +49 -0
  107. package/src/copy-assets.mjs +183 -0
  108. package/src/main.mjs +262 -0
  109. package/src/profile-resolver.mjs +168 -0
  110. package/src/prompt.mjs +42 -0
  111. package/src/settings.mjs +77 -0
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: consolidate
3
+ description: Merge all contributors' weekly streams into _Consolidated/ for a given window.
4
+ ---
5
+
6
+ # /consolidate
7
+
8
+ Route to `@Kushi consolidate <project> <window>`.
9
+
10
+ Default window: `last 7 days`.
11
+
12
+ Reads:
13
+ - `<engagement-root>/<project>/Evidence/<each-alias>/**/stream/**` for the window
14
+ - `<engagement-root>/<project>/Evidence/contributors.yml`
15
+
16
+ Writes:
17
+ - `<engagement-root>/<project>/Evidence/_Consolidated/<YYYY-MM-DD>_consolidated.md` (Monday of the week)
18
+
19
+ Provenance tags retained (source: <alias>/<source>/<file>) per `citation-ledger.instructions.md`.
20
+
21
+ Delegates to `consolidate-evidence` skill.
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: fde-intake
3
+ description: Author or update the FDE Intake document — first artifact in an FDE engagement. Answers the 6 canonical FDE Intake questions, grounded in project Evidence + the FDE reference pack.
4
+ ---
5
+
6
+ # /fde-intake
7
+
8
+ Route to `@Kushi fde-intake <project>`.
9
+
10
+ Authors (first time) or updates (subsequent runs) the **FDE Intake** at `<engagement-root>/<project>/Reports/00-FDE-Intake-<project>.md` — the first artifact in any FDE engagement. Read-only against Evidence; no outbound.
11
+
12
+ ## Syntax
13
+
14
+ ```
15
+ @Kushi fde-intake <project>
16
+ ```
17
+
18
+ ## What it does
19
+
20
+ - Loads project Evidence (read-only) + the FDE reference pack (`intake-questions.md`, `report-doctrine.md`, `core-fde-reference.md`).
21
+ - Applies all 9 doctrine rules (source resolution gate, recency precedence, CRM-field-vs-confirmed-fact, validation warnings protocol).
22
+ - Answers the 6 canonical FDE Intake questions:
23
+ 1. Who is the customer + business problem?
24
+ 2. What is being asked of FDE?
25
+ 3. Why FDE (vs partner / product / advisory)?
26
+ 4. When does this need to land + is the timeline realistic?
27
+ 5. How is success measured (customer's own ROI)?
28
+ 6. Who catches the outcome after FDE leaves?
29
+ - Surfaces commercial summary (MACC / ECIF / funding / legal posture), MS + customer stakeholders, outcome KPIs, top risks (8 reference-pack categories), anti-patterns triggered.
30
+ - Embeds inline `> ⚠️ VALIDATION WARNING — Rule X.Y` blockquotes wherever Evidence is silent.
31
+ - Records per-source coverage in a `## Source Coverage` footer section.
32
+
33
+ ## Output
34
+
35
+ `<engagement-root>/<project>/Reports/00-FDE-Intake-<project>.md`. Re-runs preserve user-authored prose; only Evidence-derived sections are overwritten. A `## Revision log` entry records each run.
36
+
37
+ ## See also
38
+
39
+ - `skills/fde-intake/SKILL.md` for the full step-by-step.
40
+ - `@Kushi fde-triage <project>` — produces the 7-file triage bundle that builds ON the intake.
41
+ - `@Kushi fde-report <project> stage-readiness` — separate "should we advance the stage?" check.
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: fde-report
3
+ description: Generate an FDE-shaped engagement report in one of five shapes (weekly default / short / long / fitness / stage-readiness), grounded in project Evidence + the FDE reference pack. Read-only; no outbound.
4
+ ---
5
+
6
+ # /fde-report
7
+
8
+ Route to `@Kushi fde-report <project> [shape]`.
9
+
10
+ Generates an FDE-shaped engagement report. Read-only against Evidence; no outbound.
11
+
12
+ ## Syntax
13
+
14
+ ```
15
+ @Kushi fde-report <project> # weekly (default)
16
+ @Kushi fde-report <project> weekly
17
+ @Kushi fde-report <project> short # customer-facing, sanitized
18
+ @Kushi fde-report <project> long # handoff / comprehensive
19
+ @Kushi fde-report <project> fitness # 10-row FDE fitness scorecard
20
+ @Kushi fde-report <project> stage-readiness # advance-the-stage check
21
+ ```
22
+
23
+ ## Shapes
24
+
25
+ | Shape | Audience | Length |
26
+ |---|---|---|
27
+ | `weekly` | Internal MS leads | 1–2 pages |
28
+ | `short` | Customer sponsor (sanitized — no MACC/staffing/CRM IDs) | 1 page |
29
+ | `long` | Incoming FDE crew (handoff context dump) | 3–5 pages |
30
+ | `fitness` | FDE leadership — 10-row fitness scorecard + verdict | 1 page |
31
+ | `stage-readiness` | FDE leadership — should we advance the stage? | 1 page |
32
+
33
+ ## Notes
34
+
35
+ - **`fitness`** shape ≡ bundle file 01 of `fde-triage` (use standalone when you want only the scorecard).
36
+ - **`stage-readiness`** answers "should we advance to the next FDE stage?" — distinct from the triage bundle's **mobilization readiness** (file 04), which asks "can the crew start today?". Run both for a stage gate.
37
+
38
+ ## Output
39
+
40
+ `<engagement-root>/<project>/Reports/fde-<shape>-<YYYY-MM-DD>.md`. Skill applies all 9 doctrine rules and embeds validation warnings inline.
41
+
42
+ ## See also
43
+
44
+ - `skills/fde-report/SKILL.md` for the full step-by-step.
45
+ - `@Kushi fde-intake <project>` — precursor first-artifact intake document.
46
+ - `@Kushi fde-triage <project>` — full 7-file triage bundle (analysis + fitness + risk + 6Q + mobilization readiness + executive readout + reuse lens + validation warnings).
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: fde-triage
3
+ description: Produce the full FDE Triage bundle — 7 companion files (analysis, fitness, risk, 6Q, mobilization readiness, executive readout, global reuse, validation warnings) at <project>/Reports/triage/<YYYY-MM-DD>/.
4
+ ---
5
+
6
+ # /fde-triage
7
+
8
+ Route to `@Kushi fde-triage <project>`.
9
+
10
+ Produces the **FDE Triage bundle** — 7 files saved to `<engagement-root>/<project>/Reports/triage/<YYYY-MM-DD>/`. Read-only against Evidence; no outbound.
11
+
12
+ ## Syntax
13
+
14
+ ```
15
+ @Kushi fde-triage <project>
16
+ ```
17
+
18
+ ## What's in the bundle
19
+
20
+ | # | File | Purpose |
21
+ |---|---|---|
22
+ | 00 | `00-fde-analysis.md` | Concise FDE-oriented project analysis — bundle entry point |
23
+ | 01 | `01-fde-fitness.md` | 10-row FDE fitness scorecard + verdict |
24
+ | 02 | `02-risk-analysis.md` | Risks bucketed into 8 reference-pack categories |
25
+ | 03 | `03-6Q.md` | 6-question engagement framing |
26
+ | 04 | `04-readiness-checklist.md` | **Mobilization readiness** (distinct from stage readiness) |
27
+ | 05 | `05-executive-consolidated-report.md` | Leadership-friendly combined readout |
28
+ | 06 | `06-global-opportunity-and-reuse.md` | Repeatability + commercialization lens |
29
+ | 07 | `07-validation-warnings-checklist.md` | Central tracker of all warnings (open / resolved / NA) |
30
+
31
+ ## Important — mobilization readiness ≠ stage readiness
32
+
33
+ - File 04 = "if we got approval today, could the crew start?"
34
+ - `@Kushi fde-report <project> stage-readiness` = "should we advance to the next FDE stage?"
35
+
36
+ Run both for a stage gate.
37
+
38
+ ## Re-runs
39
+
40
+ Re-running on the same day overwrites files 00–06 in place and **merges file 07** (preserves user-set `resolved` / `not-applicable` statuses).
41
+
42
+ ## See also
43
+
44
+ - `skills/fde-triage/SKILL.md` for the full step-by-step.
45
+ - `@Kushi fde-intake <project>` — first-artifact intake document (precursor to the bundle).
46
+ - `@Kushi fde-report <project> [shape]` — individual report shapes (weekly / short / long / fitness / stage-readiness).
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: refresh
3
+ description: Incremental refresh — pull only what changed since the last run, then rebuild State.
4
+ ---
5
+
6
+ # /refresh
7
+
8
+ Route to `@Kushi refresh <project>`.
9
+
10
+ Window resolution (per `refresh-project` skill):
11
+ 1. If user gave explicit window (`last 7 days`, `since <date>`, `<from>..<to>`) → use it.
12
+ 2. Else read `Evidence/run-log.yml` → use `min(sources.*.watermark)` as `<from>`.
13
+ 3. Else fallback to last 7 days.
14
+
15
+ Output is always weekly-bucketed regardless of input window.
16
+
17
+ Delegates to `refresh-project` skill. Skips `pull-<source>` for sources marked disabled in `integrations.yml` or whose config is missing.
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: state
3
+ description: Re-render State/ from existing Evidence — does NO source pulls.
4
+ ---
5
+
6
+ # /state
7
+
8
+ Route to `@Kushi state <project>`.
9
+
10
+ Pure renderer. Reads:
11
+ - `<engagement-root>/<project>/Evidence/<alias>/**` (all snapshot + stream files for the user)
12
+ - `<engagement-root>/<project>/Evidence/_Consolidated/**` if present
13
+
14
+ Writes:
15
+ - `<engagement-root>/<project>/State/{00_overview, 01_decisions, 02_stakeholders, 03_architecture-and-solution, 04_workshops-and-key-meetings, 05_action-items, 06_risks-and-issues, 07_timeline-and-milestones, 08_artifacts-and-deliverables, 09_open-questions}.md`
16
+
17
+ Delegates to `build-state` skill. Use this when you've manually edited Evidence files and want State refreshed without re-pulling.
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: status
3
+ description: Show run-log — what's been pulled, when, watermarks, recent errors.
4
+ ---
5
+
6
+ # /status
7
+
8
+ Route to `@Kushi status <project>`.
9
+
10
+ Reads `<engagement-root>/<project>/Evidence/run-log.yml` and renders:
11
+ - Per-source: last_pulled, watermark, item_count
12
+ - Recent weekly_files index
13
+ - Any pull errors logged
14
+
15
+ Read-only. No pulls, no writes.
16
+
17
+ Delegates to `project-status` skill.
@@ -0,0 +1,74 @@
1
+ # Kushi reference packs
2
+
3
+ This folder is the **canonical source for static reference content** Kushi skills consult at runtime — domain operating models, taxonomies, stage gates, criteria, status-meaning tables, and similar mostly-stable doctrine.
4
+
5
+ Each subdirectory under `reference-packs/` is one **pack**. Packs are bundled with the Kushi npm package, versioned in git, and installed onto consumer machines via the `full` install profile (or any profile that opts in to the pack).
6
+
7
+ ## How packs are loaded
8
+
9
+ When a skill (e.g. `fde-report`, `ask-project`) needs a pack's content, it loads files **in this priority order**, highest wins:
10
+
11
+ | Priority | Location | Purpose | Lifecycle |
12
+ |---:|---|---|---|
13
+ | 1 (highest) | `<engagement-root>/<project>/.kushi-reference/<pack>/` | Per-engagement override | Versioned with the engagement; for project-specific tuning |
14
+ | 2 | `~/.copilot/kushi-reference/<pack>/` | Per-user override | Per machine / per user; never overwritten by installer |
15
+ | 3 (canonical) | `<install-dest>/reference-packs/<pack>/` (i.e. this folder, installed) | Packaged default | Updated via `npm publish` + version bump |
16
+
17
+ Skills must always:
18
+
19
+ 1. Read the pack's `README.md` first (it documents read-order, file ownership, and any conflict-resolution rules specific to that pack).
20
+ 2. Enumerate **all human-readable `.md` files in the pack** (default canonical first, then merge in user override, then project override).
21
+ 3. Treat the union as one reference set — but when files conflict, prefer the higher-priority layer and call out the override in the skill's run-log / Open Questions instead of silently averaging.
22
+
23
+ ## What goes in a pack
24
+
25
+ - Operating-model definitions (what good looks like; anti-patterns)
26
+ - Fitness criteria, gates, exit criteria, checklists
27
+ - Status-meaning tables (e.g. CRM lifecycle codes)
28
+ - Risk taxonomies
29
+ - Reporting guardrails specific to a domain
30
+ - "Spotlight" reference cases / canonical examples
31
+ - Customer-readiness criteria
32
+
33
+ What does **not** go in a pack:
34
+
35
+ - Per-engagement data (lives under `<project>/Evidence/`)
36
+ - Per-user identity / configs (lives in `~/.copilot/project-evidence.yml`)
37
+ - Skill behavior (lives in `plugin/skills/<skill>/SKILL.md`)
38
+ - Cross-cutting agent doctrine (lives in `plugin/instructions/*.instructions.md`)
39
+
40
+ ## Pack structure (required)
41
+
42
+ ```
43
+ reference-packs/<pack-name>/
44
+ ├── README.md ← required; documents read behavior + file ownership
45
+ ├── <topic-1>.md primary reference file(s)
46
+ ├── <topic-2>.md
47
+ └── ...
48
+ ```
49
+
50
+ `README.md` must explain:
51
+
52
+ - What the pack covers
53
+ - Which skills consume it
54
+ - Read order (which file is the canonical source for which concept)
55
+ - How conflicts between files should be resolved
56
+
57
+ ## Current packs
58
+
59
+ | Pack | Profile | Consumed by | Status |
60
+ |---|---|---|---|
61
+ | `fde/` | `full` | `fde-report`, `ask-project` (for FDE-shaped questions) | shipped |
62
+
63
+ ## Adding a new pack
64
+
65
+ 1. Create `plugin/reference-packs/<pack-name>/` with at minimum a `README.md` describing read behavior.
66
+ 2. Add the pack name to one or more profiles in `plugin/plugin.json` under `reference_packs: ["<pack-name>", ...]`.
67
+ 3. Reference the pack from the consuming skill's `SKILL.md`, using the [3-layer load order](#how-packs-are-loaded).
68
+ 4. Run `pwsh plugin/skills/self-check/run.ps1 -Deep` — check **C10** validates that every pack referenced by a profile exists and has a `README.md`.
69
+
70
+ ## See also
71
+
72
+ - [Concepts → Reference packs](https://gim-home.github.io/kushi/concepts/reference-packs/) — the override model in plain English
73
+ - [Reference → Reference packs](https://gim-home.github.io/kushi/reference/reference-packs/) — schema, load order, override semantics
74
+ - [Concepts → Profiles and report packs](https://gim-home.github.io/kushi/concepts/profiles-and-packs/) — which profile ships which packs
@@ -0,0 +1,62 @@
1
+ # FDE Reference Pack
2
+
3
+ This pack is the canonical home for **Forward Deployed Engineering (FDE)** reporting guidance used by stage-readiness, FDE-fit, status, and risk outputs produced by Kushi.
4
+
5
+ Use this pack when a report needs:
6
+
7
+ - FDE definitions and anti-patterns
8
+ - FDE fitness criteria
9
+ - CRM status → FDE-stage interpretation
10
+ - Stage definitions, stage gates, checklists, exit criteria, and deliverables
11
+ - FDE-specific risk categories and readiness framing
12
+
13
+ ## Consumed by
14
+
15
+ - **`fde-intake`** — generates the engagement's first artifact (`00-FDE-Intake-<project>.md`). Reads `intake-questions.md` + `core-fde-reference.md`.
16
+ - **`fde-report`** — single-shape report generator (`weekly` / `short` / `long` / `fitness` / `stage-readiness`). Reads all three pack files.
17
+ - **`fde-triage`** — 7-file triage bundle generator. Reads all three pack files; relies heavily on `report-doctrine.md` for the validation warnings protocol.
18
+ - **`ask-project`** — when a question maps to FDE concepts (e.g. "what stage is project X in?", "what's still pending to advance to Assigned?", "is this an FDE-fit engagement?"), pulls relevant files from this pack as additional grounding alongside the project's own Evidence/.
19
+
20
+ ## Read behavior
21
+
22
+ 1. **Read `README.md` first** (this file).
23
+ 2. **Enumerate and read all human-readable `.md` files** in the pack.
24
+ 3. Treat the pack as a **single reference set** — any file here may contribute to the FDE operating model used in reports.
25
+ 4. **Apply the 3-layer override order** (highest wins):
26
+ - `<engagement-root>/<project>/.kushi-reference/fde/` ← per-engagement override
27
+ - `~/.copilot/kushi-reference/fde/` ← per-user override
28
+ - `<install-dest>/reference-packs/fde/` ← packaged default (this folder, installed)
29
+ 5. If two files at the same layer conflict, prefer the more **specific** file for that concept and raise the conflict explicitly in the skill's run-log / Open Questions — never silently average.
30
+
31
+ ## File ownership
32
+
33
+ - **`core-fde-reference.md`** — canonical source for the **FDE operating model** (definitions, anti-patterns, fitness criteria, delivery model, CRM status meanings, value proposition, risk categories, customer readiness criteria, intake stages and gates).
34
+ - **`report-doctrine.md`** — canonical source for FDE **report rules** (source resolution gate, recency precedence, CRM-field-vs-confirmed-fact, validation warnings protocol with Rule X.Y numbering, citation density, privacy posture for external-facing reports).
35
+ - **`intake-questions.md`** — canonical source for the **6 FDE Intake questions + required/optional role rules** (ATU + Industry Team required; ISE / ISD / Exec Sponsor / PG optional with explicit "absent" statements).
36
+
37
+ If this pack grows, each concept should still have a single owning file:
38
+
39
+ - Do not split the same stage gate, readiness rule, or risk taxonomy across multiple files unless one file is explicitly the *summary* and another is explicitly the *detail*.
40
+ - Skills should consult every file but route citations to the owning file.
41
+
42
+ ## Canonical location
43
+
44
+ `plugin/reference-packs/fde/` in this repository.
45
+
46
+ After install: `<install-dest>/reference-packs/fde/` (i.e. `.kushi/reference-packs/fde/` for VS Code, `~/.copilot/m-skills/kushi/reference-packs/fde/` for Clawpilot).
47
+
48
+ ## Citations from this pack
49
+
50
+ When `fde-report` or `ask-project` quotes from this pack in an output, the citation form is:
51
+
52
+ ```text
53
+ [source: reference-packs/fde/<file>.md · packaged]
54
+ ```
55
+
56
+ `packaged` denotes the canonical layer (i.e. this folder shipped in the npm package). Overrides cite as `user-override` or `project-override` respectively, so the reader can tell what layer the assertion came from.
57
+
58
+ ## Editing
59
+
60
+ Edits to the canonical files in this folder ship as a **new Kushi minor release** (`v3.x.0` → `v3.(x+1).0`). For one-off tweaks specific to your machine or one engagement, prefer the **user override** or **project override** layers above — those never get overwritten by re-installs.
61
+
62
+ See [`plugin/reference-packs/README.md`](../README.md) for the full pack-system doctrine.