kushi-agents 4.2.3 → 4.3.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.
@@ -2,9 +2,9 @@
2
2
 
3
3
  This workspace has [Kushi](https://gim-home.github.io/kushi/) installed under `.kushi/`. Kushi captures multi-source project evidence (Email, Teams, OneNote, SharePoint, Meetings, CRM, ADO) via **WorkIQ** and answers cited questions over the captured evidence.
4
4
 
5
- ### Routing — no `@Kushi` prefix required
5
+ ### Routing — verbs are prompts
6
6
 
7
- When the user types any of the following verbs followed by a project name, route to the corresponding Kushi prompt in `.kushi/prompts/` (no `@Kushi` needed):
7
+ Every Kushi verb is a **prompt file** in `.kushi/prompts/<verb>.prompt.md` with `agent: kushi` in its frontmatter. When the user types one of the verbs below (with or without `@Kushi`), open the prompt and execute its instructions — do **not** shell out to `npx kushi-agents <verb>`. The `kushi-agents` npm package is the installer that put `.kushi/` on disk; it does not run verbs.
8
8
 
9
9
  | Verb | Prompt to run |
10
10
  | -------------------------- | ---------------- |
@@ -21,6 +21,8 @@ When the user types any of the following verbs followed by a project name, route
21
21
 
22
22
  Project Q&A also auto-dispatches when the user names a known project under the engagement root **and** asks a question about it — no prefix needed.
23
23
 
24
+ If a prompt file is missing for a verb the user typed, tell them "the `<verb>` prompt isn't installed in this profile" — do not shell out to reinstall. Re-installing is only appropriate when the user **explicitly** says "install kushi", "upgrade kushi", or "reinstall kushi".
25
+
24
26
  ### Hard rules (enforced by Kushi skills)
25
27
 
26
28
  - **WorkIQ-first** for all M365 sources. `m365_*` / Microsoft Graph calls are only allowed as a classified fallback after a documented WorkIQ failure.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kushi-agents",
3
- "version": "4.2.3",
3
+ "version": "4.3.0",
4
4
  "description": "Install Kushi — multi-source project evidence agent with snapshot+stream capture across Email, Teams, OneNote, SharePoint, Meetings, CRM, ADO. WorkIQ-only for M365 sources (Graph / m365_* FORBIDDEN as fallbacks; user-paste is first-class). Host-agnostic.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,11 +1,14 @@
1
1
  ---
2
+ name: Kushi
2
3
  description: "Kushi — multi-source project evidence + Q&A agent. Snapshot + stream capture across Email, Teams, OneNote, SharePoint, Meetings, CRM, ADO; plus read-only natural-language Q&A over the captured evidence. WorkIQ-first for capture, citation-only for answers. Host-agnostic. USE WHEN the user says any of: PRODUCER VERBS — \"bootstrap a new project\", \"set up project evidence for <X>\", \"add me to project <X>\", \"add contributor to <X>\", \"refresh <X>\", \"do it all for <X>\", \"weekly extract for <X>\", \"regenerate state for <X>\", \"consolidate <X>\", \"status of <X>\"; OR Q&A — the message names a known project (any subfolder under the engagement root) AND asks a question about it (\"what is …\", \"what's the MACC for <X>\", \"who is the EM on <X>\", \"status of <X>\", \"summarize <X>\", \"what was decided about <X>\", \"what's in the deck for <X>\", \"what action items for <X>\", \"<project-name> + <topic>\")."
3
- tools: ["*"]
4
+ argument-hint: "Name a project (e.g. 'bootstrap HCA', 'refresh AGCO last 14 days', 'ask HCA what's the MACC?'). Kushi routes to the right verb prompt — never run `npx kushi-agents <verb>` in the terminal."
5
+ tools:
6
+ [vscode/vscodeAPI, execute/getTerminalOutput, execute/runInTerminal, read/readFile, read/terminalSelection, read/terminalLastCommand, agent, edit, search, web, browser, 'workiq/*', 'github/*']
4
7
  ---
5
8
 
6
9
  # @Kushi — Project Evidence Orchestrator
7
10
 
8
- Kushi is a multi-source evidence + state agent for consulting / engineering engagements. It captures **snapshots** (current state of entities) and **streams** (timestamped events) from Email, Teams, OneNote, SharePoint, Meetings, CRM, and ADO, and renders an outcome-based **State** view.
11
+ Kushi is a multi-source evidence + state agentfor consulting / engineering engagements. It captures **snapshots** (current state of entities) and **streams** (timestamped events) from Email, Teams, OneNote, SharePoint, Meetings, CRM, and ADO, and renders an outcome-based **State** view.
9
12
 
10
13
  ## Install profiles
11
14
 
@@ -1,7 +1,18 @@
1
- ---
2
- description: "Aggregate (pull + consolidate) without building State/."
3
- ---
4
-
1
+ ---
2
+ name: aggregate
3
+ description: "Aggregate (pull + consolidate) without building State/."
4
+ argument-hint: "Project name (engagement folder, fuzzy-matched); optional window"
5
+ agent: kushi
6
+ tools: [search, read/readFile, edit, agent, execute/runInTerminal, execute/getTerminalOutput, 'workiq/*']
7
+ ---
8
+
9
+ ## User Input
10
+
11
+ ```text
12
+ ${input:project:Project name, e.g. HCA}
13
+ ${input:window:Optional window — last N days, since YYYY-MM-DD, or YYYY-MM-DD..YYYY-MM-DD (default 7 days)}
14
+ ```
15
+
5
16
  # Aggregate
6
17
 
7
18
  Run `aggregate-project` for the named project.
@@ -1,8 +1,17 @@
1
- ---
2
- name: apply-ado
3
- description: Apply approved ADO updates from a proposed.md (gated). Currently a preview-stub — writes a planned.jsonl, no real ADO calls yet.
4
- ---
5
-
1
+ ---
2
+ name: apply-ado
3
+ description: "Apply approved ADO updates from a proposed.md (gated). Currently a preview-stub — writes a planned.jsonl, no real ADO calls yet."
4
+ argument-hint: "Project name; runs in dry-mode (writes planned.jsonl, no ADO calls)"
5
+ agent: kushi
6
+ tools: [search, read/readFile, edit, agent, execute/runInTerminal, 'github/*']
7
+ ---
8
+
9
+ ## User Input
10
+
11
+ ```text
12
+ ${input:project:Project name, e.g. HCA}
13
+ ```
14
+
6
15
  # /apply-ado
7
16
 
8
17
  Route to `@Kushi apply ado <project>`.
@@ -1,10 +1,20 @@
1
1
  ---
2
2
  name: ask
3
- description: Read-only Q&A over a bootstrapped project's State/, Evidence/, and snapshot/ files. Cited; no source pulls; no outbound. Auto-routes when you name a project + ask a question.
3
+ description: "Read-only Q&A over a bootstrapped project's State/, Evidence/, and snapshot/ files. Cited; no source pulls; no outbound. Auto-routes when you name a project + ask a question."
4
+ argument-hint: "Project name + a question about it"
5
+ agent: kushi
6
+ tools: [search, read/readFile, edit, agent]
4
7
  ---
5
8
 
6
- # /ask
9
+ ## User Input
10
+
11
+ ```text
12
+ ${input:project:Project name, e.g. HCA}
13
+ ${input:question:Your question, e.g. ''what is the MACC?''}
14
+ ```
7
15
 
16
+ # /ask
17
+
8
18
  Route to `@Kushi ask <project> <question>`.
9
19
 
10
20
  Loads the cheapest set of files needed to answer (`State/<topic>.md` first, then latest `Evidence/<alias>/_Consolidated/`, then per-source weekly files, then `external-context/`, then `<project>/SharePoint/snapshot/files/`), emits inline `[source: <alias>/<folder>/<file> · YYYY-MM-DD]` citations, warns if the relevant source is older than `chat.freshness_warn_days` (default 14), and ends with a Confidence line.
@@ -1,10 +1,20 @@
1
1
  ---
2
2
  name: bootstrap
3
- description: First-time setup for a new project — scaffold folders, lay configs side-by-side, do an initial 30-day pull, build State.
3
+ description: "First-time setup for a new project — scaffold folders, lay configs side-by-side, do an initial 30-day pull, build State."
4
+ argument-hint: "Project name (fuzzy-matched under engagement-root); optional initial pull window"
5
+ agent: kushi
6
+ tools: [search, read/readFile, edit, agent, execute/runInTerminal, execute/getTerminalOutput, 'workiq/*']
4
7
  ---
5
8
 
6
- # /bootstrap
9
+ ## User Input
10
+
11
+ ```text
12
+ ${input:project:Project name, e.g. HCA}
13
+ ${input:window:Optional initial pull window — last N days, since YYYY-MM-DD, or YYYY-MM-DD..YYYY-MM-DD (default 30 days)}
14
+ ```
7
15
 
16
+ # /bootstrap
17
+
8
18
  Route to `@Kushi bootstrap <project>`.
9
19
 
10
20
  Inputs the agent will resolve:
@@ -1,10 +1,20 @@
1
1
  ---
2
2
  name: consolidate
3
- description: Merge all contributors' weekly streams into _Consolidated/ for a given window.
3
+ description: "Merge all contributors' weekly streams into _Consolidated/ for a given window."
4
+ argument-hint: "Project name; optional window"
5
+ agent: kushi
6
+ tools: [search, read/readFile, edit, agent, execute/runInTerminal, execute/getTerminalOutput, 'workiq/*']
4
7
  ---
5
8
 
6
- # /consolidate
9
+ ## User Input
10
+
11
+ ```text
12
+ ${input:project:Project name, e.g. HCA}
13
+ ${input:window:Optional window — last N days, since YYYY-MM-DD, or YYYY-MM-DD..YYYY-MM-DD (default 7 days)}
14
+ ```
7
15
 
16
+ # /consolidate
17
+
8
18
  Route to `@Kushi consolidate <project> <window>`.
9
19
 
10
20
  Default window: `last 7 days`.
@@ -1,8 +1,17 @@
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
-
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
+ argument-hint: "Project name; authors or updates FDE Intake at Reports/00-FDE-Intake-<project>.md"
5
+ agent: kushi
6
+ tools: [search, read/readFile, edit, agent]
7
+ ---
8
+
9
+ ## User Input
10
+
11
+ ```text
12
+ ${input:project:Project name, e.g. HCA}
13
+ ```
14
+
6
15
  # /fde-intake
7
16
 
8
17
  Route to `@Kushi fde-intake <project>`.
@@ -1,8 +1,18 @@
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
-
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
+ argument-hint: "Project name; optional shape (weekly|short|long|fitness|stage-readiness, default weekly)"
5
+ agent: kushi
6
+ tools: [search, read/readFile, edit, agent]
7
+ ---
8
+
9
+ ## User Input
10
+
11
+ ```text
12
+ ${input:project:Project name, e.g. HCA}
13
+ ${input:shape:Optional report shape — weekly (default), short, long, fitness, or stage-readiness}
14
+ ```
15
+
6
16
  # /fde-report
7
17
 
8
18
  Route to `@Kushi fde-report <project> [shape]`.
@@ -1,8 +1,17 @@
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
-
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
+ argument-hint: "Project name; produces 7-file triage bundle at Reports/triage/<YYYY-MM-DD>/"
5
+ agent: kushi
6
+ tools: [search, read/readFile, edit, agent]
7
+ ---
8
+
9
+ ## User Input
10
+
11
+ ```text
12
+ ${input:project:Project name, e.g. HCA}
13
+ ```
14
+
6
15
  # /fde-triage
7
16
 
8
17
  Route to `@Kushi fde-triage <project>`.
@@ -1,8 +1,17 @@
1
- ---
2
- name: propose-ado
3
- description: Read-only ADO update proposal — generate proposed.md from the latest consolidated evidence. NO writes to ADO.
4
- ---
5
-
1
+ ---
2
+ name: propose-ado
3
+ description: "Read-only ADO update proposal — generate proposed.md from the latest consolidated evidence. NO writes to ADO."
4
+ argument-hint: "Project name; read-only ADO proposal preview"
5
+ agent: kushi
6
+ tools: [search, read/readFile, edit, agent, execute/runInTerminal, 'github/*']
7
+ ---
8
+
9
+ ## User Input
10
+
11
+ ```text
12
+ ${input:project:Project name, e.g. HCA}
13
+ ```
14
+
6
15
  # /propose-ado
7
16
 
8
17
  Route to `@Kushi propose ado <project>`.
@@ -1,10 +1,20 @@
1
1
  ---
2
2
  name: refresh
3
- description: Incremental refresh — pull only what changed since the last run, then rebuild State.
3
+ description: "Incremental refresh — pull only what changed since the last run, then rebuild State."
4
+ argument-hint: "Project name; optional window (defaults to watermark since last run, else last 7 days)"
5
+ agent: kushi
6
+ tools: [search, read/readFile, edit, agent, execute/runInTerminal, execute/getTerminalOutput, 'workiq/*']
4
7
  ---
5
8
 
6
- # /refresh
9
+ ## User Input
10
+
11
+ ```text
12
+ ${input:project:Project name, e.g. HCA}
13
+ ${input:window:Optional window — last N days, since YYYY-MM-DD, or YYYY-MM-DD..YYYY-MM-DD (default: from last-run watermark)}
14
+ ```
7
15
 
16
+ # /refresh
17
+
8
18
  Route to `@Kushi refresh <project>`.
9
19
 
10
20
  Window resolution (per `refresh-project` skill):
@@ -1,10 +1,19 @@
1
1
  ---
2
2
  name: state
3
- description: Re-render State/ from existing Evidence — does NO source pulls.
3
+ description: "Re-render State/ from existing Evidence — does NO source pulls."
4
+ argument-hint: "Project name; rebuilds State/ from existing Evidence, no source pulls"
5
+ agent: kushi
6
+ tools: [search, read/readFile, edit, agent]
4
7
  ---
5
8
 
6
- # /state
9
+ ## User Input
10
+
11
+ ```text
12
+ ${input:project:Project name, e.g. HCA}
13
+ ```
7
14
 
15
+ # /state
16
+
8
17
  Route to `@Kushi state <project>`.
9
18
 
10
19
  Pure renderer. Reads:
@@ -1,10 +1,19 @@
1
1
  ---
2
2
  name: status
3
- description: Show run-log — what's been pulled, when, watermarks, recent errors.
3
+ description: "Show run-log — what's been pulled, when, watermarks, recent errors."
4
+ argument-hint: "Project name; shows run-log: last_pulled, watermarks, item counts, recent errors"
5
+ agent: kushi
6
+ tools: [search, read/readFile, edit, agent]
4
7
  ---
5
8
 
6
- # /status
9
+ ## User Input
10
+
11
+ ```text
12
+ ${input:project:Project name, e.g. HCA}
13
+ ```
7
14
 
15
+ # /status
16
+
8
17
  Route to `@Kushi status <project>`.
9
18
 
10
19
  Reads `<engagement-root>/<project>/Evidence/run-log.yml` and renders: