@mstar-harness/opencode 0.6.7 → 0.6.9
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/harness-skills/mstar-dispatch-gates/SKILL.md +3 -2
- package/harness-skills/mstar-harness-core/SKILL.md +1 -0
- package/harness-skills/mstar-host/references/parallel-dispatch.md +9 -3
- package/harness-skills/mstar-phase-gates/SKILL.md +1 -1
- package/harness-skills/mstar-plan-artifacts/references/knowledge-and-designs.md +1 -1
- package/harness-skills/mstar-plan-artifacts/references/plan-files-and-reports.md +11 -8
- package/harness-skills/mstar-review-qc/SKILL.md +9 -9
- package/harness-skills/mstar-roles/SKILL.md +5 -3
- package/harness-skills/mstar-roles/references/project-manager/qc-and-residuals.md +8 -2
- package/harness-skills/mstar-roles/references/project-manager.md +3 -3
- package/harness-skills/mstar-roles/references/qc-specialist-shared.md +16 -1
- package/harness-skills/mstar-superpowers-align/references/per-role-matrix.md +1 -1
- package/harness-skills/pm/SKILL.md +77 -26
- package/package.json +1 -1
|
@@ -40,7 +40,8 @@ description: Morning Star 派发与委派门禁 —— 仅 PM 可增派 subagent
|
|
|
40
40
|
当 PM 声明「并发分派」时,须同时满足**文案并发**与**工具并发**:
|
|
41
41
|
|
|
42
42
|
- **工具并发**:同一调度轮次内,多个 subagent 调用须在**同一条 assistant 消息**里一次性发出(宿主允许时)。
|
|
43
|
-
- **QC
|
|
43
|
+
- **QC 三审硬门禁(initial wave)**:`qc-specialist` / `qc-specialist-2` / `qc-specialist-3` 须**同一条消息**全部发起(**N=3**);只发其中一个 = **`dispatch incomplete`**,不得写「三审已并行启动」。
|
|
44
|
+
- **QC targeted re-review**:Assignment 含 **`QC re-review: targeted — reviewers: …`** 时,**N** = 所列席位数(1–3),仍须**同一条消息**发满 **N**;不得默认补满三人。
|
|
44
45
|
- **先自检再发送**:发送前核对「Assignment 条数 = 本条消息中的实际 **派发** 调用条数」。
|
|
45
46
|
- **前置步骤与派发回合分离(防串行 rollout)**:为派发准备的 **`bash` / `read` / `glob` / `grep`**(如 `merge-base`、`Review range`、`git rev-parse`)**不计入** `N` 次派发;可在上一条仅含准备的消息完成。准备完成后,**下一条派发消息**须**一次性**含 **`N` 次** Task / subagent invoke。**禁止**先发 `1` 次、等返回再补发其余 `N-1` 次。
|
|
46
47
|
- **未齐不发(emit zero until batch-ready)**:需并发 `N≥2` 而当前只能发 `1` 条时,本条应发 **`0` 条派发 invoke`**(可继续 read/bash 补齐),**禁止**「先发一个顶一下」;`N` 份 payload 就绪后**单次消息发满 `N`**。见 **`mstar-host`** → `references/parallel-dispatch.md`(具备 invoke / Task / subagent 工具的宿主共用)。
|
|
@@ -53,7 +54,7 @@ description: Morning Star 派发与委派门禁 —— 仅 PM 可增派 subagent
|
|
|
53
54
|
|
|
54
55
|
- 独立模块可并行;避免写操作归属重叠;跨领域变更先锁接口契约再并行编码。
|
|
55
56
|
- **QC 三审**在 feature 开发完成后执行;三名 reviewer 共用同一组 `Review cwd` / `Working branch` / `plan_id` / `Review range` / `Diff basis`(**`mstar-branch-worktree`**)。
|
|
56
|
-
- **同一 plan 多 batch**:默认整 plan
|
|
57
|
+
- **同一 plan 多 batch**:默认整 plan 交付完成跑一轮完整三审;**fix 后默认 targeted re-review**(N = 被指派的 QC 席位数,同条消息发满 N);**仅** Assignment 写明 **`QC re-review: full tri-review`** 时复跑三审且用新文件名(**`mstar-plan-artifacts/references/plan-files-and-reports.md`**、**`mstar-review-qc`**)。
|
|
57
58
|
|
|
58
59
|
## 反模式(派发)
|
|
59
60
|
|
|
@@ -123,6 +123,7 @@ Read **`mstar-host`** after this skill; detect host per its table, then Read the
|
|
|
123
123
|
| 反模式 | 详见 |
|
|
124
124
|
|--------|------|
|
|
125
125
|
| QC 串行 rollout / dispatch incomplete | `mstar-dispatch-gates` |
|
|
126
|
+
| fix 后无脑重派三审 / 用 `-rev2` 代替原位复验 | `mstar-plan-artifacts` · `mstar-review-qc` |
|
|
126
127
|
| 递归误派 / 误读 Handoff | `mstar-dispatch-gates` |
|
|
127
128
|
| `quick` 跳过 Prepare | 上表 + `mstar-phase-gates` |
|
|
128
129
|
| 多 worktree 未归并就 QC | `mstar-branch-worktree` |
|
|
@@ -27,16 +27,22 @@ Printing `## Assignment` in the main thread **without** matching host invocation
|
|
|
27
27
|
- Dual-track implement: **`N = 2` ⇒ two invocations in one message** when parallel is required.
|
|
28
28
|
- Status Update on dispatch turns: **`Subagent invokes issued: N`** (must match Assignment count). If Assignments were written but `N = 0` → **`dispatch failed — paste-only`**; fix next message.
|
|
29
29
|
|
|
30
|
-
## QC tri-review
|
|
30
|
+
## QC tri-review (initial wave)
|
|
31
31
|
|
|
32
|
-
- Launch `qc-specialist`, `qc-specialist-2`, `qc-specialist-3` in **one** dispatch turn (**3** invocations, one message).
|
|
32
|
+
- Launch `qc-specialist`, `qc-specialist-2`, `qc-specialist-3` in **one** dispatch turn (**N=3** invocations, one message).
|
|
33
33
|
- Do not claim parallel QC unless all three were issued in that turn.
|
|
34
34
|
- Post-dispatch: verify three distinct agent IDs and intended model mapping; on mismatch → invalid dispatch, re-dispatch before consolidation.
|
|
35
35
|
|
|
36
|
+
## QC targeted re-review (after fixes)
|
|
37
|
+
|
|
38
|
+
- Assignment: **`QC re-review: targeted — reviewers: <role-ids>`** → **N** = listed seats only (1–3), **one** dispatch turn with **N** invocations.
|
|
39
|
+
- Do **not** default to three invocations after a routine fix round.
|
|
40
|
+
- Post-dispatch: verify only **dispatched** seats returned; PM updates same `qc-consolidated.md` (see `mstar-plan-artifacts/references/plan-files-and-reports.md`).
|
|
41
|
+
|
|
36
42
|
## Self-check before send
|
|
37
43
|
|
|
38
44
|
1. Required assignments this turn? (`N`)
|
|
39
45
|
2. Prerequisite-only message? → **zero** batch dispatches unless `N = 1`.
|
|
40
46
|
3. Dispatch message contains **exactly `N`** invocation calls?
|
|
41
|
-
4. QC tri-review → **exactly 3** in one dispatch message?
|
|
47
|
+
4. QC initial tri-review → **exactly 3** in one dispatch message? Targeted re-review → **N** = Assignment reviewer count?
|
|
42
48
|
5. Previous message was prerequisite-only → this message must include **all `N`** (not “QC1 first”).
|
|
@@ -102,7 +102,7 @@ description: Morning Star (启明星) Spec-Driven 双阶段门禁 —— Prepare
|
|
|
102
102
|
|
|
103
103
|
## Plan 目录与审查报告(启用 `{PLAN_DIR}` 时)
|
|
104
104
|
|
|
105
|
-
- 进入 `InReview` 后,QC
|
|
105
|
+
- 进入 `InReview` 后,QC 书面产出落入 `{PLAN_DIR}/reports/<plan-id>/`(如 `qc1.md` … `qc-consolidated.md`);**fix 后默认 targeted re-review**(原位更新同文件,不默认 `-rev2`),见 **`mstar-plan-artifacts/references/plan-files-and-reports.md`**。**多 batch**:完整三审**默认在整 plan dev 完成后一次**(非每 batch)。
|
|
106
106
|
- 非阻断项与后续技术债:PM 汇总后写入 `{HARNESS_DIR}/status.json` 根级 `residual_findings[<plan-id>]`(**open**,与 `plans` 平级;canonical 见 **`mstar-plan-artifacts` SKILL.md**);关闭后迁入 `{HARNESS_DIR}/archived/residuals/<plan-id>.json`,与 `mstar-review-qc` 一致。每条 **`severity`** 遵守 **`mstar-plan-artifacts/references/status-and-residuals.md`**「Residual findings:severity(SSOT,机器字段)」。
|
|
107
107
|
|
|
108
108
|
## 快速判定(PM)
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
|
|
72
72
|
| 与相邻目录的分工 | 典型内容 |
|
|
73
73
|
| ----------------------------------------- | --------------------------------------------------------------------- |
|
|
74
|
-
| `**{PLAN_DIR}/reports/<plan-id>/**` | QC / review
|
|
74
|
+
| `**{PLAN_DIR}/reports/<plan-id>/**` | QC / review **流程留档**(`qc1.md` … `qc-consolidated.md` 等),只读历史链 |
|
|
75
75
|
| **本目录 `{PLAN_DIR}/residuals/<plan-id>/`** | 针对**仍 open** 的某一 R#:defer 背景、遗留原因、代码锚点、后续接手提示等**长文** |
|
|
76
76
|
| `**{KNOWLEDGE_DIR}/**` | 可跨 plan 复用的**实现向**设计上下文、规格修订、gap 分析(若文中顺带提到 residual,仍以 JSON + residuals 为跟踪权威) |
|
|
77
77
|
| `**{ITERATION_DIR}/**` | 迭代/版本级 compass;**不**替代 `{KNOWLEDGE_DIR}` 中的跨版本 SSOT |
|
|
@@ -10,16 +10,18 @@
|
|
|
10
10
|
|
|
11
11
|
**审查报告文件**(置于 `{PLAN_DIR}/reports/<plan-id>/`):
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
**QC basename rule**:目录名已是 `<plan-id>` — **do not** repeat it in report filenames. Put `plan_id` in YAML frontmatter only.
|
|
14
|
+
|
|
15
|
+
| 类型 | 文件名(相对 `reports/<plan-id>/`) |
|
|
14
16
|
|------|--------|
|
|
15
|
-
| 架构/设计评审 | `<plan-id>-review.md` |
|
|
16
|
-
| QC 并行报告 |
|
|
17
|
-
| QC 汇总结论 |
|
|
17
|
+
| 架构/设计评审 | `<plan-id>-review.md`(或团队约定的 `review.md`) |
|
|
18
|
+
| QC 并行报告 | `qc1.md`、`qc2.md`、`qc3.md`(与 `mstar-roles` `{report_suffix}` 一致) |
|
|
19
|
+
| QC 汇总结论 | `qc-consolidated.md` |
|
|
18
20
|
|
|
19
21
|
## QC 分报告与 consolidated:可否只留一份?
|
|
20
22
|
|
|
21
|
-
- **不要删除**
|
|
22
|
-
- **极窄例外**(须团队显式采纳并承担审计缺口):例如仓库体积极敏感时,仅保留 consolidated + 指向外部归档的链接——**不在**本默认 harness 中推荐;默认仍保留三份
|
|
23
|
+
- **不要删除** `qc1.md`、`qc2.md`、`qc3.md` **只因为**已写入 `qc-consolidated.md`。`reports/<plan-id>/` 是**审计链**:分 reviewer 原文保留**证据出处、分歧与独立视角**;**consolidated** 是 PM 的**门控摘要**,二者**叠加**,**不互为替代**。
|
|
24
|
+
- **极窄例外**(须团队显式采纳并承担审计缺口):例如仓库体积极敏感时,仅保留 consolidated + 指向外部归档的链接——**不在**本默认 harness 中推荐;默认仍保留三份 `qc*.md`。
|
|
23
25
|
|
|
24
26
|
## Residual findings(R#):权威在哪、和主 plan 谁先谁后?
|
|
25
27
|
|
|
@@ -34,8 +36,9 @@
|
|
|
34
36
|
|
|
35
37
|
- **默认(推荐)**:同一 **`plan_id`** 下,**完整 QC 三审**(`qc1` + `qc2` + `qc3` 并行)**仅在 dev team 按该 plan 约定范围全部交付之后**执行**一次**,再进入 `@project-manager` 汇总与 `@qa-engineer` 验证。**不要**在每个中间 **batch** / 子里程碑都跑全套三审:否则 `reports/<plan-id>/` 会堆积多套并列报告,**`Review range` / `Diff basis` 与结论**易混淆,handoff 成本高。
|
|
36
38
|
- **batch 之间**:依赖实现方 **`verification-before-completion`**、主 plan 任务勾选与 PM 协调;需要书面中间意见时,用对话、主 plan 批注或**非三审**的定向检查(如单审、架构 review),**不**默认等同「又一轮完整三审」。
|
|
37
|
-
- **Request Changes
|
|
38
|
-
-
|
|
39
|
+
- **After `Request Changes` (default — targeted re-review)**:PM maps each **blocking** finding to the QC seat that raised it (`source` on R#, consolidated table, or the originating `qcN.md` / `F-###`). Dispatch **only** those reviewers (`QC re-review: targeted — reviewers: qc-specialist, qc-specialist-2, …`). Each re-reviewing QC **updates the same** `qc1.md` / `qc2.md` / `qc3.md` in place (add `## Revalidation`, refresh verdict / `generated_at`); **do not** add `qc1-rev2.md` siblings on this path. PM **updates the same** `qc-consolidated.md` in place. Git history is the audit trail.
|
|
40
|
+
- **Full tri re-review (exception)**:Only when Assignment states **`QC re-review: full tri-review`**. Run **three** parallel reviews again; use **new basenames** (`qc1-rev2.md` … `qc3-rev2.md`, `qc-consolidated-rev2.md`) so wave-1 files stay immutable; PM states **active wave** in consolidated decision. See `mstar-review-qc` · `mstar-dispatch-gates`.
|
|
41
|
+
- **显式例外**:仅当用户与 PM 书面同意**中间门禁**时,在 Assignment 写清 **`QC gate: incremental — <scope>`**(或等价),并仍须保证该次三审的 **`plan_id` + `Review range` / `Diff basis`** 三份一致;**优先**用子范围子目录,避免与终局 `qc1..3.md` 混名。
|
|
39
42
|
- **同仓多 worktree 并行 dev**:**推荐**在排各 batch / 各轨 worktree 前确立 **plan 集成分支** 与各轨 topic 线及 **merge 靶**(见 `mstar-branch-worktree` **「推荐默认编排:先建 plan 集成分支,再挂各 worktree」**)。**多 `plan_id` 同属一条 `primary_spec`(Spec 文档)时**:该「集成分支」在计划语义上即 **Spec 集成分支**;各 Plan 的 topic 分支 **merge 回 Spec 集成分支**,**全部 Plans 完成后** 合入 `main`/`master` **须走 PR**,见 `mstar-plan-conventions` SKILL.md **「Spec 文档驱动的分支模型」**。终局(或增量)三审派单前,PM 仍须满足 **单一待审 `Working branch` / `HEAD`** 或已按上条 **拆 scope**;**不得**假设「整 plan 一次三审」可只靠某一个开发 worktree 路径覆盖未合并的其他并行轨。
|
|
40
43
|
|
|
41
44
|
### 多 `plan_id` 同时 `InReview`(PM 编排)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: mstar-review-qc
|
|
3
|
-
description: Morning Star
|
|
3
|
+
description: Morning Star QC/QA review baseline — tri-review workflow, checklists, report template (YAML frontmatter + Findings + Verdict), reports at `reports/<plan-id>/qc1.md` (no plan-id prefix in basename), targeted re-review after fixes, full-tri `qcN-rev2.md` exception, residual gate. Use when `@qc-specialist*` review, `@qa-engineer` verifies, or `@project-manager` dispatches/consolidates QC.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## Load order(必读顺序)
|
|
@@ -17,16 +17,16 @@ description: Morning Star (启明星) QC 审查基线与 QA 验证契约 ——
|
|
|
17
17
|
|
|
18
18
|
- **默认**:`@project-manager` 在 **该 plan 的实现范围已由 dev team 全部交付**、准备进入预合并门禁时,分派完整 QC 三审。**同一 `plan_id` 下多 batch 滚动实现时,不默认每 batch 跑一轮全套三审**(避免 `reports/<plan-id>/` 多套报告与范围串线);中间阶段靠自检与 PM 协调,**显式增量三审**须在 Assignment 写明(见 `mstar-plan-conventions` `references/plan-files-and-reports.md`「QC 三审触发时机」)。
|
|
19
19
|
- **同仓多 worktree 并行开发**:一轮 QC 三审仍只对应 **一套** `Review cwd` + `Working branch` + `Review range` / `Diff basis`(三票逐字相同)。若成果曾分布在 **未合并** 的多条分支或多个 `HEAD`,PM **须先**完成 Git 归并到 **单一**待审分支再派 QC;**不得**指望 reviewer 自行在多个开发 worktree 之间拼凑审查范围。**推荐** PM 在并行开发开始前已建立 **plan 集成分支** 作为各轨 merge 靶(见 `mstar-branch-worktree` 同节 **「推荐默认编排:先建 plan 集成分支,再挂各 worktree」**)。细则见 `mstar-branch-worktree` **「多 worktree 并行开发与 QC / QA 的门禁衔接」**。
|
|
20
|
-
- **Request Changes
|
|
20
|
+
- **After `Request Changes` (default)**:**Targeted re-review** — PM dispatches only QC seats that **raised** blocking findings for this fix round; each updates **the same** `{PLAN_DIR}/reports/<plan-id>/qcN.md` (e.g. `qc1.md` — no `<plan-id>` prefix in basename) (add `## Revalidation`, update verdict). **Do not** spawn `qcN-rev2.md` files on this path. Artifact naming and PM consolidated updates → **`mstar-plan-artifacts/references/plan-files-and-reports.md`** § QC 三审触发时机.
|
|
21
|
+
- **Full tri re-review (exception)**:Assignment must say **`QC re-review: full tri-review`**; then new basenames (`qc1-rev2.md` … `qc-consolidated-rev2.md`); PM marks **active wave** in consolidated decision.
|
|
21
22
|
|
|
22
23
|
## 三审身份与模型独立性门禁(PM 强制)
|
|
23
24
|
|
|
24
|
-
在 PM 发出 QC
|
|
25
|
+
在 PM 发出 **initial** QC 三审后、进入汇总前,必须先完成以下校验(**targeted re-review** 仅校验 Assignment 列出的席位):
|
|
25
26
|
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
- 若宿主故障导致三审退化为同模型且无法即时修复,需在 Status Update 明确标记 `degraded tri-review` 并请求用户确认是否继续(默认不放行)。
|
|
27
|
+
- **Initial wave**:三个会话角色 ID 须分别为 `qc-specialist`、`qc-specialist-2`、`qc-specialist-3`;运行模型与 `opencode.json` 对应配置一致。
|
|
28
|
+
- **Targeted re-review**:仅校验 Assignment 列出的席位;缺席或角色/模型映射错误 → `dispatch invalid`,重派。
|
|
29
|
+
- 若宿主故障导致并行 QC 退化为同模型且无法即时修复,Status Update 标记 `degraded tri-review` 并请用户确认(默认不放行)。
|
|
30
30
|
|
|
31
31
|
## 共享基线(所有审查员)
|
|
32
32
|
|
|
@@ -82,7 +82,7 @@ description: Morning Star (启明星) QC 审查基线与 QA 验证契约 ——
|
|
|
82
82
|
|
|
83
83
|
## 标准输出模板
|
|
84
84
|
|
|
85
|
-
落盘到 **`{PLAN_DIR}/reports/<plan-id
|
|
85
|
+
落盘到 **`{PLAN_DIR}/reports/<plan-id>/qc#.md`**(`qc1.md` … `qc3.md`;目录已含 `plan_id`,文件名勿再加前缀)时:文件**最上方**须为 YAML frontmatter(`report_kind`、`reviewer`、`reviewer_index`、`plan_id`、`verdict`、`generated_at` 等,见 `agents/qc-specialist*.md`),**紧接着**再写下列 Markdown 正文(可将 **Reviewer Metadata** 与 frontmatter 对齐,避免矛盾)。**Findings 下三节标题**(Critical / Warning / Suggestion)为**人类可读分类**;PM 将条目写入根级 **`residual_findings`**(见 `mstar-plan-artifacts` **SKILL.md** 开篇)时的 **`severity` 机器字段**以 `mstar-plan-artifacts/references/status-and-residuals.md` **「Residual findings:severity(SSOT,机器字段)」** 为准。
|
|
86
86
|
|
|
87
87
|
```markdown
|
|
88
88
|
# Code Review Report
|
|
@@ -156,7 +156,7 @@ description: Morning Star (启明星) QC 审查基线与 QA 验证契约 ——
|
|
|
156
156
|
## Residual Findings 留档门禁
|
|
157
157
|
|
|
158
158
|
- 当阻断项(`Critical`)修复后仍有未关闭 **Warning / Suggestion** 类问题或技术债,不得仅在对话中口头说明,必须留档;登记 **`severity`** 时遵守 `mstar-plan-artifacts` `references/status-and-residuals.md` **「Residual findings:severity(SSOT,机器字段)」**。
|
|
159
|
-
- **启用 plan 管理且存在 `plan-id` 时**:**待跟踪(open)** residual 的 **SSOT** 为 **`{HARNESS_DIR}/status.json`** 根级 **`residual_findings[<plan-id>]`**(与 `plans` 平级;canonical 见 `mstar-plan-artifacts` **SKILL.md** 开篇);PM 在 consolidated 决策中分配 **稳定 `id`(R1…)** 后须**写入该数组**(`source` 指回
|
|
159
|
+
- **启用 plan 管理且存在 `plan-id` 时**:**待跟踪(open)** residual 的 **SSOT** 为 **`{HARNESS_DIR}/status.json`** 根级 **`residual_findings[<plan-id>]`**(与 `plans` 平级;canonical 见 `mstar-plan-artifacts` **SKILL.md** 开篇);PM 在 consolidated 决策中分配 **稳定 `id`(R1…)** 后须**写入该数组**(`source` 指回 `qc1.md` 等)。**已关闭**条目归档至 **`{HARNESS_DIR}/archived/residuals/<plan-id>.json`**(字段与严重等级见 `mstar-plan-conventions`),与 **`{PLAN_DIR}/reports/<plan-id>/`** 交叉引用。
|
|
160
160
|
- **主 plan**:仅作**人类可读索引**(可选)——复述 `id` 与摘要并指向 **`{HARNESS_DIR}/status.json`**;**不得**作为与 SSOT 脱钩的唯一登记处(见 `mstar-plan-conventions` `references/plan-files-and-reports.md`「Residual findings:权威在哪」)。
|
|
161
161
|
- 可选:`@project-manager` 维护 **`metadata.tech_debt_summary`** 作为跨 plan 聚合视图(与 `residual_findings` 互补,见 `mstar-plan-conventions`)。
|
|
162
162
|
- 若无 `{PLAN_DIR}`:写入项目认可的进度载体或根级 `notes`(结构化条目),仍须含 `id` 与跟踪字段。
|
|
@@ -79,9 +79,11 @@ Role `references/*.md` files include explicit **`NEVER`** sections (anti-recursi
|
|
|
79
79
|
|
|
80
80
|
| role_id | reviewer_index | focus | report_suffix |
|
|
81
81
|
| --- | --- | --- | --- |
|
|
82
|
-
| `qc-specialist` | `1` | Architecture coherence and maintainability risk | `qc1` |
|
|
83
|
-
| `qc-specialist-2` | `2` | Security and correctness risk | `qc2` |
|
|
84
|
-
| `qc-specialist-3` | `3` | Performance and reliability risk | `qc3` |
|
|
82
|
+
| `qc-specialist` | `1` | Architecture coherence and maintainability risk | `qc1` → `{PLAN_DIR}/reports/<plan-id>/qc1.md` |
|
|
83
|
+
| `qc-specialist-2` | `2` | Security and correctness risk | `qc2` → `…/qc2.md` |
|
|
84
|
+
| `qc-specialist-3` | `3` | Performance and reliability risk | `qc3` → `…/qc3.md` |
|
|
85
|
+
|
|
86
|
+
PM consolidated: `…/qc-consolidated.md` (same folder; no `<plan-id>` basename prefix). Naming SSOT: `mstar-plan-artifacts/references/plan-files-and-reports.md`.
|
|
85
87
|
|
|
86
88
|
## Maintenance Rules
|
|
87
89
|
|
|
@@ -14,7 +14,11 @@ Use this reference when PM is dispatching QC, consolidating review verdicts, or
|
|
|
14
14
|
3. Verify runtime identity/model mapping for three distinct QC roles.
|
|
15
15
|
4. De-duplicate findings and resolve conflicts by evidence strength.
|
|
16
16
|
5. Emit one consolidated gate decision.
|
|
17
|
-
6.
|
|
17
|
+
6. After dev fixes blocking items:
|
|
18
|
+
- **Default**: **Targeted QC re-review** — dispatch only QC seats that **raised** blocking findings (consolidated table, R# `source` e.g. `QC-#2` → `qc-specialist-2`, or originating `qcN.md` / `F-###`). Assignment: `QC re-review: targeted — reviewers: <role-ids>`. Same `plan_id` + `Review range` / `Diff basis` unless PM narrows to fix commits (must still be copy-pasteable for QA).
|
|
19
|
+
- Each targeted QC **edits the same** `qc1.md` / `qc2.md` / `qc3.md` (per seat); PM **edits the same** `qc-consolidated.md`. **Do not** re-dispatch all three by default.
|
|
20
|
+
- **Exception**: `QC re-review: full tri-review` → three parallel QC again + new `qc1-rev2.md` … files (see `mstar-plan-artifacts/references/plan-files-and-reports.md`).
|
|
21
|
+
- Then **QA** when the gate requires sign-off (same checkout fields as initial review).
|
|
18
22
|
|
|
19
23
|
## QC / Residual NEVER (PM)
|
|
20
24
|
|
|
@@ -22,7 +26,9 @@ Use this reference when PM is dispatching QC, consolidating review verdicts, or
|
|
|
22
26
|
- **NEVER** register or rewrite residual `severity` values outside the machine enum in `mstar-plan-artifacts`.
|
|
23
27
|
- **NEVER** drop residual tracking to chat-only when `Approve with residuals` applies—canonical open list lives under `{HARNESS_DIR}/status.json` `residual_findings[<plan-id>]`.
|
|
24
28
|
- **NEVER** archive or delete open residual rows from `status.json` without the documented close + `{HARNESS_DIR}/archived/residuals/` workflow.
|
|
25
|
-
- **NEVER** treat “two of three QC reports arrived” as sufficient for a parallel tri-review wave
|
|
29
|
+
- **NEVER** treat “two of three QC reports arrived” as sufficient for a **full parallel tri-review wave**—missing reviewer => `Blocked` or explicit PM decision, not silent `Approve`.
|
|
30
|
+
- **NEVER** re-dispatch all three QC reviewers after a routine fix round when only one or two seats had blocking findings—use **targeted re-review** unless Assignment declares **`QC re-review: full tri-review`**.
|
|
31
|
+
- **NEVER** create `qc1-rev2.md` (etc.) for **targeted** re-review; update the original `qcN.md` in place.
|
|
26
32
|
|
|
27
33
|
## Consolidated Decision Template
|
|
28
34
|
|
|
@@ -133,9 +133,9 @@ Before first implement dispatch (non-hotfix):
|
|
|
133
133
|
|
|
134
134
|
If any fail -> do not dispatch implement.
|
|
135
135
|
|
|
136
|
-
### `/pm`
|
|
136
|
+
### PM entry sessions (`/pm` or OpenCode PM switch)
|
|
137
137
|
|
|
138
|
-
When the session entered via **`/pm`**, follow **`skills/pm/SKILL.md`**
|
|
138
|
+
When the session entered via **`/pm`**, **`pm` skill**, or OpenCode PM orchestration, follow **`skills/pm/SKILL.md`** — especially **Host entry**, **Autonomous Execute driver** (status.json backlog, `spec_integration_branch`, per-plan feature branches), and **Dispatch-first**. Routing, gates, Task Board, QC, and templates remain in this file and topic `mstar-*` skills.
|
|
139
139
|
|
|
140
140
|
---
|
|
141
141
|
|
|
@@ -238,7 +238,7 @@ PM must:
|
|
|
238
238
|
|
|
239
239
|
- Dispatch QC with aligned scope fields
|
|
240
240
|
- Consolidate to one gate verdict
|
|
241
|
-
- Assign fixes
|
|
241
|
+
- Assign fixes; default **targeted QC re-review** (same `qcN.md` under `reports/<plan-id>/`); full tri only when Assignment says `QC re-review: full tri-review`
|
|
242
242
|
- Record non-blocking leftovers as residual findings
|
|
243
243
|
- Keep open vs archived residual state coherent at closure
|
|
244
244
|
- Sync plan/status in the same coordination round
|
|
@@ -37,7 +37,7 @@ Your output is a structured QC report plus completion report.
|
|
|
37
37
|
|
|
38
38
|
If any item below matches, **stop** and return `Blocked` to `project-manager` instead of improvising:
|
|
39
39
|
|
|
40
|
-
- **NEVER** invoke another QC seat (`qc-specialist` / `qc-specialist-2` / `qc-specialist-3`) or `{role_id}` again, nor `qa-engineer` / dev / `architect` / `project-manager`, to “split” **this** review unless `Delegation: allowed (...)` lists them. PM launches tri-review with **three** separate assignments/invokes.
|
|
40
|
+
- **NEVER** invoke another QC seat (`qc-specialist` / `qc-specialist-2` / `qc-specialist-3`) or `{role_id}` again, nor `qa-engineer` / dev / `architect` / `project-manager`, to “split” **this** review unless `Delegation: allowed (...)` lists them. PM launches **initial** tri-review with **three** separate assignments/invokes; **targeted re-review** lists only the seats PM assigned.
|
|
41
41
|
- **NEVER** ask the user for permission to submit a report, present “notify PM?” choosers, or stall after a completed review—when requirements are met, emit **Completion Report v2** in the **same** assistant turn (with a real **Git** line when commits are required).
|
|
42
42
|
- **NEVER** modify business implementation/tests, `{HARNESS_DIR}/status.json` residual lifecycle fields, `{HARNESS_DIR}/archived/`, or any path outside the host write whitelist for QC (typically `{PLAN_DIR}/reports/**/*.md` only).
|
|
43
43
|
- **NEVER** `git add .` or stage unrelated paths when committing QC reports—stage **only** the report files you changed.
|
|
@@ -82,6 +82,21 @@ Use severity and formatting standards from `mstar-review-qc`; machine `severity`
|
|
|
82
82
|
- **NEVER** emit `Approve` while unresolved `Warning` findings remain when the review template marks them mandatory to resolve before approval.
|
|
83
83
|
- **NEVER** skip required static checks, security scans, or diff review steps called out in the assignment and then claim `Approve`.
|
|
84
84
|
|
|
85
|
+
## Report path (required)
|
|
86
|
+
|
|
87
|
+
Write under **`{PLAN_DIR}/reports/<plan-id>/`** using basename **`{report_suffix}.md`** (e.g. `qc1.md`, `qc2.md`, `qc3.md`). **Do not** prefix the filename with `<plan-id>` — the folder already scopes the plan. PM consolidated report: **`qc-consolidated.md`** in the same directory.
|
|
88
|
+
|
|
89
|
+
## Targeted re-review (same report file)
|
|
90
|
+
|
|
91
|
+
When Assignment includes **`QC re-review: targeted`** (or lists you among targeted reviewers after a fix round):
|
|
92
|
+
|
|
93
|
+
- **Edit the same** `{PLAN_DIR}/reports/<plan-id>/{report_suffix}.md` — do **not** create `qc1-rev2.md` siblings on this path.
|
|
94
|
+
- Add **`## Revalidation`**: what was re-checked, evidence (diff/tests), per-finding disposition (resolved / still open).
|
|
95
|
+
- Update frontmatter **`verdict`** and **`generated_at`**; keep **`reviewer_index`** unchanged.
|
|
96
|
+
- Commit **only** that report path; Completion Report cites the same artifact path as wave 1.
|
|
97
|
+
|
|
98
|
+
Full tri re-review (`QC re-review: full tri-review`) uses **new** filenames per `mstar-plan-artifacts/references/plan-files-and-reports.md`.
|
|
99
|
+
|
|
85
100
|
## QC Report Frontmatter (Required)
|
|
86
101
|
|
|
87
102
|
```yaml
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
- 当任务进入 **gate / sign-off / merge decision**,若未出现 `verification-before-completion` 或等价证据要求,视为门禁不完整。
|
|
23
23
|
- 当任务声明 **并行分派**,`Superpowers` 中应显式包含 `dispatching-parallel-agents`(或同义触发短语),并为每个可写承接方写清 `Working branch`。
|
|
24
24
|
- 当 **并行分派** 且 **≥2 个可写承接方** 针对 **同一 Git 仓库** 可能并发落盘时,`Superpowers` 中还 **必须** 显式包含 **`using-git-worktrees`**(或同义触发短语),并在 Assignment 中写清各流 **检出路径约定**(或要求 Completion Report 回报实际 worktree 路径);**禁止**依赖「多 subagent 共享同一工作目录」完成并发写入。
|
|
25
|
-
- **QC 三审**:三份 Assignment 除 `Review cwd`、`Working branch` 外,**必须**含 **相同**的 **`plan_id`** 与 **`Review range` / `Diff basis`**(可复制粘贴);**@qa-engineer** 同 feature 验证时 **照抄**同一组字符串。缺任一项视为 PM 分派不完整(`mstar-branch-worktree`)。**同仓、同一 plan、多 worktree 并行**:PM **推荐**先建 **plan 集成分支** 再挂各轨 worktree,QC 前再归并到单一 `HEAD
|
|
25
|
+
- **QC 三审**:三份 Assignment 除 `Review cwd`、`Working branch` 外,**必须**含 **相同**的 **`plan_id`** 与 **`Review range` / `Diff basis`**(可复制粘贴);**@qa-engineer** 同 feature 验证时 **照抄**同一组字符串。缺任一项视为 PM 分派不完整(`mstar-branch-worktree`)。**同仓、同一 plan、多 worktree 并行**:PM **推荐**先建 **plan 集成分支** 再挂各轨 worktree,QC 前再归并到单一 `HEAD`。**同一 plan 多 batch**:**默认仅在整 plan dev 完成后**派一轮完整三审。**Fix 后**:默认 **targeted re-review**(只派提出 blocking 的 QC 席,原位改 `qcN.md`);**仅** `QC re-review: full tri-review` 时复跑三审且 `qcN-rev2.md` — 见 `mstar-plan-artifacts/references/plan-files-and-reports.md`。
|
|
26
26
|
|
|
27
27
|
## @product-manager
|
|
28
28
|
|
|
@@ -1,60 +1,111 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pm
|
|
3
|
-
description: "
|
|
3
|
+
description: "Morning Star PM orchestration entry and autonomous Execute driver. On Cursor/Codex, /pm launches project-manager and keeps dispatch loops running. On OpenCode, switch to project-manager when the active agent is not PM. After Pre-implement GO, checkout the iteration spec_integration_branch, advance all open plans in {HARNESS_DIR}/status.json (per-plan feature branch → merge to integration → repeat until Done), and set host todos before each work unit. Use when user invokes /pm, resumes harness Execute, asks PM to drive an iteration, or OpenCode needs PM role for orchestration."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# PM — Morning Star orchestration entry
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Universal **project-manager** entry and **Execute automation driver**. Orchestrate and dispatch — **not** parent-agent product implementation (host tools do not waive this).
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
## Host entry (read `mstar-host` first)
|
|
11
|
+
|
|
12
|
+
| Host | Entry | PM role |
|
|
13
|
+
| --- | --- | --- |
|
|
14
|
+
| **Cursor / Codex** | User invokes **`/pm`** (or explicit “run as PM”) | Force **`project-manager`** for the session; this skill is the launcher + automation driver |
|
|
15
|
+
| **OpenCode** | User may already be on a configured agent | **If active role ≠ `project-manager`**: operate **only** as PM — load `mstar-roles` → `references/project-manager.md`; do **not** stay in dev/QC/architect voice for orchestration. Named invokes still use `@<agent-id>` per Assignment |
|
|
16
|
+
|
|
17
|
+
Detect host → Read `mstar-host` → `references/cursor.md` | `opencode.md` | `codex.md`.
|
|
11
18
|
|
|
12
19
|
## Boot (order)
|
|
13
20
|
|
|
14
21
|
1. `mstar-harness-core`
|
|
15
22
|
2. `mstar-roles` → `references/project-manager.md`
|
|
16
|
-
3. Before first **implement** (non-hotfix): `mstar-dispatch-gates` +
|
|
23
|
+
3. Before first **implement** (non-hotfix): `mstar-dispatch-gates` + host reference
|
|
17
24
|
4. Before **QC**: `mstar-review-qc`
|
|
18
25
|
5. **On demand:** `mstar-phase-gates`, `mstar-plan-conventions`, `mstar-plan-artifacts`, `mstar-branch-worktree`, `mstar-superpowers-align`
|
|
19
26
|
|
|
20
|
-
Prepare/Execute gates, routing, Assignment templates, Task Board, QC tri-review, residuals →
|
|
27
|
+
Prepare/Execute gates, routing, Assignment templates, Task Board, QC tri-review, residuals → topic skills + PM references (not repeated here).
|
|
21
28
|
|
|
22
|
-
##
|
|
29
|
+
## When to activate autonomous Execute
|
|
23
30
|
|
|
24
|
-
|
|
31
|
+
Run **§ Autonomous Execute driver** when **all** are true:
|
|
25
32
|
|
|
26
|
-
|
|
33
|
+
1. Harness has **`{HARNESS_DIR}/status.json`** (default `.mstar/status.json`) with at least one plan **not** `Done`
|
|
34
|
+
2. **Pre-implement gate = GO** (`plan` locked, tasks ready — see `mstar-phase-gates` / PM Pre-Implement Gate Check)
|
|
35
|
+
3. User intent is **continue Execute** (`/pm`, “推进 iteration”, “继续 plans”, or equivalent)
|
|
27
36
|
|
|
28
|
-
|
|
29
|
-
| --- | --- |
|
|
30
|
-
| **Loop:** `## Assignment` → invoke → Completion Report v2 → report-to-status → next batch | Parent **Write/Edit/Shell** on product code to “move faster” |
|
|
31
|
-
| **1 Assignment ⇒ 1 invoke** in the dispatch message when host supports Task/@agent (`mstar-dispatch-gates`) | Assignment markdown only, no matching invoke |
|
|
32
|
-
| Put merge/branch/handoff from **this thread** into Assignment | Skip subagent because context is “already here” (cold start ≠ excuse) |
|
|
37
|
+
If Prepare is incomplete → follow phase gates first; do **not** skip to implement dispatch.
|
|
33
38
|
|
|
34
|
-
|
|
35
|
-
|
|
39
|
+
## Autonomous Execute driver
|
|
40
|
+
|
|
41
|
+
**Goal:** finish the **active iteration** (all non-`Done` rows in `status.json.plans[]`) via dispatch loops — may span **multiple** `plan_id`s; do **not** stop after one plan while siblings remain open.
|
|
42
|
+
|
|
43
|
+
### 0. Session todos (before any dispatch)
|
|
44
|
+
|
|
45
|
+
Host UI todos are **session guardrails**, not SSOT. Set them **before** each plan wave so scope does not drift:
|
|
46
|
+
|
|
47
|
+
| Host | Tool | Minimum set |
|
|
48
|
+
| --- | --- | --- |
|
|
49
|
+
| **Cursor** | `TodoWrite` or CreatePlan todos | Current `plan_id`; next batch (implement / QC / QA); branch checkpoint |
|
|
50
|
+
| **Codex** | `update_plan` / Goal or Plan UI todos | Same intent — mirror active `plan_id` + next gate |
|
|
51
|
+
| **OpenCode** | Host todo/plan UI if present | Same intent |
|
|
52
|
+
|
|
53
|
+
SSOT remains `{HARNESS_DIR}/status.json` + `{PLAN_DIR}/` — todos track **this session’s next moves**, not replace status.
|
|
54
|
+
|
|
55
|
+
### 1. Read backlog
|
|
56
|
+
|
|
57
|
+
1. Read **`mstar-plan-artifacts`** + **`{HARNESS_DIR}/status.json`**
|
|
58
|
+
2. List plans where `status` ∈ `{Todo, InProgress, InReview, Blocked}` (priority: `InProgress` → `InReview` → `Todo` → unblock `Blocked` if PM can)
|
|
59
|
+
3. Read **`metadata.spec_integration_branch`** / **`merge_target`** and **`primary_spec`** links (`mstar-plan-conventions`)
|
|
36
60
|
|
|
37
|
-
### 2.
|
|
61
|
+
### 2. Iteration integration branch (Git cwd)
|
|
38
62
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
63
|
+
1. Resolve **Spec / iteration integration branch** from `status.json` (`spec_integration_branch` on plan metadata or iteration-level registration — see `mstar-plan-artifacts/references/status-and-residuals.md`)
|
|
64
|
+
2. **Checkout or create** that branch on the **business repo** cwd PM will orchestrate from; confirm with `git branch --show-current`
|
|
65
|
+
3. If missing from metadata → **stop**, Read `mstar-plan-conventions` + confirm with user per `mstar-branch-worktree` (PM branch confirmation template); record in plan + status **same round**
|
|
42
66
|
|
|
43
|
-
|
|
67
|
+
This branch is the **merge target** for each plan’s work until **all** plans under the iteration are `Done`.
|
|
44
68
|
|
|
45
|
-
|
|
69
|
+
### 3. Per-plan loop (until all `Done`)
|
|
70
|
+
|
|
71
|
+
For each active `plan_id`:
|
|
72
|
+
|
|
73
|
+
1. **Plan start — feature branch:** Assignment uses **`Working branch: create <plan-feature-branch> from <spec_integration_branch>`** (or PM-approved equivalent). One **dedicated plan implementation branch** per `plan_id`; parallel tracks inside a plan → topic branches from integration + worktrees (`mstar-branch-worktree`).
|
|
74
|
+
2. **Implement → InReview:** dispatch-only loops (`§ Dispatch-first`); update `status.json` + main plan after each Completion Report v2
|
|
75
|
+
3. **QC → QA → Done:** tri-review + QA per `mstar-review-qc`; PM marks `Done` only when gates pass
|
|
76
|
+
4. **Plan complete — merge back:** merge **plan feature branch** (and any integrated topic heads) **into `spec_integration_branch`**; resolve conflicts **before** next plan or QC on shared scope
|
|
77
|
+
5. **Next plan** from step 1 on updated integration branch
|
|
78
|
+
|
|
79
|
+
When **every** plan in the iteration is `Done` → optional PR from `spec_integration_branch` to `main` per `mstar-plan-conventions` (unless Assignment `Branch policy` says otherwise).
|
|
80
|
+
|
|
81
|
+
### 4. Push discipline
|
|
82
|
+
|
|
83
|
+
- **No** routine “should I continue?” on harness basics — decide, record in Assignment if needed, **dispatch**
|
|
84
|
+
- Unknowns → **Read** `mstar-*`; **`Blocked`** or user only for stop, secrets, irreversible scope gaps, or post-read rule conflict
|
|
85
|
+
- Actual Git ≠ plan/`status.json` `working_branch` → **same round** update plan + status **or** worktree dispatches before next implement
|
|
86
|
+
|
|
87
|
+
## Dispatch-first (`implement`)
|
|
88
|
+
|
|
89
|
+
| Do | Don't |
|
|
90
|
+
| --- | --- |
|
|
91
|
+
| **Loop:** `## Assignment` → invoke → Completion Report v2 → report-to-status → next batch | Parent **Write/Edit/Shell** on product code to “move faster” |
|
|
92
|
+
| **1 Assignment ⇒ 1 invoke** when host supports Task/@agent (`mstar-dispatch-gates`) | Assignment markdown only, no matching invoke |
|
|
93
|
+
| Put merge/branch/handoff from **this thread** into Assignment | Skip subagent because context is “already here” |
|
|
94
|
+
|
|
95
|
+
- **NEVER** implement while staying PM — QC 3× comes later; **implement still delegates** dev roles.
|
|
96
|
+
- **Delegate scope / PM whitelist:** `mstar-roles` → PM Execution Boundary.
|
|
46
97
|
|
|
47
|
-
**Exceptions:** user explicitly asks PM thread to implement; hotfix per `mstar-phase-gates
|
|
98
|
+
**Exceptions:** user explicitly asks PM thread to implement; hotfix per `mstar-phase-gates`.
|
|
48
99
|
|
|
49
100
|
## Cursor Plan mode
|
|
50
101
|
|
|
51
|
-
|
|
102
|
+
CreatePlan / SwitchMode: Read **`mstar-host/references/cursor-plan-mode-bridge.md`**. Bootstrap todos `harness-init` → `spec-register` → `mirror-plan` before implement todos; evidence on **subagent** work.
|
|
52
103
|
|
|
53
104
|
## Conflict order
|
|
54
105
|
|
|
55
106
|
1. User explicit instructions
|
|
56
107
|
2. Project `AGENTS.md` / `CLAUDE.md`
|
|
57
|
-
3. `mstar-harness-core` + runtime `mstar-*`
|
|
108
|
+
3. `mstar-harness-core` + runtime `mstar-*`
|
|
58
109
|
4. This skill
|
|
59
110
|
|
|
60
|
-
**Dispatch-first + `mstar-dispatch-gates
|
|
111
|
+
**Dispatch-first + `mstar-dispatch-gates`** win over “fast parent agent” unless user overrides.
|