@mstar-harness/opencode 1.0.3 → 1.0.5

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.
Files changed (35) hide show
  1. package/CHANGELOG.md +10 -4
  2. package/harness-agents/qa-engineer.md +2 -2
  3. package/harness-skills/mstar-branch-worktree/SKILL.md +10 -8
  4. package/harness-skills/mstar-branch-worktree/references/parallel-writable-pre-dispatch.md +56 -0
  5. package/harness-skills/mstar-design-md/SKILL.md +1 -1
  6. package/harness-skills/mstar-dispatch-gates/SKILL.md +12 -3
  7. package/harness-skills/mstar-dispatch-gates/references/leaf-executor-checklist.md +1 -1
  8. package/harness-skills/mstar-harness-core/SKILL.md +4 -3
  9. package/harness-skills/mstar-host/references/cursor-plan-mode-bridge.md +1 -1
  10. package/harness-skills/mstar-iteration/SKILL.md +5 -5
  11. package/harness-skills/mstar-phase-gates/SKILL.md +3 -4
  12. package/harness-skills/mstar-plan-artifacts/SKILL.md +2 -2
  13. package/harness-skills/mstar-plan-artifacts/references/plan-files-and-reports.md +1 -1
  14. package/harness-skills/mstar-plan-artifacts/references/status-and-residuals.md +2 -2
  15. package/harness-skills/mstar-review-qc/SKILL.md +26 -162
  16. package/harness-skills/mstar-review-qc/references/review-responsibility-boundaries.md +3 -1
  17. package/harness-skills/mstar-roles/SKILL.md +3 -3
  18. package/harness-skills/mstar-roles/references/architect.md +1 -1
  19. package/harness-skills/mstar-roles/references/frontend-dev.md +1 -1
  20. package/harness-skills/mstar-roles/references/fullstack-dev-shared.md +3 -1
  21. package/harness-skills/mstar-roles/references/ops-engineer.md +3 -3
  22. package/harness-skills/mstar-roles/references/project-manager/dispatch-and-assignment.md +9 -5
  23. package/harness-skills/mstar-roles/references/project-manager/qa-trigger-matrix.md +54 -0
  24. package/harness-skills/mstar-roles/references/project-manager/qc-and-residuals.md +1 -1
  25. package/harness-skills/mstar-roles/references/project-manager/routing-and-dev-allocation.md +3 -2
  26. package/harness-skills/mstar-roles/references/project-manager.md +19 -12
  27. package/harness-skills/mstar-roles/references/qa-engineer/acceptance-gate.md +60 -0
  28. package/harness-skills/mstar-roles/references/qa-engineer.md +21 -25
  29. package/harness-skills/{mstar-review-qc/references/deep-review-personas.md → mstar-roles/references/qc-specialist/deep-review-lenses.md} +2 -0
  30. package/harness-skills/mstar-roles/references/qc-specialist/report-template.md +71 -0
  31. package/harness-skills/mstar-roles/references/qc-specialist/reviewer-checklist.md +42 -0
  32. package/harness-skills/mstar-roles/references/qc-specialist/reviewer-workflow.md +36 -0
  33. package/harness-skills/mstar-roles/references/qc-specialist-shared.md +46 -58
  34. package/harness-skills/mstar-sdd/SKILL.md +1 -1
  35. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -4,13 +4,19 @@ All notable changes to the `@mstar-harness/opencode` package are documented in t
4
4
 
5
5
  The monorepo root [CHANGELOG.md](../../CHANGELOG.md) summarizes cross-surface releases.
6
6
 
7
- ## 1.0.3
7
+ ## 1.0.5
8
+
9
+ - Bundled skills: tiered QA gate (`qa-trigger-matrix.md`, `acceptance-gate.md`); QC/QA leaf refs under `mstar-roles/references/`; `mstar-review-qc` PM orchestration only; positive-only load lists; routing-eval v17.
10
+
11
+ See root [CHANGELOG.md](../../CHANGELOG.md) **1.0.5**.
8
12
 
9
- - Bundled skills/commands: iteration continuous execution (Phase 2–5 HARD push discipline in `iteration-drive` + `mstar-iteration` §2.6); skills command-agnostic cleanup; `pm` Autonomous Execute push rule; routing-eval v15.
13
+ ## 1.0.4
10
14
 
11
- See root [CHANGELOG.md](../../CHANGELOG.md) **1.0.3**.
15
+ - Bundled skills: parallel writable pre-dispatch SSOT (`parallel-writable-pre-dispatch.md`); dispatch-gates dual-gate table (N invoke vs worktree); deduped skill pointers; routing-eval v16.
12
16
 
13
- ## 1.0.2
17
+ See root [CHANGELOG.md](../../CHANGELOG.md) **1.0.4**.
18
+
19
+ ## 1.0.3
14
20
 
15
21
  - Bundled skills/commands: iteration artifact boundaries (`{ITERATION_DIR}/<id>/` workspace, specs-first start, compound workspace promotion at close); new iteration references; corpus hygiene aligned.
16
22
 
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  name: qa-engineer
3
3
  description: |-
4
- 测试工程师 - 编写测试用例和自动化测试。
5
- QA Engineer - test planning, automated tests, coverage improvements, and regression protection.
4
+ 测试工程师 - L4 验收席(分级派发):DoD 映射、residual 验证、report-only 调查。
5
+ QA Engineer - tiered L4 acceptance (DoD mapping, residual verify, report-only); dispatched when PM sets QA gate mandatory.
6
6
  mode: subagent
7
7
  tools:
8
8
  write: true
@@ -1,19 +1,19 @@
1
1
  ---
2
2
  name: mstar-branch-worktree
3
- description: Morning Star business-repo Git feature branches, same-repo concurrent `git worktree` isolation, plan/Spec integration branches, and QC/QA checkout alignment (`Review cwd`, `Working branch`, `plan_id`, `Review range` / `Diff basis` must match verbatim across three QC reviewers and QA). Read when PM writes `Working branch` / `Branch policy`, two or more writable streams touch one repo, dispatching QC tri-review or QA after merging to a single `HEAD`, dev/QA/ops before first `git commit`, or explaining worktree paths. Required for `project-manager` parallel implement or pre-QC orchestration; `fullstack-dev*` / `frontend-dev` / `qa-engineer` / `ops-engineer` on repo writes; `qc-specialist*` before review. Does not replace the state machine (`mstar-harness-core`).
3
+ description: Morning Star business-repo Git feature branches, same-repo concurrent `git worktree` isolation (N parallel Task invokes do NOT satisfy isolation — worktrees must exist before writable dispatch), plan/Spec integration branches, and QC/QA checkout alignment (`Review cwd`, `Working branch`, `plan_id`, `Review range` / `Diff basis` must match verbatim across three QC reviewers and QA). Read when PM writes `Working branch` / `Branch policy`, dispatches ≥2 concurrent writable implement tracks on one repo, `Worktree isolation: required`, two or more writable streams touch one repo, dispatching QC tri-review or QA after merging to a single `HEAD`, dev/QA/ops before first `git commit`, or explaining worktree paths. Required for `project-manager` parallel implement or pre-QC orchestration; `fullstack-dev*` / `frontend-dev` / `qa-engineer` / `ops-engineer` on repo writes; `qc-specialist*` before review. Does not replace the state machine (`mstar-harness-core`).
4
4
  ---
5
5
 
6
6
  ## Load order(必读顺序)
7
7
 
8
8
  **首次 Read 本 skill 前:必须先 Read `mstar-harness-core`(SKILL.md)。** 冲突时 **以 `mstar-harness-core` 为准**。
9
9
 
10
- **Spec 多 plan 命名**(`iteration_base_branch`、`spec_integration_branch`、`target_branch` PR 门禁)→ **`mstar-plan-conventions`**。下文为 **Git 操作与 QC/QA 检出对齐** 全文(无单独 reference 层)。
10
+ **Spec 多 plan 命名**(`iteration_base_branch`、`spec_integration_branch`、`target_branch` PR 门禁)→ **`mstar-plan-conventions`**。同仓并行可写派发前清单 **`references/parallel-writable-pre-dispatch.md`**;下文为分支与 QC/QA 检出对齐主文。
11
11
 
12
12
  ## Scope(摘要)
13
13
 
14
14
  - **仅 PM 决定分支**;其他可写角色不得自行新开分支或切回 `main`。
15
15
  - **Assignment 须含其一**:`Working branch: <existing>` | `create <new> from <base>` | `Branch policy: direct on <branch> — <reason>`。
16
- - **同仓 ≥2 可写并发**:须 `git worktree`(或等价隔离);PM 写明各流 **Worktree path**。
16
+ - **同仓 ≥2 可写并发**:派发 **前** 完成 **`references/parallel-writable-pre-dispatch.md`**(含 `git worktree`、绝对 **`Worktree path`**;**N 次并行 invoke ≠ 已隔离**)。
17
17
  - **QC/QA 前**:待审提交归并到 **单一 `Working branch` `HEAD`**;三审 + QA 共用一套 **`Review cwd` + `plan_id` + `Review range` / `Diff basis`**(逐字相同)。
18
18
 
19
19
  ## Git 功能分支、同仓并发与 Worktree 对齐
@@ -101,14 +101,14 @@ description: Morning Star business-repo Git feature branches, same-repo concurre
101
101
 
102
102
  ## 同仓并发写入与 Git worktree(强制)
103
103
 
104
- **首要场景是开发阶段**:多条可写流 **并发** 改 **同一仓库** 时,用 worktree 做 **写入侧目录隔离**。下列规则针对该类开发并发;**QC / QA 阶段的检出约定**见下一小节。
104
+ **首要场景是开发阶段**:多条可写流 **并发** 改 **同一仓库** 时,用 worktree 做 **写入侧目录隔离**。派发前清单 → **`references/parallel-writable-pre-dispatch.md`**。下列规则针对该类开发并发;**QC / QA 阶段的检出约定**见下一小节。
105
105
 
106
106
  当 **`project-manager` 在同一调度轮次内并发启动多个** subagent(含宿主侧「并行 Task / 并行 subagent」),且 **≥2 个承接方**可能对 **同一 Git 仓库的同一工作区(同一 cwd 检出目录)**产生写文件或 `git commit` 级改动时:
107
107
 
108
108
  - **必须**为每条并发写流使用 **独立检出目录**:优先使用宿主原生 worktree/checkout 隔离能力;没有原生能力时使用 `git worktree`,并按本 skill 的目录、分支和 QC/QA 对齐规则执行。
109
109
  - **必须**与既有分支门禁一致:每个可写承接方的 Assignment 仍须含 PM 已批准的 **`Working branch`** / **`Branch policy`**;在某一 worktree 内 **不得**擅自 `checkout` 到未授权分支或私自新建分支。
110
110
  - **PM 须在 Assignment 中写清**各并发写流的 **检出约定**(例如预期 **`Worktree path`** / 命名规则,或「由承接方创建/使用隔离 worktree 并在 Completion Report 回报路径」),避免多代理默认共享同一目录导致互相覆盖、冲突或半写入状态。
111
- - **同仓、同一 plan、≥2 可写并行轨**:**推荐**在首次向各轨下发实现 Assignment **之前**,先由 PM 与用户确认 **`Branch policy`**,并 **明确 plan 集成分支与各轨 topic 分支的关系**(见下节 **「推荐默认编排:先建 plan 集成分支,再挂各 worktree」**),再为各轨约定 **`git worktree`**。这样 QC 前可把各轨 **自然归并**到同一条 **`HEAD`**,减少「多头分支、无合并靶」导致的误派。
111
+ - **同仓、同一 plan、≥2 可写并行轨**:派发各轨实现 Assignment **之前** 确认 **`Branch policy`** plan 集成分支 / topic 分支关系(见下节 **「默认编排」**),并完成 reference 清单中的 worktree 步骤。
112
112
 
113
113
  **可不强制新开 worktree** 的情形包括:并发流 **全部为只读**;各写入者针对 **不同 Git 仓库根**;或写入 **串行**(同一时刻仅一个代理持有该仓工作区)。
114
114
 
@@ -116,14 +116,14 @@ description: Morning Star business-repo Git feature branches, same-repo concurre
116
116
 
117
117
  当多个可写 subagent **并发**修改 **同一仓库** 时,**不得**共用同一检出目录作为写入 cwd。PM 在分派前应规划 worktree/checkout 隔离,并在各承接方 Assignment 中写明 **`Working branch`** / **`Branch policy`** 及 **检出路径约定**(或要求回报实际 worktree 路径)。单分支决策权仍仅属 PM;worktree 只解决「目录与工作区隔离」,不替代分支授权。
118
118
 
119
- **同仓、同一 plan、多可写并行轨(推荐)**:在挂齐各轨 `git worktree` **之前**,先与用户确认并写明 **plan 集成分支**(从商定 `<base>` 创建)及各轨 **topic 分支** 如何从该线分出或如何 **merge 回** 该线;QC 前再将待一并验收的提交 **全部归并**到 PM 指定为 QC **`Working branch`** 的那条分支的 **`HEAD`**。分步说明与示例命名边界见下节 **「推荐默认编排:先建 plan 集成分支,再挂各 worktree」**。
119
+ **同仓、同一 plan、多可写并行轨**:挂齐各轨 worktree **之前** 先确认 plan 集成分支与各轨 topic 分支及 merge 靶;QC 前归并到单一 **`Working branch` `HEAD`**。分步见下节 **「默认编排」**。
120
120
 
121
121
  **QC / QA 与 feature**:开发常在 **feature 分支的 worktree** 中完成;进入 **QC 三审**与随后的 **QA 验证**时,PM 须在 Assignment 中写明 **`Review cwd` / `Worktree path`**、**`Working branch`**、**`plan_id`**(无 plan 流程时 `N/A` + 不可歧义 **Feature / scope label**)与 **`Review range` / `Diff basis`**;**三份 QC Assignment 与 QA Assignment 中 `plan_id` 与 `Review range` / `Diff basis` 须逐字相同**,保证三票审 **同一 plan/feature 与同一 diff 范围**。
122
122
 
123
123
  ## 多 worktree 并行开发与 QC / QA 的门禁衔接(强制;避免误派)
124
124
 
125
125
  - **语义区分(必须理解)**:开发阶段可以存在 **多个** `Worktree path`(每条约流一条检出目录);**一轮**正式 QC 三审及与之 **逐字对齐** 的 QA 验证,在 harness 中仍只对应 **一套** `Review cwd` / `Worktree path` + **`Working branch`** + **`Review range` / `Diff basis`**(三票 QC 与 QA **共用且逐字相同**)。**不要**把「多个开发 worktree」误解成「QC 应轮流进多个目录各审一半」。
126
- - **推荐默认编排:先建 plan 集成分支,再挂各 worktree(PM;强推荐)**:在 **同仓**、**同一 plan** 且 **≥2 条可写并行轨** 时,按下列顺序编排可最大幅度降低 QC/QA 误用单一开发目录的风险。**此为推荐套路,不是唯一合法 Git 拓扑**;若采用其它拓扑,仍须满足本节下文 **强制**条款(派 QC 前 **单一**待审 `HEAD` + 一套对齐字段)。
126
+ - **默认编排:先建 plan 集成分支,再挂各 worktree(PM)**:在 **同仓**、**同一 plan** 且 **≥2 条可写并行轨** 时,按下列顺序编排可最大幅度降低 QC/QA 误用单一开发目录的风险。**不是唯一合法 Git 拓扑**;若采用其它拓扑,仍须满足本节下文 **强制**条款(派发前 worktree 隔离 + 派 QC 前 **单一**待审 `HEAD` + 一套对齐字段)。
127
127
  1. **先起集成分支(再挂 worktree)**:在派发各轨 **实现** Assignment 之前,PM 与用户确认 **`Branch policy`**,并建立 **plan 集成分支**(Assignment 使用 **`Working branch: create <plan-integration-branch> from <base>`** 或等价明确写法;`<base>` 必须是 PM 明确记录的 base,例如 root `metadata.iteration_base_branch`、现有 feature 分支、远程跟踪分支或团队既定主线,**不得**未授权假设)。**分支名由 PM 指定**;下文 **`feature/<plan-id>-integrate`**、**`integrate/<plan-id>`** 仅为命名示例,**非强制**。**多 `plan_id` 同源一条 `primary_spec`(Spec 文档)时**:该集成分支在计划语义上即 **Spec 集成分支**;各 Plan 的 feature 线 merge 回此线,**全部 Plans 完成后** 向显式 `target_branch` **走 PR**(见 `mstar-plan-conventions` SKILL.md「Spec 驱动的分支模型」)。
128
128
  2. **再挂各轨 worktree**:为每条并行轨分配 **独立** `git worktree` + **`Worktree path`**;各轨 **`Working branch`** 一般为 **从集成分支出** 的 topic 分支(`create <topic-i> from <plan-integration-branch>`)或 PM 书面约定的等价结构(例如从同一 `<base>` 出 topic、但 **书面指定** 合并时 **以集成分支为靶**)。**禁止**承接方擅自把未授权功能提交直接堆在 `main`/`master`。
129
129
  3. **进 QC 之前**:将全部 **须同一轮三审覆盖** 的提交 **merge / rebase / cherry-pick**(以 PM 指定的团队方式)**归并**到 **同一条** PM 将作为 QC **`Working branch`** 的分支的 **`HEAD`**(**通常即 plan 集成分支**;若 PM 已将集成分支重命名或快进为最终 `feature/*`,以 Assignment 为准)。**在此**解决冲突;**勿**在 QC Assignment 仍指向「只含部分轨」的旧 `HEAD` 时派三审。
@@ -143,5 +143,7 @@ description: Morning Star business-repo Git feature branches, same-repo concurre
143
143
  - **`Review range` / `Diff basis`**:明确本次审查所针对的 **diff/提交范围**(例如 `merge-base: <target_branch-or-base-ref>` + `tip: HEAD`;或 `rev-range: <full-40>..<full-40>`;或一句 `equivalent to: git diff <merge-base>...HEAD`,以团队可复现为准)。**三名 reviewer 的 Assignment 间该字段必须完全一致**;**`qa-engineer`** 验证同一 feature 时 **复用同一 `plan_id` 与同一 `Review range` / `Diff basis`**。**热修 / QC 单审**路径也须含 **同一组字段**,仅承接方份数为 1。
144
144
  - **三审并行**时,三名 reviewer **共用同一组 `Review cwd` / `Worktree path` + `Working branch` + `plan_id` + `Review range` / `Diff basis`**(对业务仓只读分析);**一般不必**为每位 reviewer 各开一个 worktree,除非宿主或执行环境要求进程级隔离。
145
145
  - QC 的 **报告落盘**仍仅限 `{PLAN_DIR}/reports/`;上述约定保证 `git diff`、`git log`、lint 与所读文件与 **待合并 feature** 一致。
146
- - **`project-manager`** 分派 **`qa-engineer`** **本 feature 的验证**(跑测试、复现、可观察取证、或向业务仓提交测试/配置)时,须在 Assignment 中写明 **同一套** **`Review cwd` / `Worktree path`**、**`Working branch`**、**`plan_id`** 与 **`Review range` / `Diff basis`**(与 QC 三审 **逐字相同**;若 QC 已写清,QA **照抄**)。**`qa-engineer`** 在执行业务仓命令前须核对当前目录与分支与 Assignment 一致;**Report-only**、且本轮 **不涉及** 业务仓内命令/路径依赖时,若 Assignment 未写 `Review cwd`,须在回报中说明验证所基于的检出或环境,缺失则 `Blocked` 并请 PM 补全。
146
+ - **`project-manager`** 分派 **`qa-engineer`** 时(仅 **`QA gate: mandatory`**),Assignment 须与 QC **逐字相同**的 **`Review cwd` / `Worktree path`**、**`Working branch`**、**`plan_id`**、**`Review range` / `Diff basis`**(QC 已写清则 QA 照抄)。**`qa-engineer`** 执行业务仓命令前须核对检出与分支;Report-only 且无路径依赖时,回报须说明验证环境,否则 `Blocked`。
147
147
  - 若 **QA 与同仓其他可写角色并发**提交测试代码,仍须遵守上文「同仓并发写入」的 **worktree** 规则(可为 QA 单开一条写入 worktree,**同一 `Working branch`**,由 PM 在 Assignment 写明)。
148
+
149
+ 派发前清单与常见反模式 → **`references/parallel-writable-pre-dispatch.md`**。
@@ -0,0 +1,56 @@
1
+ # Parallel writable pre-dispatch gate (PM)
2
+
3
+ ## Why this exists
4
+
5
+ Host dispatch can satisfy **「N Assignments ⇒ N invokes in one message」** while every writer still shares **one checkout directory**. That may satisfy `mstar-dispatch-gates` tool concurrency but **violates** same-repo write isolation.
6
+
7
+ **N parallel invokes ≠ parallel-safe.** Worktree isolation is a **separate, earlier** gate.
8
+
9
+ ## Mode switch (do not carry single-track habits)
10
+
11
+ Serial single-plan waves (one feature branch, one checkout, PM on integration) do **not** authorize multi-writer parallel tracks without re-running this gate.
12
+
13
+ When the round adds a second **concurrent** writable implement track on the **same business repo**, treat it as a **mode switch** — even if earlier plans in the iteration were serial.
14
+
15
+ ## Pre-dispatch checklist (HARD)
16
+
17
+ Before the **first** concurrent writable implement dispatch in a round:
18
+
19
+ 1. **Re-read repo parallel rules** — root `AGENTS.md` and `{HARNESS_DIR}/AGENTS.md` for branch / worktree / merge-order constraints not duplicated in harness skills.
20
+ 2. **Confirm PM checkout** — PM thread stays on **`spec_integration_branch`** (or the team integration line). **Do not** `checkout` topic / feature branches in the PM **primary cwd** to "help" implementers.
21
+ 3. **Create isolation** — for each writable track: `git worktree add <worktree-path> <branch>` (or host-equivalent) **before** Task invoke. Each Assignment **must** include absolute **`Worktree path`**.
22
+ 4. **Verify paths exist** — for each track: directory exists; `git -C <path> branch --show-current` matches Assignment **`Working branch`**.
23
+ 5. **Assignment tags** — `Dispatch mode: parallel independent tracks` + `Worktree isolation: required` (`mstar-phase-gates`).
24
+ 6. **Merge order** — when tracks may touch overlapping paths (shared packages, migrations, lockfiles), PM assigns **explicit sequential merge order** before dispatch.
25
+
26
+ ## PM primary cwd invariants
27
+
28
+ | Allowed (PM thread) | Forbidden (PM thread) |
29
+ |---------------------|----------------------|
30
+ | `git checkout` integration branch | `checkout` writable topic branches while tracks are active |
31
+ | `git worktree add` / `list` / `remove` | `commit` product code |
32
+ | read-only inspection inside worktrees | switch primary cwd to an implementer feature branch |
33
+
34
+ ## Leaf implementer invariants
35
+
36
+ - **Before first** repo `Write` / `commit`: `cd` to Assignment **`Worktree path`**.
37
+ - **Never** implement in PM's integration checkout when Assignment names a different **`Worktree path`**.
38
+ - Completion Report: **`Worktree path used`** (absolute) + **`Working branch used`**.
39
+
40
+ ## Common anti-patterns
41
+
42
+ | Looks compliant | Actually wrong |
43
+ |----------------|----------------|
44
+ | Two Task invokes in one message | Both writers share default repo root checkout |
45
+ | Assignment lists `Working branch: feature/...` only | No `Worktree path`; subagent inherits PM cwd |
46
+ | `git checkout -b feature/...` on shared checkout | Branch exists but **no** directory isolation |
47
+ | Parent `.worktrees/` directory exists | Per-track subdirs missing — empty parent ≠ isolation |
48
+ | Prior serial plans succeeded | Assumes parallel needs no worktree setup |
49
+
50
+ ## Emit-zero until ready
51
+
52
+ If worktrees are not created and verified, **`Subagent invokes issued: 0`** for that implement batch — same discipline as `mstar-dispatch-gates` emit-zero for incomplete parallel QC batches.
53
+
54
+ ## After parallel dev (pointer)
55
+
56
+ Before plan QC tri: merge all tracks to one **`Working branch` `HEAD`** — parent skill §「单一待审 Git 快照」.
@@ -48,7 +48,7 @@ In Prepare phase, PM decides whether the project needs a DESIGN.md. If yes, disp
48
48
 
49
49
  - `@frontend-dev` / `@fullstack-dev` — read DESIGN.md before implementing styled components; map tokens to CSS/theme variables
50
50
  - `@qc-specialist` — verify UI implementation aligns with DESIGN.md tokens
51
- - `@qa-engineer` — verify visual output matches design spec
51
+ - `@qa-engineer` — verify visual output matches design spec when **`QA gate: mandatory`**
52
52
 
53
53
  ## Phase gate integration
54
54
 
@@ -24,7 +24,7 @@ description: Morning Star 派发与委派门禁 —— 仅 PM 可增派 subagent
24
24
  下列行为易触发递归误派;`project-manager` 之外的角色一旦命中,须立即停止并改为本会话内可交付物,或 **`Blocked`** 回报 PM。**禁止**以「更高效」「Assignment 像 PM 编排」等理由绕开:
25
25
 
26
26
  - **NEVER** 在本会话内调用 Task / subagent,且其 `subagent_type` **等于**你当前的 **`Execute as`** 角色 id。
27
- - **NEVER** 把 Assignment 里出现的 **任何** plain `role-id` 提及、反引号 `` `<role-id>` ``、**Handoff**、**QA note**、**Completion Report** 模板里的角色名、路由表下游角色当成「立刻 invoke」的指令;这些是**叙事 / 路由文档 / 后续 PM 编排意图**,不是命令。
27
+ - **NEVER** 把 Assignment 里出现的 **任何** plain `role-id` 提及、反引号 `` `<role-id>` ``、**Handoff**、**QA gate**、**Completion Report** 模板里的角色名、路由表下游角色当成「立刻 invoke」的指令;这些是**叙事 / 路由文档 / 后续 PM 编排意图**,不是命令。
28
28
  - **NEVER** 把「分解为多个计划 / 多 phase / 多 track」等**设计产物层面**的并行或拆分读成「应 invoke 与子会话数量对应的多个 subagent」。**纸面产物**由本会话写盘完成;并行**调度**由 PM 在后续轮次决定。
29
29
  - **NEVER** 因宿主**暴露**了 `Task` 或若干 `subagent_type` 名称就推断可以调用。**工具可用 ≠ 授权使用**;授权只来自 **`Delegation: allowed (...)`**。
30
30
  - **NEVER**(非 PM)主动执行 parallel-agent dispatch 来分派子代理;需要并行时回报 PM。
@@ -77,7 +77,15 @@ When **`Execution mode: sdd`** (`mstar-sdd`):
77
77
 
78
78
  ## 并行规则(摘要)
79
79
 
80
- - 独立模块可并行 **implement 轨道**(不同 dev Assignment);**SDD 单 plan 内 task** 仍串行。
80
+ **两条独立门禁(均须满足,不可互相替代)**:
81
+
82
+ | 门禁 | SSOT | 常见误满足 |
83
+ |------|------|------------|
84
+ | **工具并发** | 同条消息发满 N 次 invoke | 已发 2 个 Task ⇒ 误以为「并行合规」 |
85
+ | **同仓写隔离** | 派发 **前** 每轨独立 `Worktree path` | 只写了 `Working branch` / `checkout -b` |
86
+
87
+ - 独立模块可并行 **implement 轨道**(不同 dev Assignment);**同仓 ≥2 可写并发** → **`mstar-branch-worktree`** **`references/parallel-writable-pre-dispatch.md`**(先于 invoke)。
88
+ - **SDD 单 plan 内 task** 仍串行(`mstar-sdd`);plan 间默认串行(`mstar-iteration` §2.6)— 用户书面 override 时仍须 worktree 隔离。
81
89
  - **Plan QC tri** after SDD task loop(`Execution mode: sdd`);**单席**仅 `inline` / hotfix。共用 `Review cwd` / `Working branch` / `plan_id` / `Review range`(**`mstar-branch-worktree`**)。
82
90
  - **Tri 同消息规则**:plan QC tri(SDD 或 Assignment 显式 `QC mode: full tri-review`)时三席 **同一条消息**、**同一套** scope 字段。
83
91
 
@@ -96,7 +104,8 @@ When **`Execution mode: sdd`** (`mstar-sdd`):
96
104
 
97
105
  - QC 三审拆在多条消息(tri 模式)或单席却未附 review-package 路径。
98
106
  - 仅 1 次 invoke 却声称「tri-review 已并行启动」(tri 模式 N=3)。
99
- - SDD 并行 implementer dispatch
107
+ - SDD 并行 implementer dispatch(**同一 plan 内**多 task)。
108
+ - 同仓多轨 writable implement:**N invoke ≠ worktree 隔离** → **`mstar-branch-worktree`** **`references/parallel-writable-pre-dispatch.md`**。
100
109
  - 递归同角色 subagent;把 Handoff / 多轨编排措辞当 invoke。
101
110
  - Review-and-edit 链未完成即 commit integration 分支;PM 代做专业角色编辑而不 invoke。
102
111
  - Phase 1 review-and-edit 链三角色并行派发,或未等上一角色返回即派发下一角色。
@@ -14,7 +14,7 @@ Before any Task/subagent call (if I somehow forget the preamble):
14
14
  2. Does the Assignment include **`Delegation: allowed (...)`**? If no → **no** Task/subagent.
15
15
  3. Is my next step a Task/subagent invoke? If yes without (2) → **stop**; use Read/Write/Shell/Edit in-session or **`Blocked`**.
16
16
  4. Is `subagent_type` equal to my `Execute as`? If yes → **forbidden** (recursive dispatch).
17
- 5. Am I treating plain `role-id` mentions, Handoff, QA note, Completion Report roles, or multi-plan/multi-track **design text** as invoke commands? If yes → **stop**; deliver in-session.
17
+ 5. Am I treating plain `role-id` mentions, Handoff, QA gate, Completion Report roles, or multi-plan/multi-track **design text** as invoke commands? If yes → **stop**; deliver in-session.
18
18
  6. Am I invoking because the tool exists? **Available ≠ authorized.**
19
19
  7. Need parallel work or PM-only dispatch? → **`Blocked`**; PM dispatches on the next round.
20
20
 
@@ -30,7 +30,7 @@ description: Morning Star (启明星) harness **强制全局入口** —— 信
30
30
 
31
31
  ## 最小交付循环
32
32
 
33
- **per-plan**:`specify → clarify → plan` → `plan(locked) → tasks → implement`(多 task 默认 SDD)→ plan QC tri + QA Done(`inline` 单席例外)。阶段细则 → **`mstar-phase-gates`**。
33
+ **per-plan**:`specify → clarify → plan` → `plan(locked) → tasks → implement`(多 task 默认 SDD)→ plan QC tri + **QA gate**(`mandatory` 派 QA 或 `pm-acceptance`)→ Done(`inline` 单席例外)。阶段细则 → **`mstar-phase-gates`**;QA 分级 → **`mstar-roles/references/project-manager/qa-trigger-matrix.md`**。
34
34
 
35
35
  **迭代级**:`iteration-start → [per-plan cycle × N] → iteration-close → PR delivery → PR merge-ready loop`。细则 → **`mstar-iteration`**。
36
36
 
@@ -40,7 +40,7 @@ description: Morning Star (启明星) harness **强制全局入口** —— 信
40
40
  |------|------|-------------------|
41
41
  | **全部** | 本 skill | — |
42
42
  | **`@project-manager`** | 本 skill | `mstar-dispatch-gates`、`mstar-phase-gates`、`mstar-plan-conventions`、`mstar-roles`;implement 波次 `mstar-sdd`;派 QC 前 `mstar-review-qc`;并行/审查 `mstar-branch-worktree`;plan/status/reports `mstar-plan-artifacts`;UI 类 plan Prepare 阶段 `mstar-design-md`(DESIGN.md 门禁);新建/大改 skill 时 `mstar-skill-authoring`;迭代管理 `mstar-iteration`(Phase 1–5);战略性工作 `mstar-strategy`。**不**读 `mstar-coding-behavior` |
43
- | **实现/审查/QA/运维** | 本 skill + `mstar-coding-behavior` + 角色 ref | 有 git 写:`mstar-branch-worktree`;有 plan 路径:`mstar-plan-conventions`(路径符号节);QC/QA:`mstar-review-qc`;改 status/residual:`mstar-plan-artifacts`;UI 任务:`mstar-design-md`(读取 DESIGN.md tokens);写入知识库 `{KNOWLEDGE_DIR}`:`mstar-compound`(PM 触发) |
43
+ | **实现/审查/运维** | 本 skill + `mstar-coding-behavior` + 角色 ref | 有 git 写:`mstar-branch-worktree`;有 plan 路径:`mstar-plan-conventions`;**PM** 派 QC 前:`mstar-review-qc`;**`qc-specialist*`**:`mstar-roles` → `references/qc-specialist/`;`qa-engineer`:`references/qa-engineer/`;改 status/residual:`mstar-plan-artifacts`;UI:`mstar-design-md`;知识库:`mstar-compound`(PM |
44
44
  | **leaf 承接方** | 上栏 + **`mstar-dispatch-gates`**(反递归节) | — |
45
45
 
46
46
  Routing eval(Cursor 插件内回归用,**非**运行时必读)→ `.cursor/skills/mstar-routing-eval/`。
@@ -94,7 +94,7 @@ PM 在 Assignment 写 **`Task category`**(主类 + 可选 `secondary`):
94
94
  | `mstar-plan-conventions` | `{HARNESS_DIR}` 发现、初始化、Spec 分支模型摘要、产物路径 SSOT |
95
95
  | `mstar-plan-artifacts` | 主 plan、reports、`status.json`、residual、knowledge、Done 归档 |
96
96
  | `mstar-design-md` | DESIGN.md 设计系统规范 —— 创建/审计/维护 design tokens,三级检查清单,light/dark 双主题 |
97
- | `mstar-review-qc` | QC 工作流、模板、verdict、residual 留档、deep review 透镜 |
97
+ | `mstar-review-qc` | PM:QC tri 编排、residual 留档、四层边界;leaf 执行 `mstar-roles/references/qc-specialist/` |
98
98
  | `mstar-coding-behavior` | Think / Simplicity / Surgical / Debugging / Review Feedback / Goal-Driven / Communication |
99
99
  | `mstar-compound` | 知识结晶 —— 已解决问题→结构化知识文档,双轨(Bug/Knowledge),「是否值得结晶」自检清单,重叠检测,可发现性检查,CONCEPTS.md 协同 |
100
100
  | `mstar-compound-refresh` | 知识维护 —— 审查/更新/合并/删除 `{KNOWLEDGE_DIR}` 文档 |
@@ -142,6 +142,7 @@ Read **`mstar-host`** after this skill; detect host per its table, then Read the
142
142
  | 递归误派 / 误读 Handoff | `mstar-dispatch-gates` |
143
143
  | `quick` 跳过 Prepare | 上表 + `mstar-phase-gates` |
144
144
  | 多 worktree 未归并就 QC | `mstar-branch-worktree` |
145
+ | 并行 implement:N invoke 无 worktree | `mstar-branch-worktree` → `references/parallel-writable-pre-dispatch.md` |
145
146
  | residual 只写 plan 不写 SSOT | `mstar-plan-artifacts` |
146
147
  | 角色文件塞流程长文 | 用专题 skill |
147
148
  | 无证据宣称完成 | `mstar-coding-behavior` / verification |
@@ -141,7 +141,7 @@ Embed this checklist **inside each implement todo description** in CreatePlan (a
141
141
 
142
142
  - Mark implement todos done without a commit when tracked files changed.
143
143
  - Batch all work into one closing commit unless PM documented an exception.
144
- - Mark plan-level `Done` in `status.json` without PM/QA authority.
144
+ - Mark plan-level `Done` in `status.json` without PM/QA authority and without recorded **`QA gate`** (`mandatory` fulfilled or `pm-acceptance` checklist per `qa-trigger-matrix.md`).
145
145
 
146
146
  Dev-role NEVER rules also apply when executing as implementer: `mstar-roles/references/fullstack-dev-shared.md` (Git NEVER).
147
147
 
@@ -185,7 +185,7 @@ Phase 1 与 §1.6 须遵守 **`references/iteration-artifact-boundaries.md`**(
185
185
 
186
186
  ## Phase 2: Autonomous Execute(per-plan 派发驱动)
187
187
 
188
- **本 Phase 是本 skill 的核心**——定义 per-plan 派发循环的完整流程:前置条件检查、session todos、backlog 读取、integration 分支管理、per-plan dispatch 循环(分支→实现→QCQADone→合并)、dispatch-first 约束、push 纪律。PM 读取本 Phase 即可执行迭代。
188
+ **本 Phase 是本 skill 的核心**——定义 per-plan 派发循环的完整流程:前置条件检查、session todos、backlog 读取、integration 分支管理、per-plan dispatch 循环(分支→实现→QC→**QA gate**→Done→合并)、dispatch-first 约束、push 纪律。PM 读取本 Phase 即可执行迭代。
189
189
 
190
190
  ### 2.0 前置条件(四道闸)
191
191
 
@@ -204,7 +204,7 @@ Phase 1 与 §1.6 须遵守 **`references/iteration-artifact-boundaries.md`**(
204
204
 
205
205
  | Host | 工具 | 最小集合 |
206
206
  |------|------|---------|
207
- | **Cursor** | `TodoWrite` / CreatePlan todos | 当前 `plan_id`;下一批 gates(implement/QC/QA);分支 checkpoint;**仅剩 1 个非 Done plan 时追加 `phase-3-iteration-close`**(open 直至 §3.5);Phase 4 后 **`phase-5-pr-merge-ready`**(open 直至 §5.5) |
207
+ | **Cursor** | `TodoWrite` / CreatePlan todos | 当前 `plan_id`;下一批 gates(implement/QC/**QA gate**);分支 checkpoint;**仅剩 1 个非 Done plan 时追加 `phase-3-iteration-close`**(open 直至 §3.5);Phase 4 后 **`phase-5-pr-merge-ready`**(open 直至 §5.5) |
208
208
  | **Codex** | `update_plan` / Goal UI | 同上 |
209
209
  | **OpenCode** | host todo/plan UI(如有) | 同上 |
210
210
 
@@ -239,7 +239,7 @@ SSOT = `{HARNESS_DIR}/status.json` + `{PLAN_DIR}/`。todos 只追踪本轮下一
239
239
 
240
240
  对每个 active `plan_id`:
241
241
 
242
- 1. **Plan start — feature branch**:Assignment 用 `Working branch: create <plan-feature-branch> from <spec_integration_branch>`。一个 plan 一条专用实现分支;内部并行topic branches + worktrees(`mstar-branch-worktree`)
242
+ 1. **Plan start — feature branch**:Assignment 用 `Working branch: create <plan-feature-branch> from <spec_integration_branch>`。一个 plan 一条专用实现分支;plan 内多可写并行轨 **`mstar-branch-worktree`** **`references/parallel-writable-pre-dispatch.md`**
243
243
  2. **Implement → InReview**(`§ 2.5`):
244
244
  - **默认 `Execution mode: sdd`**(多 task plan;hotfix 可 `inline`)。
245
245
  - PM 载入 **`mstar-sdd`** 后,按 plan task 顺序 **串行** per-task 循环(**不是**一次派发 dev 做全部 tasks):
@@ -251,7 +251,7 @@ SSOT = `{HARNESS_DIR}/status.json` + `{PLAN_DIR}/`。todos 只追踪本轮下一
251
251
  6. Fix loop 直至 review clean;append `{SDD_DIR}/progress.md`;更新 `status.json` / plan checkbox
252
252
  7. Next task
253
253
  - 每次 Completion Report v2 后更新 `status.json` + 主 plan
254
- 3. **QC → QA → Done**:per-plan 审查链 → **`mstar-sdd`**(L1–L2)+ **`mstar-review-qc/references/review-responsibility-boundaries.md`**(L3 tri / inline 单席)+ QA
254
+ 3. **QC → QA gate → Done**:per-plan 审查链 → **`mstar-sdd`**(L1–L2)+ **`mstar-review-qc/references/review-responsibility-boundaries.md`**(L3 tri / inline 单席)+ **`QA gate`**(`mandatory` → `qa-engineer`;`pm-acceptance` → PM checklist)。
255
255
  4. **Plan complete — merge back**:合并 plan feature branch → `spec_integration_branch`;在下一 plan 或 QC 前解决冲突
256
256
  5. **Cross-plan 进度同步**:更新 `{ITERATION_DIR}/<iteration-id>-delivery-compass.md` 的 `## Plans` 表状态列
257
257
  6. **Next plan** 从步骤 1 继续
@@ -281,7 +281,7 @@ Iteration Phase 2 附加:
281
281
 
282
282
  - PM **NEVER** 在 PM 线程实现产品代码(delegate dev;hotfix 例外见 **`mstar-phase-gates`**)
283
283
  - `Subagent invokes issued: 0` 而 Assignment 已写出 → **`dispatch incomplete`**;下一条补发 invoke,禁止 PM 顶替
284
- - QC 初轮:**SDD → N=3**;**inline → N=1**;双轨 implement **N=2**(同条消息发满 N)
284
+ - QC 初轮:**SDD → N=3**;**inline → N=1**;plan QC tri 三席 **同条消息 N=3**(非 implement 轨数)
285
285
 
286
286
  ### 2.6 Push 纪律(Autonomous Execute)
287
287
 
@@ -28,7 +28,7 @@ description: Morning Star (启明星) Spec-Driven 双阶段门禁 —— Prepare
28
28
 
29
29
  - **`plan(locked)`** — 冻结基线;实现中出现新约束时**先回写 plan 再继续**。
30
30
  - **`tasks`** — 含依赖顺序、并行标记、完成判据;每任务可追踪到 plan、roadmap 批次与验收标准。
31
- - **并行标签**:若 PM 将 ≥2 条实现轨 **同时** 分派,须在 Assignment 写明 `Dispatch mode: parallel independent tracks`;同仓 ≥2 可写并发时写明 `Worktree isolation: required`(见 **`mstar-dispatch-gates`** **`mstar-branch-worktree`**)。
31
+ - **并行标签**:≥2 条实现轨同时分派 `Dispatch mode: parallel independent tracks`;同仓可写并发 `Worktree isolation: required`(清单 **`mstar-branch-worktree`** **`references/parallel-writable-pre-dispatch.md`**)。
32
32
  - **`implement`** — 按 tasks 顺序执行;多 task plan **默认** `Execution mode: sdd`(`mstar-sdd`);hotfix 可 `inline`。完成进入 `InReview`;遵循 **`mstar-coding-behavior`**。
33
33
 
34
34
  ### 可验证编辑与上下文纪律
@@ -62,15 +62,14 @@ description: Morning Star (启明星) Spec-Driven 双阶段门禁 —— Prepare
62
62
  - 开发角色(`@frontend-dev` / `@fullstack-dev` / `@fullstack-dev-2`)
63
63
  - 仅在 Execute gate 放行后开始实现。
64
64
  - 发现新约束时先回报并请求回写 plan。
65
- - `@qa-engineer`
66
- - 在 `InReview` 阶段验证实现与验收映射是否一致。
65
+ - `@qa-engineer` — when **`QA gate: mandatory`**, L4 per `mstar-roles/references/qa-engineer/acceptance-gate.md`; `pm-acceptance` is PM-only (`qa-trigger-matrix.md`).
67
66
 
68
67
  ## 迭代级活动
69
68
 
70
69
  per-plan 门禁通过后,PM 在**迭代层面**管理以下活动(不计入 per-plan gate):
71
70
 
72
71
  - **迭代启动**(`mstar-iteration` § Phase 1):锁定迭代范围、**显式 branch policy**(`iteration_base_branch` / `target_branch`)、产出 compass。
73
- - **迭代驱动**(`mstar-iteration` § Phase 2 Autonomous Execute):per-plan 派发循环(分支→实现→QCQADone→合并),跨 plan 进度追踪,更新 compass 中各 plan 状态。
72
+ - **迭代驱动**(`mstar-iteration` § Phase 2 Autonomous Execute):per-plan 派发循环(分支→实现→QC→**QA gate**→Done→合并),跨 plan 进度追踪,更新 compass 中各 plan 状态。
74
73
  - **迭代收口**(`mstar-iteration` § Phase 3 iteration-close):迭代内所有 plan Done 后,执行一轮知识结晶(`mstar-compound`)沉淀迭代经验,更新 roadmap,标记迭代完成。
75
74
 
76
75
  per-plan Done 是 per-plan 的闭环终点;compound 是迭代级收口活动,不影响 per-plan 状态判定。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: mstar-plan-artifacts
3
- description: Morning Star plan harness artifacts — `{PLAN_DIR}` main plans and `reports/`, `{KNOWLEDGE_DIR}` / `{ITERATION_DIR}` indexes, Done compaction, plus `{HARNESS_DIR}/status.json` and root `residual_findings` (severity SSOT, open/archived lifecycle, `notes.json`). Read when writing plans or QC reports, maintaining knowledge/iteration indexes, reading or writing `status.json` / R#, Done compaction, or mapping QC severity to JSON. Required for `@project-manager` on status, residuals, and InReview/QC waves; `@qc-specialist*` before `reports/**/*.md`; `@qa-engineer` before closing R#. Verdict rules in `mstar-review-qc`; paths in `mstar-plan-conventions`.
3
+ description: Morning Star plan harness artifacts — `{PLAN_DIR}` main plans and `reports/`, `{KNOWLEDGE_DIR}` / `{ITERATION_DIR}` indexes, Done compaction, plus `{HARNESS_DIR}/status.json` and root `residual_findings` (severity SSOT, open/archived lifecycle, `notes.json`). Read when writing plans or QC reports, maintaining knowledge/iteration indexes, reading or writing `status.json` / R#, Done compaction, or mapping QC severity to JSON. Required for `@project-manager` on status, residuals, and InReview/QC waves; `@qc-specialist*` before `reports/**/*.md`; `@qa-engineer` before closing R# when `QA gate: mandatory`. Verdict rules: leaf `mstar-roles/references/qc-specialist/report-template.md`; PM → `mstar-review-qc`. Paths in `mstar-plan-conventions`.
4
4
  ---
5
5
 
6
6
  ## Load order
@@ -19,7 +19,7 @@ description: Morning Star plan harness artifacts — `{PLAN_DIR}` main plans and
19
19
  | Empty-repo `status.json` / `notes.json` / Profile B `plans-done.json` templates | `templates/status.empty.json`, `templates/notes.empty.json`, `templates/plans-done.empty.json` (`templates/README.md`) |
20
20
  | Tech-debt rollup (read-only) | `scripts/tech-debt-rollup.sh` |
21
21
 
22
- **Out of scope:** branch and QC/QA checkout alignment → **`mstar-branch-worktree`**; QC checklist and verdict → **`mstar-review-qc`**; `{HARNESS_DIR}` discovery and init → **`mstar-plan-conventions`**.
22
+ **Out of scope:** branch and QC/QA checkout alignment → **`mstar-branch-worktree`**; leaf QC checklist and verdict → **`mstar-roles/references/qc-specialist/`**; PM QC orchestration → **`mstar-review-qc`**; `{HARNESS_DIR}` discovery and init → **`mstar-plan-conventions`**.
23
23
 
24
24
  ## `status.json` and open residual (summary)
25
25
 
@@ -57,7 +57,7 @@ Plan template with Global Constraints / Interfaces → **`templates/plan.main.md
57
57
 
58
58
  - **流程**:实现完成 → 该 **`plan_id`** 进入 **`InReview`** → **QC 三审(仅针对该 plan 的 `Review range`)** → PM consolidated → **QA** → **`Done`**。**禁止**在多个 `plan_id` 已 `InReview` 的情况下,只推进新实现、不派 QC,或把多个 plan 的变更**伪装成**一套三审字段(单一 `plan_id` / 单一 diff 范围覆盖多 plan)。
59
59
  - **并行 vs 串行**:不同 `plan_id` **相互独立**时,可 **并行**派发多组三审(每组各自的 Assignment 与 `reports/<plan-id>/`);若 PM 选择串行,须在 Status Update 写明顺序——**每组仍须完整三审 + QA**,不是「一个大 QC」混审。
60
- - **读 skill**:书写或派发 QC 相关 Assignment 前,PM **必须** Read **`mstar-review-qc`** skill(`mstar-plan-conventions` 不重复 QC 清单与 verdict 规则)。见 `mstar-plan-conventions` SKILL.md **QC pre-dispatch gate** 与 **InReview 与 QC+QA** 小节。
60
+ - **读 skill**:书写或派发 QC 相关 Assignment 前,PM **必须** Read **`mstar-review-qc`**(编排与 residual);leaf `qc-specialist*` → **`mstar-roles/references/qc-specialist/`**。见 `mstar-plan-conventions` SKILL.md **QC pre-dispatch gate**。
61
61
 
62
62
  **QC 落盘与宿主权限**:`qc-specialist` / `qc-specialist-2` / `qc-specialist-3` 在支持路径白名单的宿主上(如 OpenCode 的 **`permission.edit`**),**仅可** Write/Edit **`{PLAN_DIR}/reports/`** 下 **`.md`**(全局 agent 提示词中已配置 `.mstar/plans/reports/**`、`.agents/plans/reports/**`、`.plans/reports/**`、`plans/reports/**` 相对路径)。报告文件**必须**以 YAML **frontmatter** 开头(键见各 QC agent 提示词)。**若** 项目的 `{PLAN_DIR}` 不落在上述根下,须在**项目级**宿主配置(如 OpenCode)中为 QC 角色追加对应的 `edit` allow 规则。
63
63
 
@@ -6,7 +6,7 @@
6
6
  Canonical vs legacy residual definitions → **`mstar-plan-artifacts` SKILL.md** (“`status.json` and open residual (summary)”); this file covers **fields, severity, lifecycle, archive, and `jq` examples**.
7
7
  **Closed** residuals should not accumulate here long-term; authoritative archive → **`{HARNESS_DIR}/archived/residuals/<plan-id>.json`** (see “Residual findings lifecycle”).
8
8
 
9
- **Why this matters:** The open list and `archived/residuals/` are the **cross-session handoff surface** for risk and decisions. Non-blocking conclusions that stay only in chat or a single QC report **without SSOT** cannot be inherited reliably; `Done` drifts from visible known debt. **`@project-manager`** should register trackable open items soon after review closure; **`@qa-engineer`** and PM should close and archive after verification or explicit waiver flexible timing, but **not** “said in chat is enough.”
9
+ **Why this matters:** The open list and `archived/residuals/` are the **cross-session handoff surface** for risk and decisions. Non-blocking conclusions that stay only in chat or a single QC report **without SSOT** cannot be inherited reliably; `Done` drifts from visible known debt. **`@project-manager`** should register trackable open items soon after review closure; close/archive after verification per **`QA gate`** (`qa-engineer` when `mandatory`, else PM acceptance checklist).
10
10
 
11
11
  ## Basic structure
12
12
 
@@ -209,7 +209,7 @@ Plan row (per active iteration plan):
209
209
  | Action | Owner | When |
210
210
  | ------ | ----- | ---- |
211
211
  | Implement fix | `@fullstack-dev` / assignee | Completion Report cites R# + evidence |
212
- | Verify | `@qa-engineer` | Regression / acceptance |
212
+ | Verify | `@qa-engineer` when **`QA gate: mandatory`**; else PM per acceptance checklist | Regression / acceptance; open R# close requires verify before archive |
213
213
  | Write `status.json` | **`@project-manager`** or **`@qa-engineer`** | After verification; waivers after PM + user/architect alignment |
214
214
 
215
215
  Do not claim “R3 fixed” in chat/plan only without SSOT update.