kushi-agents 5.0.0 → 5.0.2
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/README.md +30 -7
- package/bin/cli.mjs +73 -45
- package/package.json +51 -51
- package/plugin/instructions/agentskills-compliance.instructions.md +144 -0
- package/plugin/instructions/multi-host-install.instructions.md +125 -0
- package/plugin/instructions/plan-validate-execute.instructions.md +75 -0
- package/plugin/instructions/release-genealogy.instructions.md +52 -0
- package/plugin/skills/aggregate-project/SKILL.md +11 -2
- package/plugin/skills/apply-ado-update/SKILL.md +11 -2
- package/plugin/skills/ask-project/SKILL.md +1 -1
- package/plugin/skills/bootstrap-project/SKILL.md +39 -127
- package/plugin/skills/bootstrap-project/references/discovery-sweep.md +40 -0
- package/plugin/skills/bootstrap-project/references/pull-dispatch.md +50 -0
- package/plugin/skills/bootstrap-project/references/registry-persistence.md +55 -0
- package/plugin/skills/build-state/SKILL.md +50 -2
- package/plugin/skills/consolidate-evidence/SKILL.md +11 -2
- package/plugin/skills/dashboard/SKILL.md +20 -1
- package/plugin/skills/emit-vertex/SKILL.md +10 -1
- package/plugin/skills/fde-intake/SKILL.md +10 -1
- package/plugin/skills/fde-report/SKILL.md +10 -1
- package/plugin/skills/fde-triage/SKILL.md +10 -1
- package/plugin/skills/intro/SKILL.md +1 -1
- package/plugin/skills/link-entities/SKILL.md +43 -1
- package/plugin/skills/project-status/SKILL.md +1 -1
- package/plugin/skills/propose-ado-update/SKILL.md +11 -2
- package/plugin/skills/pull-ado/SKILL.md +26 -9
- package/plugin/skills/pull-crm/SKILL.md +39 -125
- package/plugin/skills/pull-crm/references/dataverse-doctrine.md +108 -0
- package/plugin/skills/pull-crm/references/legacy-shape.md +28 -0
- package/plugin/skills/pull-email/SKILL.md +33 -79
- package/plugin/skills/pull-email/references/retrieval-order.md +43 -0
- package/plugin/skills/pull-email/references/two-pass-pull.md +41 -0
- package/plugin/skills/pull-loop/SKILL.md +194 -177
- package/plugin/skills/pull-meetings/SKILL.md +35 -72
- package/plugin/skills/pull-meetings/references/legacy-stream.md +15 -0
- package/plugin/skills/pull-meetings/references/verbatim-capture.md +61 -0
- package/plugin/skills/pull-misc/SKILL.md +24 -7
- package/plugin/skills/pull-onenote/SKILL.md +207 -555
- package/plugin/skills/pull-onenote/references/playwright-fallback.md +111 -0
- package/plugin/skills/pull-onenote/references/preflight.md +85 -0
- package/plugin/skills/pull-onenote/references/runtime-contract.md +118 -0
- package/plugin/skills/pull-sharepoint/SKILL.md +26 -9
- package/plugin/skills/pull-teams/SKILL.md +26 -9
- package/plugin/skills/refresh-project/SKILL.md +24 -2
- package/plugin/skills/self-check/SKILL.md +9 -1
- package/plugin/skills/self-check/run.ps1 +216 -4
- package/plugin/skills/setup/SKILL.md +14 -120
- package/plugin/skills/setup/references/onedrive-pin-sync.md +60 -0
- package/plugin/skills/setup/references/recovery-prompts.md +81 -0
- package/plugin/skills/tour/SKILL.md +18 -1
- package/plugin/skills/vertex-link/SKILL.md +1 -1
- package/src/constants.mjs +39 -1
- package/src/multi-host-install.test.mjs +170 -0
- package/src/multi-host.mjs +277 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "build-state"
|
|
3
3
|
version: "4.0.0"
|
|
4
|
-
description: "
|
|
4
|
+
description: "USE WHEN the user says \"regenerate State for <X>\", \"rebuild State\", or \"@Kushi state <X>\" AND the project already has Evidence/ populated. DO NOT USE to pull new evidence (use refresh-project or pull-*). Capability: pure re-render — reads Evidence/_index/entities.yml + weekly CSC + legacy fallback, writes <project>/State/ in BOTH legacy 00–09 synthesis (full profile) AND Karpathy layout (index.md + log.md + per-entity pages + CLAUDE.md/AGENTS.md). Plan-validate-execute writer."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Skill: build-state
|
|
@@ -28,8 +28,47 @@ Run this when the user says: "regenerate state for `<X>`", "rebuild State", "@Ku
|
|
|
28
28
|
|
|
29
29
|
- `<project>` — already-bootstrapped project.
|
|
30
30
|
|
|
31
|
+
## Plan / Validate / Execute
|
|
32
|
+
|
|
33
|
+
Per `plan-validate-execute.instructions.md`:
|
|
34
|
+
|
|
35
|
+
1. **Plan** — before Step 2 (regenerate State files), serialize the proposed
|
|
36
|
+
state shape to `<project>/Evidence/_plan/build-state-plan.json`:
|
|
37
|
+
- `inputs[]` — every `_index/entities.yml` row, `weekly/*.md` file, and
|
|
38
|
+
legacy `snapshot/`/`stream/` fallback file the run intends to read.
|
|
39
|
+
Each entry: `{ source, alias, path, last_modified, included_in: [<state_file>, ...] }`.
|
|
40
|
+
- `proposed_state_files[]` — `{ id: "00..08", title, sections: [...],
|
|
41
|
+
citation_count, evidence_window: [from_iso, to_iso] }`.
|
|
42
|
+
- `proposed_open_questions[]` — `{ text, source_refs[] }` (the OQ list
|
|
43
|
+
Step 5 plans to write).
|
|
44
|
+
- `proposed_karpathy_emit[]` — the v5 Karpathy block paths planned for Step 6.
|
|
45
|
+
2. **Validate** — for every `evidence_ref` in the plan, re-confirm the source
|
|
46
|
+
file exists and its `last_modified` matches the plan. Drop any reference
|
|
47
|
+
whose anchor no longer resolves (the underlying weekly file may have been
|
|
48
|
+
re-written between plan and execute). If validate drops > 20% of references
|
|
49
|
+
in any single State file, abort that file's write and surface the plan for
|
|
50
|
+
review.
|
|
51
|
+
3. **Execute** — write `State/00..08_*.md` and the Karpathy outputs. Stamp each
|
|
52
|
+
State file's banner with the plan ID + validate-pass timestamp.
|
|
53
|
+
|
|
54
|
+
The `_plan/` file is overwritten on every run and is safe to delete between
|
|
55
|
+
runs — transient working artifact, not authoritative truth.
|
|
56
|
+
|
|
31
57
|
## Steps
|
|
32
58
|
|
|
59
|
+
|
|
60
|
+
## Step checklist
|
|
61
|
+
|
|
62
|
+
Progress-trackable view of the steps below. Each `### Step` block expands the corresponding checkbox.
|
|
63
|
+
|
|
64
|
+
- [ ] Step 1 — Read all Evidence
|
|
65
|
+
- [ ] Step 2 — For each State file (00–08), regenerate
|
|
66
|
+
- [ ] Step 3 — Conflict resolution
|
|
67
|
+
- [ ] Step 4 — Citation density
|
|
68
|
+
- [ ] Step 5 — Open Questions (mandatory every run)
|
|
69
|
+
- [ ] Step 6 — v5 Karpathy emission (ADDITIVE; per `karpathy-state-layout.instructions.md`)
|
|
70
|
+
- [ ] Step 7 — Banner
|
|
71
|
+
|
|
33
72
|
### Step 1 — Read all Evidence
|
|
34
73
|
|
|
35
74
|
For the resolved `<project>`, apply the v4.9.0 fallback chain for each `<alias>/<source>/`:
|
|
@@ -128,4 +167,13 @@ Top of every State file:
|
|
|
128
167
|
## Changelog
|
|
129
168
|
|
|
130
169
|
- **v4.0.0 (kushi v5.0.0, 2026-05-26)**: ADDITIVE Karpathy-style emission — per-entity pages under `State/<category>/`, `State/index.md`, `State/log.md`, `State/CLAUDE.md`, `State/AGENTS.md`. Distinguished by `kushi_state_page: true`. Legacy 00–09 synthesis is retained for `full` profile parity. Gated on `m365Mutable.state.layout` (default `karpathy`). See `..\..\instructions\karpathy-state-layout.instructions.md`.
|
|
131
|
-
- **v3.0.0 (kushi v4.9.0, 2026-05-26)**: 3-step reader fallback chain (`_index/entities.yml` → `weekly/*.md` → legacy `snapshot/` + `stream/`). New citation form `weekly/<YYYY-MM-DD>_<source>-csc.md#<anchor>`. Legacy citations suffixed `(legacy pre-v4.9.0 layout)`. Output marked with `Source-layout:` footer.
|
|
170
|
+
- **v3.0.0 (kushi v4.9.0, 2026-05-26)**: 3-step reader fallback chain (`_index/entities.yml` → `weekly/*.md` → legacy `snapshot/` + `stream/`). New citation form `weekly/<YYYY-MM-DD>_<source>-csc.md#<anchor>`. Legacy citations suffixed `(legacy pre-v4.9.0 layout)`. Output marked with `Source-layout:` footer.
|
|
171
|
+
|
|
172
|
+
## Validation loop
|
|
173
|
+
|
|
174
|
+
After writing outputs:
|
|
175
|
+
|
|
176
|
+
1. Run self-check targeted at this skill: `pwsh plugin/skills/self-check/run.ps1 -Targeted state`
|
|
177
|
+
2. If failures: fix and re-run the affected step (not the whole skill).
|
|
178
|
+
3. Repeat until self-check exits 0.
|
|
179
|
+
4. Only then update `run-log.yml` with success status.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "consolidate-evidence"
|
|
3
3
|
version: "3.0.0"
|
|
4
|
-
description: "
|
|
4
|
+
description: "USE WHEN multiple contributors have pulled the same project AND the orchestrator (refresh-project / aggregate-project) needs a merged view at Evidence/_Consolidated/ for downstream skills (build-state, link-entities, ask-project). DO NOT USE manually — it's an internal pass. Capability: merges per-contributor Evidence/<alias>/<source>/ into Evidence/_Consolidated/ for a window using the 3-step reader fallback (_index → weekly → legacy). Latest-fact-wins; cites originating alias."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Skill: consolidate-evidence
|
|
@@ -71,4 +71,13 @@ When this skill exposes a reusable defect (auth pattern, doctrine gap, layout mi
|
|
|
71
71
|
|
|
72
72
|
## Changelog
|
|
73
73
|
|
|
74
|
-
- **v3.0.0 (kushi v4.9.0, 2026-05-26)**: 3-step reader fallback chain (`_index/entities.yml` → `weekly/*.md` → legacy `snapshot/` + `stream/`). New citation form `weekly/<YYYY-MM-DD>_<source>-csc.md#<anchor>`. Legacy citations suffixed `(legacy pre-v4.9.0 layout)`. Output marked with `Source-layout:` footer.
|
|
74
|
+
- **v3.0.0 (kushi v4.9.0, 2026-05-26)**: 3-step reader fallback chain (`_index/entities.yml` → `weekly/*.md` → legacy `snapshot/` + `stream/`). New citation form `weekly/<YYYY-MM-DD>_<source>-csc.md#<anchor>`. Legacy citations suffixed `(legacy pre-v4.9.0 layout)`. Output marked with `Source-layout:` footer.
|
|
75
|
+
|
|
76
|
+
## Validation loop
|
|
77
|
+
|
|
78
|
+
After writing outputs:
|
|
79
|
+
|
|
80
|
+
1. Run self-check targeted at this skill: `pwsh plugin/skills/self-check/run.ps1 -Targeted consolidate-evidence`
|
|
81
|
+
2. If failures: fix and re-run the affected step (not the whole skill).
|
|
82
|
+
3. Repeat until self-check exits 0.
|
|
83
|
+
4. Only then update `run-log.yml` with success status.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "dashboard"
|
|
3
3
|
version: "1.0.0"
|
|
4
|
-
description: "
|
|
4
|
+
description: "USE WHEN the user says \"@Kushi dashboard <X>\" OR after refresh-project/bootstrap-project completes AND <project>/Evidence/_graph/project-graph.json exists. DO NOT USE before link-entities has produced a graph (no-op without it). Capability: renders single self-contained <project>/dashboard.html via Cytoscape.js v3 + cose-bilkent, Clawpilot theme variables, two-view tabs (Graph + Timeline), source/alias/date filters, fuzzy search, side panel with cited CSC blocks."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Skill: dashboard
|
|
@@ -38,6 +38,16 @@ description: "v5.0.0 — Render an interactive HTML dashboard for a project. Rea
|
|
|
38
38
|
|
|
39
39
|
## Steps
|
|
40
40
|
|
|
41
|
+
|
|
42
|
+
## Step checklist
|
|
43
|
+
|
|
44
|
+
Progress-trackable view of the steps below. Each `### Step` block expands the corresponding checkbox.
|
|
45
|
+
|
|
46
|
+
- [ ] Step 1 — Verify inputs
|
|
47
|
+
- [ ] Step 2 — Collect data
|
|
48
|
+
- [ ] Step 3 — Render
|
|
49
|
+
- [ ] Step 4 — Verify
|
|
50
|
+
|
|
41
51
|
### Step 1 — Verify inputs
|
|
42
52
|
|
|
43
53
|
If `<project>/Evidence/_graph/project-graph.json` does not exist, exit
|
|
@@ -111,3 +121,12 @@ re-run self-check D22.dashboard.
|
|
|
111
121
|
- **v1.0.0 (kushi v5.0.0, 2026-05-26)**: initial release. Cytoscape.js v3 +
|
|
112
122
|
cose-bilkent + Clawpilot theme variables; two-view tabs; side panel;
|
|
113
123
|
filters; fuzzy search.
|
|
124
|
+
|
|
125
|
+
## Validation loop
|
|
126
|
+
|
|
127
|
+
After writing outputs:
|
|
128
|
+
|
|
129
|
+
1. Run self-check targeted at this skill: `pwsh plugin/skills/self-check/run.ps1 -Targeted dashboard`
|
|
130
|
+
2. If failures: fix and re-run the affected step (not the whole skill).
|
|
131
|
+
3. Repeat until self-check exits 0.
|
|
132
|
+
4. Only then update `run-log.yml` with success status.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "emit-vertex"
|
|
3
|
-
description: "
|
|
3
|
+
description: "USE WHEN the user says \"emit vertex artifacts for <project>\", \"stage a vertex weekly status\", \"promote a kushi decision to vertex\" AND the project has been linked to vertex via vertex-link. DO NOT USE for projects with no kushi.yaml#vertex block (run vertex-link first). Capability: renders vertex-shaped artifacts (weekly status, decisions, workshops, comms, living-doc PR proposals) from kushi Evidence/ + State/; stages first; user reviews before commit."
|
|
4
4
|
applyTo: ["emit-vertex"]
|
|
5
5
|
version: "1.1.0"
|
|
6
6
|
maturity: "preview"
|
|
@@ -171,3 +171,12 @@ Per `issue-recovery.instructions.md`. emit-vertex's pre-flight failures, schema
|
|
|
171
171
|
- [`vertex-link/SKILL.md`](../vertex-link/SKILL.md) — sister skill that populates `kushi.yaml#vertex` mapping
|
|
172
172
|
- [`docs/concepts/kushi-with-vertex.md`](../../../docs/concepts/kushi-with-vertex.md) — outcome-based user-facing guide
|
|
173
173
|
- [vertex repo](https://github.com/commercial-software-engineering/vertex)
|
|
174
|
+
|
|
175
|
+
## Validation loop
|
|
176
|
+
|
|
177
|
+
After writing outputs:
|
|
178
|
+
|
|
179
|
+
1. Run self-check targeted at this skill: `pwsh plugin/skills/self-check/run.ps1 -Targeted emit-vertex`
|
|
180
|
+
2. If failures: fix and re-run the affected step (not the whole skill).
|
|
181
|
+
3. Repeat until self-check exits 0.
|
|
182
|
+
4. Only then update `run-log.yml` with success status.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "fde-intake"
|
|
3
3
|
version: "1.0.0"
|
|
4
|
-
description: "
|
|
4
|
+
description: "USE WHEN an FDE engagement begins AND the user says \"author the intake doc for <X>\", \"update the FDE intake\", \"kick off FDE for <X>\". DO NOT USE for non-FDE engagements or for the triage/report stages (use fde-triage / fde-report). Capability: authors or updates the FDE Intake document — the first artifact in any FDE engagement. Reads project Evidence + FDE reference pack (intake schema); fills missing fields by re-extracting from Evidence with citations."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Skill: fde-intake
|
|
@@ -145,3 +145,12 @@ Display:
|
|
|
145
145
|
- "draft the fde intake for `<project>`"
|
|
146
146
|
- "update the intake for `<project>`"
|
|
147
147
|
- "@Kushi fde-intake `<project>`"
|
|
148
|
+
|
|
149
|
+
## Validation loop
|
|
150
|
+
|
|
151
|
+
After writing outputs:
|
|
152
|
+
|
|
153
|
+
1. Run self-check targeted at this skill: `pwsh plugin/skills/self-check/run.ps1 -Targeted fde-intake`
|
|
154
|
+
2. If failures: fix and re-run the affected step (not the whole skill).
|
|
155
|
+
3. Repeat until self-check exits 0.
|
|
156
|
+
4. Only then update `run-log.yml` with success status.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "fde-report"
|
|
3
3
|
version: "1.0.0"
|
|
4
|
-
description: "
|
|
4
|
+
description: "USE WHEN the user asks for an \"FDE report\" / \"weekly status for <X>\" / \"stage-readiness report\" / \"fitness report\" / \"long-form FDE writeup\" for an FDE engagement. DO NOT USE for non-FDE reporting (use ask-project for Q&A). Capability: generates one of five FDE report shapes (weekly / short / long / fitness / stage-readiness), grounded in the project's Evidence/+State/, per the FDE reference pack templates."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Skill: fde-report
|
|
@@ -157,3 +157,12 @@ Display:
|
|
|
157
157
|
- "fde fitness for `<project>`"
|
|
158
158
|
- "stage readiness for `<project>`"
|
|
159
159
|
- "@Kushi fde-report `<project>` [`<shape>`]"
|
|
160
|
+
|
|
161
|
+
## Validation loop
|
|
162
|
+
|
|
163
|
+
After writing outputs:
|
|
164
|
+
|
|
165
|
+
1. Run self-check targeted at this skill: `pwsh plugin/skills/self-check/run.ps1 -Targeted fde-report`
|
|
166
|
+
2. If failures: fix and re-run the affected step (not the whole skill).
|
|
167
|
+
3. Repeat until self-check exits 0.
|
|
168
|
+
4. Only then update `run-log.yml` with success status.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "fde-triage"
|
|
3
3
|
version: "1.0.0"
|
|
4
|
-
description: "
|
|
4
|
+
description: "USE WHEN an FDE engagement reaches the triage stage AND the user says \"run FDE triage for <X>\", \"produce the triage bundle\", \"do the 6Q triage\". DO NOT USE for non-FDE engagements or for one-off reports (use fde-report). Capability: produces the full FDE Triage bundle — 7 companion files at <project>/Reports/triage/<YYYY-MM-DD>/ covering analysis, fitness, risk, 6Q framing, and recommendations."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Skill: fde-triage
|
|
@@ -112,3 +112,12 @@ Display:
|
|
|
112
112
|
- "triage bundle for `<project>`"
|
|
113
113
|
- "do the full fde triage for `<project>`"
|
|
114
114
|
- "@Kushi fde-triage `<project>`"
|
|
115
|
+
|
|
116
|
+
## Validation loop
|
|
117
|
+
|
|
118
|
+
After writing outputs:
|
|
119
|
+
|
|
120
|
+
1. Run self-check targeted at this skill: `pwsh plugin/skills/self-check/run.ps1 -Targeted fde-triage`
|
|
121
|
+
2. If failures: fix and re-run the affected step (not the whole skill).
|
|
122
|
+
3. Repeat until self-check exits 0.
|
|
123
|
+
4. Only then update `run-log.yml` with success status.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "intro"
|
|
3
3
|
version: "2.1.0"
|
|
4
|
-
description: "
|
|
4
|
+
description: "USE WHEN the user asks \"what is Kushi?\", \"what can you do?\", \"show me the skills\", \"give me a tour\", or any first-touch onboarding question AND the user appears unfamiliar with kushi. DO NOT USE for project-specific work or for users already mid-workflow. Capability: offers a quick overview OR an interactive walkthrough — picks a known-bootstrapped project, runs a guided demo across ask, refresh, dashboard, tour."
|
|
5
5
|
triggers:
|
|
6
6
|
- "what is kushi"
|
|
7
7
|
- "what can kushi do"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "link-entities"
|
|
3
3
|
version: "1.0.0"
|
|
4
|
-
description: "
|
|
4
|
+
description: "USE WHEN refresh-project / bootstrap-project completes AND every enabled pull-* has written its weekly/_index pair, OR when the user says \"@Kushi link entities <X>\" / \"rebuild the graph for <X>\". DO NOT USE before any source has been pulled. Capability: walks per-contributor _index/entities.yml + weekly CSC, runs deterministic extractors, emits Evidence/_graph/project-graph.json with closed edge taxonomy. Plan-validate-execute writer (Evidence/_plan/link-entities-plan.json → validate → write graph)."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Skill: link-entities
|
|
@@ -37,8 +37,41 @@ modifies `<alias>/<source>/weekly/` or `<alias>/<source>/_index/`.
|
|
|
37
37
|
- `<engagement-root>/<project>/Evidence/_graph/project-graph.json` —
|
|
38
38
|
per `entity-graph.instructions.md` schema.
|
|
39
39
|
|
|
40
|
+
## Plan / Validate / Execute
|
|
41
|
+
|
|
42
|
+
Per `plan-validate-execute.instructions.md`:
|
|
43
|
+
|
|
44
|
+
1. **Plan** — before Step 5 (merge+write), serialize the proposed merges to
|
|
45
|
+
`<project>/Evidence/_plan/link-entities-plan.json`:
|
|
46
|
+
- `nodes_in[]` — every node loaded from `_index/entities.yml` across contributors.
|
|
47
|
+
- `proposed_edges[]` — `{ from_id, to_id, kind, score, evidence_refs[] }`.
|
|
48
|
+
- `proposed_aliases[]` — `{ canonical_id, alias_ids[], confidence }`.
|
|
49
|
+
- `tombstones[]` — entries that would be removed/superseded.
|
|
50
|
+
2. **Validate** — re-read each `evidence_ref` in `proposed_edges[]` against
|
|
51
|
+
the source `<alias>/<source>/_index/entities.yml` and `weekly/*.md`. Drop
|
|
52
|
+
any edge whose anchor no longer resolves. Drop alias rows whose confidence
|
|
53
|
+
falls below `link-entities.alias_min_confidence` (default 0.85).
|
|
54
|
+
3. **Execute** — only after validate passes, write
|
|
55
|
+
`<project>/Evidence/_graph/project-graph.json` and the per-source
|
|
56
|
+
`entity-links.yml` upserts. If validate drops > 20% of proposed edges,
|
|
57
|
+
abort and surface the plan file for human review (do NOT execute).
|
|
58
|
+
|
|
59
|
+
The `_plan/` file is overwritten on every run and is safe to delete between
|
|
60
|
+
runs — transient working artifact, not authoritative truth.
|
|
61
|
+
|
|
40
62
|
## Steps
|
|
41
63
|
|
|
64
|
+
|
|
65
|
+
## Step checklist
|
|
66
|
+
|
|
67
|
+
Progress-trackable view of the steps below. Each `### Step` block expands the corresponding checkbox.
|
|
68
|
+
|
|
69
|
+
- [ ] Step 1 — Discover contributors + sources
|
|
70
|
+
- [ ] Step 2 — Load nodes from `_index/entities.yml`
|
|
71
|
+
- [ ] Step 3 — Run deterministic extractors over `weekly/*.md`
|
|
72
|
+
- [ ] Step 4 — LLM augment (opt-in)
|
|
73
|
+
- [ ] Step 5 — Merge + write
|
|
74
|
+
|
|
42
75
|
### Step 1 — Discover contributors + sources
|
|
43
76
|
|
|
44
77
|
Walk `<project>/Evidence/` for direct subdirectories (excluding names
|
|
@@ -214,3 +247,12 @@ the merge predicate), then re-run with `-Json` and inspect the envelope.
|
|
|
214
247
|
|
|
215
248
|
- **v1.0.0 (kushi v5.0.0, 2026-05-26)**: initial release. Deterministic-first
|
|
216
249
|
graph producer; opt-in LLM augment; multi-user merge.
|
|
250
|
+
|
|
251
|
+
## Validation loop
|
|
252
|
+
|
|
253
|
+
After writing outputs:
|
|
254
|
+
|
|
255
|
+
1. Run self-check targeted at this skill: `pwsh plugin/skills/self-check/run.ps1 -Targeted graph`
|
|
256
|
+
2. If failures: fix and re-run the affected step (not the whole skill).
|
|
257
|
+
3. Repeat until self-check exits 0.
|
|
258
|
+
4. Only then update `run-log.yml` with success status.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "project-status"
|
|
3
3
|
version: "2.0.0"
|
|
4
|
-
description: "
|
|
4
|
+
description: "USE WHEN the user asks \"what's the status of <X>?\", \"when was <X> last refreshed?\", \"any errors in <X>?\", \"show the run-log for <X>\" for an already-bootstrapped project. DO NOT USE to answer substantive questions about project content (use ask-project). Capability: read-only — shows per-source watermarks, last-pulled, item counts, weekly_files index, recent errors from run-log.yml. No source calls."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Skill: project-status
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: "propose-ado-update"
|
|
3
3
|
version: "0.1.0-preview"
|
|
4
4
|
status: "preview"
|
|
5
|
-
description: "
|
|
5
|
+
description: "USE WHEN the user says \"propose ADO updates for <X>\", \"draft work-item edits from this week's evidence\", \"what should I update in ADO for <X>?\" AND <project>/Evidence/_Consolidated/ exists. DO NOT USE to push edits to ADO (use apply-ado-update). Capability: read-only generator — reads latest Consolidated evidence, produces <project>/ado-updates/<YYYY-MM-DD>/proposed.md with a Markdown diff per work-item field."
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Skill: propose-ado-update
|
|
@@ -110,4 +110,13 @@ Refuse to produce `proposed.md` and tell the user exactly what's missing if any
|
|
|
110
110
|
|
|
111
111
|
## Issue Recovery
|
|
112
112
|
|
|
113
|
-
When this skill exposes a reusable defect (auth pattern, doctrine gap, layout mismatch), apply the [Issue Recovery Rule](../../instructions/issue-recovery.instructions.md): fix the smallest correct repo-owned artifact first, prefer durable fixes over per-run workarounds, then re-run the narrowest failed check. Do NOT use memory as a substitute for correcting the workflow surface.
|
|
113
|
+
When this skill exposes a reusable defect (auth pattern, doctrine gap, layout mismatch), apply the [Issue Recovery Rule](../../instructions/issue-recovery.instructions.md): fix the smallest correct repo-owned artifact first, prefer durable fixes over per-run workarounds, then re-run the narrowest failed check. Do NOT use memory as a substitute for correcting the workflow surface.
|
|
114
|
+
|
|
115
|
+
## Validation loop
|
|
116
|
+
|
|
117
|
+
After writing outputs:
|
|
118
|
+
|
|
119
|
+
1. Run self-check targeted at this skill: `pwsh plugin/skills/self-check/run.ps1 -Targeted propose-ado-update`
|
|
120
|
+
2. If failures: fix and re-run the affected step (not the whole skill).
|
|
121
|
+
3. Repeat until self-check exits 0.
|
|
122
|
+
4. Only then update `run-log.yml` with success status.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "pull-ado"
|
|
3
3
|
version: "3.0.0"
|
|
4
|
-
description: "
|
|
4
|
+
description: "USE WHEN refresh-project / bootstrap-project dispatches ADO source OR the user says \"pull ADO for <X>\" AND the project has integrations.yml#boundaries.ado.org_project set. DO NOT USE for non-kushi ADO queries or for write operations (use propose-ado-update / apply-ado-update). Capability: pulls ADO evidence as Comprehensive Structured Capture (CSC) blocks written to weekly/YYYY-MM-DD_ado-csc.md, one block per work item touched that week, upserted in _index/entities.yml. WorkIQ-only."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Skill: pull-ado
|
|
@@ -22,6 +22,14 @@ description: "v3.0.0 (kushi v4.9.0): Pull ADO evidence as Comprehensive Structur
|
|
|
22
22
|
> - ~~`verbatim-by-default.instructions.md`~~ (LEGACY — superseded by CSC).
|
|
23
23
|
> - ~~`snapshot-vs-stream.instructions.md`~~ (LEGACY — superseded by weekly-csc).
|
|
24
24
|
|
|
25
|
+
## Gotchas
|
|
26
|
+
|
|
27
|
+
- **Work-item URL is the canonical id** — `ado://org=<o>/project=<p>/workitem=<id>`. Title is not stable across edits.
|
|
28
|
+
- **Discussion comments are stream-only** — comments don''t change `Changed Date` on the parent work item. Use the comments collection for incrementality; CSC bullets cite per-comment timestamps.
|
|
29
|
+
- **ADO-not-complete is a first-class state** — when WorkIQ returns partial work-item data (e.g. missing custom fields), log `ado-not-complete` in `_index/entities.yml#status` and retry next refresh. Do NOT fabricate field values.
|
|
30
|
+
- **Parent/child links use different relation names per process template** — `System.LinkTypes.Hierarchy-Forward` vs `Microsoft.VSTS.Common.TestedBy-Forward`. Don''t hard-code; read the relation list and classify.
|
|
31
|
+
- **Iteration paths contain slashes that look like file paths** — escape when rendering citations: `<Org>\<Project>\<Iter>` not `<Org>/<Project>/<Iter>`.
|
|
32
|
+
|
|
25
33
|
## v4.9.0 — Comprehensive Structured Capture (CSC) + weekly/ layout (HARD RULE; supersedes all snapshot/+stream/ guidance below)
|
|
26
34
|
|
|
27
35
|
Per `comprehensive-structured-capture.instructions.md` and `weekly-csc.instructions.md`:
|
|
@@ -69,8 +77,8 @@ Per `comprehensive-structured-capture.instructions.md` and `weekly-csc.instructi
|
|
|
69
77
|
- Iteration dates, story points, effort → **Dates & Numbers Shared**
|
|
70
78
|
- Discussion comments → **Q&A** (when Q-and-A pattern detected) + **Who Said What**
|
|
71
79
|
- Tags, related WIs, parent-child links, attachment metadata → **Artifacts/Links**
|
|
72
|
-
- Entity id: `ado://org=<org>/project=<project>/workitemid=<int>`.
|
|
73
|
-
|
|
80
|
+
- Entity id: `ado://org=<org>/project=<project>/workitemid=<int>`.
|
|
81
|
+
|
|
74
82
|
Pulls **ado** evidence in two shapes per `snapshot-vs-stream.instructions.md`:
|
|
75
83
|
|
|
76
84
|
- **snapshot/** — engagement TREE: parent Engagement + every child WI; each item gets full fields + every discussion comment verbatim + full revision history
|
|
@@ -299,11 +307,11 @@ After successful pass:
|
|
|
299
307
|
- Step 1 returns zero candidates → record `no-match` + WIQL + `next_step`, stop.
|
|
300
308
|
- A child WI fetch fails → mark `❌ item-fetch-failed` in `tree.md`, continue tree.
|
|
301
309
|
- Discussion paging fails mid-stream → record `❌ comments-partial — N/M fetched` and continue.
|
|
302
|
-
|
|
303
|
-
## References (v4.4.7)
|
|
304
|
-
|
|
305
|
-
- Name → ID resolution follows ..\..\instructions\fuzzy-disambiguation.instructions.md (universal fuzzy contract).
|
|
306
|
-
- After this pull completes, the per-source verification gate runs: ..\..\instructions\per-source-verification-gate.instructions.md (retry once, then write FOLLOW-UPS.md).
|
|
310
|
+
|
|
311
|
+
## References (v4.4.7)
|
|
312
|
+
|
|
313
|
+
- Name → ID resolution follows ..\..\instructions\fuzzy-disambiguation.instructions.md (universal fuzzy contract).
|
|
314
|
+
- After this pull completes, the per-source verification gate runs: ..\..\instructions\per-source-verification-gate.instructions.md (retry once, then write FOLLOW-UPS.md).
|
|
307
315
|
|
|
308
316
|
|
|
309
317
|
## Issue Recovery
|
|
@@ -324,4 +332,13 @@ An entity that cannot meet the threshold is flagged `low_signal: true` in `_inde
|
|
|
324
332
|
changes. WI fields mapped to CSC sections (AssignedTo→Participants, Description→Topics, State
|
|
325
333
|
changes→Decisions, Comments→Q&A+Who Said What, etc.). AI Narrative Summary requirement removed.
|
|
326
334
|
Legacy snapshot/+stream/ folders left readable; no migration.
|
|
327
|
-
- **v2.x.x**: prior snapshot/+stream/ + verbatim-by-default shape. See git history.
|
|
335
|
+
- **v2.x.x**: prior snapshot/+stream/ + verbatim-by-default shape. See git history.
|
|
336
|
+
|
|
337
|
+
## Validation loop
|
|
338
|
+
|
|
339
|
+
After writing outputs:
|
|
340
|
+
|
|
341
|
+
1. Run self-check targeted at this skill: `pwsh plugin/skills/self-check/run.ps1 -Targeted pull-ado`
|
|
342
|
+
2. If failures: fix and re-run the affected step (not the whole skill).
|
|
343
|
+
3. Repeat until self-check exits 0.
|
|
344
|
+
4. Only then update `run-log.yml` with success status.
|