@femtomc/mu-agent 26.2.100 → 26.2.102

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.
@@ -0,0 +1,171 @@
1
+ ---
2
+ name: hud
3
+ description: "Defines HUD usage for `mu_hud` and `/mu hud`, including doc schema patterns, deterministic update rules, and rendering-safe conventions."
4
+ ---
5
+
6
+ # hud
7
+
8
+ Use this skill whenever you need to publish, update, or inspect HUD state.
9
+
10
+ This skill is the canonical HUD reference for:
11
+
12
+ - `mu_hud` tool calls (structured HUD state)
13
+ - `/mu hud ...` command usage (inspection/control)
14
+ - `HudDoc` conventions that render well in TUI/Slack/Telegram
15
+
16
+ ## Contents
17
+
18
+ - [Core contract](#core-contract)
19
+ - [HudDoc shape](#huddoc-shape)
20
+ - [Recommended turn loop](#recommended-turn-loop)
21
+ - [Planning and subagents profiles](#planning-and-subagents-profiles)
22
+ - [Determinism and rendering limits](#determinism-and-rendering-limits)
23
+ - [Evaluation scenarios](#evaluation-scenarios)
24
+
25
+ ## Core contract
26
+
27
+ ### Tool (`mu_hud`)
28
+
29
+ Actions:
30
+
31
+ - `status`, `snapshot`
32
+ - `on`, `off`, `toggle`
33
+ - `set`, `update`, `replace`, `remove`, `clear`
34
+
35
+ Key params:
36
+
37
+ - `doc` (for `set`/`update`)
38
+ - `docs` (for `replace`)
39
+ - `hud_id` (for `remove`)
40
+ - `snapshot_format` (`compact` or `multiline`)
41
+
42
+ Notes:
43
+
44
+ - `set` and `update` are both upsert-style single-doc writes.
45
+ - `replace` is whole-inventory replacement.
46
+ - Tool results include normalized `hud_docs` for downstream transport/rendering.
47
+ - Advisory preset-shape warnings are surfaced in tool `details.preset_warnings` when `metadata.style_preset` and doc shape diverge (non-blocking).
48
+
49
+ ### Command (`/mu hud ...`)
50
+
51
+ Supported subcommands:
52
+
53
+ - `/mu hud status`
54
+ - `/mu hud snapshot [compact|multiline]`
55
+ - `/mu hud on|off|toggle`
56
+ - `/mu hud clear`
57
+ - `/mu hud remove <hud-id>`
58
+
59
+ Use the tool (`mu_hud`) for structured doc writes.
60
+
61
+ ## HudDoc shape
62
+
63
+ HUD docs are validated against `HudDoc` (`@femtomc/mu-core`).
64
+
65
+ Minimum practical fields:
66
+
67
+ - `v: 1`
68
+ - `hud_id: <non-empty>`
69
+ - `title: <non-empty>`
70
+ - `snapshot_compact: <non-empty>`
71
+ - `updated_at_ms: <int>`
72
+
73
+ Common optional fields:
74
+
75
+ - `scope` (for root/session/issue scoping)
76
+ - `title_style` / `snapshot_style` (`{weight?:"normal|strong", italic?:boolean, code?:boolean}`)
77
+ - `chips` (`[{key,label,tone?,style?}]`)
78
+ - `sections`:
79
+ - `kv` (key/value; supports `title_style` + item `value_style`)
80
+ - `checklist` (checkbox-style progress; supports `title_style` + item `style`)
81
+ - `activity` (recent lines; supports `title_style`)
82
+ - `text` (free text; supports `title_style` + `style`)
83
+ - `actions` (`[{id,label,command_text,kind?,style?}]`)
84
+ - `metadata` (machine-readable extras; optional `style_preset` convention: `planning|subagents`)
85
+
86
+ Example checklist doc:
87
+
88
+ ```json
89
+ {
90
+ "action": "set",
91
+ "doc": {
92
+ "v": 1,
93
+ "hud_id": "planning",
94
+ "title": "Planning HUD",
95
+ "scope": "mu-root-123",
96
+ "chips": [
97
+ { "key": "phase", "label": "phase:drafting", "tone": "accent", "style": { "weight": "strong" } },
98
+ { "key": "steps", "label": "steps:2/5", "tone": "dim" }
99
+ ],
100
+ "sections": [
101
+ {
102
+ "kind": "checklist",
103
+ "title": "Checklist",
104
+ "items": [
105
+ { "id": "1", "label": "Investigate", "done": true },
106
+ { "id": "2", "label": "Draft DAG", "done": true },
107
+ { "id": "3", "label": "Review", "done": false }
108
+ ]
109
+ }
110
+ ],
111
+ "actions": [
112
+ { "id": "snapshot", "label": "Snapshot", "command_text": "/mu hud snapshot", "kind": "secondary", "style": { "italic": true } }
113
+ ],
114
+ "snapshot_compact": "HUD(plan) · phase=drafting · steps=2/5",
115
+ "updated_at_ms": 1771853115000,
116
+ "metadata": { "style_preset": "planning", "phase": "drafting" }
117
+ }
118
+ }
119
+ ```
120
+
121
+ ## Recommended turn loop
122
+
123
+ 1. Ensure HUD is on:
124
+
125
+ ```json
126
+ {"action":"on"}
127
+ ```
128
+
129
+ 2. Upsert exactly the docs you own (`set`/`update`).
130
+ 3. Emit compact snapshot for user-facing status:
131
+
132
+ ```json
133
+ {"action":"snapshot","snapshot_format":"compact"}
134
+ ```
135
+
136
+ 4. Keep response text and HUD state aligned (no contradictions).
137
+
138
+ ## Planning and subagents profiles
139
+
140
+ Use profile-specific `hud_id` values:
141
+
142
+ - planning profile: `hud_id: "planning"`
143
+ - subagents profile: `hud_id: "subagents"`
144
+
145
+ Treat these as conventions layered on top of this generic contract.
146
+
147
+ ## Determinism and rendering limits
148
+
149
+ - Keep one canonical doc per `hud_id`.
150
+ - Keep `updated_at_ms` monotonic for each `hud_id`.
151
+ - Prefer a small doc set (usually 1–3 docs total) for channel readability.
152
+ - Keep command actions concise; long commands may degrade to text-only fallbacks on some channels.
153
+ - Assume channel renderers cap docs/actions/lines; put critical state in `snapshot_compact` and first section items.
154
+
155
+ If behavior is unclear, inspect implementation/tests before guessing:
156
+
157
+ - `packages/core/src/hud.ts`
158
+ - `packages/agent/src/extensions/hud.ts`
159
+ - `packages/server/src/control_plane.ts`
160
+ - `packages/agent/test/hud_tool.test.ts`
161
+
162
+ ## Evaluation scenarios
163
+
164
+ 1. **Planning review turn**
165
+ - Expected: `planning` doc updates phase/checklist/waiting state, then emits compact snapshot.
166
+
167
+ 2. **Subagents orchestration pass**
168
+ - Expected: `subagents` doc updates queue/activity/chips after each bounded pass.
169
+
170
+ 3. **HUD reset handoff**
171
+ - Expected: after phase completion, HUD is cleared or removed by `hud_id`, and status reflects no stale docs.
@@ -98,7 +98,7 @@ mu session <session-id>
98
98
  mu turn --session-kind operator --session-id <session-id> --body "<follow-up>"
99
99
  ```
100
100
 
101
- In attached terminal operator chat, `/mu` helpers are available (`/mu events`, `/mu plan`, `/mu subagents`, `/mu help`).
101
+ In attached terminal operator chat, `/mu` helpers are available (`/mu events`, `/mu hud ...`, `/mu help`).
102
102
 
103
103
  ## Durable automation handoff
104
104
 
@@ -10,6 +10,7 @@ Use this skill when the user asks for planning, decomposition, or a staged execu
10
10
  ## Contents
11
11
 
12
12
  - [Planning HUD is required](#planning-hud-is-required)
13
+ - [HUD skill dependency](#hud-skill-dependency)
13
14
  - [Shared protocol dependency](#shared-protocol-dependency)
14
15
  - [Core contract](#core-contract)
15
16
  - [Suggested workflow](#suggested-workflow)
@@ -28,10 +29,17 @@ For this skill, the planning HUD is the primary status/communication surface.
28
29
 
29
30
  Default per-turn HUD loop:
30
31
 
31
- 1. Apply an atomic `update` with current `phase`, `waiting_on_user`, `next_action`, `blocker`, and `confidence`.
32
- 2. Synchronize checklist items and `root_issue_id` with the issue DAG.
32
+ 1. Emit a fresh `planning` HUD doc (`mu_hud` action `set` or `update`) with current `phase`, `waiting_on_user`, `next_action`, `blocker`, and `confidence` in sections/metadata.
33
+ 2. Keep checklist progress and root issue linkage synchronized with the live issue DAG.
33
34
  3. Emit `snapshot` (`compact` or `multiline`) and reflect it in your response.
34
35
 
36
+ ## HUD skill dependency
37
+
38
+ Before emitting or mutating planning HUD state, load **`hud`** and follow its canonical contract.
39
+
40
+ - Treat `hud` as source-of-truth for generic `mu_hud` actions, `HudDoc` shape, and rendering constraints.
41
+ - This planning skill defines planning-specific conventions only (for example `hud_id: "planning"`, planning phases, checklist semantics).
42
+
35
43
  ## Shared protocol dependency
36
44
 
37
45
  This skill plans DAGs for execution by `subagents`, so planning must follow the
@@ -58,6 +66,7 @@ Do not invent alternate protocol names or tag schemas.
58
66
  - Add clear titles, scope, acceptance criteria, and protocol tags.
59
67
 
60
68
  3. **Drive communication through the planning HUD**
69
+ - Load `hud` and use its canonical `mu_hud`/`HudDoc` contract.
61
70
  - Treat HUD state as the canonical short status line for planning.
62
71
  - Keep `phase`, `waiting_on_user`, `next_action`, `blocker`, and `confidence` current.
63
72
  - Ensure HUD state and your natural-language response never contradict each other.
@@ -72,6 +81,10 @@ Do not invent alternate protocol names or tag schemas.
72
81
  - Update issues/dependencies and re-present deltas.
73
82
  - Do not begin broad execution until the user signals satisfaction.
74
83
 
84
+ 6. **After user approval, ask user about next steps**
85
+ - On user acceptance of the plan, turn the planning HUD off.
86
+ - Read the `subagents` skill and offer to supervise subagents to execute the plan.
87
+
75
88
  ## Suggested workflow
76
89
 
77
90
  ### A) Investigation pass
@@ -86,46 +99,37 @@ mu memory search --query "<topic>" --limit 30
86
99
  Bootstrap HUD immediately (interactive operator session):
87
100
 
88
101
  ```text
89
- /mu plan on
90
- /mu plan phase investigating
91
- /mu plan waiting off
92
- /mu plan confidence medium
93
- /mu plan next "Investigate constraints and gather evidence"
94
- /mu plan snapshot
102
+ /mu hud on
103
+ /mu hud status
104
+ /mu hud snapshot
95
105
  ```
96
106
 
97
107
  Tool contract (preferred when tools are available):
98
108
 
99
- - Tool: `mu_planning_hud`
100
- - Actions:
101
- - state: `status`, `snapshot`, `on`, `off`, `toggle`, `reset`, `phase`, `root`
102
- - checklist: `check`, `uncheck`, `toggle_step`, `set_steps`, `add_step`, `remove_step`, `set_step_label`
103
- - communication: `set_waiting`, `set_next`, `set_blocker`, `set_confidence`
104
- - atomic: `update`
105
- - Key parameters:
106
- - `phase`: `investigating|drafting|reviewing|waiting_user|blocked|executing|approved|done`
107
- - `root_issue_id`: issue ID or `clear`
108
- - `waiting_on_user`: boolean
109
- - `next_action`, `blocker`: string or `clear`
110
- - `confidence`: `low|medium|high`
111
- - `steps`: string[]
112
- - `step_updates`: array of `{index, done?, label?}`
109
+ - Canonical contract: see skill `hud`
110
+ - Tool: `mu_hud`
111
+ - Actions: `status`, `snapshot`, `on`, `off`, `toggle`, `set`, `update`, `replace`, `remove`, `clear`
112
+ - Planning convention: maintain a HUD doc with `hud_id: "planning"`
113
+ - Suggested planning doc structure:
114
+ - `title`: `Planning HUD`
115
+ - chips: `phase:<...>`, `steps:<done>/<total>`, `waiting:<yes|no>`, `conf:<low|medium|high>`
116
+ - sections:
117
+ - `kv` status block (`phase`, `root`, `waiting_on_user`, `confidence`, `next_action`, `blocker`)
118
+ - `checklist` block for plan milestones
119
+ - actions: include useful follow-ups (for example, `snapshot`)
120
+ - metadata: include `style_preset:"planning"` for consistent renderer emphasis without repeating style hints
113
121
 
114
122
  Example tool calls:
115
- - Atomic status update for an investigation turn:
116
- - `{"action":"update","phase":"investigating","waiting_on_user":false,"next_action":"Draft root issue and child DAG","blocker":"clear","confidence":"medium"}`
117
- - Atomic handoff when waiting for approval:
118
- - `{"action":"update","phase":"waiting_user","waiting_on_user":true,"next_action":"Confirm scope change","blocker":"Need approval","confidence":"low"}`
119
- - Clear communication fields after user reply:
120
- - `{"action":"update","waiting_on_user":false,"blocker":"clear","next_action":"Incorporate feedback and re-draft DAG"}`
121
- - Customize checklist:
122
- - `{"action":"set_steps","steps":["Investigate","Draft DAG","Review with user","Finalize"]}`
123
+ - Turn HUD on:
124
+ - `{"action":"on"}`
125
+ - Set/replace planning doc after investigation pass:
126
+ - `{"action":"set","doc":{"v":1,"hud_id":"planning","title":"Planning HUD","scope":"mu-root-123","chips":[{"key":"phase","label":"phase:investigating","tone":"dim"},{"key":"steps","label":"steps:1/4","tone":"accent"},{"key":"waiting","label":"waiting:no","tone":"dim"},{"key":"confidence","label":"conf:medium","tone":"accent"}],"sections":[{"kind":"kv","title":"Status","items":[{"key":"phase","label":"phase","value":"investigating"},{"key":"root","label":"root","value":"mu-root-123"},{"key":"waiting","label":"waiting_on_user","value":"no"},{"key":"confidence","label":"confidence","value":"medium"},{"key":"next","label":"next_action","value":"Draft root DAG"},{"key":"blocker","label":"blocker","value":"(none)"}]},{"kind":"checklist","title":"Checklist","items":[{"id":"1","label":"Investigate relevant code/docs/state","done":true},{"id":"2","label":"Create root + child issue DAG","done":false},{"id":"3","label":"Present plan + tradeoffs","done":false},{"id":"4","label":"Refine until approved","done":false}]}],"actions":[{"id":"snapshot","label":"Snapshot","command_text":"/mu hud snapshot","kind":"secondary"}],"snapshot_compact":"HUD(plan) · phase=investigating · steps=1/4 · waiting=no · conf=medium","updated_at_ms":1771853115000,"metadata":{"style_preset":"planning","phase":"investigating","waiting_on_user":false,"confidence":"medium"}}}`
123
127
  - Human-facing status line:
124
128
  - `{"action":"snapshot","snapshot_format":"compact"}`
125
129
 
126
130
  If HUD behavior is unclear, inspect implementation/tests before guessing:
127
- - `packages/agent/src/extensions/planning-ui.ts`
128
- - `packages/agent/test/planning_ui_tool.test.ts`
131
+ - `packages/agent/src/extensions/hud.ts`
132
+ - `packages/agent/test/hud_tool.test.ts`
129
133
 
130
134
  Also inspect repo files directly (read/bash) for implementation constraints.
131
135
 
@@ -186,23 +190,17 @@ mu issues validate "$root_id"
186
190
 
187
191
  Required HUD updates during the loop:
188
192
 
189
- ```text
190
- /mu plan root <root-id>
191
- /mu plan phase drafting
192
- /mu plan check 1
193
- /mu plan phase waiting-user
194
- /mu plan waiting on
195
- /mu plan next "Need your approval on tradeoff A/B"
196
- /mu plan snapshot
197
- ```
193
+ - Re-emit the `planning` HUD doc with current `phase`, checklist progress, `waiting_on_user`, `next_action`, and `blocker` after each meaningful planning step.
194
+ - Use `{"action":"snapshot","snapshot_format":"compact"}` for concise user-facing HUD lines.
195
+ - Keep `updated_at_ms` monotonic across updates so latest doc wins deterministically.
198
196
 
199
197
  ## Effective HUD usage heuristics
200
198
 
201
- - Prefer `update` for multi-field changes to avoid inconsistent intermediate state.
202
- - Reserve `waiting_user` for explicit user input/decision waits; use `blocked` for non-user blockers.
199
+ - Keep one canonical planning doc (`hud_id: "planning"`) and refresh it whenever planning state changes.
200
+ - Keep `updated_at_ms` monotonic so deterministic dedupe/ordering always keeps the latest planning state.
201
+ - Use explicit, concise status fields (`phase`, `waiting_on_user`, `next_action`, `blocker`, `confidence`) in sections/metadata.
203
202
  - Keep `next_action` as one concrete action, not a paragraph.
204
- - Adjust `confidence` as evidence quality changes (`low` when assumptions are unresolved).
205
- - Customize checklist steps once scope is understood; check them off as milestones complete.
203
+ - Customize checklist steps once scope is understood; mark them complete as milestones land.
206
204
 
207
205
  ## Evaluation scenarios
208
206
 
@@ -9,6 +9,7 @@ description: "Orchestrates issue-driven subagent execution with heartbeat superv
9
9
 
10
10
  - [Purpose (what this skill is for)](#purpose-what-this-skill-is-for)
11
11
  - [Shared protocol dependency](#shared-protocol-dependency)
12
+ - [HUD skill dependency](#hud-skill-dependency)
12
13
  - [When to use](#when-to-use)
13
14
  - [Success condition](#success-condition)
14
15
  - [Dispatch modes](#dispatch-modes)
@@ -45,6 +46,13 @@ Before orchestration begins, load that skill and enforce:
45
46
 
46
47
  Do not run subagent orchestration against alternate protocol tags.
47
48
 
49
+ ## HUD skill dependency
50
+
51
+ Before emitting or mutating subagent HUD state, load **`hud`** and follow its canonical contract.
52
+
53
+ - Treat `hud` as source-of-truth for generic `mu_hud` actions, `HudDoc` shape, and rendering constraints.
54
+ - This subagents skill defines orchestration-specific conventions only (for example `hud_id: "subagents"`, queue/activity semantics).
55
+
48
56
  ## When to use
49
57
 
50
58
  - Work is represented as issue-scoped deliverables with explicit outcomes.
@@ -98,7 +106,10 @@ mu forum read issue:<root-id> --limit 20 --pretty
98
106
  2. Choose exactly one action/primitive from `hierarchical-work-protocol`.
99
107
  3. Apply it.
100
108
  4. Verify (`get`, `children`, `ready`, `validate`).
101
- 5. Post concise progress to forum.
109
+ 5. Post a human-facing `ORCH_PASS` update to forum:
110
+ - start with a short title that captures status in plain language
111
+ - follow with one concise paragraph covering: project objective context, milestone moved this pass, impact, overall progress, and next high-level step
112
+ - include queue/worker/drift internals only when diagnosing blocker/anomaly.
102
113
  6. Exit tick.
103
114
 
104
115
  Stop automation when `mu issues validate <root-id>` returns final.
@@ -114,7 +125,7 @@ For claimed issue `<issue-id>` under `<root-id>`:
114
125
  - directly solvable -> `complete`
115
126
  3. Apply primitive.
116
127
  4. Verify state.
117
- 5. Post concise progress to `issue:<issue-id>`.
128
+ 5. Post progress to `issue:<issue-id>` focused on deliverable status, capability impact, and next step.
118
129
 
119
130
  Repeat bounded passes until issue closes.
120
131
 
@@ -138,7 +149,17 @@ mu heartbeats create \
138
149
  --title "hierarchical-work-v1 <root-id>" \
139
150
  --reason hierarchical_work_protocol_v1 \
140
151
  --every-ms 15000 \
141
- --prompt "Use skills subagents and hierarchical-work-protocol for root <root-id>. Run exactly one bounded orchestration pass: claim/work one ready proto:hierarchical-work-v1 issue (or perform one orchestration action), verify state, and report status. Stop when 'mu issues validate <root-id>' is final."
152
+ --prompt "Use skills subagents, hud, and hierarchical-work-protocol for root <root-id>. Run exactly one bounded orchestration pass: inspect the proto:hierarchical-work-v1 queue, perform exactly one corrective orchestration action (including in_progress-without-worker drift recovery) or claim/work-start one ready issue, then verify state. Report human-facing progress as a titled status note plus one concise paragraph that explains project context, milestone moved, impact, overall progress, and next high-level step; avoid low-level orchestration internals unless diagnosing a blocker/anomaly. Post a matching ORCH_PASS update to issue:<root-id>. Stop when 'mu issues validate <root-id>' is final."
153
+ ```
154
+
155
+ Reusable status-voice add-on for heartbeat prompts (copy/paste):
156
+
157
+ ```text
158
+ Write each ORCH_PASS as a human status note, not operator telemetry.
159
+ Use a short plain-language title + one concise paragraph covering:
160
+ project objective, milestone moved this pass, impact/precondition,
161
+ overall progress, and next high-level step.
162
+ Keep queue/worker/session internals out unless diagnosing a blocker.
142
163
  ```
143
164
 
144
165
  ### B) tmux fan-out (parallel workers)
@@ -148,7 +169,7 @@ run_id="$(date +%Y%m%d-%H%M%S)"
148
169
  for issue_id in $(mu issues ready --root <root-id> --tag proto:hierarchical-work-v1 --json | jq -r '.[].id' | head -n 3); do
149
170
  session="mu-sub-${run_id}-${issue_id}"
150
171
  tmux new-session -d -s "$session" \
151
- "cd '$PWD' && mu exec 'Use skills subagents and hierarchical-work-protocol. Work issue ${issue_id} using hierarchical-work.protocol/v1. Claim first, then run one full control loop.' ; rc=\$?; echo __MU_DONE__:\$rc"
172
+ "cd '$PWD' && mu exec 'Use skills subagents, hud, and hierarchical-work-protocol. Work issue ${issue_id} using hierarchical-work.protocol/v1. Claim first, then run one full control loop.' ; rc=\$?; echo __MU_DONE__:\$rc"
152
173
  done
153
174
  ```
154
175
 
@@ -157,26 +178,29 @@ done
157
178
  Use HUD for user visibility. Truth still lives in issues/forum.
158
179
 
159
180
  ```text
160
- /mu subagents on
161
- /mu subagents prefix mu-sub-
162
- /mu subagents root <root-id>
163
- /mu subagents tag proto:hierarchical-work-v1
164
- /mu subagents mode operator
165
- /mu subagents refresh
166
- /mu subagents snapshot
181
+ /mu hud on
182
+ /mu hud status
183
+ /mu hud snapshot
167
184
  ```
168
185
 
169
- Tool: `mu_subagents_hud`
186
+ Tool: `mu_hud`
170
187
 
171
- - Actions: `status`, `snapshot`, `on`, `off`, `toggle`, `refresh`,
172
- `set_prefix`, `set_root`, `set_tag`, `set_mode`, `set_refresh_interval`,
173
- `set_stale_after`, `set_spawn_paused`, `update`, `spawn`
188
+ - Canonical contract: see skill `hud`
189
+ - Actions: `status`, `snapshot`, `on`, `off`, `toggle`, `set`, `update`, `replace`, `remove`, `clear`
190
+ - Subagents convention: maintain a HUD doc with `hud_id: "subagents"`
191
+ - Suggested subagents doc structure:
192
+ - chips: health, mode, paused
193
+ - sections: queue counts + recent activity lines
194
+ - actions: refresh/spawn command hooks (if desired)
195
+ - metadata: include `style_preset:"subagents"` for consistent renderer emphasis
196
+ - Example update:
197
+ - `{"action":"set","doc":{"v":1,"hud_id":"subagents","title":"Subagents HUD","scope":"mu-root-123","chips":[{"key":"health","label":"healthy","tone":"success"},{"key":"mode","label":"mode:operator","tone":"dim"},{"key":"paused","label":"paused:no","tone":"dim"}],"sections":[{"kind":"kv","title":"Queue","items":[{"key":"ready","label":"Ready","value":"3"},{"key":"active","label":"Active","value":"2"},{"key":"sessions","label":"Sessions","value":"2"}]},{"kind":"activity","title":"Activity","lines":["Spawned worker for mu-abc123","Posted ORCH_PASS update"]}],"actions":[{"id":"refresh","label":"Refresh","command_text":"/mu hud snapshot","kind":"secondary"}],"snapshot_compact":"HUD(subagents) · healthy · mode=operator · ready=3 · active=2","updated_at_ms":1771853115000,"metadata":{"style_preset":"subagents","spawn_mode":"operator","spawn_paused":false}}}`
174
198
 
175
199
  ## Evaluation scenarios
176
200
 
177
201
  1. **Heartbeat bounded-orchestration tick**
178
202
  - Setup: root issue with multiple ready leaves tagged `proto:hierarchical-work-v1`.
179
- - Expected: one heartbeat tick performs exactly one bounded orchestration action, verifies state, posts concise progress, and exits.
203
+ - Expected: one heartbeat tick performs exactly one bounded orchestration action, verifies state, posts a high-level titled narrative status update, and exits.
180
204
 
181
205
  2. **tmux fan-out on ready leaves**
182
206
  - Setup: at least three independent ready issues under one root.
@@ -1,8 +0,0 @@
1
- import type { ExtensionContext } from "@mariozechner/pi-coding-agent";
2
- export type MuHudMode = "planning" | "subagents";
3
- export declare function getActiveHudMode(): MuHudMode | null;
4
- export declare function resetHudMode(): void;
5
- export declare function setActiveHudMode(mode: MuHudMode | null): void;
6
- export declare function clearHudMode(mode: MuHudMode): void;
7
- export declare function syncHudModeStatus(ctx: ExtensionContext): void;
8
- //# sourceMappingURL=hud-mode.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hud-mode.d.ts","sourceRoot":"","sources":["../../src/extensions/hud-mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;AAIjD,wBAAgB,gBAAgB,IAAI,SAAS,GAAG,IAAI,CAEnD;AAED,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,CAE7D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAIlD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAK7D"}
@@ -1,21 +0,0 @@
1
- let activeHudMode = null;
2
- export function getActiveHudMode() {
3
- return activeHudMode;
4
- }
5
- export function resetHudMode() {
6
- activeHudMode = null;
7
- }
8
- export function setActiveHudMode(mode) {
9
- activeHudMode = mode;
10
- }
11
- export function clearHudMode(mode) {
12
- if (activeHudMode === mode) {
13
- activeHudMode = null;
14
- }
15
- }
16
- export function syncHudModeStatus(ctx) {
17
- if (!ctx.hasUI) {
18
- return;
19
- }
20
- ctx.ui.setStatus("mu-hud-mode", activeHudMode ? `hud:${activeHudMode}` : undefined);
21
- }
@@ -1,4 +0,0 @@
1
- import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
2
- export declare function planningUiExtension(pi: ExtensionAPI): void;
3
- export default planningUiExtension;
4
- //# sourceMappingURL=planning-ui.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"planning-ui.d.ts","sourceRoot":"","sources":["../../src/extensions/planning-ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,+BAA+B,CAAC;AA0gBpF,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,YAAY,QAuenD;AAED,eAAe,mBAAmB,CAAC"}