@mstar-harness/opencode 1.0.5 → 1.1.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.
Files changed (38) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/harness-agents/qc-specialist-2.md +9 -16
  3. package/harness-agents/qc-specialist-3.md +9 -16
  4. package/harness-agents/qc-specialist.md +9 -16
  5. package/harness-skills/mstar-branch-worktree/SKILL.md +2 -2
  6. package/harness-skills/mstar-dispatch-gates/SKILL.md +3 -3
  7. package/harness-skills/mstar-harness-core/SKILL.md +2 -2
  8. package/harness-skills/mstar-host/references/cursor-plan-mode-bridge.md +4 -4
  9. package/harness-skills/mstar-host/references/cursor.md +1 -1
  10. package/harness-skills/mstar-host/references/parallel-dispatch.md +3 -3
  11. package/harness-skills/mstar-iteration/SKILL.md +6 -5
  12. package/harness-skills/mstar-iteration/references/iteration-compass-template.md +14 -0
  13. package/harness-skills/mstar-iteration/references/iteration-corpus-hygiene.md +1 -1
  14. package/harness-skills/mstar-phase-gates/SKILL.md +2 -2
  15. package/harness-skills/mstar-plan-artifacts/SKILL.md +2 -2
  16. package/harness-skills/mstar-plan-artifacts/references/done-compaction.md +2 -2
  17. package/harness-skills/mstar-plan-artifacts/references/knowledge-and-designs.md +9 -8
  18. package/harness-skills/mstar-plan-artifacts/references/plan-files-and-reports.md +39 -21
  19. package/harness-skills/mstar-plan-artifacts/references/status-and-residuals.md +7 -6
  20. package/harness-skills/mstar-plan-conventions/SKILL.md +7 -7
  21. package/harness-skills/mstar-plan-conventions/references/artifact-storage-paths.md +4 -4
  22. package/harness-skills/mstar-plan-conventions/references/harness-bootstrap-and-agents-layering.md +2 -2
  23. package/harness-skills/mstar-review-qc/SKILL.md +5 -5
  24. package/harness-skills/mstar-review-qc/references/review-responsibility-boundaries.md +5 -5
  25. package/harness-skills/mstar-roles/SKILL.md +7 -7
  26. package/harness-skills/mstar-roles/references/project-manager/plan-management.md +2 -2
  27. package/harness-skills/mstar-roles/references/project-manager/qa-trigger-matrix.md +2 -2
  28. package/harness-skills/mstar-roles/references/project-manager/qc-and-residuals.md +6 -6
  29. package/harness-skills/mstar-roles/references/project-manager.md +4 -4
  30. package/harness-skills/mstar-roles/references/qa-engineer/acceptance-gate.md +2 -2
  31. package/harness-skills/mstar-roles/references/qa-engineer.md +4 -2
  32. package/harness-skills/mstar-roles/references/qc-specialist/report-template.md +1 -1
  33. package/harness-skills/mstar-roles/references/qc-specialist/reviewer-workflow.md +1 -1
  34. package/harness-skills/mstar-roles/references/qc-specialist-shared.md +7 -7
  35. package/harness-skills/mstar-sdd/SKILL.md +3 -3
  36. package/harness-skills/mstar-sdd/references/file-handoffs.md +3 -2
  37. package/harness-skills/mstar-sdd/references/task-reviewer-prompt.md +1 -0
  38. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
- # Plan 文件与 Reports 留档(Morning Star)
1
+ # Plan 文件与 Review Bundle 留档(Morning Star)
2
2
 
3
- > **Load order(与其它 `mstar-*` skill 一致)**:依赖本 reference 排 reports / QC 波次前,须已 Read **`mstar-harness-core`** skill(SKILL.md;多 worktree 与 QC 单一 `HEAD` 见 **`mstar-branch-worktree`**)。冲突以 **`mstar-harness-core`** 为准。
3
+ > **Load order(与其它 `mstar-*` skill 一致)**:依赖本 reference 排 review bundle / QC 波次前,须已 Read **`mstar-harness-core`** skill(SKILL.md;多 worktree 与 QC 单一 `HEAD` 见 **`mstar-branch-worktree`**)。冲突以 **`mstar-harness-core`** 为准。
4
4
 
5
5
  ## Plan 文件(`{PLAN_DIR}/<name>.md`)
6
6
 
@@ -8,67 +8,85 @@
8
8
 
9
9
  **命名(推荐)**:`<plan-id>-<plan-name>.md`(例:`01-data-infrastructure.md`)。`status.json` 中 `file` 字段填相对仓库根或 `{PLAN_DIR}` 下的实际路径。
10
10
 
11
- **审查报告文件**(置于 `{PLAN_DIR}/reports/<plan-id>/`):
11
+ ## Review bundle(`{SDD_DIR}/review/`)
12
12
 
13
- **QC basename rule**:目录名已是 `<plan-id>` — **do not** repeat it in report filenames. Put `plan_id` in YAML frontmatter only.
13
+ QC/QA 原始过程报告默认是 **ephemeral review bundle**,置于 `{SDD_DIR}/review/`(即 `{HARNESS_DIR}/sdd/<plan-id>/review/`)。该目录随 `{SDD_DIR}` gitignored,不作为长期 git 审计链。
14
14
 
15
- | 类型 | 文件名(相对 `reports/<plan-id>/`) |
15
+ **QC basename rule**:`{SDD_DIR}` 已含 `<plan-id>` — **do not** repeat it in report filenames. Put `plan_id` in YAML frontmatter only.
16
+
17
+ | 类型 | 文件名(相对 `{SDD_DIR}/review/`) |
16
18
  |------|--------|
17
- | 架构/设计评审 | `<plan-id>-review.md`(或团队约定的 `review.md`) |
18
19
  | QC 三审报告(**SDD 默认** `Execution mode: sdd`) | `qc1.md`、`qc2.md`、`qc3.md` |
19
20
  | QC 单席报告(**`inline` / hotfix 例外**) | `qc.md` |
20
21
  | QC 汇总结论(tri 模式) | `qc-consolidated.md` |
22
+ | QA 验收报告(`QA gate: mandatory`) | `qa.md`(或 Assignment 指定的同目录 basename) |
23
+
24
+ `{PLAN_DIR}/reports/` is **legacy / explicit audit mode only**. Use it only when the user or project policy explicitly requires tracked raw reports; the default harness path is `{SDD_DIR}/review/`.
21
25
 
22
26
  ## SDD 运行时(不入 reports)
23
27
 
24
- Per-task briefs, implementer reports, and review diffs live under **`{SDD_DIR}`** (`mstar-plan-conventions`). Gitignored. Main plan may index `{SDD_DIR}` path only — do not paste SDD bodies into plan markdown.
28
+ Per-task briefs, implementer reports, review diffs, branch review packages, and QC/QA bundle files live under **`{SDD_DIR}`** (`mstar-plan-conventions`). Gitignored. Main plan may index `{SDD_DIR}` / `{SDD_DIR}/review/` paths only — do not paste SDD bodies or raw QC/QA reports into plan markdown.
25
29
 
26
30
  Plan template with Global Constraints / Interfaces → **`templates/plan.main.md`**.
27
31
 
28
32
  ## QC 模式(L3 plan 级)
29
33
 
30
- 职责分层 L1–L4 → **`mstar-review-qc/references/review-responsibility-boundaries.md`**。报告 basename 见上表;触发时机与 re-review 波次见下节 **§ QC 三审触发时机**。
34
+ 职责分层 L1–L4 → **`mstar-review-qc/references/review-responsibility-boundaries.md`**。bundle basename 见上表;触发时机与 re-review 波次见下节 **§ QC 三审触发时机**。
35
+
36
+ ## Durable summaries(主 plan / status)
37
+
38
+ Raw bundle files may disappear after the working context is gone. Before Done, PM must preserve the durable decision surface:
31
39
 
32
- ## QC 分报告与 consolidated(tri 模式)
40
+ - Main plan `## Review Gate Summary`:
41
+ - `Decision`: `Approve` | `Approve with residuals` | `Request Changes` | `Needs Discussion`
42
+ - `Review range / Diff basis`
43
+ - `Review bundle`: `{SDD_DIR}/review/`
44
+ - `QC inputs`: `qc1.md` / `qc2.md` / `qc3.md` or `qc.md`
45
+ - `Blocking result`: fixed / none / deferred with reason
46
+ - `Residual findings`: R# ids + short titles + owner/target
47
+ - Main plan `## QA Gate Summary` when QA applies:
48
+ - `QA gate` / `QA mode`
49
+ - evidence reused vs newly run checks
50
+ - related R# closure recommendations
51
+ - `{HARNESS_DIR}/status.json` root `residual_findings[<plan-id>]`: open R# machine SSOT.
33
52
 
34
- - **不要删除** `qc1.md`、`qc2.md`、`qc3.md` **只因为**已写入 `qc-consolidated.md`。`reports/<plan-id>/` 是**审计链**:分 reviewer 原文保留**证据出处、分歧与独立视角**;**consolidated** PM 的**门控摘要**,二者**叠加**,**不互为替代**。
35
- - **极窄例外**(须团队显式采纳并承担审计缺口):例如仓库体积极敏感时,仅保留 consolidated + 指向外部归档的链接——**不在**本默认 harness 中推荐;默认仍保留三份 `qc*.md`。
53
+ The durable summary is not a paste of raw reports. It is a small gate record sufficient for handoff after `{SDD_DIR}` is unavailable.
36
54
 
37
55
  ## Residual findings(R#):权威在哪、和主 plan 谁先谁后?
38
56
 
39
57
  - **Open 条目的单一事实来源(SSOT)**是 **`{HARNESS_DIR}/status.json`** 根级 **`residual_findings[<plan-id>]`**(与 `plans` 平级;canonical 见 `mstar-plan-artifacts` **SKILL.md** 开篇;字段见 `mstar-plan-artifacts/references/status-and-residuals.md`)。跨会话 handoff、关闭与归档流程**以该数组为准**。
40
58
  - **推荐操作顺序**(避免 plan 与 JSON 两套 ID 漂移):
41
- 1. `project-manager` 读完三份 QC 报告并完成「QC 三审轻量汇总」:对 finding **去重合并**,为每条待跟踪项分配**稳定 `id`**(如 `R1`、`R2`,全 plan 内唯一)。
42
- 2. **立即**将上述条目写入根级 **`residual_findings[<plan-id>]`**(含 `source` 指向哪位 QC / 哪份报告文件名,便于回溯);**勿**与 legacy 侧双写(见 `mstar-plan-conventions` **SKILL.md** 开篇)。
59
+ 1. `project-manager` 读完 review bundle 并完成「QC 三审轻量汇总」:对 finding **去重合并**,为每条待跟踪项分配**稳定 `id`**(如 `R1`、`R2`,全 plan 内唯一)。
60
+ 2. **立即**将上述条目写入根级 **`residual_findings[<plan-id>]`**(含 `source` 指向 reviewer seat + bundle basename + finding id + review range,便于回溯);**勿**与 legacy 侧双写(见 `mstar-plan-conventions` **SKILL.md** 开篇)。
43
61
  3. **可选**:在主 plan 中增加 **「Residual findings(索引)」** 小节,**仅复述** `id` + 短标题 + 决策摘要,并写明「**权威列表见** `status.json` 根级 `residual_findings[<plan-id>]`(见 `mstar-plan-conventions` **SKILL.md** 开篇)」。**不要**只在主 plan 里「发明」R# 而不写回 SSOT。
44
62
  - **不要**反过来把主 plan 当作唯一登记处:若仅更新 plan、`status.json` 未同步,下一任 agent **无法**依赖 SSOT 继承债务状态。
45
63
 
46
64
  ## QC 三审触发时机(单 plan · 多 batch)
47
65
 
48
- - **默认(SDD)**:同一 **`plan_id`** 下,**plan QC tri-review**(`qc-specialist` ×3 → `qc1`…`qc3` + consolidated)**仅在** dev team 按该 plan 约定范围全部交付、且 **L2 task reviewers** 均已通过后执行 **一次**。**不要**在每个中间 batch 跑完整三审。
66
+ - **默认(SDD)**:同一 **`plan_id`** 下,**plan QC tri-review**(`qc-specialist` ×3 → `{SDD_DIR}/review/qc1.md`…`qc3.md` + `qc-consolidated.md`)**仅在** dev team 按该 plan 约定范围全部交付、且 **L2 task reviewers** 均已通过后执行 **一次**。**不要**在每个中间 batch 跑完整三审。
49
67
  - **单席例外**:`Execution mode: inline` / hotfix → 交付完成后 **一次** `qc.md`(`QC mode: single`)。
50
68
  - **batch 之间**:依赖实现方按 **`mstar-coding-behavior`** 提供完成证据、主 plan 任务勾选与 PM 协调;需要书面中间意见时,用对话、主 plan 批注或**非三审**的定向检查(如单审、架构 review),**不**默认等同「又一轮完整三审」。
51
- - **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.
52
- - **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`.
53
- - **显式例外**:仅当用户与 PM 书面同意**中间门禁**时,在 Assignment 写清 **`QC gate: incremental — <scope>`**(或等价),并仍须保证该次三审的 **`plan_id` + `Review range` / `Diff basis`** 三份一致;**优先**用子范围子目录,避免与终局 `qc1..3.md` 混名。
69
+ - **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** bundle file (`qc1.md` / `qc2.md` / `qc3.md`) in place (add `## Revalidation`, refresh verdict / `generated_at`); **do not** add `qc1-rev2.md` siblings for targeted re-review. PM **updates the same** `qc-consolidated.md` and durable plan summary.
70
+ - **Full tri re-review (exception)**:Only when Assignment states **`QC re-review: full tri-review`**. Run **three** parallel reviews again; use **new bundle basenames** (`qc1-rev2.md` … `qc3-rev2.md`, `qc-consolidated-rev2.md`) so wave-1 files stay distinct; PM states **active wave** in consolidated decision and durable plan summary. See `mstar-review-qc` · `mstar-dispatch-gates`.
71
+ - **显式例外**:仅当用户与 PM 书面同意**中间门禁**时,在 Assignment 写清 **`QC gate: incremental — <scope>`**(或等价),并仍须保证该次三审的 **`plan_id` + `Review range` / `Diff basis`** 三份一致;**优先**用 `{SDD_DIR}/review/<scope>/` 子目录,避免与终局 `qc1..3.md` 混名。
54
72
  - **同仓多 worktree 并行 dev**:**推荐**在排各 batch / 各轨 worktree 前确立 **plan 集成分支** 与各轨 topic 线及 **merge 靶**(见 `mstar-branch-worktree` **「推荐默认编排:先建 plan 集成分支,再挂各 worktree」**)。**多 `plan_id` 同属一条 `primary_spec`(Spec 文档)时**:该「集成分支」在计划语义上即 **Spec 集成分支**;各 Plan 的 topic 分支 **merge 回 Spec 集成分支**,**全部 Plans 完成后** 向显式 `target_branch` **走 PR**,见 `mstar-plan-conventions` SKILL.md **「Spec 驱动的分支模型」**。终局(或增量)三审派单前,PM 仍须满足 **单一待审 `Working branch` / `HEAD`** 或已按上条 **拆 scope**;**不得**假设「整 plan 一次三审」可只靠某一个开发 worktree 路径覆盖未合并的其他并行轨。
55
73
 
56
74
  ### 多 `plan_id` 同时 `InReview`(PM 编排)
57
75
 
58
76
  - **流程**:实现完成 → 该 **`plan_id`** 进入 **`InReview`** → **QC 三审(仅针对该 plan 的 `Review range`)** → PM consolidated → **QA** → **`Done`**。**禁止**在多个 `plan_id` 已 `InReview` 的情况下,只推进新实现、不派 QC,或把多个 plan 的变更**伪装成**一套三审字段(单一 `plan_id` / 单一 diff 范围覆盖多 plan)。
59
- - **并行 vs 串行**:不同 `plan_id` **相互独立**时,可 **并行**派发多组三审(每组各自的 Assignment 与 `reports/<plan-id>/`);若 PM 选择串行,须在 Status Update 写明顺序——**每组仍须完整三审 + QA**,不是「一个大 QC」混审。
77
+ - **并行 vs 串行**:不同 `plan_id` **相互独立**时,可 **并行**派发多组三审(每组各自的 Assignment 与 `{SDD_DIR}/review/`);若 PM 选择串行,须在 Status Update 写明顺序——**每组仍须完整三审 + QA**,不是「一个大 QC」混审。
60
78
  - **读 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
79
 
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 规则。
80
+ **QC 落盘与宿主权限**:`qc-specialist` / `qc-specialist-2` / `qc-specialist-3` 在支持路径白名单的宿主上(如 OpenCode 的 **`permission.edit`**),默认 **仅可** Write/Edit Assignment 指定的 **`{SDD_DIR}/review/`** 下 **`.md`**。全局 agent 提示词应允许 `.mstar/sdd/**`、`.agents/sdd/**` worktree 下对应路径。报告文件**必须**以 YAML **frontmatter** 开头(键见各 QC agent 提示词)。
63
81
 
64
- **QC 报告与 Git**:报告落盘后,各 QC 角色须在业务仓内对**本次报告文件**执行 **`git add` + `git commit`**(细则与 bash 权限见 `agents/qc-specialist*.md`);**禁止**仅落盘不提交导致 `clone` 后不可见。**PM / architect / product-manager** 对 **`{HARNESS_DIR}`** / **`{PLAN_DIR}`** 与主 plan 的创建与更新亦须在业务仓内 **commit**(见 `agents/project-manager.md` Plan 初始化与 PM 职责、`agents/architect.md` / `agents/product-manager.md` Git 小节)。
82
+ **QC 报告与 Git**:默认 raw QC/QA bundle **不**执行 `git add` / `git commit`。PM must commit durable artifacts instead: main plan gate summaries, `{HARNESS_DIR}/status.json` residual changes, and any tracked specs/knowledge/iteration updates. If a project explicitly opts into tracked audit reports, state `Review archive mode: tracked reports` in Assignment and use project-specific allow rules.
65
83
 
66
84
  ## 主 plan 内任务清单(Markdown checkbox)
67
85
 
68
86
  - **谁应更新**:`fullstack-dev` / `frontend-dev` / `fullstack-dev-2`、`qa-engineer`、`ops-engineer`、`architect`、`product-manager` 在**完成本人 Assignment 范围内的工作后**,须在主 plan(`<plan-id>-<plan-name>.md`)中把**对应条目**的 Markdown 任务标记为已完成(常见:`- [ ]` → `- [x]`;若项目用其它清单记号,保持同文件内一致)。与 Completion Report **并列**,作为跨会话可核对的**落盘痕迹**。
69
87
  - **范围**:**只勾选与当前任务直接对应、且已由本角色交付证据支撑的条目**;不得代为勾选他人负责或未完工项。若正文用分段、Owner 或角色标签区分任务,以 Assignment 与文内约定为准。
70
88
  - **与 `status.json` / frontmatter 的关系**:勾选任务**不**等于整条计划收口。`plans[].status` 及主 plan frontmatter 的 **`Done`** 仍**仅** `project-manager` / `qa-engineer`(见「状态更新权限」)。`architect` / `product-manager` **不得**擅自将整条计划标为 `Done`;是否将 `status.json` 推进为 `InReview` 等仍按下文「状态更新权限」与 Assignment。
71
- - **`qc-specialist*`**:**不得**修改主 plan(宿主仅允许 `{PLAN_DIR}/reports/**/*.md`);审查结论落在 `reports/<plan-id>/` 内。若主 plan 需新增或勾选与审查相关的条目,由 `project-manager` 或 Assignment 明确授权的角色据报告回写。
89
+ - **`qc-specialist*`**:**不得**修改主 plan(宿主仅允许 Assignment 指定的 review bundle `.md`);审查结论落在 `{SDD_DIR}/review/` 内。若主 plan 需新增或勾选与审查相关的条目,由 `project-manager` 或 Assignment 明确授权的角色据报告回写。
72
90
  - **只读角色**:不直接改主 plan;将建议交给 `project-manager` 代为更新清单。
73
91
 
74
92
  Plan 正文与 `status.json` 必须保持一致;不一致时以 `status.json` 的条目状态为准并尽快纠正正文或登记 notes。
@@ -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; close/archive after verification per **`QA gate`** (`qa-engineer` when `mandatory`, else PM acceptance checklist).
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 gitignored review bundle **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
 
@@ -37,7 +37,7 @@ Canonical vs legacy residual definitions → **`mstar-plan-artifacts` SKILL.md**
37
37
  "id": "R1",
38
38
  "title": "Finding title",
39
39
  "severity": "critical | high | medium | low | nit",
40
- "source": "QC-#1, QC-#3, review, …",
40
+ "source": "QC-#1 qc1.md F-001 @ <review-range>, QA qa.md, review, …",
41
41
  "scope": "Affected file or component",
42
42
  "decision": "defer | accept | risk-accepted",
43
43
  "owner": "@fullstack-dev",
@@ -124,9 +124,10 @@ In old JSON, **`"severity": "warning"`** is read and rolled up as **`low`**. **F
124
124
  | `primary_spec` | string | Main spec path (`{KNOWLEDGE_DIR}/…`, `{SPECS_DIR}/…`) |
125
125
  | `iteration_compass` | string | Optional `{ITERATION_DIR}/…` |
126
126
  | `iteration_refs` | string[] | Optional multiple compass paths |
127
- | `qc_status` / `tests` / `commits` | string | InReview/Done snapshots; not a substitute for `{PLAN_DIR}/reports/` |
127
+ | `qc_status` / `tests` / `commits` | string | InReview/Done snapshots; not a substitute for durable plan gate summaries or root `residual_findings` |
128
128
  | `sdd_dir` | string | SDD scratch path, e.g. `{HARNESS_DIR}/sdd/<plan-id>/` (gitignored; `mstar-sdd`) |
129
129
  | `sdd_progress` | string | Optional pointer to `{SDD_DIR}/progress.md` ledger |
130
+ | `review_bundle` | string | Optional pointer to `{SDD_DIR}/review/` for current ephemeral QC/QA evidence |
130
131
  | `task_commits` | array\<object\> | SDD recovery: `{ "task_id": "T1", "base": "<sha>", "head": "<sha>" }` per completed task |
131
132
 
132
133
  ### Optional delivery ledger (`phase` + `batches` + `verification`)
@@ -141,7 +142,7 @@ For multi-batch or multi-role plans:
141
142
 
142
143
  Recommended `batches[]` subfields: `index`, `covers`, `status`, `owner`, `commits`, `a2_self_audit` (or synonym), `verification`.
143
144
 
144
- > `batches` / `verification` are evidence indexes — not replacements for `{PLAN_DIR}/reports/` or root `residual_findings`.
145
+ > `batches` / `verification` are evidence indexes — not replacements for durable plan gate summaries or root `residual_findings`.
145
146
 
146
147
  ### `plans[].notes` vs `{HARNESS_DIR}/notes.json`
147
148
 
@@ -184,7 +185,7 @@ Plan row (per active iteration plan):
184
185
 
185
186
  - Each `plans[]` row may include optional **`metadata`** (`{}` or omit).
186
187
  - Init with `"residual_findings": {}`; **no dual-write** with legacy side (see SKILL.md). Program timeline → **`notes.json`**, not long `metadata.notes` in `status.json`.
187
- - **`plans[].id`** keys must align with root **`residual_findings`** keys (and `reports/<plan-id>/`). Do not store `residual_findings_plan_id`.
188
+ - **`plans[].id`** keys must align with root **`residual_findings`** keys and `{SDD_DIR}` plan-id segments. Do not store `residual_findings_plan_id`.
188
189
  - **Empty `plan-id` key:** when no open items remain, **delete** the key from root **`residual_findings`** (and legacy side if present) — no `"plan-id": []`. Whether **`plans[]`** keeps the row is separate (`done-compaction.md`).
189
190
  - **`residual_summary` (optional):** one-line human summary of **open** items only.
190
191
 
@@ -245,7 +246,7 @@ Archive file shape (append to `entries`):
245
246
  ```
246
247
 
247
248
  - Each archived entry needs **`archived_at`** (`YYYY-MM-DD`).
248
- - Closed records live in archive + QC `reports/`; not in open list.
249
+ - Closed records live in archive + durable plan summaries; raw review bundles are ephemeral and not part of the long-term open list.
249
250
  - After batch archive/close, **refresh `tech_debt_summary`** (script below).
250
251
 
251
252
  ### Short in-place close (transition only)
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: mstar-plan-conventions
3
- description: Morning Star (启明星) harness 计划目录约定 —— `{HARNESS_DIR}` / `{PLAN_DIR}` / `{ITERATION_DIR}` / `{KNOWLEDGE_DIR}` / `{SPECS_DIR}` 发现与初始化(默认 `.mstar/`,兼容 `.agents/`)、`docs/` 与 harness 子树边界、未启用 plan 时的工作方式、Spec 集成分支与多 Plan 实现分支(显式 base / merge 靶 / PR target)、Morning Star plan-writing path gate、工期预估(agent-oriented)。**必须**在读写 `.mstar/` / `.agents/`、初始化 harness、编排含 plan 的任务、或对齐 `metadata.primary_spec` 时 Read;`@project-manager` 开 plan 任务前必读。plan 文件 / status / residual / reports / knowledge → **`mstar-plan-artifacts`**;分支与 QC 检出 → **`mstar-branch-worktree`**。
3
+ description: Morning Star (启明星) harness 计划目录约定 —— `{HARNESS_DIR}` / `{PLAN_DIR}` / `{SDD_DIR}` / `{ITERATION_DIR}` / `{KNOWLEDGE_DIR}` / `{SPECS_DIR}` 发现与初始化(默认 `.mstar/`,兼容 `.agents/`)、`docs` 与 harness 子树边界、review bundle、未启用 plan 时的工作方式、Spec 集成分支与多 Plan 实现分支(显式 base / merge 靶 / PR target)、Morning Star plan-writing path gate、工期预估(agent-oriented)。**必须**在读写 `.mstar/` / `.agents/`、初始化 harness、编排含 plan 的任务、或对齐 `metadata.primary_spec` 时 Read;`@project-manager` 开 plan 任务前必读。plan 文件 / status / residual / review bundle / knowledge → **`mstar-plan-artifacts`**;分支与 QC 检出 → **`mstar-branch-worktree`**。
4
4
  ---
5
5
 
6
6
  ## Load order(必读顺序)
@@ -9,7 +9,7 @@ description: Morning Star (启明星) harness 计划目录约定 —— `{HARNES
9
9
 
10
10
  | 你还可能要 Read | 何时 |
11
11
  |-----------------|------|
12
- | `mstar-plan-artifacts` | 主 plan、reports、`status.json`、residual、InReview/QC 波次、knowledge |
12
+ | `mstar-plan-artifacts` | 主 plan、review bundle 摘要、`status.json`、residual、InReview/QC 波次、knowledge |
13
13
  | `mstar-branch-worktree` | Assignment 写分支 / worktree / QC 检出 |
14
14
  | `mstar-review-qc` | 派 QC(PM 同轮必读;SDD 强制 tri) |
15
15
  | `mstar-sdd` | PM 执行 `Execution mode: sdd` 的 implement 波次 |
@@ -20,7 +20,7 @@ description: Morning Star (启明星) harness 计划目录约定 —— `{HARNES
20
20
  |------|------|
21
21
  | `{HARNESS_DIR}` | `.mstar/` |
22
22
  | `{PLAN_DIR}` | `{HARNESS_DIR}/plans/` |
23
- | `{SDD_DIR}` | `{HARNESS_DIR}/sdd/<plan-id>/`(SDD 运行时 scratch;gitignore) |
23
+ | `{SDD_DIR}` | `{HARNESS_DIR}/sdd/<plan-id>/`(SDD 运行时 scratch + review bundlegitignored) |
24
24
  | `{ITERATION_DIR}` | `{HARNESS_DIR}/iterations/` |
25
25
  | `{KNOWLEDGE_DIR}` | `{HARNESS_DIR}/knowledge/` |
26
26
  | `{SPECS_DIR}` | `specs/` 优先,否则 `designs/` |
@@ -44,16 +44,16 @@ description: Morning Star (启明星) harness 计划目录约定 —— `{HARNES
44
44
  | `{SPECS_DIR}` | 冻结规格 / ADR |
45
45
  | `{ITERATION_DIR}` | 迭代 compass 快照 |
46
46
  | `{KNOWLEDGE_DIR}` | 实现 SSOT、可复用设计 |
47
- | `{PLAN_DIR}/` | 主 plan、`reports/` |
47
+ | `{PLAN_DIR}/` | 主 plan、durable gate summaries、可选 residual prose |
48
48
 
49
- 单 plan 评审结论、QC 报告 **`{PLAN_DIR}/reports/`**,非 `docs/`。细则 → **`mstar-plan-artifacts`**。
49
+ 单 plan QC/QA **原始过程报告**默认进入 **`{SDD_DIR}/review/`**(gitignored review bundle),非 `docs/`,也不默认进入 `{PLAN_DIR}`。主 plan 仅保留 durable gate summary;R# open 状态以 `{HARNESS_DIR}/status.json` 为 SSOT。细则 → **`mstar-plan-artifacts`**。
50
50
 
51
51
  ## 初始化 Plan 目录
52
52
 
53
53
  PM 在需要持久化追踪时:
54
54
 
55
55
  1. 建 `.mstar/`、`plans/`、`status.json`(空模板见 **`mstar-plan-artifacts/templates/status.empty.json`**)
56
- 2. 可选 `notes.json`(模板 **`mstar-plan-artifacts/templates/notes.empty.json`**)、`reports/README.md`、`knowledge/`、`iterations/`、`specs/`、`sdd/`(空目录占位;运行时 per-plan 子目录由 `mstar-sdd/scripts/sdd-workspace` 创建)
56
+ 2. 可选 `notes.json`(模板 **`mstar-plan-artifacts/templates/notes.empty.json`**)、`knowledge/`、`iterations/`、`specs/`、`sdd/`(空目录占位;运行时 per-plan 子目录由 `mstar-sdd/scripts/sdd-workspace` 创建)
57
57
  3. 项目根 `.gitignore` 追加 `.mstar/sdd/`(或 `.agents/sdd/` legacy)— CLI `init` 可自动添加
58
58
  4. Git:团队交付 **勿** ignore 整个 `{HARNESS_DIR}`(handoff 需 clone 可达)
59
59
 
@@ -92,4 +92,4 @@ Plans are written to **`{PLAN_DIR}`** when persistent plan tracking is enabled.
92
92
  - `references/effort-estimation.md` — agent-oriented 工期(禁人天/FTE)
93
93
  - `references/artifact-storage-paths.md` — **产物存储路径 SSOT**(知识文档、CONCEPTS.md、STRATEGY.md 等落盘位置;`mstar-compound`、`mstar-compound-refresh`、`mstar-strategy` 等技能引用此表,不得本地重定义)
94
94
 
95
- **Plan 工件细则**(主 plan、reports、`status.json`、residual、knowledge、Done 归档、**`templates/`**)→ skill **`mstar-plan-artifacts`**(`references/` 与 `templates/`)。
95
+ **Plan 工件细则**(主 plan、review bundle / durable summaries、`status.json`、residual、knowledge、Done 归档、**`templates/`**)→ skill **`mstar-plan-artifacts`**(`references/` 与 `templates/`)。
@@ -6,15 +6,15 @@
6
6
 
7
7
  ## Harness 子树内(`{HARNESS_DIR}/` 下)
8
8
 
9
- 这些是 agent handoff 用的结构化产物,随 `.git` 追踪,不面向人类直接阅读。
9
+ 这些是 agent handoff 用的结构化产物;除明确标注 gitignored 的 scratch 外,默认随 `.git` 追踪,不面向人类直接阅读。
10
10
 
11
11
  | 产物 | 解析后路径(默认 `.mstar/`) | 读写的技能 |
12
12
  |------|---------------------------|-----------|
13
13
  | **知识文档** | `.mstar/knowledge/<category>/<slug>.md` | `mstar-compound`(写)、`mstar-compound-refresh`(读写) |
14
14
  | **知识索引** | `.mstar/knowledge/README.md` | `mstar-compound`(写)、`mstar-compound-refresh`(读写) |
15
15
  | **主 plan** | `.mstar/plans/<plan-id>-<name>.md` | PM / `mstar-plan-artifacts` |
16
- | **QC 报告** | `.mstar/plans/reports/<plan-id>/qc1.md`…`qc3.md` + consolidated(**SDD 默认**);`qc.md`(inline 例外) | `mstar-review-qc` |
17
- | **SDD scratch** | `{HARNESS_DIR}/sdd/<plan-id>/`(gitignored) | `mstar-sdd` |
16
+ | **Review bundle(QC/QA 原始过程报告)** | `{HARNESS_DIR}/sdd/<plan-id>/review/`(gitignored;默认 `.mstar/sdd/<plan-id>/review/`) | `mstar-sdd`、`mstar-review-qc`、`qa-engineer` |
17
+ | **SDD scratch** | `{HARNESS_DIR}/sdd/<plan-id>/`(gitignored;含 per-task handoff 与 `review/` bundle) | `mstar-sdd` |
18
18
  | **status.json** | `.mstar/status.json` | `mstar-plan-artifacts` |
19
19
  | **迭代 compass** | `.mstar/iterations/<iteration-id>-delivery-compass.md` | `mstar-iteration`(读写) |
20
20
  | **迭代工作区** | `.mstar/iterations/<iteration-id>/`(`guides/`、`specs/` 等) | `mstar-iteration`(读写);close 时 `mstar-compound`(提升读) |
@@ -43,7 +43,7 @@
43
43
  | `docs/` | 人类文档(安装、贡献指南等),知识产物不放此处 |
44
44
  | `{ITERATION_DIR}/` | 仅限迭代 compass,知识文档不放此处 |
45
45
  | `{SPECS_DIR}/` | 仅限冻结规格/ADR,运行时知识不放此处 |
46
- | `{PLAN_DIR}/reports/` | 仅限 QC 报告,知识文档不放此处 |
46
+ | `{PLAN_DIR}/reports/` | Legacy / explicit audit mode only;默认 QC/QA 原始过程报告进 `{SDD_DIR}/review/`,知识文档不放此处 |
47
47
 
48
48
  ## `<category>` 取值
49
49
 
@@ -6,7 +6,7 @@
6
6
 
7
7
  给新仓或迁移仓提供一套可复制的启动方式,确保:
8
8
 
9
- - `status.json` / residual / reports 有唯一落点;
9
+ - `status.json` / residual / review bundle 有唯一落点;
10
10
  - 根规则与 harness 规则不互相覆盖;
11
11
  - 目录级 `AGENTS.md` 只承载增量边界,不变成重复手册。
12
12
 
@@ -14,7 +14,7 @@
14
14
 
15
15
  1. 创建 `{HARNESS_DIR}`(推荐 `.mstar/`)与 `{PLAN_DIR}`(推荐 `.mstar/plans/`)。
16
16
  2. 初始化 `status.json`:从 **`mstar-plan-artifacts/templates/status.empty.json`** 复制;residual canonical 见 **`mstar-plan-artifacts` SKILL.md**;字段与生命周期见 **`mstar-plan-artifacts/references/status-and-residuals.md`**。
17
- 3. 初始化可选 `notes.json`(**`mstar-plan-artifacts/templates/notes.empty.json`**)与 `plans/reports/README.md`;`sdd/` 空目录占位(per-plan 子目录由 `mstar-sdd/scripts/sdd-workspace` 创建;项目根 `.gitignore` 须含 `.mstar/sdd/`)。
17
+ 3. 初始化可选 `notes.json`(**`mstar-plan-artifacts/templates/notes.empty.json`**);`sdd/` 空目录占位(per-plan 子目录由 `mstar-sdd/scripts/sdd-workspace` 创建;项目根 `.gitignore` 须含 `.mstar/sdd/`,legacy `.agents/` 项目对应 `.agents/sdd/`)。
18
18
  4. **Profile B**(统一 Done 压缩)时另建 `{HARNESS_DIR}/archived/plans/` 与 `archived/plans-done.json`(自 **`mstar-plan-artifacts/templates/plans-done.empty.json`** 复制;schema 仅 `{ "plans": [] }`,见 **`mstar-plan-artifacts/references/done-compaction.md`**)。
19
19
  5. 可选:创建 `{ITERATION_DIR}`(`iterations/` + `README.md`)与 `{KNOWLEDGE_DIR}`(`knowledge/` + `README.md`);内容边界见 `mstar-plan-conventions` SKILL.md 与 `references/knowledge-and-designs.md`。
20
20
  6. 创建 `{HARNESS_DIR}/AGENTS.md`(harness 子树规则):符号表可复述 `{HARNESS_DIR}`、`{PLAN_DIR}`、`{ITERATION_DIR}`、`{KNOWLEDGE_DIR}`、`{SPECS_DIR}` 与 `docs/` 分工;新项目推荐 `.mstar/AGENTS.md`,已有项目可继续使用 `.agents/AGENTS.md`。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: mstar-review-qc
3
- description: Morning Star QC orchestration — **SDD mandatory plan QC tri-review** (`qc1`…`qc3` + consolidated); inline/hotfix single-seat (`qc.md`); PM dispatch timing, tri identity gate, residual registration contract, layer boundaries. Leaf QC execution → **`mstar-roles/references/qc-specialist/`**. Per-task review is **`mstar-sdd`** (L2). Primary reader: **`project-manager`** when dispatching or consolidating QC.
3
+ description: Morning Star QC orchestration — **SDD mandatory plan QC tri-review** (`{SDD_DIR}/review/qc1.md`…`qc3.md` + consolidated); inline/hotfix single-seat (`qc.md` in review bundle); PM dispatch timing, tri identity gate, residual registration contract, layer boundaries, durable plan summary. Leaf QC execution → **`mstar-roles/references/qc-specialist/`**. Per-task review is **`mstar-sdd`** (L2). Primary reader: **`project-manager`** when dispatching or consolidating QC.
4
4
  ---
5
5
 
6
6
  ## Load order(必读顺序)
@@ -13,9 +13,9 @@ description: Morning Star QC orchestration — **SDD mandatory plan QC tri-revie
13
13
 
14
14
  ## 分派时机(与 plan / batch 对齐)
15
15
 
16
- - **`Execution mode: sdd`**:全部 task + L2 task reviewers 完成后 → **强制 tri-review**(`QC mode: full tri-review`,**N=3**)。Assignment 须含 **branch review-package** 路径。PM 汇总 `qc-consolidated.md`。
17
- - **`Execution mode: inline`**:单席 `qc-specialist` → `qc.md`(**N=1**),或按 hotfix 路由跳过。
18
- - **After `Request Changes` (default)**:**Targeted re-review** — PM dispatches only seats that **raised** blocking findings; each updates **the same** `{PLAN_DIR}/reports/<plan-id>/qcN.md` (`## Revalidation`, update verdict). **Do not** spawn `qcN-rev2.md` on this path. Naming → **`mstar-plan-artifacts/references/plan-files-and-reports.md`** § QC 三审触发时机.
16
+ - **`Execution mode: sdd`**:全部 task + L2 task reviewers 完成后 → **强制 tri-review**(`QC mode: full tri-review`,**N=3**)。Assignment 须含 **branch review-package** 路径与 `{SDD_DIR}/review/qcN.md` report paths。PM 汇总 `{SDD_DIR}/review/qc-consolidated.md` 并回写主 plan durable summary。
17
+ - **`Execution mode: inline`**:单席 `qc-specialist` → `{SDD_DIR}/review/qc.md`(**N=1**),或按 hotfix 路由跳过。
18
+ - **After `Request Changes` (default)**:**Targeted re-review** — PM dispatches only seats that **raised** blocking findings; each updates **the same** `{SDD_DIR}/review/qcN.md` (`## Revalidation`, update verdict). **Do not** spawn `qcN-rev2.md` for targeted re-review. Naming → **`mstar-plan-artifacts/references/plan-files-and-reports.md`** § QC 三审触发时机.
19
19
  - **Full tri re-review (exception)**:Assignment **`QC re-review: full tri-review`** → new basenames (`qc1-rev2.md` …); PM marks **active wave** in consolidated decision.
20
20
 
21
21
  ## 三审身份与模型独立性门禁(PM 强制)
@@ -41,7 +41,7 @@ description: Morning Star QC orchestration — **SDD mandatory plan QC tri-revie
41
41
 
42
42
  ## PM consolidated 门禁(摘要)
43
43
 
44
- Leaf reviewers apply verdict per **`mstar-roles/references/qc-specialist/report-template.md`**. PM **`qc-consolidated.md`** synthesizes tri (or single-seat `qc.md`) into one gate decision for implement fix waves and QA gate.
44
+ 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/status artifacts.
45
45
 
46
46
  ## 证据规则(PM · consolidated 输入)
47
47
 
@@ -7,7 +7,7 @@
7
7
  | **L1** Implementer | dev subagent | Per task | Write code + TDD evidence | `task-N-brief.md` |
8
8
  | **L2** Task reviewer | PM-dispatched subagent (SDD) | Per task, after implementer | Spec + quality for **one task** | 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 | Integration, regression, contract drift — **independent lenses, same branch diff** | 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, Done recommendation — **not** default full re-run | QC reports + plan + `status.json` |
10
+ | **L4** QA | `qa-engineer` when **`QA gate: mandatory`**; else PM acceptance | After QC gate | DoD acceptance, residual verify, Done recommendation — **not** default full re-run | Review bundle + plan + `status.json` |
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
 
@@ -20,14 +20,14 @@ Per-task spec/quality is **done** in L2 before L3. QC seats do not re-derive eac
20
20
  ## Plan QC tri (SDD mandatory)
21
21
 
22
22
  - Assignment: **`QC mode: full tri-review`** (implicit when `Execution mode: sdd`; PM may state explicitly).
23
- - **N=3** same dispatch message: QC#1 architecture/maintainability → `qc1.md`; QC#2 security/correctness → `qc2.md`; QC#3 performance/reliability → `qc3.md`.
24
- - PM **`qc-consolidated.md`** — cross-review synthesis; PM gate input.
23
+ - **N=3** same dispatch message: QC#1 architecture/maintainability → `{SDD_DIR}/review/qc1.md`; QC#2 security/correctness → `{SDD_DIR}/review/qc2.md`; QC#3 performance/reliability → `{SDD_DIR}/review/qc3.md`.
24
+ - PM **`{SDD_DIR}/review/qc-consolidated.md`** — cross-review synthesis; PM gate input and source for durable main-plan summary.
25
25
  - Dispatch must include **Review package path** (branch diff file).
26
26
  - **NEVER** substitute a single `qc-specialist` for L3 when SDD was used, unless user override: `QC mode: single — override: <reason>`.
27
27
 
28
28
  ## Plan QC single-seat (inline / exception only)
29
29
 
30
- - Report: `{PLAN_DIR}/reports/<plan-id>/qc.md`
30
+ - Report: `{SDD_DIR}/review/qc.md`
31
31
  - `Execution mode: inline` hotfix paths; or explicit override on SDD plan.
32
32
  - `N=1`; no `qc-consolidated.md` required.
33
33
 
@@ -40,4 +40,4 @@ Per-task spec/quality is **done** in L2 before L3. QC seats do not re-derive eac
40
40
 
41
41
  ## Minor findings
42
42
 
43
- Task reviewer Minor → `{SDD_DIR}/progress.md` § Minor. Plan QC Minor → `qcN.md` + optional residual via PM.
43
+ Task reviewer Minor → `{SDD_DIR}/progress.md` § Minor. Plan QC Minor → `{SDD_DIR}/review/qcN.md` + optional residual via PM.
@@ -39,7 +39,7 @@ If any conflict appears, `mstar-harness-core` remains the authoritative source f
39
39
  | --- | --- |
40
40
  | `project-manager` | `mstar-dispatch-gates`, `mstar-phase-gates`, `mstar-plan-conventions`, `mstar-roles` ref; + `references/project-manager/qa-trigger-matrix.md` for QA gate tiers; + `mstar-review-qc` before QC; + `mstar-branch-worktree` / `mstar-plan-artifacts` as the round requires; + `mstar-skill-authoring` for skill work; + `mstar-iteration` for iteration lifecycle (start/drive/close); + `mstar-strategy` for strategic alignment; + `mstar-compound` / `mstar-compound-refresh` pre-loaded by `mstar-iteration` § iteration-close |
41
41
  | `fullstack-dev*`, `frontend-dev` | `mstar-coding-behavior`, `mstar-dispatch-gates`, `mstar-branch-worktree` (if repo writes); plan path symbols from `mstar-plan-conventions` (minimal); `mstar-design-md` when implementing styled UI |
42
- | `qc-specialist*` | `mstar-branch-worktree`, `mstar-plan-artifacts` (report paths); `references/qc-specialist/` (workflow, checklist, template, lenses); `mstar-design-md` when reviewing UI |
42
+ | `qc-specialist*` | `mstar-branch-worktree`, `mstar-plan-artifacts` (review bundle paths); `references/qc-specialist/` (workflow, checklist, template, lenses); `mstar-design-md` when reviewing UI |
43
43
  | `qa-engineer` | `mstar-branch-worktree`, `mstar-plan-artifacts` (closing R#); `references/qa-engineer/acceptance-gate.md`; `mstar-design-md` when verifying visual output |
44
44
  | `architect`, `product-manager` | `mstar-phase-gates` (Prepare), `mstar-plan-artifacts` (knowledge/specs); `mstar-design-md` (creator + design intent); `mstar-strategy` (STRATEGY.md creation/maintenance) |
45
45
  | `ops-engineer` | `mstar-coding-behavior`, `mstar-branch-worktree` |
@@ -60,17 +60,17 @@ Role `references/*.md` files include explicit **`NEVER`** sections (anti-recursi
60
60
 
61
61
  ### QC reviewer (`qc-specialist*` family)
62
62
 
63
- **Default (SDD):** plan QC tri-review — `qc-specialist` / `qc-specialist-2` / `qc-specialist-3` → `qc1`…`qc3` + `qc-consolidated.md` when **`Execution mode: sdd`**.
63
+ **Default (SDD):** plan QC tri-review — `qc-specialist` / `qc-specialist-2` / `qc-specialist-3` → `{SDD_DIR}/review/qc1.md`…`qc3.md` + `qc-consolidated.md` when **`Execution mode: sdd`**.
64
64
 
65
- **Exception (`inline` / hotfix):** single-seat → `qc.md` (`QC mode: single`).
65
+ **Exception (`inline` / hotfix):** single-seat → `{SDD_DIR}/review/qc.md` (`QC mode: single`).
66
66
 
67
67
  | role_id | reviewer_index | focus | report_suffix |
68
68
  | --- | --- | --- | --- |
69
- | `qc-specialist` | `1` | Architecture coherence and maintainability risk | `qc1` → `{PLAN_DIR}/reports/<plan-id>/qc1.md` |
70
- | `qc-specialist-2` | `2` | Security and correctness risk | `qc2` → `…/qc2.md` |
71
- | `qc-specialist-3` | `3` | Performance and reliability risk | `qc3` → `…/qc3.md` |
69
+ | `qc-specialist` | `1` | Architecture coherence and maintainability risk | `qc1` → `{SDD_DIR}/review/qc1.md` |
70
+ | `qc-specialist-2` | `2` | Security and correctness risk | `qc2` → `{SDD_DIR}/review/qc2.md` |
71
+ | `qc-specialist-3` | `3` | Performance and reliability risk | `qc3` → `{SDD_DIR}/review/qc3.md` |
72
72
 
73
- PM consolidated (tri mode): `…/qc-consolidated.md` (same folder; no `<plan-id>` basename prefix). Naming SSOT: `mstar-plan-artifacts/references/plan-files-and-reports.md`.
73
+ PM consolidated (tri mode): `{SDD_DIR}/review/qc-consolidated.md` (same folder; no `<plan-id>` basename prefix) + durable main-plan summary. Naming SSOT: `mstar-plan-artifacts/references/plan-files-and-reports.md`.
74
74
 
75
75
  ## Maintenance Rules
76
76
 
@@ -19,7 +19,7 @@ Legacy fallbacks:
19
19
 
20
20
  1. Create `{HARNESS_DIR}` and `{PLAN_DIR}` when absent.
21
21
  2. Initialize `{HARNESS_DIR}/status.json` from template if available.
22
- 3. Initialize reports path: `{PLAN_DIR}/reports/`.
22
+ 3. Ensure `{HARNESS_DIR}/sdd/` is gitignored; per-plan `{SDD_DIR}/review/` is created by the SDD/review flow when needed.
23
23
  4. Initialize residual archive path: `{HARNESS_DIR}/archived/residuals/`.
24
24
  5. **Profile B** only: `{HARNESS_DIR}/archived/plans/` and `archived/plans-done.json` from `mstar-plan-artifacts/templates/plans-done.empty.json` (`{ "plans": [] }` only; see `done-compaction.md`).
25
25
  6. Optional: `{HARNESS_DIR}/notes.json`, `{HARNESS_DIR}/knowledge/README.md`.
@@ -36,7 +36,7 @@ If legacy plan directories already exist, reuse them; avoid dual-structure dupli
36
36
  - On plan create/update: sync `{HARNESS_DIR}/status.json` in same coordination round.
37
37
  - Before first non-trivial implement dispatch: ensure main plan file exists and `plan_id` is registered.
38
38
  - After each Completion Report: update status before next dispatch (`report-to-status` hard gate).
39
- - On entering `InReview`: ensure QC report path and aligned review metadata are set.
39
+ - 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.
40
40
  - On `Done`: ensure residual lifecycle state is consistent (open vs archived).
41
41
 
42
42
  ## PM Plan / Status NEVER
@@ -38,7 +38,7 @@ Set **`QA gate`** on the **first implement Assignment** (or plan frontmatter) an
38
38
 
39
39
  PM completes this in **Status Update** (or plan closure note). PM **does not** run bash tests or reproduction in the orchestration thread.
40
40
 
41
- 1. **QC verdict:** `qc-consolidated.md` or `qc.md` shows `Approve` with **Critical = 0** and **Warning = 0** (not `Approve with residuals`).
41
+ 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.
42
42
  2. **DoD mapping:** Each plan Acceptance Criterion maps to **existing** evidence (dev Completion Report, QC `Tools run`, SDD TDD triple, CI links) — cite paths/commands, do not re-execute.
43
43
  3. **Residuals:** `status.json` has **no open R#** for this `plan_id` (or documented waiver per `mstar-plan-artifacts`).
44
44
  4. **Checkout alignment:** `Working branch` and `Review range / Diff basis` match QC report verified lines.
@@ -47,7 +47,7 @@ PM completes this in **Status Update** (or plan closure note). PM **does not** r
47
47
  ```markdown
48
48
  ## PM Acceptance (qa gate: pm-acceptance)
49
49
  - QA gate reason: <tier>
50
- - QC report: <path> — Approve, Critical/Warning 0
50
+ - QC report: <bundle path> — Approve, Critical/Warning 0; durable summary: <main plan section>
51
51
  - DoD mapping: <AC-id> → <evidence ref> …
52
52
  - Residuals: none open | waived R# …
53
53
  - Checkout: Working branch <name>; Review range <basis> (per QC Scope)
@@ -10,12 +10,12 @@ Use this reference when PM is dispatching QC, consolidating review verdicts, or
10
10
 
11
11
  **Per-task (L2):** task reviewer only — **not** `qc-specialist`. One reviewer subagent per task (spec + quality on task diff).
12
12
 
13
- **After all tasks (L3):** see **`mstar-review-qc/references/review-responsibility-boundaries.md`** · **`mstar-dispatch-gates`** (N=3 same message, branch review-package, `qc1`…`qc3` + consolidated). PM checklist:
13
+ **After all tasks (L3):** see **`mstar-review-qc/references/review-responsibility-boundaries.md`** · **`mstar-dispatch-gates`** (N=3 same message, branch review-package under `{SDD_DIR}/review/`, `qc1`…`qc3` + consolidated). PM checklist:
14
14
 
15
15
  0. Pre-dispatch: read `mstar-review-qc`.
16
- 1. `review-package MERGE_BASE HEAD` → branch diff under `{SDD_DIR}` or PM path.
16
+ 1. `review-package MERGE_BASE HEAD` → branch diff under `{SDD_DIR}/review/`.
17
17
  2. Dispatch **three** QC seats in **one** message (**N=3**); alignment fields text-identical across reports and Assignment.
18
- 3. PM writes `qc-consolidated.md`; after fixes → targeted re-review (default) or `QC re-review: full tri-review` for new wave files.
18
+ 3. PM writes `{SDD_DIR}/review/qc-consolidated.md` + main plan durable summary; after fixes → targeted re-review (default) or `QC re-review: full tri-review` for new wave files.
19
19
 
20
20
  **NEVER** end an SDD plan with only a single final `qc-specialist` unless user override: `QC mode: single — override: <reason>`.
21
21
 
@@ -24,7 +24,7 @@ Use this reference when PM is dispatching QC, consolidating review verdicts, or
24
24
  **When:** `Execution mode: inline` or explicit hotfix routing.
25
25
 
26
26
  1. Branch review-package path on dispatch.
27
- 2. **One** `qc-specialist` → `qc.md` (**N=1**).
27
+ 2. **One** `qc-specialist` → `{SDD_DIR}/review/qc.md` (**N=1**).
28
28
  3. Targeted re-review updates same `qc.md`.
29
29
 
30
30
  ## QC / Residual NEVER (PM)
@@ -37,7 +37,7 @@ Use this reference when PM is dispatching QC, consolidating review verdicts, or
37
37
  - **NEVER** drop residual tracking to chat-only when `Approve with residuals` applies.
38
38
  - **NEVER** treat "two of three QC reports arrived" as sufficient — missing seat → `Blocked`.
39
39
  - **NEVER** re-dispatch all three after routine fix when only one or two had blockers — **targeted re-review** unless `QC re-review: full tri-review`.
40
- - **NEVER** create `qc1-rev2.md` for **targeted** re-review; update original `qcN.md` in place.
40
+ - **NEVER** create `qc1-rev2.md` for **targeted** re-review; update original bundle `qcN.md` in place.
41
41
 
42
42
  ## Consolidated Decision Template
43
43
 
@@ -64,7 +64,7 @@ When blocking issues are fixed but non-blocking warnings/suggestions remain:
64
64
  - Must register residual findings (do not leave as chat-only).
65
65
  - Severity enum must follow `mstar-plan-artifacts` SSOT.
66
66
  - Canonical store: `{HARNESS_DIR}/status.json` -> root `residual_findings[<plan-id>]`.
67
- - Optional mirrored index in main plan is allowed, but never replace canonical entry.
67
+ - Required durable gate summary in main plan should list R# ids and decisions, but never replace canonical entries.
68
68
 
69
69
  Each residual record should include:
70
70
 
@@ -8,7 +8,7 @@ Before any non-trivial PM action, read in order:
8
8
  4. `mstar-plan-conventions` (path discovery, init, Spec branch summary)
9
9
  5. `mstar-review-qc` (same coordination round, **before** any QC dispatch)
10
10
  6. **`mstar-sdd`** when implement uses **`Execution mode: sdd`**
11
- 7. **On demand:** `mstar-branch-worktree` (parallel implement, QC/QA checkout); `mstar-plan-artifacts` (`status.json`, R#); `mstar-plan-artifacts` (InReview waves, reports naming)
11
+ 7. **On demand:** `mstar-branch-worktree` (parallel implement, QC/QA checkout); `mstar-plan-artifacts` (`status.json`, R#); `mstar-plan-artifacts` (InReview waves, review bundle naming)
12
12
 
13
13
  **Not required:** `mstar-coding-behavior` (orchestration-only PM work).
14
14
 
@@ -81,8 +81,8 @@ Detailed conflict priority and dev allocation:
81
81
 
82
82
  ## Non-Bypass Constraints
83
83
 
84
- - Code-development plans with **`Execution mode: sdd`** (default for multi-task): **mandatory plan QC tri-review** (`qc1`…`qc3` + consolidated) after all task reviewers complete.
85
- - **`Execution mode: inline`**: hotfix single-seat QC (`qc.md`) or explicit skip rules unchanged.
84
+ - Code-development plans with **`Execution mode: sdd`** (default for multi-task): **mandatory plan QC tri-review** (`{SDD_DIR}/review/qc1.md`…`qc3.md` + consolidated) after all task reviewers complete.
85
+ - **`Execution mode: inline`**: hotfix single-seat QC (`{SDD_DIR}/review/qc.md`) or explicit skip rules unchanged.
86
86
  - Multi-task implement defaults to **`Execution mode: sdd`** + `mstar-sdd`; hotfix may use `inline`.
87
87
  - Runtime/behavior change requires a recorded **`QA gate`** decision by default (`mandatory` or `pm-acceptance` per `qa-trigger-matrix.md`).
88
88
  - Report-only QA may skip QC tri-review only when no implementation/test/config artifact is committed.
@@ -254,7 +254,7 @@ PM must:
254
254
 
255
255
  - Dispatch QC with aligned scope fields
256
256
  - Consolidate to one gate verdict
257
- - 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`
257
+ - Assign fixes; default **targeted QC re-review** (same `{SDD_DIR}/review/qcN.md`); full tri only when Assignment says `QC re-review: full tri-review`
258
258
  - Record non-blocking leftovers as residual findings
259
259
  - Keep open vs archived residual state coherent at closure
260
260
  - Sync plan/status in the same coordination round
@@ -10,7 +10,7 @@ Layer **L4** runs after the QC gate. **`QA gate: pm-acceptance`** is PM-only —
10
10
 
11
11
  | L3 Plan QC | L4 QA (`qa-engineer`) |
12
12
  | --- | --- |
13
- | Independent cross-review lenses on branch diff | Acceptance against plan DoD + QC consolidated input |
13
+ | Independent cross-review lenses on branch diff | Acceptance against plan DoD + review bundle QC consolidated input |
14
14
  | Find defects; `Request Changes` / residual registration | Verify fixes, R# lifecycle, Done recommendation |
15
15
  | Typically read-only on product code | May run targeted checks; default **evidence reuse** |
16
16
 
@@ -26,7 +26,7 @@ Layer **L4** runs after the QC gate. **`QA gate: pm-acceptance`** is PM-only —
26
26
 
27
27
  When **`QA mode: acceptance-only`**:
28
28
 
29
- 1. Read `qc-consolidated.md` (or `qc.md`) **Tools run** and dev Completion Report / SDD TDD triple.
29
+ 1. Read `{SDD_DIR}/review/qc-consolidated.md` (or `{SDD_DIR}/review/qc.md`) **Tools run** and dev Completion Report / SDD TDD triple.
30
30
  2. If QC report includes **reproducible test commands + output** for the same **`Review range / Diff basis`** as Assignment → **verify mapping** to plan Acceptance Criteria; **do not** default to a full suite re-run.
31
31
  3. Document in Completion Report **Validation**: which ACs are covered by reused evidence vs newly executed checks.
32
32
 
@@ -7,7 +7,7 @@ Before any non-trivial QA assignment, read in order:
7
7
  3. `mstar-dispatch-gates` + `mstar-branch-worktree` (anti-recursion; checkout alignment with QC)
8
8
  4. Host adapter: `mstar-host` (detect; Read `references/opencode.md`, `cursor.md`, or `codex.md`)
9
9
  5. **`references/qa-engineer/acceptance-gate.md`** (L4 execution)
10
- 6. **On demand:** `mstar-plan-artifacts` (closing R#); `mstar-plan-conventions` (paths); `mstar-design-md` (UI verify against DESIGN.md); `mstar-phase-gates` (when Assignment references verification phase); QC consolidated reports and inputs named in Assignment
10
+ 6. **On demand:** `mstar-plan-artifacts` (closing R#); `mstar-plan-conventions` (paths); `mstar-design-md` (UI verify against DESIGN.md); `mstar-phase-gates` (when Assignment references verification phase); review bundle files and QC consolidated inputs named in Assignment
11
11
 
12
12
  Full cross-role matrix: `mstar-roles` SKILL.md.
13
13
 
@@ -38,7 +38,7 @@ If any item below matches, **stop** and return `Blocked` to `project-manager` in
38
38
  - **NEVER** run parallel-agent dispatch yourself; **PM-only** (`mstar-dispatch-gates`).
39
39
  - **NEVER** delegate test design, execution, evidence, or QA reports to `explore`.
40
40
  - **NEVER** issue pass / sign-off language when checkout alignment, `Review range / Diff basis`, or mandatory commands cannot be verified—use `Blocked` with the concrete gap.
41
- - **NEVER** default to a full test-suite re-run when **`QA mode: acceptance-only`** and QC consolidated (or `qc.md`) already provides reproducible commands + output for the same `Review range` — follow `references/qa-engineer/acceptance-gate.md`.
41
+ - **NEVER** default to a full test-suite re-run when **`QA mode: acceptance-only`** and the review bundle QC consolidated report (or `qc.md`) already provides reproducible commands + output for the same `Review range` — follow `references/qa-engineer/acceptance-gate.md`.
42
42
 
43
43
  ## Core QA Gate Duties
44
44
 
@@ -52,6 +52,8 @@ Before sign-off: validate phase-gate prerequisites, Assignment metadata alignmen
52
52
 
53
53
  ## QA Report Template (Report-only)
54
54
 
55
+ When Assignment provides a report path, write report-only output under `{SDD_DIR}/review/` (for example `qa.md`) unless PM explicitly chooses tracked report archive mode.
56
+
55
57
  ```markdown
56
58
  # QA Report (Report-only)
57
59
 
@@ -4,7 +4,7 @@ Extension of `references/qc-specialist-shared.md`. Frontmatter and path rules re
4
4
 
5
5
  ## Report body template
6
6
 
7
- Write under **`{PLAN_DIR}/reports/<plan-id>/qc#.md`** (`qc1`…`qc3` or `qc.md`). YAML frontmatter first (see `qc-specialist-shared.md`), then:
7
+ Write under the Assignment-provided **`{SDD_DIR}/review/qc#.md`** (`qc1`…`qc3` or `qc.md`). YAML frontmatter first (see `qc-specialist-shared.md`), then:
8
8
 
9
9
  ```markdown
10
10
  # Code Review Report
@@ -18,7 +18,7 @@ Extension of `references/qc-specialist-shared.md`. Read when dispatched as `qc-s
18
18
  4. Run project lint and static analysis for the change.
19
19
  5. Execute **`reviewer-checklist.md`** manually.
20
20
  6. Produce structured findings with severity and evidence. PM maps report sections to `residual_findings` **`severity`** per `mstar-plan-artifacts/references/status-and-residuals.md` — do not invent non-canonical severity strings.
21
- 7. **Commit report:** Write `.md` under `{PLAN_DIR}/reports/<plan-id>/`; `git add` **only** report paths; `git commit`; real `git log -1 --oneline` in Completion Report.
21
+ 7. **Write report:** Write `.md` to the Assignment-provided `{SDD_DIR}/review/` report path. Do not commit raw bundle reports unless Assignment explicitly says `Review archive mode: tracked reports`.
22
22
  8. **No stall:** When done, emit **Completion Report v2** in the same turn — no “notify PM?” choosers.
23
23
 
24
24
  ## Deep review (optional, lens mode)