@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.
- package/README.md +5 -4
- package/dist/extensions/hud.d.ts +4 -0
- package/dist/extensions/hud.d.ts.map +1 -0
- package/dist/extensions/hud.js +483 -0
- package/dist/extensions/index.d.ts +1 -2
- package/dist/extensions/index.d.ts.map +1 -1
- package/dist/extensions/index.js +1 -2
- package/dist/extensions/mu-operator.d.ts.map +1 -1
- package/dist/extensions/mu-operator.js +2 -4
- package/dist/extensions/mu-serve.d.ts.map +1 -1
- package/dist/extensions/mu-serve.js +2 -4
- package/dist/operator.d.ts +331 -0
- package/dist/operator.d.ts.map +1 -1
- package/dist/operator.js +66 -2
- package/package.json +2 -2
- package/prompts/skills/heartbeats/SKILL.md +30 -5
- package/prompts/skills/hierarchical-work-protocol/SKILL.md +2 -1
- package/prompts/skills/hud/SKILL.md +171 -0
- package/prompts/skills/mu/SKILL.md +1 -1
- package/prompts/skills/planning/SKILL.md +43 -45
- package/prompts/skills/subagents/SKILL.md +40 -16
- package/dist/extensions/hud-mode.d.ts +0 -8
- package/dist/extensions/hud-mode.d.ts.map +0 -1
- package/dist/extensions/hud-mode.js +0 -21
- package/dist/extensions/planning-ui.d.ts +0 -4
- package/dist/extensions/planning-ui.d.ts.map +0 -1
- package/dist/extensions/planning-ui.js +0 -866
- package/dist/extensions/subagents-ui.d.ts +0 -4
- package/dist/extensions/subagents-ui.d.ts.map +0 -1
- package/dist/extensions/subagents-ui.js +0 -1409
|
@@ -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
|
|
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.
|
|
32
|
-
2.
|
|
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
|
|
90
|
-
/mu
|
|
91
|
-
/mu
|
|
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
|
-
-
|
|
100
|
-
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
-
|
|
105
|
-
-
|
|
106
|
-
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
-
|
|
110
|
-
-
|
|
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
|
-
-
|
|
116
|
-
- `{"action":"
|
|
117
|
-
-
|
|
118
|
-
- `{"action":"
|
|
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/
|
|
128
|
-
- `packages/agent/test/
|
|
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
|
-
|
|
190
|
-
|
|
191
|
-
|
|
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
|
-
-
|
|
202
|
-
-
|
|
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
|
-
-
|
|
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
|
|
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
|
|
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:
|
|
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
|
|
161
|
-
/mu
|
|
162
|
-
/mu
|
|
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: `
|
|
186
|
+
Tool: `mu_hud`
|
|
170
187
|
|
|
171
|
-
-
|
|
172
|
-
|
|
173
|
-
|
|
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
|
|
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 +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"}
|