@mstar-harness/dsh 3.9.3 → 3.10.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.
- package/dist/gates/dispatch.d.ts +9 -3
- package/dist/index.js +734 -351
- package/harness-commands/iteration-drive.md +16 -2
- package/harness-skills/mstar-artifacts/SKILL.md +10 -6
- package/harness-skills/mstar-artifacts/references/plan-files-and-reports.md +1 -1
- package/harness-skills/mstar-artifacts/references/plan-quality-bar.md +10 -0
- package/harness-skills/mstar-artifacts/references/plan-workflow-lifecycle-contract.md +115 -0
- package/harness-skills/mstar-artifacts/references/status-and-residuals.md +85 -12
- package/harness-skills/mstar-artifacts/templates/plan.main.md +6 -1
- package/harness-skills/mstar-branch-worktree/SKILL.md +5 -4
- package/harness-skills/mstar-compound/SKILL.md +4 -4
- package/harness-skills/mstar-conventions/SKILL.md +1 -0
- package/harness-skills/mstar-conventions/references/effort-estimation.md +2 -0
- package/harness-skills/mstar-dispatch-gates/SKILL.md +11 -2
- package/harness-skills/mstar-harness-core/SKILL.md +2 -2
- package/harness-skills/mstar-host/SKILL.md +9 -2
- package/harness-skills/mstar-host/references/_shared/plan-mode-bridge-core.md +2 -0
- package/harness-skills/mstar-host/references/codex.md +1 -1
- package/harness-skills/mstar-host/references/dsh.md +14 -4
- package/harness-skills/mstar-host/references/omp.md +62 -2
- package/harness-skills/mstar-iteration/SKILL.md +13 -1
- package/harness-skills/mstar-iteration/references/command-shared-invariants.md +6 -0
- package/harness-skills/mstar-iteration/references/phase-1-prepare.md +2 -0
- package/harness-skills/mstar-iteration/references/phase-2-worktree-lease.md +121 -15
- package/harness-skills/mstar-iteration/references/phase-3-iteration-close.md +3 -3
- package/harness-skills/mstar-iteration/references/phase-4-5-pr-delivery.md +3 -2
- package/harness-skills/mstar-iteration/references/phase-6-post-merge-close.md +5 -2
- package/harness-skills/mstar-iteration/references/plan-scoped-pm.md +181 -0
- package/harness-skills/mstar-phase-gates/SKILL.md +7 -5
- package/harness-skills/mstar-project-governance/SKILL.md +3 -3
- package/harness-skills/mstar-review-qc/SKILL.md +4 -4
- package/harness-skills/mstar-review-qc/references/review-responsibility-boundaries.md +1 -1
- package/harness-skills/mstar-roles/references/_shared/leaf-executor-core.md +1 -0
- package/harness-skills/mstar-roles/references/project-manager/dispatch-and-assignment.md +12 -2
- package/harness-skills/mstar-roles/references/project-manager/plan-management.md +15 -0
- package/harness-skills/mstar-roles/references/project-manager/qa-trigger-matrix.md +3 -3
- package/harness-skills/mstar-roles/references/project-manager/qc-and-residuals.md +7 -5
- package/harness-skills/mstar-roles/references/project-manager.md +12 -4
- package/harness-skills/mstar-sdd/SKILL.md +8 -3
- package/harness-skills/mstar-sdd/references/file-handoffs.md +1 -0
- package/harness-skills/mstar-sdd/references/implementer-continuation-prompt.md +4 -1
- package/harness-skills/mstar-sdd/references/implementer-prompt.md +4 -0
- package/harness-skills/pm/SKILL.md +2 -0
- package/package.json +1 -1
|
@@ -38,8 +38,8 @@ description: "Morning Star QC orchestration — **SDD mandatory plan QC tri-revi
|
|
|
38
38
|
## Residual Findings 留档门禁(PM)
|
|
39
39
|
|
|
40
40
|
- 先读 Assignment **`Findings cleanup`**(`plans[].metadata.findings_cleanup` mirror 已删——Assignment 是唯一 mode 来源)→ **`mstar-artifacts/references/status-and-residuals.md`**「Findings cleanup modes」。
|
|
41
|
-
- **`Findings cleanup: zero-residual
|
|
42
|
-
- **`Findings cleanup: allow-residual`**(standalone / hotfix / inline 默认):阻断项修复后仍有 **Warning / Suggestion** 或技术债 →
|
|
41
|
+
- **`Findings cleanup: zero-residual`**(显式 opt-in):可修 **Warning / Suggestion / Critical** → **fix-now + targeted re-review**,**禁止**把可修项登记为 open R# 或用 `Approve with residuals` 收口;**`nit`** 当场修或丢弃(无 R#)。仅 **真 blocker-defer**(外部依赖 / 须下轮产品决策 / 用户本轮显式 defer + Durable Roadmap)可登记 open R#(`decision: defer`)。此时 `Approve with residuals` **仅**允许剩余项全是该类 defer,且**不含 `critical`**(不安全后果本次 merge 可达,见上文「Findings cleanup modes」);`critical` 当场修复,或走显式 risk acceptance 并在 register 内关闭,**不得**作为批准遗留项。
|
|
42
|
+
- **`Findings cleanup: allow-residual`**(iteration Phase 2 / standalone / hotfix / inline 默认):阻断项修复后仍有 **Warning / Suggestion** 或技术债 → 必须留档,open R# 在离 InReview 前登记 register;**`Approve with residuals`** 仅当无 open **Critical**;PM 汇总结论与各报告面须披露 residual 清单 —— 每条含 id + severity + 跟踪位置(close 面另含 blocker-defer 标记;无 open 时 `N/A — none open`)。
|
|
43
43
|
- **`severity`** 仅允许 `mstar-artifacts/references/status-and-residuals.md` 枚举。
|
|
44
44
|
- **Open SSOT**:`{PROJECT_DIR}/<id>/residuals.json`(默认 `{HARNESS_DIR}/projects/<id>/`;无项目流程 `_default`)→ `entries[<plan-id>]`;PM 在 consolidated 决策分配 **R1…** 并写入。关闭 → 在 register 内 **in place** 置 `lifecycle` / `closed_at` / `closure_note`(v1 `archived/residuals/` 与 `archive-residuals` 已移除)。
|
|
45
45
|
- 主 plan 仅作人类索引;不得作为唯一 SSOT。
|
|
@@ -52,7 +52,7 @@ description: "Morning Star QC orchestration — **SDD mandatory plan QC tri-revi
|
|
|
52
52
|
|
|
53
53
|
## PM consolidated 门禁(摘要)
|
|
54
54
|
|
|
55
|
-
Leaf reviewers apply verdict per **`mstar-roles/references/qc-specialist/report-template.md`**. PM **`{SDD_DIR}/review/qc-consolidated.md`** synthesizes tri (or single-seat `qc.md`) into one gate decision for implement fix waves and QA gate, then records the durable summary in the main plan / workflow snapshot artifacts.
|
|
55
|
+
Leaf reviewers apply verdict per **`mstar-roles/references/qc-specialist/report-template.md`**. PM **`{SDD_DIR}/review/qc-consolidated.md`** synthesizes tri (or single-seat `qc.md`) into one gate decision for implement fix waves and QA gate, then records the durable summary in the main plan / workflow snapshot artifacts. The consolidated decision also discloses the residual situation — open list + each severity + tracking location (`N/A — none open` when none) — per the **`Findings cleanup`** duties (`mstar-artifacts`「Findings cleanup modes」).
|
|
56
56
|
|
|
57
57
|
### 覆盖语义(未提及 = 未审查)
|
|
58
58
|
|
|
@@ -66,7 +66,7 @@ Leaf reviewers apply verdict per **`mstar-roles/references/qc-specialist/report-
|
|
|
66
66
|
- **截断报告保留 verdict。** 席位因触达预算而声明 `Truncated coverage:` 时,其 verdict 有效,PM **不得**因此升级为 `Unconfirmed`——`Unconfirmed` 仍是证据通道失败态(见上条传导规则)。
|
|
67
67
|
- **未覆盖范围不改写门禁。** 席位 verdict 只涵盖其已审范围:当 Assignment 范围未被完整覆盖时,**gate decision 不得为 `Approve`**。PM 二选一——把未覆盖范围按 targeted re-review 重新派发(席位在预算内补完),或显式收窄 `Review range` 并把收窄依据记入 `qc-consolidated.md` 后再收敛。截断范围仍按「未提及 = 未审查」在 `qc-consolidated.md` 中如实标注 `unreviewed`,PM 不重审无关内容来补全它。
|
|
68
68
|
|
|
69
|
-
> **Engine check (when available):** run `mstar qc validate-report <report.md>` on each seat report (and `mstar dispatch validate <assignment-file>` for the Assignment-side round-bounding gate — `Budget` + `Return shape` on review / audit rounds; or `import { validateQcReport } from "@mstar-harness/engine"` in a host hook). On `fail` -> do not proceed; fix and re-run. Skill text below remains authoritative when the runtime is absent.
|
|
69
|
+
> **Engine check (when available):** run `mstar qc validate-report <report.md>` on each seat report (and `mstar dispatch validate <assignment-file>` for the Assignment-side round-bounding gate — `Budget` + `Return shape` on review / audit rounds, plus the canonical **`Task budget (implement / ops rounds)`** capacity field on non-review / non-audit rounds; field guidance → `mstar-roles/references/project-manager/dispatch-and-assignment.md`; the review caps above are unchanged; or `import { validateQcReport } from "@mstar-harness/engine"` in a host hook). On `fail` -> do not proceed; fix and re-run. Skill text below remains authoritative when the runtime is absent.
|
|
70
70
|
|
|
71
71
|
## 证据规则(PM · consolidated 输入)
|
|
72
72
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
| **L1** Implementer | dev subagent | Per task | Write code + affected unit evidence; non-executable docs/policy may use `scoped-check` | `task-N-brief.md` |
|
|
8
8
|
| **L2** Task reviewer | `code-reviewer` (default; generic fallback when the host agent list lacks it) — PM-dispatched subagent (SDD) | Per task, after implementer | Spec + quality for **one task** (diff-first; no full suite) | brief, report, **task-level** diff |
|
|
9
9
|
| **L3** Plan QC tri (cross-review) | `qc-specialist` + `qc-specialist-2` + `qc-specialist-3` | After **all** tasks on branch | **Code-review seat** — diff, language/logic, security & contract lenses on **the assigned change and directly affected interfaces**; **not** the test-execution path | Branch `review-package` MERGE_BASE..HEAD |
|
|
10
|
-
| **L4** QA | `qa-engineer` when **`QA gate: mandatory`**; else PM acceptance | After QC gate | DoD acceptance, residual verify, named affected **unit-test** verification only, Done recommendation | Review bundle + plan + **L1 evidence** +
|
|
10
|
+
| **L4** QA | `qa-engineer` when **`QA gate: mandatory`**; else PM acceptance | After QC gate | DoD acceptance, residual verify, named affected **unit-test** verification only, Done recommendation | Review bundle + plan + **L1 evidence** + project register |
|
|
11
11
|
|
|
12
12
|
PM sets **`QA gate`** per `mstar-roles/references/project-manager/qa-trigger-matrix.md`. L4 execution when dispatched → `mstar-roles/references/qa-engineer/acceptance-gate.md`.
|
|
13
13
|
|
|
@@ -25,6 +25,7 @@ Every leaf executor returns this template (only `**Agent**` and content fields c
|
|
|
25
25
|
**Artifacts**: ...
|
|
26
26
|
**Validation**: ...
|
|
27
27
|
**Issues/Risks**: ...
|
|
28
|
+
**Residuals disclosure**: <open R# list — id + severity + tracking location; `N/A — none open` when none>
|
|
28
29
|
**Plan Update**: ...
|
|
29
30
|
**Handoff**: ...
|
|
30
31
|
**Git**: ...
|
|
@@ -13,6 +13,8 @@ The concise gate summary remains in `references/project-manager.md`.
|
|
|
13
13
|
- **Scope and stopping are explicit**: apply `mstar-harness-core` § 定向执行与验证边界. Give each leaf one result, owned paths/symbols, relevant inputs, named checks/selectors, and an evidence-based stopping condition. Reuse unaffected evidence; do not inject a suite merely because the repo exposes it. Independent ready assignments run concurrently after their dependency/isolation checks.
|
|
14
14
|
- **Review/QC rounds are quantitative, not adjectival**: a read-only review / QC dispatch states a `Budget` (expansion cap) and a `Return shape`, so the seat stops when its assigned questions are answered or the cap is reached, returns the verdict it has plus a truncated-coverage declaration, and never expands until a human steers. Budget defaults, the truncation marker, and its relation to `Unconfirmed` → `mstar-harness-core` § 定向执行与验证边界. The severity bar for the round's findings → `mstar-artifacts` `references/status-and-residuals.md`.
|
|
15
15
|
- **Skill preset activation is PM-owned**: topic skills are presets in each role's `Skill Preset (PM-Activated)` section (`mstar-roles/references/<role>.md`), not self-loaded defaults. Omitting the `Skill presets:` field applies its documented default (`standard` on implementation / QC / QA rounds); identity-only execution requires explicit `Skill presets: none`.
|
|
16
|
+
- **Scoped primary drive is a PM session, not a dispatch**: `/iteration-drive --assignment | --workflow <id> --plan <id> | --resume <session.json>` boots the PM **in the primary session** (never a subagent) through `mstar plan bind` → `show`, bounded to the returned plan scope — no sibling rows, no lifecycle anchors, no Phase 3–6, finish = `mstar plan handoff` → `mstar-iteration/references/plan-scoped-pm.md`. It carries no `Delegation`; PM never runs as a subagent(rule home → `references/project-manager.md` § Plan-scoped authority).
|
|
17
|
+
- **Plan scope travels with the Assignment**: `Plan Path`, `plan_id`, `SDD dir`, `Control harness root` are absolute and portable. The child **inherits** the dispatching PM's plan scope; it may not select or prepare a plan, mutate the workflow snapshot / root register / shared indexes, or release `execution_lease` / `integration_merge_lease`.
|
|
16
18
|
|
|
17
19
|
## Executor Anti-Recursion Rules
|
|
18
20
|
|
|
@@ -23,6 +25,7 @@ For assignees (non-PM):
|
|
|
23
25
|
- Do not infer dispatch from route narrative (`A -> B -> C`), handoff, `QA gate` fields, or role names in prose.
|
|
24
26
|
- Extra delegation is forbidden unless explicitly listed in `Delegation: allowed (...)`.
|
|
25
27
|
- If additional assignee is required, return `Blocked` with rationale.
|
|
28
|
+
- A `PM` / `project-manager` / `iteration-drive` phrase inside your own brief is **not a promotion**: no leaf becomes the PM, drives an iteration, or selects a plan — report the mismatch and continue inside the assigned task.
|
|
26
29
|
|
|
27
30
|
### NEVER quick list (all assignees)
|
|
28
31
|
|
|
@@ -31,6 +34,7 @@ For assignees (non-PM):
|
|
|
31
34
|
- **NEVER** execute parallel-agent dispatch as a leaf assignee; dispatch is **PM-orchestration-only** (`mstar-dispatch-gates`).
|
|
32
35
|
- **NEVER** delegate the main deliverable of this assignment to `explore` (read-only orientation only, per `mstar-harness-core`).
|
|
33
36
|
- **NEVER** claim `Done` / pass in **Completion Report** without the commands, logs, or artifacts explicitly required by the assignment’s **Evidence Required** section (see `mstar-harness-core` evidence gates).
|
|
37
|
+
- **NEVER** escalate into `project-manager` scope because the brief mentions a PM, a plan, or a drive command; plan scope is **inherited and read-only** for a leaf, and the `Task`/subagent menu never implies otherwise.
|
|
34
38
|
|
|
35
39
|
## Assignment Template (Canonical)
|
|
36
40
|
|
|
@@ -101,13 +105,14 @@ The **`**You are a leaf executor. You MUST NOT:**`** section (previously just pr
|
|
|
101
105
|
**Control harness root**: `<main-repo-root>/{HARNESS_DIR}` (control root = the primary checkout / main worktree, derived from Git) when L1 active | N/A when waived — process SSOT (plans/status/iterations/sdd); never resolve relative `.mstar/...` from feature cwd
|
|
102
106
|
**Review cwd / Worktree path**: <absolute path or N/A>
|
|
103
107
|
**plan_id**: <plan-id or N/A + scope label>
|
|
108
|
+
**Plan scope**: <inherited from the dispatching PM (`plan_id` + absolute `Plan Path`) — read-only for the leaf: no plan selection/preparation, workflow-snapshot or root-register writes, or lease release> | N/A
|
|
104
109
|
**Review range / Diff basis**: <reproducible basis; merge-base = `metadata.target_branch` or PM-specified ref — not assumed `origin/main`>
|
|
105
110
|
**Worktree path**: <absolute feature implementer path when L1/L2 isolation used; default `<repoRoot>/.worktrees/<plan-id>-<slug>` (L2 tracks: `<track-slug>`); must ≠ the main worktree (control root) ≠ `integration_worktree_path`>
|
|
106
111
|
**Main worktree branch**: <recorded residency branch of the primary checkout (main worktree), from the main plan header — passed unchanged; never a lifecycle-owned branch>
|
|
107
112
|
**QA gate**: mandatory | pm-acceptance | report-only — see `references/project-manager/qa-trigger-matrix.md`
|
|
108
113
|
**QA gate reason**: <tier label, e.g. hotfix-inline | small-feature-clean-qc | mandatory-medium-feature>
|
|
109
114
|
**QA mode**: acceptance-only | targeted | report-only | N/A — required when `QA gate: mandatory` or `report-only`
|
|
110
|
-
**Findings cleanup**: zero-residual | allow-residual — **default `
|
|
115
|
+
**Findings cleanup**: zero-residual | allow-residual — **default `allow-residual` on formal iteration Phase 2** and for standalone `/pm`, hotfix, `Execution mode: inline`; `zero-residual` is the explicit opt-in override via compass or Assignment (Assignment wins; SSOT → `mstar-artifacts` Findings cleanup modes)
|
|
111
116
|
**Why this agent**: <role-fit>
|
|
112
117
|
**PM Task Board coverage**: <task ids>
|
|
113
118
|
**Roadmap / deferred scope**: <required when staged, partial, or temporary; otherwise N/A>
|
|
@@ -118,7 +123,8 @@ The **`**You are a leaf executor. You MUST NOT:**`** section (previously just pr
|
|
|
118
123
|
- In: <owned files/symbols, directly affected interfaces; finding + fix delta for re-review>
|
|
119
124
|
- Out: <excluded work and specific boundary>
|
|
120
125
|
**Inputs**: <brief, diff, relevant knowledge, reusable evidence with original range>
|
|
121
|
-
**Budget (review / QC seats)**: <expansion cap (file opens / wall clock) — may only tighten the default in `mstar-harness-core` § 定向执行与验证边界, never loosen it; `N/A` on implement / ops rounds>
|
|
126
|
+
**Budget (review / QC seats)**: <expansion cap (file opens / wall clock) — may only tighten the default in `mstar-harness-core` § 定向执行与验证边界, never loosen it; `N/A` on implement / ops rounds — those rounds declare the distinct sibling **`Task budget (implement / ops rounds)`** field below>
|
|
127
|
+
**Task budget (implement / ops rounds)**: <one implementer round closing this task's declared Files list and verification gates, citing the task's `Effort (agent-oriented)` band (`mstar-conventions/references/effort-estimation.md`); required on every non-review, non-audit round — the exact complement of the review-seat `Budget` / audit-round fields above, so non-audit docs/Prepare specialists and orientation roles also declare it, and `writable: false` is not a capacity exemption; the engine check is presence-only on this header region before the body, not prose adequacy; a multi-session Effort band never authorizes a multi-round task — split per `mstar-artifacts/references/plan-quality-bar.md` item 7>
|
|
122
128
|
**Return shape (review / QC seats)**: <what the seat returns and how it stops — verdict + findings shape; a clean round returns `findings: []` explicitly instead of prose; `N/A` when the round produces no findings>
|
|
123
129
|
**Severity bar**: <what this round must treat as blocking — the blocking classes are unsafe-to-ship or significant tech debt; class definitions and the full report-section mapping → `mstar-artifacts` `references/status-and-residuals.md`; `N/A` on rounds with no findings>
|
|
124
130
|
**Input provenance**: <how the seat grounds its claims — the command plus observed output for a `declared` / `recorded` / `written` artifact claim, and provenance for an asserted `path:line` citation; `N/A` when the round asserts neither>
|
|
@@ -176,6 +182,7 @@ Do **not** waive worktree because default-gitignored `plans/` are missing under
|
|
|
176
182
|
**Artifacts**: ...
|
|
177
183
|
**Validation**: ...
|
|
178
184
|
**Issues/Risks**: ...
|
|
185
|
+
**Residuals disclosure**: <open R# list — id + severity + tracking location; `N/A — none open` when none>
|
|
179
186
|
**Plan Update**: ...
|
|
180
187
|
**Handoff**: narrative to `project-manager` (not auto-dispatch)
|
|
181
188
|
**Git**: <commit lines or N/A>
|
|
@@ -198,6 +205,7 @@ Do **not** waive worktree because default-gitignored `plans/` are missing under
|
|
|
198
205
|
**Blockers**: ...
|
|
199
206
|
**Decisions needed**: ...
|
|
200
207
|
**Evidence Snapshot**: ...
|
|
208
|
+
**Residuals disclosure**: <open R# list — id + severity + tracking location; `N/A — none open` when none>
|
|
201
209
|
**PM Acceptance**: <required block when QA gate: pm-acceptance before Done — see qa-trigger-matrix.md>
|
|
202
210
|
**Effort note (agent-oriented)**: ...
|
|
203
211
|
```
|
|
@@ -207,6 +215,8 @@ Do **not** waive worktree because default-gitignored `plans/` are missing under
|
|
|
207
215
|
For host behavior details (dispatch turn shape, paste-only failure mode, invoke-count discipline),
|
|
208
216
|
read `mstar-host` → the active host reference and `references/parallel-dispatch.md` as host SSOT for dispatch.
|
|
209
217
|
|
|
218
|
+
The **scoped primary route** never appears as a subagent invoke on any host: `/iteration-drive` with a scope flag boots the PM in the **primary session** — PM never runs as a subagent(rule home → `references/project-manager.md` § Plan-scoped authority)— so an Assignment whose `Execute as` is `project-manager` is a dispatch defect, not a target (`mstar-iteration/references/plan-scoped-pm.md` §2).
|
|
219
|
+
|
|
210
220
|
## SDD vs inline implement Assignment(PM)
|
|
211
221
|
|
|
212
222
|
| Mode | Who loads `mstar-sdd` | Assignment shape |
|
|
@@ -40,6 +40,20 @@ If legacy plan directories already exist, reuse them; avoid dual-structure dupli
|
|
|
40
40
|
- After each Completion Report: update status before next dispatch (`report-to-status` hard gate).
|
|
41
41
|
- On entering `InReview`: ensure review bundle path (`{SDD_DIR}/review/`) and aligned review metadata are set; write durable gate summaries back to the main plan/status artifacts.
|
|
42
42
|
- On `Done`: ensure residual lifecycle state is consistent (open vs archived).
|
|
43
|
+
- At plan commitment: register the workflow through the authorized producer (create-only snapshot + root `workflows[]` entry under one lock) and declare its delivery kind — `development`, or `verification/report-only` with its recorded completion policy:
|
|
44
|
+
```text
|
|
45
|
+
mstar workflow register --workflow <id> --plan-id <id> --plan-title <title> --plan-file <path>
|
|
46
|
+
--delivery-kind <development|verification/report-only> [--project <id>]
|
|
47
|
+
[--branch-source <branch> --branch-target <branch> | --completion-policy <text>]
|
|
48
|
+
[--started-at <ts>] [--harness <dir>]
|
|
49
|
+
```
|
|
50
|
+
The kind is declared here, never inferred (§1): `development` requires `--branch-source` + `--branch-target`, `verification/report-only` requires `--completion-policy`. The same `--delivery-kind` input is required by the specialized producers `audit promote` and (for the ACTIVE plan snapshots it lifts) `migrate` — and it is ONE delivery identity, so a `migrate` run whose lift creates 2+ ACTIVE standalone plans is refused (ids listed) and the tree migrates in batches of one declared plan. An **ACTIVE** `type: plan` snapshot that predates this (no registered kind — e.g. an old audit promotion or v1 lift) is repaired ONCE, before its close:
|
|
51
|
+
```text
|
|
52
|
+
mstar workflow evidence --workflow <id> --declare-kind <development|verification/report-only>
|
|
53
|
+
[--branch-source <branch> --branch-target <branch> | --completion-policy <text>] [--session <path>]
|
|
54
|
+
```
|
|
55
|
+
The declaration is one-time (a second one, even with the same kind, is refused) and refuses a terminal snapshot; a supplied `--branch-source`/`--branch-target` fills a MISSING anchor or restates the registered one — a value conflicting with an anchor the snapshot already carries is refused (the registered anchor is the delivery identity, never overwritten); delivery evidence itself is recorded with `mstar workflow evidence --workflow <id> --file <payload.json>` (PR identity recorded once; `head`/`target` must be the registered `branch.source`/`branch.target`).
|
|
56
|
+
- Delivery tail (standalone `development` plans, after Done): compound disposition (`created` / `updated` / reasoned `skipped`; review → **`mstar-compound`**) on the delivery branch before the PR head is finalized → submit PR with its identity (repo / head / target) recorded → merge-ready declared (resumable milestone; workflow stays registered) → PM-verified merge (provider evidence; never the close verb) → common close reusing the post-merge-close ordering (`mstar-iteration/references/phase-6-post-merge-close.md`). Stage semantics and failure behavior → frozen contract `mstar-artifacts/references/plan-workflow-lifecycle-contract.md`.
|
|
43
57
|
|
|
44
58
|
## PM Plan / Status NEVER
|
|
45
59
|
|
|
@@ -49,6 +63,7 @@ If legacy plan directories already exist, reuse them; avoid dual-structure dupli
|
|
|
49
63
|
## Stage Transitions
|
|
50
64
|
|
|
51
65
|
- Non-hotfix path: `specify -> clarify -> plan -> tasks -> implement -> InReview -> Done`
|
|
66
|
+
- Standalone development plans: row `Done` is not workflow completion — the delivery tail (see PM Responsibilities) runs to verified merge + terminal close before the workflow closes.
|
|
52
67
|
- Hotfix path may be compressed, but requires post-fix clarify/RCA follow-up note.
|
|
53
68
|
- New constraints during implement: write back to plan before continuing.
|
|
54
69
|
|
|
@@ -27,7 +27,7 @@ Set **`QA gate`** on the **first implement Assignment** (or plan frontmatter) an
|
|
|
27
27
|
| Small feature: non-UI, no open R#, QC clean `Approve` (not `Approve with residuals`) | `pm-acceptance` | N/A |
|
|
28
28
|
| Bug fix (RCA + regression scope; default route) | `mandatory` | `acceptance-only` |
|
|
29
29
|
| Medium / Large feature | `mandatory` | `acceptance-only` |
|
|
30
|
-
| `Approve with residuals` or any open R# in `
|
|
30
|
+
| `Approve with residuals` or any open R# in the project register (`{PROJECT_DIR}/<id>/residuals.json`) | `mandatory` | `acceptance-only` (includes R# verify) |
|
|
31
31
|
| UI-visible change (`Task category: visual` or observable evidence gate) | `mandatory` | `acceptance-only` (unit evidence; record unverified UI behavior for independent E2E) |
|
|
32
32
|
| High-risk ops | `mandatory` | `acceptance-only` (reuse ops evidence; named unit-test gaps only) |
|
|
33
33
|
| QA report-only primary route | `report-only` | `report-only` |
|
|
@@ -36,7 +36,7 @@ Set **`QA gate`** on the **first implement Assignment** (or plan frontmatter) an
|
|
|
36
36
|
|
|
37
37
|
**Upgrade rule:** If conditions change mid-round (e.g. QC becomes `Approve with residuals`, UI scope added, open R# registered), change `QA gate` from `pm-acceptance` to `mandatory` before `Done`.
|
|
38
38
|
|
|
39
|
-
**Findings cleanup note:**
|
|
39
|
+
**Findings cleanup note:** Only Assignment **`Findings cleanup: zero-residual`** (explicit opt-in) ties the plan to a clean QC `Approve` with **no open R#** — under it, a clean approval restores the small-feature `pm-acceptance` path when other tier rules allow. The default `allow-residual` carries registered residuals, and any open R# (either mode, even blocker-defer) still forces **`QA gate: mandatory`** like the residual row above. See `mstar-artifacts` Findings cleanup modes.
|
|
40
40
|
|
|
41
41
|
## PM acceptance checklist (required before `Done` when `QA gate: pm-acceptance`)
|
|
42
42
|
|
|
@@ -44,7 +44,7 @@ PM completes this in **Status Update** (or plan closure note). PM **does not** r
|
|
|
44
44
|
|
|
45
45
|
1. **QC verdict:** `{SDD_DIR}/review/qc-consolidated.md` or `{SDD_DIR}/review/qc.md` shows `Approve` with **Critical = 0** and **Warning = 0** (not `Approve with residuals`), and the main plan has a durable gate summary.
|
|
46
46
|
2. **DoD mapping:** Each plan Acceptance Criterion maps to **existing** evidence (dev Completion Report, SDD test triple or applicable scoped-check, CI links; QC report for review verdict/findings only) — cite paths/commands, do not re-execute.
|
|
47
|
-
3. **Residuals:** `
|
|
47
|
+
3. **Residuals:** the project register `{PROJECT_DIR}/<id>/residuals.json` → `entries[<plan-id>]` has **no open R#** for this `plan_id` (or documented waiver per `mstar-artifacts`).
|
|
48
48
|
4. **Checkout alignment:** `Working branch` and `Review range / Diff basis` match QC report verified lines.
|
|
49
49
|
5. **`QA gate reason`:** One line naming the tier (e.g. `hotfix-inline`, `small-feature-clean-qc`).
|
|
50
50
|
|
|
@@ -49,7 +49,7 @@ Use this reference when PM is dispatching QC, consolidating review verdicts, or
|
|
|
49
49
|
|
|
50
50
|
**Decision**: Approve | Request Changes | Needs Discussion | Unconfirmed
|
|
51
51
|
**Blocking Items**: {list or None}
|
|
52
|
-
**Residual Findings**: {
|
|
52
|
+
**Residual Findings**: {each open item: id + severity + tracking location + owner/target date, or `N/A — none open`}
|
|
53
53
|
**Assigned Fix Owners**: {role list}
|
|
54
54
|
**Next Step**: {back to dev fix | to QA verification}
|
|
55
55
|
```
|
|
@@ -65,7 +65,7 @@ Use this reference when PM is dispatching QC, consolidating review verdicts, or
|
|
|
65
65
|
|
|
66
66
|
Read Assignment **`Findings cleanup`** first (`mstar-artifacts` — Findings cleanup modes).
|
|
67
67
|
|
|
68
|
-
### When `Findings cleanup: zero-residual`
|
|
68
|
+
### When `Findings cleanup: zero-residual` (explicit opt-in)
|
|
69
69
|
|
|
70
70
|
- Prefer **fix-now + targeted re-review** for Critical / Warning / Suggestion that can be fixed this session.
|
|
71
71
|
- **NEVER** park fixable findings as open R# or use `Approve with residuals` for them.
|
|
@@ -73,14 +73,16 @@ Read Assignment **`Findings cleanup`** first (`mstar-artifacts` — Findings cle
|
|
|
73
73
|
- `nit`: fix or drop (no R#).
|
|
74
74
|
- Plan Done: prefer empty open list; any remaining open R# must all be blocker-defer + roadmap — never a `critical` (`mstar-artifacts` Findings cleanup modes).
|
|
75
75
|
|
|
76
|
-
### When `Findings cleanup: allow-residual` (
|
|
76
|
+
### When `Findings cleanup: allow-residual` (default)
|
|
77
77
|
|
|
78
|
-
When blocking issues are fixed but non-blocking warnings/suggestions remain:
|
|
78
|
+
The default mode (iteration Phase 2 included; `zero-residual` is the explicit opt-in). When blocking issues are fixed but non-blocking warnings/suggestions remain:
|
|
79
79
|
|
|
80
|
-
- Must register residual findings (do not leave as chat-only).
|
|
80
|
+
- Must register residual findings in the project register before the plan leaves InReview (do not leave as chat-only).
|
|
81
81
|
- Severity enum must follow `mstar-artifacts` SSOT.
|
|
82
82
|
- Canonical store: `{PROJECT_DIR}/<id>/residuals.json` (default `{HARNESS_DIR}/projects/<id>/`; project-less flows `_default`) -> `entries[<plan-id>]`.
|
|
83
83
|
- Required durable gate summary in main plan should list R# ids and decisions, but never replace canonical entries.
|
|
84
|
+
- Every consolidated QC decision, Completion Report, and Status Update discloses the residual situation — the list, each entry's severity, and its tracking location (`N/A — none open` when none). Silence about open residuals is a gate violation.
|
|
85
|
+
- Close-time artifacts (main plan `## Review Gate Summary`, compass `## Quality Gate Summary`, PR body) carry the same list plus a blocker-defer flag; a close without these disclosures is not a close. Disclosure never closes entries and never overrides critical blocking or explicit `zero-residual` rules.
|
|
84
86
|
|
|
85
87
|
Each residual record should include:
|
|
86
88
|
|
|
@@ -27,6 +27,12 @@ Detailed procedures are moved to `references/project-manager/*.md`.
|
|
|
27
27
|
- Subagents report to you; you own route selection, dispatch, gate decisions, and closure.
|
|
28
28
|
- Default mode is delegate-first.
|
|
29
29
|
|
|
30
|
+
### Plan-scoped authority (bounded)
|
|
31
|
+
|
|
32
|
+
- **PM never runs as a subagent**(**single home for this rule** — `mstar-dispatch-gates` § Plan 作用域与 credential 不下发, `project-manager/dispatch-and-assignment.md` and `mstar-iteration/references/plan-scoped-pm.md` §2 point here). PM is the **primary-session** seat on every host: no `project-manager` **subagent shell** ships in any tracked shell surface(`agents/*.md`, `codex/agents/*.toml`), and the only PM shell in the tree is OpenCode's **`mode: primary`** seat `packages/opencode/agents/project-manager.md` — a primary seat, **not** a `task` dispatch target(host dispatch surface → `mstar-host/references/omp.md` § C5: on omp no agent shell for PM ships, `mode: primary` is OpenCode-only). A **leaf** that receives `pm` / `project-manager` / `iteration-drive` wording (role name, handoff prose, `QA gate` field, routing table, multi-track narrative) is **not** being promoted: the leaf stays inside its own task, reports the mismatch, and does **not** dispatch, invoke, or absorb PM scope (`mstar-dispatch-gates` § role boundary / anti-recursion).
|
|
33
|
+
- **Scope is inherited, never self-expanded.** Every child Assignment inherits its parent's plan scope. A child may not select or prepare a plan, mutate the workflow snapshot / root register / shared indexes, release leases, or open PR / close phases — only its own task and its declared write paths.
|
|
34
|
+
- **Scoped primary drive**(`/iteration-drive --assignment|--workflow/--plan|--resume`)runs **in the primary session** (never as a subagent): `mstar plan bind` → `show`, then the session is bounded to that plan's writable surface — no sibling rows, no lifecycle anchors, no Phase 3–6, and its finish is a **handoff**, not `Done` → **`mstar-iteration/references/plan-scoped-pm.md`**.
|
|
35
|
+
|
|
30
36
|
---
|
|
31
37
|
|
|
32
38
|
## PM Execution Boundary
|
|
@@ -89,7 +95,7 @@ Detailed conflict priority and dev allocation:
|
|
|
89
95
|
- Runtime/behavior change requires a recorded **`QA gate`** decision by default (`mandatory` or `pm-acceptance` per `qa-trigger-matrix.md`).
|
|
90
96
|
- Report-only QA may skip QC tri-review only when no implementation/test/config artifact is committed.
|
|
91
97
|
- Product-docs-only and tech-spec-only can skip QC tri-review only with explicit `QC: skipped — <reason>`.
|
|
92
|
-
- Plan `Done` sign-off authority: `project-manager` or `qa-engineer` only.
|
|
98
|
+
- Plan `Done` sign-off authority: `project-manager` or `qa-engineer` only. On the scoped route `Done` is written **only** through the coordinator's `mstar plan complete` (one atomic write after a pinned, verified Git merge) — a plan session never sets it.
|
|
93
99
|
|
|
94
100
|
---
|
|
95
101
|
|
|
@@ -104,8 +110,7 @@ In invoke-based hosts (OpenCode / Cursor Task / Codex with callable multi-agent
|
|
|
104
110
|
|
|
105
111
|
Host invoke/dispatch details: `mstar-host` → active host reference and `references/parallel-dispatch.md`.
|
|
106
112
|
|
|
107
|
-
**dsh:** mstar **stops arming** a goal — dsh progress is the native workflow (workflow snapshot phases + dispatch gates + **subagent settle notifications**), never a `/goal` objective or goal round loop. Phase 2 is
|
|
108
|
-
|
|
113
|
+
**dsh:** mstar **stops arming** a goal — dsh progress is the native workflow (workflow snapshot phases + dispatch gates + **subagent settle notifications**), never a `/goal` objective or goal round loop. Phase 2 progression is the **`Rescheduling checkpoint`** (a settle notification is a `result-settled` one): dispatch the ready independent work before any wait; waiting is right when a dispatched child already owns that work — **never** a duplicate unit of work against the same worktree. Procedure → `mstar-iteration` `references/phase-2-worktree-lease.md` §2.4; rule → `mstar-host` → `references/dsh.md`.
|
|
109
114
|
Dispatch mechanics and templates:
|
|
110
115
|
`references/project-manager/dispatch-and-assignment.md`.
|
|
111
116
|
|
|
@@ -128,6 +133,8 @@ If any item below matches, fix the dispatch/plan state or mark `Blocked`—do **
|
|
|
128
133
|
- **NEVER** mark plan `Done` on runtime/behavior change without `QA gate: mandatory` fulfilled or completed PM acceptance checklist (`qa-trigger-matrix.md`).
|
|
129
134
|
- **NEVER** run tests/repro in the PM orchestration thread to substitute for `QA gate: mandatory` dispatch.
|
|
130
135
|
- **NEVER** let non-PM/non-QA roles mark plan `Done`.
|
|
136
|
+
- **NEVER** dispatch from a leaf or promote a leaf into PM/coordinator scope: PM/iteration-drive wording (or `Delegation: forbidden`) reaching a child is a **boundary**, not an invitation — report the mismatch and stay inside the assigned task (`mstar-dispatch-gates` § 承接方反递归).
|
|
137
|
+
- **NEVER** exceed plan scope as a scoped PM/session: no sibling rows, lifecycle anchors, `execution_policy`, `compass_ref`, root `status.json` / shared-index writes, and no `execution_lease` / `integration_merge_lease` release. Finish = `mstar plan handoff`; `Done` + lease deletion belong to the coordinator's `mstar plan complete` (`mstar-iteration/references/plan-scoped-pm.md` §3–§5).
|
|
131
138
|
- **NEVER** accept “temporary workaround”, “follow-up later”, “next plan”, or “split into batches” as narrative-only scope management. If work is deferred or staged, write the roadmap/tracking location before implement GO or Done.
|
|
132
139
|
- **NEVER** perform specialist document edits in the PM thread when host invoke is required — that is `dispatch incomplete` (`mstar-dispatch-gates`, `mstar-iteration/references/phase-1-prepare.md` §1.6).
|
|
133
140
|
- **NEVER** mark the last plan `Done` and then create a PR or declare the iteration complete without **`## Phase 3: iteration-close`** and `mstar-iteration/references/phase-3-iteration-close.md` §3.1–§3.5 checklists.
|
|
@@ -154,8 +161,9 @@ If any item below matches, fix the dispatch/plan state or mark `Blocked`—do **
|
|
|
154
161
|
| **`/pm`** or **`pm` skill** (Codex, Cursor; OpenCode when no command) | This shim → **`project-manager.md`** § Required Reading + topic skills on demand |
|
|
155
162
|
| **Cursor / OpenCode** host iteration `commands/` | Command Boot + **`project-manager.md`** — iteration lifecycle only; **not** required for ordinary per-plan PM |
|
|
156
163
|
| **OpenCode** (no command, not `/pm`) | `project-manager` + `mstar-host` → `opencode.md` |
|
|
164
|
+
| **`/iteration-drive --assignment` / `--workflow --plan` / `--resume`**(scoped primary) | **`mstar-iteration/references/plan-scoped-pm.md`** — bind → `show` → constrain to the returned scope; finish = handoff; coordinator sequence for accept/integration/complete |
|
|
157
165
|
|
|
158
|
-
**Dispatch-first**, iteration branch policy(`iteration_base_branch` / `spec_integration_branch` / `target_branch`), Autonomous Execute → **`mstar-iteration/references/phase-2-worktree-lease.md
|
|
166
|
+
**Dispatch-first**, iteration branch policy(`iteration_base_branch` / `spec_integration_branch` / `target_branch`), Autonomous Execute → **`mstar-iteration/references/phase-2-worktree-lease.md`**;Phase 2 的 **`Rescheduling checkpoint`**(何时重新评估可派发 work、五个冻结 reason、wait reason)→ 该文件 §2.4。Routing, gates, Task Board, QC, templates → this file + topic `mstar-*` skills.
|
|
159
167
|
|
|
160
168
|
---
|
|
161
169
|
|
|
@@ -42,6 +42,10 @@ Batch all findings for the human in one message. If clean, proceed silently.
|
|
|
42
42
|
|
|
43
43
|
Dispatch independent ready tasks concurrently after L2 worktree isolation. Keep one canonical per-plan `{SDD_DIR}`. PM alone writes its `context.json`, `progress.md` and workflow snapshot; prepare context-dependent helper outputs serially. Each writable track has its own worktree/branch and immutable task-specific absolute brief/report/diff paths. Artifact subdirectories are namespaces inside that SDD root, never a second SDD root. Parallel leaves use the supplied paths directly and do not invoke shared-context helpers or read mutable context to choose their checkout; never share a writable session or `implementer-session.json`. Use **fresh** implementers for parallel tasks. Serialize only actual dependencies, overlapping write ownership, one sticky session, and integration merges; state the dependency when serializing. A task reviewer may run alongside an unrelated ready implementer. PM alone reconciles reports into the shared `progress.md` and workflow snapshot.
|
|
44
44
|
|
|
45
|
+
**Rescheduling checkpoint:** a running background task is never a reason to stop scheduling. Re-run this ready-task check at the Phase-2 checkpoints named in **`mstar-iteration/references/phase-2-worktree-lease.md` §2.4** — that file is the single authoritative home for the five checkpoint names and their reason vocabulary, and they are deliberately not re-listed here — and start every authorized independent ready task before waiting for an unrelated running task or plan. Waiting is valid only when nothing useful is ready: state the wait reason once and do not re-check or remind on unchanged facts.
|
|
46
|
+
|
|
47
|
+
**Scope and credential boundary:** each task brief carries the **inherited plan scope** (plan id + absolute `SDD dir` / brief / report / diff paths) — a leaf never selects or prepares a plan, writes the workflow snapshot / root register / shared indexes, or releases leases. Session JSON, `mstar plan --session` write credentials, and `--expect <revision>` stay with the PM/coordinator and are **never** handed to an implementer or reviewer (`mstar-iteration/references/plan-scoped-pm.md` §8).
|
|
48
|
+
|
|
45
49
|
**Dependent-task readiness:** review approval alone does not make a prerequisite available. PM serially integrates the reviewed prerequisite commits, then creates or updates the idle dependent worktree from that integrated state before recording its `BASE_SHA` and dispatching. For each required reviewed commit, record `git -C "$FEATURE_CWD" merge-base --is-ancestor <prerequisite-sha> <BASE_SHA>` with exit 0; a missing commit blocks only that dependent task. Do not move an active task's base; independent ready tasks continue concurrently.
|
|
46
50
|
|
|
47
51
|
## Per-task loop (PM only · Workflow)
|
|
@@ -50,12 +54,13 @@ Dispatch independent ready tasks concurrently after L2 worktree isolation. Keep
|
|
|
50
54
|
2. `mstar sdd workspace <plan-id>` → `SDD_DIR`(iteration L1 从 feature cwd 调用时:`MSTAR_CONTROL_ROOT=<main-repo-root>`(= **Git 派生的主 worktree 根**;先完成派生验证,fail-closed 守卫在其后)或 `mstar sdd workspace <plan-id> <main-repo-root>`;显式值必须与派生主根 canonicalize 一致,integration/外来检出被拒而非静默重定向;probe 以 v2 根 `status.json`(`workflows[]`)或 workflow snapshot 存在为准,linked worktree 缺文件会 fail closed)
|
|
51
55
|
3. `mstar sdd task-brief <plan> N` → brief file
|
|
52
56
|
4. Dispatch implementer:
|
|
57
|
+
- Copy the plan task's budget into the Assignment header field **`Task budget (implement / ops rounds)`** (canonical template → `mstar-roles/references/project-manager/dispatch-and-assignment.md`; one-round capacity criterion → `mstar-artifacts/references/plan-quality-bar.md` item 7) — header region only, before the body markers
|
|
53
58
|
- **`SDD implementer session: fresh`** (default) — new subagent; templates: `references/implementer-prompt.md`
|
|
54
59
|
- **`SDD implementer session: sticky`** — first task: same as fresh + write `{SDD_DIR}/implementer-session.json` with `host_agent_id`; later tasks: host **resume** + `references/implementer-continuation-prompt.md` (see **`references/sticky-implementer-session.md`**)
|
|
55
60
|
5. On `DONE`: `mstar sdd review-package BASE HEAD` → diff file
|
|
56
61
|
6. Dispatch **fresh** task reviewer — role **`code-reviewer`** (L2; **not** `qc-specialist*`; host fallback generic + C5b → `mstar-host` C5) — brief, report, diff, Global Constraints — `references/task-reviewer-prompt.md` — **never** sticky resume for reviewers
|
|
57
62
|
7. Fix loop for Critical/Important; re-review until approved
|
|
58
|
-
8. Append `progress.md`;
|
|
63
|
+
8. Append `progress.md`; record ledger progress through the **domain call** (`mstar plan progress --session <session.json> --file <absolute-json-path> --expect <revision>` on the scoped route; direct snapshot edit only on a non-scoped legacy route where the CLI is absent) plus `implementer-session.json` `last_task` if sticky — snapshot/revision semantics → `mstar-artifacts` `references/status-and-residuals.md`; scoped route → `mstar-iteration/references/plan-scoped-pm.md` §4/§7
|
|
59
64
|
9. Release dependent tasks only after reviewed prerequisite commits are present in their assigned base, per Dependent-task readiness above; independent ready tasks need not wait
|
|
60
65
|
|
|
61
66
|
**Never** dispatch parallel writers without isolated worktrees and disjoint ownership. Merge their outputs serially before producing the plan review-package.
|
|
@@ -70,8 +75,8 @@ Detail: **`references/file-handoffs.md`**.
|
|
|
70
75
|
|--------|-----------|
|
|
71
76
|
| DONE | review-package → task reviewer |
|
|
72
77
|
| DONE_WITH_CONCERNS | read concerns; fix scope issues before review |
|
|
73
|
-
| NEEDS_CONTEXT | provide context; re-dispatch |
|
|
74
|
-
| BLOCKED | more context, higher tier, split task, or escalate human — **never** same-model blind retry |
|
|
78
|
+
| NEEDS_CONTEXT | provide context; re-dispatch. Budget overrun (the declared round cannot close its Files and gates) → split the task per `mstar-artifacts/references/plan-quality-bar.md` item 7 and re-dispatch with a fresh budget |
|
|
79
|
+
| BLOCKED | more context, higher tier, split task, or escalate human — **never** same-model blind retry. Budget overrun → split the task per `mstar-artifacts/references/plan-quality-bar.md` item 7 and re-dispatch with a fresh budget |
|
|
75
80
|
|
|
76
81
|
## Reviewer ⚠️ items
|
|
77
82
|
|
|
@@ -35,6 +35,7 @@ PM runs context-dependent `mstar sdd workspace`, `task-brief`, and `review-packa
|
|
|
35
35
|
- Interfaces / decisions brief cannot know
|
|
36
36
|
- Absolute report path: `$SDD_DIR/task-N-report.md`
|
|
37
37
|
- Absolute control root, feature cwd, branch and plan paths, plus task-specific brief/report/diff paths fixed for this dispatch; the context path is PM coordination metadata, not a leaf checkout selector
|
|
38
|
+
- **Inherited plan scope, no credentials**: the handoff restates the inherited plan id + absolute paths and nothing more — a leaf neither selects a plan nor writes the workflow snapshot / root register / leases. Session JSON, `mstar plan --session` write credentials and `--expect <revision>` are PM/coordinator-only and **never** appear in a leaf prompt (`mstar-iteration/references/plan-scoped-pm.md` §8)
|
|
38
39
|
- `Model tier` → host-specific model (required)
|
|
39
40
|
- **`SDD implementer session`**: `fresh` (new subagent) or `sticky` (resume — see **`sticky-implementer-session.md`**)
|
|
40
41
|
|
|
@@ -7,6 +7,7 @@ Dispatch:
|
|
|
7
7
|
Resume: [HOST_AGENT_ID from implementer-session.json]
|
|
8
8
|
Name: <CamelCaseId> # omp/Cursor name
|
|
9
9
|
Model: [same tier as session start unless PM upgrades]
|
|
10
|
+
Assignment header: canonical fields (`mstar-roles/references/project-manager/dispatch-and-assignment.md`) — MUST include **`Task budget (implement / ops rounds)`**: <budget copied from THIS plan task> in the header region, before the first Task heading / horizontal rule / `#` heading of the body; a `Task budget` string only inside the body section cannot satisfy the engine header gate, and a previous task's budget is not inherited as authorization for this task
|
|
10
11
|
Prompt body:
|
|
11
12
|
<SUBAGENT-STOP> Skip PM orchestration skills. You are a leaf implementer continuing a sticky SDD session.</SUBAGENT-STOP>
|
|
12
13
|
|
|
@@ -37,12 +38,14 @@ Dispatch:
|
|
|
37
38
|
|
|
38
39
|
## Report file
|
|
39
40
|
|
|
40
|
-
Write your full report to: [REPORT_FILE]
|
|
41
|
+
Write your full report to: [REPORT_FILE] — follow the fresh implementer prompt's report format (`implementer-prompt.md` § Report format), including the residuals-disclosure row.
|
|
41
42
|
|
|
42
43
|
## Scope and stop
|
|
43
44
|
|
|
44
45
|
Use only the brief's owned files, relevant inputs and named checks. Do not restart global exploration, extend the task, or run local full suites without the user's explicit scoped permission. Reuse unaffected evidence. Stop once the assigned acceptance criteria are evidenced; report concrete missing context instead of over-analyzing settled work.
|
|
45
46
|
|
|
47
|
+
**Task budget / overrun**: the resumed Assignment header declares **`Task budget (implement / ops rounds)`** for THIS task — one implementer round closing its Files and verification gates (value copied from the plan task; a previous task's budget is not inherited as authorization for this task — a continuation is not an automatic budget extension). The value is validated in the header region only, so a `Task budget` string inside this body section cannot satisfy the engine header gate. If the declared round cannot close its Files and verification gates, stop adding work and return `NEEDS_CONTEXT` or `BLOCKED` — persist on disk the completed steps, the remaining implementation and its pending checks, evidence paths, worktree/branch state, and the concrete boundary reached; an incomplete round never reports `DONE` / `DONE_WITH_CONCERNS` as a substitute for the remaining work. **Budget pressure MUST NOT shorten or waive any assigned scoped verification.** Split/re-dispatch authority → `mstar-artifacts/references/plan-quality-bar.md` item 7.
|
|
48
|
+
|
|
46
49
|
## Your job
|
|
47
50
|
|
|
48
51
|
1. Implement exactly what this brief specifies (prior tasks are done)
|
|
@@ -9,6 +9,7 @@ Dispatch:
|
|
|
9
9
|
Role: <Execute as role-id> # omp agent / Cursor subagent_type / OpenCode subagent → mstar-host C5
|
|
10
10
|
Name: <CamelCaseId> # omp/Cursor name
|
|
11
11
|
Model: [REQUIRED — per Model tier in Assignment and mstar-sdd SKILL]
|
|
12
|
+
Assignment header: canonical fields (`mstar-roles/references/project-manager/dispatch-and-assignment.md`) — MUST include **`Task budget (implement / ops rounds)`**: <budget copied from the plan task> in the header region, before the first Task heading / horizontal rule / `#` heading of the body; a `Task budget` string only inside the body section cannot satisfy the engine header gate
|
|
12
13
|
Prompt body:
|
|
13
14
|
<SUBAGENT-STOP> Skip PM orchestration skills. You are a leaf implementer.</SUBAGENT-STOP>
|
|
14
15
|
|
|
@@ -47,6 +48,8 @@ Dispatch:
|
|
|
47
48
|
|
|
48
49
|
Use only the brief's owned files, relevant inputs and named checks. Do not restart global exploration, extend the task, or run local full suites without the user's explicit scoped permission. Reuse unaffected evidence. Stop once the assigned acceptance criteria are evidenced; report concrete missing context instead of over-analyzing settled work.
|
|
49
50
|
|
|
51
|
+
**Task budget / overrun**: the Assignment header above declares **`Task budget (implement / ops rounds)`** — one implementer round closing this task's Files and verification gates (value copied from the plan task; validated in the header region only, so a `Task budget` string inside this body section cannot satisfy the engine header gate). If the declared round cannot close its Files and verification gates, stop adding work and return `NEEDS_CONTEXT` or `BLOCKED` — persist on disk the completed steps, the remaining implementation and its pending checks, evidence paths, worktree/branch state, and the concrete boundary reached; an incomplete round never reports `DONE` / `DONE_WITH_CONCERNS` as a substitute for the remaining work. **Budget pressure MUST NOT shorten or waive any assigned scoped verification.** Split/re-dispatch authority → `mstar-artifacts/references/plan-quality-bar.md` item 7.
|
|
52
|
+
|
|
50
53
|
## Your job
|
|
51
54
|
|
|
52
55
|
1. Implement exactly what the brief specifies
|
|
@@ -66,5 +69,6 @@ Dispatch:
|
|
|
66
69
|
- Verification: affected test files, command, actual output (red/green for executable bug fixes), OR the complete scoped-check block from file-handoffs.md for non-executable docs/policy
|
|
67
70
|
- Reused evidence: original range and reason it remains applicable
|
|
68
71
|
- Files changed
|
|
72
|
+
- Residuals disclosure: open R# list — id + severity + tracking location (`N/A — none open` when none); duty → `mstar-artifacts` Findings cleanup modes
|
|
69
73
|
- Self-review notes
|
|
70
74
|
```
|
|
@@ -20,6 +20,8 @@ description: "PM entry shim — force project-manager orchestration when user in
|
|
|
20
20
|
|
|
21
21
|
**Iteration lifecycle** (optional): host `commands/` may sequence Phase 1–5; semantics SSOT → **`mstar-iteration`**. Not required for ordinary PM work.
|
|
22
22
|
|
|
23
|
+
**Scoped drive** (optional): `/iteration-drive --assignment <abs.md>` | `--workflow <id> --plan <id>` | `--resume <session.json>` (no args = unchanged whole-iteration route) — the PM boots **in the primary session**, binds one plan (`mstar plan bind` → `show`) and is bounded to that plan's scope; finish is a handoff, not `Done` → **`mstar-iteration`** `references/plan-scoped-pm.md`. Any other non-empty argument form fails closed.
|
|
24
|
+
|
|
23
25
|
**Codebase audit** (optional): `/codebase-audit` command → **`mstar-audit`** — read-only codebase survey producing prioritized, self-contained improvement plans. Output feeds iteration-start §1 Research or normal Prepare → Execute. Dispatched by PM under `Task category: audit`.
|
|
24
26
|
|
|
25
27
|
Detect host → **`mstar-host`** → `references/codex.md` | `cursor.md` | `opencode.md` | `kimi.md` | `zcode.md` | `omp.md`.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mstar-harness/dsh",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.10.0",
|
|
4
4
|
"description": "Morning Star harness dsh (DeepSeek Harness) cordis function plugin — in-process engine gates (status/dispatch/lease) with hard refusal channels.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"dsh",
|