@mstar-harness/dsh 3.8.2 → 3.8.3
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-commands/amazing-e2e-check.md +10 -0
- package/harness-commands/iteration-drive.md +1 -1
- package/harness-skills/mstar-artifacts/references/plan-files-and-reports.md +2 -2
- package/harness-skills/mstar-artifacts/references/plan-quality-bar.md +14 -12
- package/harness-skills/mstar-artifacts/templates/plan.main.md +19 -6
- package/harness-skills/mstar-audit/SKILL.md +5 -5
- package/harness-skills/mstar-coding-behavior/SKILL.md +8 -8
- package/harness-skills/mstar-dispatch-gates/SKILL.md +9 -7
- package/harness-skills/mstar-e2e/SKILL.md +40 -0
- package/harness-skills/mstar-e2e/references/report-template.md +32 -0
- package/harness-skills/mstar-engine-legacy/references/qc-seat-n-restatements.md +3 -3
- package/harness-skills/mstar-harness-core/SKILL.md +14 -1
- package/harness-skills/mstar-host/references/_shared/host-role-binding-core.md +1 -1
- package/harness-skills/mstar-host/references/cursor.md +1 -1
- package/harness-skills/mstar-host/references/dsh-workflow-scripts.md +4 -4
- package/harness-skills/mstar-host/references/dsh.md +9 -7
- package/harness-skills/mstar-host/references/kimi.md +3 -3
- package/harness-skills/mstar-host/references/omp.md +3 -3
- package/harness-skills/mstar-host/references/parallel-dispatch.md +6 -6
- package/harness-skills/mstar-host/references/zcode.md +4 -4
- package/harness-skills/mstar-iteration/SKILL.md +1 -1
- package/harness-skills/mstar-iteration/references/phase-1-prepare.md +2 -2
- package/harness-skills/mstar-iteration/references/phase-2-worktree-lease.md +3 -3
- package/harness-skills/mstar-review-qc/SKILL.md +4 -4
- package/harness-skills/mstar-review-qc/references/review-responsibility-boundaries.md +9 -7
- package/harness-skills/mstar-roles/SKILL.md +2 -0
- package/harness-skills/mstar-roles/references/_shared/leaf-executor-core.md +9 -0
- package/harness-skills/mstar-roles/references/ops-engineer.md +3 -0
- package/harness-skills/mstar-roles/references/project-manager/dispatch-and-assignment.md +12 -9
- package/harness-skills/mstar-roles/references/project-manager/qa-trigger-matrix.md +7 -5
- package/harness-skills/mstar-roles/references/project-manager/qc-and-residuals.md +2 -2
- package/harness-skills/mstar-roles/references/project-manager/routing-and-dev-allocation.md +2 -2
- package/harness-skills/mstar-roles/references/project-manager.md +2 -2
- package/harness-skills/mstar-roles/references/qa-engineer/acceptance-gate.md +12 -13
- package/harness-skills/mstar-roles/references/qa-engineer.md +5 -4
- package/harness-skills/mstar-roles/references/qc-specialist/deep-review-lenses.md +5 -5
- package/harness-skills/mstar-roles/references/qc-specialist/report-template.md +2 -0
- package/harness-skills/mstar-roles/references/qc-specialist/reviewer-checklist.md +1 -1
- package/harness-skills/mstar-roles/references/qc-specialist/reviewer-workflow.md +5 -4
- package/harness-skills/mstar-roles/references/qc-specialist-shared.md +3 -1
- package/harness-skills/mstar-sdd/SKILL.md +16 -10
- package/harness-skills/mstar-sdd/references/file-handoffs.md +40 -20
- package/harness-skills/mstar-sdd/references/implementer-continuation-prompt.md +9 -4
- package/harness-skills/mstar-sdd/references/implementer-prompt.md +11 -6
- package/harness-skills/mstar-sdd/references/sticky-implementer-session.md +4 -2
- package/harness-skills/mstar-sdd/references/task-reviewer-prompt.md +8 -4
- package/package.json +1 -1
|
@@ -97,10 +97,10 @@ Harness **dispatch** on Kimi = **one or more `Agent` tool calls** with correct *
|
|
|
97
97
|
|
|
98
98
|
Cannot emit required **N** → **`Blocked`**.
|
|
99
99
|
|
|
100
|
-
### SDD implement
|
|
100
|
+
### SDD implement
|
|
101
101
|
|
|
102
|
-
- **`Execution mode: sdd`**: one implementer **`Agent`** per task id; task reviewer = new **`Agent`** with **Act as `code-reviewer`** (Kimi L2 review; not qc-specialist*), always via generic fallback `subagent_type: "coder"` per C5 — no sticky resume unless host adds it later.
|
|
103
|
-
-
|
|
102
|
+
- **`Execution mode: sdd`**: one implementer **`Agent`** per task id; task reviewer = new **`Agent`** with **Act as `code-reviewer`** (Kimi L2 review; not qc-specialist*), always via generic fallback `subagent_type: "coder"` per C5 — no sticky resume unless host adds it later. Ready-task scheduling → **`parallel-dispatch.md`** § SDD implement.
|
|
103
|
+
- Independent ready implementers use isolated parallel tracks; never share a writable worktree or session.
|
|
104
104
|
|
|
105
105
|
## Clarify
|
|
106
106
|
|
|
@@ -188,10 +188,10 @@ Harness **dispatch** on omp = **one or more `task` tool calls** with correct **`
|
|
|
188
188
|
|
|
189
189
|
Cannot emit required **N** → **`Blocked`**.
|
|
190
190
|
|
|
191
|
-
### SDD implement
|
|
191
|
+
### SDD implement
|
|
192
192
|
|
|
193
|
-
- **`Execution mode: sdd`**: one implementer `task` entry per task id with `agent` matching the implementer role when listed; task reviewer = new entry with `agent: "code-reviewer"` (omp L2 review; not qc-specialist*) or `agent: "reviewer"`/`"task"` as fallback + C5b — no sticky resume unless host resume/id is available and recorded.
|
|
194
|
-
-
|
|
193
|
+
- **`Execution mode: sdd`**: one implementer `task` entry per task id with `agent` matching the implementer role when listed; task reviewer = new entry with `agent: "code-reviewer"` (omp L2 review; not qc-specialist*) or `agent: "reviewer"`/`"task"` as fallback + C5b — no sticky resume unless host resume/id is available and recorded. Ready-task scheduling → **`parallel-dispatch.md`** § SDD implement.
|
|
194
|
+
- Independent ready implementers use isolated parallel tracks; never share a writable worktree or session.
|
|
195
195
|
|
|
196
196
|
## Clarify
|
|
197
197
|
|
|
@@ -46,16 +46,16 @@ Formal iteration Phase 2 uses the same SDD + tri rule — not a separate carve-o
|
|
|
46
46
|
|
|
47
47
|
(**SDD 默认**已在上一节;本节仅覆盖显式 tri 的非 SDD 场景。)
|
|
48
48
|
|
|
49
|
-
## SDD implement
|
|
49
|
+
## SDD implement
|
|
50
50
|
|
|
51
|
-
- **`
|
|
52
|
-
-
|
|
53
|
-
-
|
|
51
|
+
- Follow **`mstar-sdd`** § Ready-task scheduling: independent ready tasks run concurrently after per-track worktree and artifact isolation; fresh implementers, one fresh reviewer per task.
|
|
52
|
+
- Serialize only actual dependencies, overlapping writers, one sticky session, and integration merges. PM alone updates shared progress.
|
|
53
|
+
- When the host only exposes separate asynchronous starts, issue every ready call before waiting for any result; same-message packaging is required only when supported.
|
|
54
54
|
|
|
55
55
|
## QC targeted re-review (after fixes)
|
|
56
56
|
|
|
57
57
|
- Assignment: **`QC re-review: targeted — reviewers: <role-ids>`** → **N** = listed seats only (1–3), **one** dispatch turn with **N** invocations.
|
|
58
|
-
- Do **not** default to three invocations after a routine fix round.
|
|
58
|
+
- Do **not** default to three invocations after a routine fix round. Each listed seat receives only its findings and fix delta; tri seat count never expands review scope.
|
|
59
59
|
- Post-dispatch: verify only **dispatched** seats returned; PM updates same bundle `qc-consolidated.md` and durable plan summary (see `mstar-artifacts/references/plan-files-and-reports.md`).
|
|
60
60
|
|
|
61
61
|
## Self-check before send
|
|
@@ -65,4 +65,4 @@ Formal iteration Phase 2 uses the same SDD + tri rule — not a separate carve-o
|
|
|
65
65
|
3. Dispatch message contains **exactly `N`** invocation calls?
|
|
66
66
|
4. **Each** invocation carries its role-binding field set to **`Execute as`** (omp `agent` / Cursor `subagent_type` / OpenCode `subagent` / Kimi·ZCode `subagent_type`)? A bare `task`/prompt item with no role field = **incomplete**, even at **N=1**.
|
|
67
67
|
5. QC initial: **`Execution mode: sdd`** → **N=3**? **`inline`** → **N=1**? Targeted re-review → **N** = Assignment reviewer count?
|
|
68
|
-
6. SDD implement →
|
|
68
|
+
6. SDD implement → independent ready tasks isolated and concurrent? Sticky resume limited to one sequential owner track?
|
|
@@ -67,7 +67,7 @@ ZCode C5/C5b SSOT is **this file** — do **not** load `_shared/host-role-bindin
|
|
|
67
67
|
3. **Skill load list** — instruct the subagent to read `mstar-roles` → `references/<role-id>.md` (or shared reference + parameters) and topic skills per that reference.
|
|
68
68
|
4. **`subagent_type`** — bare Morning Star role id per C5; `general-purpose` fallback.
|
|
69
69
|
|
|
70
|
-
Paste-only Assignment **without** an invoke call is **not** dispatch. Anti-recursion NEVER: leaf executors are already `Execute as` — no recursive invoke of the same role; Assignment wins (`Delegation: forbidden` unless stated).
|
|
70
|
+
Paste-only Assignment **without** an invoke call is **not** dispatch. Anti-recursion NEVER: leaf executors are already `Execute as` — no recursive invoke of the same role; Assignment wins (`Delegation: forbidden` unless stated). Independent ready implementers may run concurrently after isolation; scheduling → **`parallel-dispatch.md`** § SDD implement.
|
|
71
71
|
|
|
72
72
|
ZCode invoke shape (same turn):
|
|
73
73
|
|
|
@@ -119,10 +119,10 @@ Harness **dispatch** on ZCode = **one or more `Agent` tool calls** with correct
|
|
|
119
119
|
|
|
120
120
|
Cannot emit required **N** → **`Blocked`**.
|
|
121
121
|
|
|
122
|
-
### SDD implement
|
|
122
|
+
### SDD implement
|
|
123
123
|
|
|
124
|
-
- **`Execution mode: sdd`**: one implementer **`Agent`** per task id (bare role id per C5, `general-purpose` fallback); task reviewer = new **`Agent`** with **Act as `code-reviewer`** (`subagent_type: "code-reviewer"`, `general-purpose` fallback; ZCode L2 review; not qc-specialist*), always with C5b prompt binding — no sticky resume unless host adds it later.
|
|
125
|
-
-
|
|
124
|
+
- **`Execution mode: sdd`**: one implementer **`Agent`** per task id (bare role id per C5, `general-purpose` fallback); task reviewer = new **`Agent`** with **Act as `code-reviewer`** (`subagent_type: "code-reviewer"`, `general-purpose` fallback; ZCode L2 review; not qc-specialist*), always with C5b prompt binding — no sticky resume unless host adds it later. Ready-task scheduling → **`parallel-dispatch.md`** § SDD implement.
|
|
125
|
+
- Independent ready implementers use isolated parallel tracks; never share a writable worktree or session.
|
|
126
126
|
|
|
127
127
|
## Clarify
|
|
128
128
|
|
|
@@ -81,7 +81,7 @@ Phase 5: PR merge-ready loop —— 至 mergeable + CI 全绿 + reviews resolved
|
|
|
81
81
|
- 未知 → 读 `mstar-*`;仅 **`Blocked`**、secrets、不可逆范围缺口、branch metadata 缺失、或 Phase 5 多轮仍 blocked 时升级用户
|
|
82
82
|
- 实际 Git ≠ `working_branch` → **同轮**更新 plan + snapshot + `execution_lease.working_branch`(如适用)
|
|
83
83
|
- **跨 plan implement 并行安全闸**与 **integration merge 串行** → `references/phase-2-worktree-lease.md` §2.0 #5 /「Multi-plan parallelism」(**无论** `Worktree mode: waived`)
|
|
84
|
-
- plan 内 SDD
|
|
84
|
+
- plan 内 SDD 独立 ready tasks **并行**,真实依赖与共享写目标串行 — phase-2 reference §2.4、§2.5、`mstar-sdd` Ready-task scheduling
|
|
85
85
|
- **zero-residual(默认)**:单 plan QC findings 尽量当轮清干净;仅真 blocker 才 defer(须 Durable Roadmap)— 见 **`mstar-artifacts`** Findings cleanup modes
|
|
86
86
|
- iteration 命令共享的 PM invariants / preflight / todos / STOP → **`references/command-shared-invariants.md`**
|
|
87
87
|
|
|
@@ -145,10 +145,10 @@ Phase 1 与 §1.6 须遵守 **`references/iteration-artifact-boundaries.md`**(
|
|
|
145
145
|
派发机制 → **`mstar-dispatch-gates`**(specialist review-and-edit dispatch,**顺序链**)。PM **不得**将迭代 harness 文档 commit 到 `spec_integration_branch`,直到:
|
|
146
146
|
|
|
147
147
|
1. **product-manager** → **architect** → **writing-specialist** 已按序 invoke 编辑 compass、plans、`{SPECS_DIR}/` 与 **`{ITERATION_DIR}/<iteration-id>/`** package(guides/specs,按需);**不得**在 start 链向 `{KNOWLEDGE_DIR}/` 新增
|
|
148
|
-
2. **writing-specialist** 完成 **corpus hygiene
|
|
148
|
+
2. **writing-specialist** 完成 **corpus hygiene**:仅本轮修改的 `{SPECS_DIR}/` / iteration package 与直接相关 knowledge 引用;错放迁回 **`<iteration-id>/`** package;细则 → **`iteration-corpus-hygiene.md`**、**`iteration-artifact-boundaries.md`**
|
|
149
149
|
3. PM 将 compass `status` 设为 `locked`,并确认各 plan 的 Prepare gate(specify / clarify / plan)
|
|
150
150
|
|
|
151
|
-
**顺序理由**:产品范围与优先级 → 架构与长期契约(specs)→
|
|
151
|
+
**顺序理由**:产品范围与优先级 → 架构与长期契约(specs)→ 行文、规格库卫生与错放纠正(在 PM/architect 定稿后核对受影响文档)。本共享产物链存在真实依赖;独立文档可按 ownership 隔离并行。早期全局探索的既有结果复用,不因每次编辑重新扫全库。OpenCode:plain role id — **`mstar-host/references/opencode.md`** § Role-mention hygiene。
|
|
152
152
|
|
|
153
153
|
**完成证据** = 磁盘上的 compass / plans / specs / iteration 文档修订 + specs(与既有 knowledge)卫生/归档(如有)+ 索引与 metadata 更新 + compass `status: locked`。**不**要求单独的迭代审查报告——迭代审查的 SSOT 是被编辑的文档本身,无 per-plan QC 式审计链。
|
|
154
154
|
|
|
@@ -149,14 +149,14 @@ mismatch → **STOP**.
|
|
|
149
149
|
2. **Plan start — feature worktree + branch**:创建/校验 dedicated feature worktree(默认 `<repoRoot>/.worktrees/<plan-id>-<slug>`);Assignment 须含绝对 `Worktree path` + `Working branch`(与 lease 一致)。plan 内多可写并行轨 → **`mstar-branch-worktree`** **`references/parallel-writable-pre-dispatch.md`**
|
|
150
150
|
3. **Implement → InReview**(产品编辑在 feature worktree;plans / snapshot / iterations / SDD 经 control 绝对路径):
|
|
151
151
|
- **默认 `Execution mode: sdd`**(多 task plan;hotfix 可 `inline`)。
|
|
152
|
-
- PM 载入 **`mstar-sdd`**
|
|
152
|
+
- PM 载入 **`mstar-sdd`** 后,按依赖与 ownership 派发 **独立 ready tasks 并行** 的 per-task 循环(**不是**一次派发 dev 做全部 tasks):
|
|
153
153
|
1. `mstar sdd workspace <plan-id>` → `{SDD_DIR}`
|
|
154
154
|
2. `mstar sdd task-brief <plan-file> N` → `{SDD_DIR}/task-N-brief.md`;记录 `BASE_SHA`
|
|
155
155
|
3. Dispatch **one** implementer subagent(`references/implementer-prompt.md`:brief 路径 + report 路径 + `Model tier`;**禁止**贴整份 plan)
|
|
156
156
|
4. Implementer `DONE` → `mstar sdd review-package BASE HEAD` → task diff 文件
|
|
157
157
|
5. Dispatch **one** task reviewer subagent(brief + report + diff + Global Constraints)
|
|
158
158
|
6. Fix loop 直至 review clean;append `{SDD_DIR}/progress.md`;更新 snapshot plan 行 / plan checkbox
|
|
159
|
-
7.
|
|
159
|
+
7. 放行已满足依赖的 next task;不等待无依赖任务,PM 独占共享 progress / snapshot 写入
|
|
160
160
|
- 每次 Completion Report 后更新 snapshot(`workflows/<id>/snapshot.json`)+ 主 plan
|
|
161
161
|
4. **QC → QA gate**(plan 保持 **`InReview`**;**保留** `execution_lease`):per-plan 审查链 → **`mstar-sdd`**(L1–L2)+ **`mstar-review-qc/references/review-responsibility-boundaries.md`**(L3 tri / inline 单席;raw reports in `{SDD_DIR}/review/`,durable summary in main plan/snapshot)+ **`QA gate`**(`mandatory` → `qa-engineer`;`pm-acceptance` → PM checklist)。**禁止**在 integration merge 成功前设 `Done` 或删除 `execution_lease`。
|
|
162
162
|
5. **Plan complete — serial merge back**(§2.0 #5 未 waive):自 **control worktree** claim/resume snapshot 顶层 `integration_merge_lease` → 将 plan feature branch 合并入 `spec_integration_branch`(仅 merge-lease holder;细则 → 下方「Integration merge lease」)→ 记录 merge commit 证据 → 释放 merge lease;**同轮**设 `Done` 并删除 `execution_lease`。merge 失败:保持 `InReview` + 保留 lease,不得标 `Done`。
|
|
@@ -177,7 +177,7 @@ mismatch → **STOP**.
|
|
|
177
177
|
|
|
178
178
|
| 规则 | 说明 |
|
|
179
179
|
|------|------|
|
|
180
|
-
|
|
|
180
|
+
| 并行 | 独立 ready tasks 各自 fresh implementer + 隔离 worktree;单一 canonical per-plan SDD root 内分离 task artifact 路径,context/progress 仅 PM 串行写;leaf 直接消费不可变绝对路径,不调用共享 context helper;每 task 后一位 fresh reviewer;真实依赖与 merge 串行(`mstar-sdd`) |
|
|
181
181
|
| Sticky(可选) | Assignment **`SDD implementer session: sticky`** + `implementer-session.json`;implementer **resume**,reviewer **fresh** — `mstar-sdd/references/sticky-implementer-session.md` |
|
|
182
182
|
| 文件交接 | brief / report / diff / `progress.md` 在 `{SDD_DIR}`;dispatch prompt **只给路径**,不贴 plan 全文或 task 历史 |
|
|
183
183
|
| Assignment 字段 | 每个 implement dispatch 须含 `Execution mode: sdd`、`SDD dir`、`Model tier`;§2.0 #5 未 waive 时还须含绝对 `Worktree path` + verified `execution_lease`;**禁止**省略 `Model tier` |
|
|
@@ -13,16 +13,16 @@ description: "Morning Star QC orchestration — **SDD mandatory plan QC tri-revi
|
|
|
13
13
|
|
|
14
14
|
## L3 是什么(派发前对齐)
|
|
15
15
|
|
|
16
|
-
- Plan QC seats are **reviewers**:
|
|
16
|
+
- Plan QC seats are **reviewers**: assigned changed **diff / logic / risk** lenses and directly affected interfaces — same family as PR review, not a parallel QA test lane.
|
|
17
17
|
- **Do not** instruct QC in Assignment to “run the suite / build / lint to confirm” on shared tri cwd; that causes peer `Blocked` and collapses L3 into L4.
|
|
18
|
-
- Runtime proof stays with **implementer evidence** and **`QA gate`** (`
|
|
18
|
+
- Runtime proof stays with scoped **implementer evidence** and **`QA gate`** (targeted unit evidence only). `full tri-review` describes seats, not full-repository review. Scope SSOT → **`mstar-harness-core`** § 定向执行与验证边界; QC never broadens exploration or repeats unchanged L2 evidence.
|
|
19
19
|
|
|
20
20
|
## 分派时机(与 plan / batch 对齐)
|
|
21
21
|
|
|
22
22
|
- **`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。
|
|
23
23
|
- **`Execution mode: inline`**:单席 `qc-specialist` → `{SDD_DIR}/review/qc.md`(**N=1**),或按 hotfix 路由跳过。
|
|
24
24
|
- **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-artifacts/references/plan-files-and-reports.md`** § QC 三审触发时机.
|
|
25
|
-
- **
|
|
25
|
+
- **Three-seat re-review**:only when all three seats have affected findings. `QC re-review: full tri-review` denotes seat count, never broader scope; each seat still checks its findings and fix delta. New wave basenames may distinguish reports, but do not reopen unchanged review coverage.
|
|
26
26
|
|
|
27
27
|
> **Engine check (when available):** run `mstar review seats <assignment-file> [--mode sdd|inline|targeted] [--reviewers <role1,role2,...>]` (or `import { executionModeToN, assertTriIdentity } from "@mstar-harness/engine"` in a host hook) to map `Execution mode` to its QC seat count N above and assert tri identity. On `fail` -> do not proceed; fix and re-run. Skill text below remains authoritative when the runtime is absent.
|
|
28
28
|
|
|
@@ -55,7 +55,7 @@ Leaf reviewers apply verdict per **`mstar-roles/references/qc-specialist/report-
|
|
|
55
55
|
|
|
56
56
|
### 覆盖语义(未提及 = 未审查)
|
|
57
57
|
|
|
58
|
-
- **未提及 = 未审查**:某 finding / severity 项 / 声明未被任何席位报告提及 → 不得在汇总中标记为已解决或通过;如实标注 `unreviewed
|
|
58
|
+
- **未提及 = 未审查**:某 finding / severity 项 / 声明未被任何席位报告提及 → 不得在汇总中标记为已解决或通过;如实标注 `unreviewed`,仅对受影响项按需转 targeted re-review 或补充席位;不据此重审无关内容。
|
|
59
59
|
- **汇总层零注入**:consolidated 中每条发现可溯源到某 `qcN.md`;PM 不得在汇总层引入席位报告之外的新声明(PM 自身观察走独立 Status Update,不混入 gate 决策输入)。
|
|
60
60
|
- **Unconfirmed 传导**:任一席位 verdict = `Unconfirmed`(`report-template.md` 定义的证据通道失败态)→ gate 决策不得为 `Approve`——先补证据(重发 review-package / 修 diff 基线)再收敛;受影响席位走既有 targeted re-review 机制(同 `qcN.md` `## Revalidation` 原位更新 verdict),不新增 re-review 形态、不改 N 规则。
|
|
61
61
|
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
| Layer | Who | When | Scope | Input |
|
|
6
6
|
|-------|-----|------|-------|--------|
|
|
7
|
-
| **L1** Implementer | dev subagent | Per task | Write code +
|
|
7
|
+
| **L1** Implementer | dev subagent | Per task | Write code + affected unit evidence; non-executable docs/policy may use `scoped-check` | `task-N-brief.md` |
|
|
8
8
|
| **L2** Task reviewer | `code-reviewer` (default; generic fallback when the host agent list lacks it) — PM-dispatched subagent (SDD) | Per task, after implementer | Spec + quality for **one task** (diff-first; no full suite) | brief, report, **task-level** diff |
|
|
9
|
-
| **L3** Plan QC tri (cross-review) | `qc-specialist` + `qc-specialist-2` + `qc-specialist-3` | After **all** tasks on branch | **Code-review seat** — diff, language/logic, security & contract lenses on **
|
|
10
|
-
| **L4** QA | `qa-engineer` when **`QA gate: mandatory`**; else PM acceptance | After QC gate | DoD acceptance, residual verify,
|
|
9
|
+
| **L3** Plan QC tri (cross-review) | `qc-specialist` + `qc-specialist-2` + `qc-specialist-3` | After **all** tasks on branch | **Code-review seat** — diff, language/logic, security & contract lenses on **the assigned change and directly affected interfaces**; **not** the test-execution path | Branch `review-package` MERGE_BASE..HEAD |
|
|
10
|
+
| **L4** QA | `qa-engineer` when **`QA gate: mandatory`**; else PM acceptance | After QC gate | DoD acceptance, residual verify, named affected **unit-test** verification only, Done recommendation | Review bundle + plan + **L1 evidence** + `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
|
|
|
@@ -18,15 +18,17 @@ PM sets **`QA gate`** per `mstar-roles/references/project-manager/qa-trigger-mat
|
|
|
18
18
|
| Produce runnable test/build evidence | **L1** implementer | **Does not** own |
|
|
19
19
|
| Diff / logic / vulnerability / contract review | **L3** QC (and L2 task reviewer) | **Primary job** |
|
|
20
20
|
| Map DoD → evidence; re-run gaps; close residuals | **L4** QA (or PM acceptance) | **Does not** own |
|
|
21
|
-
|
|
|
21
|
+
| Affected unit tests / evidence gaps | **L1** and/or **L4** | **NEVER** — consume evidence |
|
|
22
|
+
| Explicitly user-authorized full local suite | Separate bounded action by implementer/ops; core authorization contract | **NEVER** |
|
|
23
|
+
| Real browser / device / E2E | Explicit independent **`mstar-e2e`** workflow; ops executor | **NEVER**; not an L4 gate |
|
|
22
24
|
|
|
23
25
|
**Why:** SDD plan QC is **N=3 parallel** on a **shared** `Review cwd`. Build/test/lint toolchains contend for caches and locks and falsely `Blocked` peer reviewers. QC is a **reviewer**, not a second QA lane.
|
|
24
26
|
|
|
25
|
-
**SDD rule:** Layers L1–L2 run **per task
|
|
27
|
+
**SDD rule:** Layers L1–L2 run **per task**; independent ready tasks use isolated parallel tracks (`mstar-sdd` § Ready-task scheduling). Layer L3 is **mandatory full tri-review** (`N=3`) whenever **`Execution mode: sdd`** — single-plan **and** iteration **and** multi-plan iteration. Layer L3 is **not** optional “final single review”.
|
|
26
28
|
|
|
27
29
|
**Non-SDD (`Execution mode: inline`):** hotfix / single-stream — plan QC may be **single-seat** (`qc.md`) or skipped per PM routing.
|
|
28
30
|
|
|
29
|
-
Per-task spec/quality is **done** in L2 before L3. QC seats do not re-derive each task from scratch; they
|
|
31
|
+
Per-task spec/quality is **done** in L2 before L3. QC seats do not re-derive each task from scratch; they review changed cross-task interfaces for gaps L2 could not see. Full tri denotes three seats, not full scope; do not repeat unchanged L2 work or survey the repository.
|
|
30
32
|
|
|
31
33
|
## Plan QC tri (SDD mandatory)
|
|
32
34
|
|
|
@@ -47,7 +49,7 @@ Per-task spec/quality is **done** in L2 before L3. QC seats do not re-derive eac
|
|
|
47
49
|
| After | Fix dispatch |
|
|
48
50
|
|-------|----------------|
|
|
49
51
|
| Task review Critical/Important | Task fix subagent → task re-review (L2) |
|
|
50
|
-
| Plan QC Critical/Important |
|
|
52
|
+
| Plan QC Critical/Important | Owned fix assignments, independent ones in parallel; PM retains complete ledger → **targeted** QC re-review (listed seats) |
|
|
51
53
|
|
|
52
54
|
## Minor findings
|
|
53
55
|
|
|
@@ -103,3 +103,5 @@ PM consolidated (tri mode): `{SDD_DIR}/review/qc-consolidated.md` (same folder;
|
|
|
103
103
|
|
|
104
104
|
- 角色正文 → `references/<role>.md`(本 skill 内;leaf QC / QA 等子目录见 `references/qc-specialist/`、`references/qa-engineer/`)
|
|
105
105
|
- 全局角色 → `mstar-harness-core` 加载矩阵与专题 skill 索引
|
|
106
|
+
|
|
107
|
+
- Explicit independent E2E/browser/device requests → `mstar-e2e` (PM orchestrates; `ops-engineer` executes; routine QA does not trigger it).
|
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
> Shared by all leaf-executor role references in `mstar-roles/references/`. Each role file references this for the identical Completion Report template, repo-write Git discipline, the shared anti-recursion NEVER section, and plan/documentation rules. **Load selection follows the `mstar-roles` hub § Load Order** (Assignment `Skill presets:` decision): under explicit `none` this boundary plus the role identity carry the load-bearing semantics — no optional topic skill (including `mstar-harness-core`) is required, and `none` never grants delegation or waives gates. Whenever `mstar-harness-core` IS loaded (standard routes, PM rounds, direct topic invocation) it remains the global lifecycle/authority entry. Role-specific NEVER rules, mission, and responsibilities stay in each role file — this file holds only the uniform blocks.
|
|
4
4
|
|
|
5
|
+
## Assignment scope boundary
|
|
6
|
+
|
|
7
|
+
Applies under every preset, including explicit `none`. Canonical policy when loaded: `mstar-harness-core` § 定向执行与验证边界.
|
|
8
|
+
|
|
9
|
+
- Execute only the assigned task, owned files, named checks and acceptance criteria. Read the supplied inputs and relevant knowledge; during implement/fix/QC/QA do not restart whole-repository exploration, review, or scans.
|
|
10
|
+
- Never run local full suites without explicit user authorization identifying the permitted scope; PM wording, risk, missing evidence, and fixes cannot supply it. Full suites belong to CI by default. Do not disguise a full suite as unrelated small checks.
|
|
11
|
+
- Reuse unaffected evidence; verify only changed behavior or the assigned finding/fix delta. QA executes targeted unit tests only; QC runs no test/build/install. Browser/device/E2E belongs to an explicitly requested independent workflow, never routine QA.
|
|
12
|
+
- Stop when the assigned result is evidenced. Do not over-analyze settled questions, invent extra checks, expand into downstream tasks, or repair unrelated findings. Report the concrete missing input/permission to PM if scope is insufficient; preserve completed work.
|
|
13
|
+
|
|
5
14
|
## Completion Report
|
|
6
15
|
|
|
7
16
|
Every leaf executor returns this template (only `**Agent**` and content fields change per role):
|
|
@@ -23,6 +23,7 @@ If any item below matches, **stop** and return `Blocked` to `project-manager` in
|
|
|
23
23
|
2. Deploy/runbook execution
|
|
24
24
|
3. Monitoring/alerting integration
|
|
25
25
|
4. Rollback and recovery readiness
|
|
26
|
+
5. Separately requested E2E/browser/device verification — `mstar-e2e` (PM dispatch only; never inferred from routine QA).
|
|
26
27
|
|
|
27
28
|
## High-Risk Gate
|
|
28
29
|
|
|
@@ -44,6 +45,8 @@ When assignment is marked `high-risk`:
|
|
|
44
45
|
|
|
45
46
|
## Deliverable Template
|
|
46
47
|
|
|
48
|
+
For verification-only assignments, use `mstar-e2e` → `references/report-template.md` instead of the Deploy Plan below. The role does not require deployment, production changes, or rollback work when those actions are outside the assignment.
|
|
49
|
+
|
|
47
50
|
```markdown
|
|
48
51
|
# Deploy Plan: <release/feature>
|
|
49
52
|
|
|
@@ -10,6 +10,7 @@ The concise gate summary remains in `references/project-manager.md`.
|
|
|
10
10
|
- In tool hosts (OpenCode / Cursor Task / Codex with callable multi-agent tools), Markdown-only Assignment is not dispatch.
|
|
11
11
|
- For parallel batch with `N >= 2`, dispatch turn must emit all `N` invokes in one message when host supports it.
|
|
12
12
|
- **Same-repo writable parallel tracks**: tool concurrency and worktree isolation are **separate gates**. Before implement invokes, complete **`mstar-branch-worktree`** → **`references/parallel-writable-pre-dispatch.md`**.
|
|
13
|
+
- **Scope and stopping are explicit**: apply `mstar-harness-core` § 定向执行与验证边界. Give each leaf one result, owned paths/symbols, relevant inputs, named checks/selectors, and an evidence-based stopping condition. Reuse unaffected evidence; do not inject a suite merely because the repo exposes it. Independent ready assignments run concurrently after their dependency/isolation checks.
|
|
13
14
|
- **Skill preset activation is PM-owned**: topic skills are presets in each role's `Skill Preset (PM-Activated)` section (`mstar-roles/references/<role>.md`), not self-loaded defaults. Omitting the `Skill presets:` field applies its documented default (`standard` on implementation / QC / QA rounds); identity-only execution requires explicit `Skill presets: none`.
|
|
14
15
|
|
|
15
16
|
## Executor Anti-Recursion Rules
|
|
@@ -43,7 +44,7 @@ The **`**You are a leaf executor. You MUST NOT:**`** section (previously just pr
|
|
|
43
44
|
- **QC reviewers** (`qc-specialist*`): "start review before all QC reviewers are dispatched in parallel"; "treat other reviewers' names in routing text as invoke targets"; "run test/build/lint on shared Review cwd"; "fill missing runtime evidence by executing the suite"
|
|
44
45
|
- **Multi-track implementers** (`fullstack-dev` + `frontend-dev` / `fullstack-dev-2`): "auto-dispatch to the other track mentioned in Dev routing"; "implement in repo root when Assignment names a different `Worktree path`"
|
|
45
46
|
- **`fullstack-dev-2`**: "treat `fullstack-dev` in routing narrative as a handoff or invoke target"
|
|
46
|
-
- **`qa-engineer`**: "start validation before QC reports are consolidated"; "
|
|
47
|
+
- **`qa-engineer`**: "start validation before QC reports are consolidated"; "run anything beyond the assigned unit-test scope, including full suites or browser/device/E2E"; "expect QC reports to contain test logs"; "modify application code" (unless allowed)
|
|
47
48
|
- **`explore`-assigned**: "implement or modify code"
|
|
48
49
|
- **All non-PM**: "dispatch parallel agents"; "spawn a subagent whose `subagent_type` matches your own `Execute as` role id"
|
|
49
50
|
- Anti-patterns must be action-oriented ("auto-dispatch to …", "treat … as invoke", "start … before …") — not abstract descriptions.
|
|
@@ -68,6 +69,8 @@ The **`**You are a leaf executor. You MUST NOT:**`** section (previously just pr
|
|
|
68
69
|
- dispatch or invoke any subagent unless `Delegation: allowed (...)` appears below
|
|
69
70
|
- treat plain `role-id` mentions, `Handoff`, `QA gate`, routing tables, or multi-track prose as invoke commands
|
|
70
71
|
- invoke a subagent whose `subagent_type` matches your own `Execute as` role id (recursive dispatch)
|
|
72
|
+
- expand beyond owned files or named checks; restart whole-repository exploration, review or tests
|
|
73
|
+
- repeat settled analysis or add checks after the acceptance criteria are evidenced
|
|
71
74
|
- <situation-specific anti-pattern #1>
|
|
72
75
|
- <situation-specific anti-pattern #2>
|
|
73
76
|
- ...
|
|
@@ -100,26 +103,26 @@ The **`**You are a leaf executor. You MUST NOT:**`** section (previously just pr
|
|
|
100
103
|
**Worktree path**: <absolute feature implementer path when L1/L2 isolation used; default `<repoRoot>/.worktrees/<plan-id>-<slug>` (L2 tracks: `<track-slug>`); must ≠ control_worktree_path>
|
|
101
104
|
**QA gate**: mandatory | pm-acceptance | report-only — see `references/project-manager/qa-trigger-matrix.md`
|
|
102
105
|
**QA gate reason**: <tier label, e.g. hotfix-inline | small-feature-clean-qc | mandatory-medium-feature>
|
|
103
|
-
**QA mode**: acceptance-only |
|
|
106
|
+
**QA mode**: acceptance-only | targeted | report-only | N/A — required when `QA gate: mandatory` or `report-only`
|
|
104
107
|
**Findings cleanup**: zero-residual | allow-residual — **default `zero-residual` on formal iteration Phase 2**; **default `allow-residual`** for standalone `/pm`, hotfix, `Execution mode: inline` (override via Assignment or `plans[].metadata.findings_cleanup`; SSOT → `mstar-artifacts` Findings cleanup modes)
|
|
105
108
|
**Why this agent**: <role-fit>
|
|
106
109
|
**PM Task Board coverage**: <task ids>
|
|
107
110
|
**Roadmap / deferred scope**: <required when staged, partial, or temporary; otherwise N/A>
|
|
108
|
-
**Task**: <concrete
|
|
111
|
+
**Task**: <one concrete deliverable and stopping result aligned with coverage>
|
|
109
112
|
**Checkpoint Comment Rule**: commit -> Completion Report -> PM Status Update -> next batch
|
|
110
113
|
**Why batching is safe**: <required when batching >=3 IDs>
|
|
111
114
|
**Scope**:
|
|
112
|
-
- In:
|
|
113
|
-
- Out:
|
|
114
|
-
**Inputs**:
|
|
115
|
+
- In: <owned files/symbols, directly affected interfaces; finding + fix delta for re-review>
|
|
116
|
+
- Out: <excluded work and specific boundary>
|
|
117
|
+
**Inputs**: <brief, diff, relevant knowledge, reusable evidence with original range>
|
|
115
118
|
**Deliverables**: ...
|
|
116
119
|
**Acceptance Criteria**:
|
|
117
120
|
- [ ] ...
|
|
118
121
|
**Evidence Required**:
|
|
119
|
-
- [ ]
|
|
120
|
-
- [ ] observable proof
|
|
122
|
+
- [ ] <AC → exact affected unit-test selector or scoped static check; expected result>
|
|
123
|
+
- [ ] <reused evidence + why unchanged, or new observable proof>
|
|
121
124
|
- [ ] commit proof
|
|
122
|
-
**Constraints**:
|
|
125
|
+
**Constraints**: <no scope expansion; no local full suite without referenced explicit user permission; QA unit-only; no spontaneous browser/device/E2E; stop on concrete missing inputs and return once acceptance is evidenced>
|
|
123
126
|
**Effort (agent-oriented)**: <XS/S/M/L/XL + session band>
|
|
124
127
|
**Orchestration Guard** (see `**You are a leaf executor. You MUST NOT:**` block at top for primary anti-patterns):
|
|
125
128
|
- No recursive same-role dispatch
|
|
@@ -10,11 +10,13 @@ Extension of `references/project-manager.md`. Use when choosing **`QA gate`** an
|
|
|
10
10
|
| | `pm-acceptance` | Do **not** dispatch QA; PM completes acceptance checklist and may mark `Done` |
|
|
11
11
|
| | `report-only` | Primary route is investigation/repro only; dispatch `qa-engineer` (QC tri may be skipped per rules) |
|
|
12
12
|
| **`QA mode`** | `acceptance-only` (default when QA dispatched) | Evidence reuse first; map plan DoD to **implementer / CI / prior QA** evidence (QC reports are review findings, not the test log) |
|
|
13
|
-
| | `
|
|
13
|
+
| | `targeted` | Run only specified affected unit tests for changed behavior or a concrete evidence gap |
|
|
14
14
|
| | `report-only` | No business-code changes unless explicitly allowed |
|
|
15
15
|
|
|
16
16
|
**Deprecated:** `QA note: skipped / self-check` — use **`QA gate: pm-acceptance`** plus **`QA gate reason: <tier>`**.
|
|
17
17
|
|
|
18
|
+
All modes keep QA execution **unit-only**. Scope/authorization → `mstar-harness-core` § 定向执行与验证边界. No `full` QA mode: user-authorized full suites go to a separate implementer/ops action; QA reuses its evidence. Real browser/device/E2E goes to separately requested `mstar-e2e`, not an iteration QA gate.
|
|
19
|
+
|
|
18
20
|
Set **`QA gate`** on the **first implement Assignment** (or plan frontmatter) and keep it consistent through QC closure unless scope/risk changes force an upgrade to `mandatory`.
|
|
19
21
|
|
|
20
22
|
## Trigger matrix (default)
|
|
@@ -26,11 +28,11 @@ Set **`QA gate`** on the **first implement Assignment** (or plan frontmatter) an
|
|
|
26
28
|
| Bug fix (RCA + regression scope; default route) | `mandatory` | `acceptance-only` |
|
|
27
29
|
| Medium / Large feature | `mandatory` | `acceptance-only` |
|
|
28
30
|
| `Approve with residuals` or any open R# in `status.json` | `mandatory` | `acceptance-only` (includes R# verify) |
|
|
29
|
-
| UI-visible change (`Task category: visual` or observable evidence gate) | `mandatory` | `acceptance-only` (
|
|
30
|
-
| High-risk ops | `mandatory` | `
|
|
31
|
+
| UI-visible change (`Task category: visual` or observable evidence gate) | `mandatory` | `acceptance-only` (unit evidence; record unverified UI behavior for independent E2E) |
|
|
32
|
+
| High-risk ops | `mandatory` | `acceptance-only` (reuse ops evidence; named unit-test gaps only) |
|
|
31
33
|
| QA report-only primary route | `report-only` | `report-only` |
|
|
32
34
|
| Product-docs-only / tech-spec-only (no runtime diff) | N/A | — |
|
|
33
|
-
| User
|
|
35
|
+
| User explicitly permits a local full suite | Preserve existing gate | QA consumes separately assigned implementer/ops evidence; permission does not authorize E2E |
|
|
34
36
|
|
|
35
37
|
**Upgrade rule:** If conditions change mid-round (e.g. QC becomes `Approve with residuals`, UI scope added, open R# registered), change `QA gate` from `pm-acceptance` to `mandatory` before `Done`.
|
|
36
38
|
|
|
@@ -41,7 +43,7 @@ Set **`QA gate`** on the **first implement Assignment** (or plan frontmatter) an
|
|
|
41
43
|
PM completes this in **Status Update** (or plan closure note). PM **does not** run bash tests or reproduction in the orchestration thread.
|
|
42
44
|
|
|
43
45
|
1. **QC verdict:** `{SDD_DIR}/review/qc-consolidated.md` or `{SDD_DIR}/review/qc.md` shows `Approve` with **Critical = 0** and **Warning = 0** (not `Approve with residuals`), and the main plan has a durable gate summary.
|
|
44
|
-
2. **DoD mapping:** Each plan Acceptance Criterion maps to **existing** evidence (dev Completion Report, SDD
|
|
46
|
+
2. **DoD mapping:** Each plan Acceptance Criterion maps to **existing** evidence (dev Completion Report, SDD test triple or applicable scoped-check, CI links; QC report for review verdict/findings only) — cite paths/commands, do not re-execute.
|
|
45
47
|
3. **Residuals:** `status.json` has **no open R#** for this `plan_id` (or documented waiver per `mstar-artifacts`).
|
|
46
48
|
4. **Checkout alignment:** `Working branch` and `Review range / Diff basis` match QC report verified lines.
|
|
47
49
|
5. **`QA gate reason`:** One line naming the tier (e.g. `hotfix-inline`, `small-feature-clean-qc`).
|
|
@@ -17,7 +17,7 @@ Use this reference when PM is dispatching QC, consolidating review verdicts, or
|
|
|
17
17
|
0. Pre-dispatch: read `mstar-review-qc`.
|
|
18
18
|
1. `review-package MERGE_BASE HEAD` → branch diff under `{SDD_DIR}/review/`.
|
|
19
19
|
2. Dispatch **three** QC seats in **one** message (**N=3**); alignment fields text-identical across reports and Assignment.
|
|
20
|
-
3. PM writes `{SDD_DIR}/review/qc-consolidated.md` + main plan durable summary; after fixes → targeted re-review
|
|
20
|
+
3. PM writes `{SDD_DIR}/review/qc-consolidated.md` + main plan durable summary; after fixes → targeted re-review of affected findings and fix delta; three seats only when all three have affected findings (new wave files do not broaden scope).
|
|
21
21
|
|
|
22
22
|
**NEVER** end an SDD plan with only a single final `qc-specialist` unless user override: `QC mode: single — override: <reason>`.
|
|
23
23
|
|
|
@@ -39,7 +39,7 @@ Use this reference when PM is dispatching QC, consolidating review verdicts, or
|
|
|
39
39
|
- **NEVER** under `Findings cleanup: zero-residual`, use `Approve with residuals` or open R# for fixable findings — fix-now + re-review; residual only for true blocker-defer + roadmap.
|
|
40
40
|
- **NEVER** drop residual tracking to chat-only when `Approve with residuals` applies.
|
|
41
41
|
- **NEVER** treat "two of three QC reports arrived" as sufficient — missing seat → `Blocked`.
|
|
42
|
-
- **NEVER** re-dispatch all three after routine fix when only one or two had blockers — **targeted re-review
|
|
42
|
+
- **NEVER** re-dispatch all three after routine fix when only one or two had blockers — **targeted re-review**; the `full tri-review` label changes seats, never the allowed delta.
|
|
43
43
|
- **NEVER** create `qc1-rev2.md` for **targeted** re-review; update original bundle `qcN.md` in place.
|
|
44
44
|
|
|
45
45
|
## Consolidated Decision Template
|
|
@@ -15,7 +15,7 @@ When multiple routes apply, set one `Primary` route in Assignment and treat othe
|
|
|
15
15
|
6. Bug fix
|
|
16
16
|
7. Refactor
|
|
17
17
|
8. Feature size bucket (large/medium/small)
|
|
18
|
-
9. User-visible UI/critical-flow evidence
|
|
18
|
+
9. User-visible UI/critical-flow unit evidence (additional gate); real browser/device/E2E requires an explicit independent `mstar-e2e` request, never an automatic iteration QA gate
|
|
19
19
|
|
|
20
20
|
## Size Heuristics
|
|
21
21
|
|
|
@@ -96,4 +96,4 @@ Document override as `Dev owner tie-break: single id — <reason>`.
|
|
|
96
96
|
- `Dev routing` matches task board ownership
|
|
97
97
|
- Parallel intent and branch/worktree policy align
|
|
98
98
|
- **`QA gate`** and **`QA gate reason`** set per `qa-trigger-matrix.md`
|
|
99
|
-
- If UI-visible changes: `QA gate: mandatory`
|
|
99
|
+
- If UI-visible changes: `QA gate: mandatory` with unit-evidence mapping per `qa-trigger-matrix.md`; record unverified real-environment behavior for a separately requested `mstar-e2e` workflow, not an iteration gate
|
|
@@ -124,7 +124,7 @@ If any item below matches, fix the dispatch/plan state or mark `Blocked`—do **
|
|
|
124
124
|
- **NEVER** dispatch same-repo **≥2 concurrent writable implement** tracks without **`references/parallel-writable-pre-dispatch.md`**(per-track worktree + absolute **`Worktree path`**;**N invokes ≠ isolation** — also `mstar-dispatch-gates` dual-gate table).
|
|
125
125
|
- **NEVER** point QC at a single dev worktree/`Review cwd` that cannot contain **all** claimed changes from parallel tracks until Git integration lands on one `Working branch` `HEAD` (`mstar-branch-worktree` QC/QA alignment).
|
|
126
126
|
- **NEVER** skip `qa-engineer` on `QA gate: report-only` primary routes—still dispatch with `QA mode: report-only`; QC skip rules are separate and explicit.
|
|
127
|
-
- **NEVER** use `QA gate: pm-acceptance`
|
|
127
|
+
- **NEVER** use `QA gate: pm-acceptance` outside the tiers in `qa-trigger-matrix.md` (open R# or unclean QC require QA). Missing real UI evidence is a separately requested `mstar-e2e` concern, not permission for iteration QA to run browser/device tests.
|
|
128
128
|
- **NEVER** mark plan `Done` on runtime/behavior change without `QA gate: mandatory` fulfilled or completed PM acceptance checklist (`qa-trigger-matrix.md`).
|
|
129
129
|
- **NEVER** run tests/repro in the PM orchestration thread to substitute for `QA gate: mandatory` dispatch.
|
|
130
130
|
- **NEVER** let non-PM/non-QA roles mark plan `Done`.
|
|
@@ -257,7 +257,7 @@ PM must:
|
|
|
257
257
|
|
|
258
258
|
- Dispatch QC with aligned scope fields
|
|
259
259
|
- Consolidate to one gate verdict
|
|
260
|
-
- Assign fixes; default **targeted QC re-review** (same `{SDD_DIR}/review/qcN.md`)
|
|
260
|
+
- Assign fixes; default **targeted QC re-review** by the owning seat (same `{SDD_DIR}/review/qcN.md`), limited to its findings, fix delta and direct contracts. `QC re-review: full tri-review` changes seat count only, not review scope (`mstar-harness-core` § 定向执行与验证边界).
|
|
261
261
|
- Record non-blocking leftovers as residual findings
|
|
262
262
|
- Keep open vs archived residual state coherent at closure
|
|
263
263
|
- Sync plan/status in the same coordination round
|
|
@@ -11,8 +11,8 @@ Layer **L4** runs after the QC gate. **`QA gate: pm-acceptance`** is PM-only —
|
|
|
11
11
|
| L3 Plan QC (`qc-specialist*`) | L4 QA (`qa-engineer`) |
|
|
12
12
|
| --- | --- |
|
|
13
13
|
| **Code review** — independent lenses on branch **diff** (logic, security, contracts) | Acceptance against plan DoD + review bundle + **L1** evidence |
|
|
14
|
-
| Find defects in source; `Request Changes` / residual registration via PM | Verify fixes, R# lifecycle, run **targeted
|
|
15
|
-
| **Does not** run test/build suites (shared tri worktree) | May run
|
|
14
|
+
| Find defects in source; `Request Changes` / residual registration via PM | Verify fixes, R# lifecycle, run only assigned **targeted unit tests** when needed, Done recommendation |
|
|
15
|
+
| **Does not** run test/build suites (shared tri worktree) | May run named unit-test checks; default **reuse L1 / prior QA evidence** |
|
|
16
16
|
|
|
17
17
|
**Do not collapse L4 into L3.** QC reviewers do not close residuals, mark plan `Done`, or produce the runtime test log that acceptance depends on — that is L1 (implement) and/or L4 (QA).
|
|
18
18
|
|
|
@@ -21,26 +21,25 @@ Layer **L4** runs after the QC gate. **`QA gate: pm-acceptance`** is PM-only —
|
|
|
21
21
|
| `QA mode` | When | Behavior |
|
|
22
22
|
| --- | --- | --- |
|
|
23
23
|
| **`acceptance-only`** (default) | Most `mandatory` dispatches | Map DoD to **dev Completion Report / SDD TDD / CI** evidence; re-run only gaps listed below |
|
|
24
|
-
| **`
|
|
25
|
-
| **`report-only`** | `QA gate: report-only` | Structured findings; no business-code edits unless allowed |
|
|
24
|
+
| **`targeted`** | A specific changed behavior or unit-test evidence gap | Run only named affected unit-test files/cases/selectors |
|
|
25
|
+
| **`report-only`** | `QA gate: report-only` | Structured findings within assigned evidence/unit-test scope; no business-code edits unless allowed |
|
|
26
26
|
|
|
27
27
|
## Evidence reuse first (`acceptance-only`)
|
|
28
28
|
|
|
29
29
|
When **`QA mode: acceptance-only`**:
|
|
30
30
|
|
|
31
|
-
1. Read implementer Completion Report(s) / SDD
|
|
32
|
-
2. If **L1** (or prior QA) already provides
|
|
31
|
+
1. Read implementer Completion Report(s) / SDD verification evidence and relevant CI links. Map each item to **`Review range / Diff basis`**; older-range evidence is reusable when its covered behavior remains unchanged, with the original range and applicability reason recorded. Read QC consolidated (or `qc.md`) for **findings and “Needs L4/QA verification”** notes — **not** as a substitute test log (QC is diff review).
|
|
32
|
+
2. If **L1** (or prior QA/CI) already provides reproducible relevant evidence → **verify mapping** to plan Acceptance Criteria; do not re-execute covered checks. Non-executable docs/policy may supply `scoped-check` evidence (`mstar-sdd/references/file-handoffs.md`), not a fabricated test log.
|
|
33
33
|
3. Document in Completion Report **Validation**: which ACs are covered by reused evidence vs newly executed checks.
|
|
34
34
|
|
|
35
|
-
##
|
|
35
|
+
## Fill only the affected gap
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
Scope authority → `mstar-harness-core` § 定向执行与验证边界. All QA modes remain unit-only; a mode, risk level or absent evidence does not grant wider execution.
|
|
38
38
|
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
43
|
-
- Open R# marked resolved this round — verify each with targeted repro/tests
|
|
39
|
+
- Missing behavior-critical evidence: name the uncovered AC and its targeted unit-test check; run only that assigned check, or return the concrete gap to PM if it is not specified.
|
|
40
|
+
- A fix or changed `Review range`: invalidate only evidence affected by the fix; preserve the rest. Resolved R# items need only their corresponding unit-test evidence or scoped documentation/policy evidence.
|
|
41
|
+
- Missing screenshot or other real-environment evidence: record the unverified behavior and a pending independent E2E request for PM. Never launch a browser/device/E2E, change roles, or block/reopen routine iteration QA solely for that separate workflow. Unit acceptance cannot claim real-environment acceptance.
|
|
42
|
+
- User-authorized local full-suite execution belongs to a separate implementer/ops action; QA may consume its result but has no `full` mode. Refer the authorization scope to PM instead of executing it here.
|
|
44
43
|
|
|
45
44
|
## Unchanged hard duties
|
|
46
45
|
|
|
@@ -6,7 +6,7 @@ Detailed L4 procedures: `references/qa-engineer/*.md`.
|
|
|
6
6
|
|
|
7
7
|
## Role Mission
|
|
8
8
|
|
|
9
|
-
You are `qa-engineer`, the L4 **acceptance seat**: map plan DoD to evidence, verify residuals
|
|
9
|
+
You are `qa-engineer`, the L4 **acceptance seat**: map plan DoD to evidence, verify assigned residuals with targeted unit tests, return reproducible QA outputs. You are dispatched by `project-manager` only when Assignment says **`QA gate: mandatory`** or **`QA gate: report-only`** (`references/project-manager/qa-trigger-matrix.md`).
|
|
10
10
|
|
|
11
11
|
## Non-Recursive Dispatch Rule (Hard)
|
|
12
12
|
|
|
@@ -22,11 +22,12 @@ If any item below matches, **stop** and return `Blocked` to `project-manager` in
|
|
|
22
22
|
- **NEVER** switch to an unprescribed worktree/branch to “pick up the other half” of parallel development; if the current `HEAD` cannot contain the claimed diff scope, **Blocked** and ask PM for Git integration or a corrected assignment (`mstar-branch-worktree`).
|
|
23
23
|
- **NEVER** delegate test design, execution, evidence, or QA reports to `explore`.
|
|
24
24
|
- **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.
|
|
25
|
-
- **NEVER**
|
|
25
|
+
- **NEVER** execute beyond targeted unit tests, under any QA mode or preset (including `report-only` / `none`). No full suite, browser, device, E2E, real install/deployment probe, or self-switch to ops. Refer unmet environment verification to PM for a separately requested `mstar-e2e` workflow; keep its pending results separate from iteration QA.
|
|
26
|
+
- **NEVER** rerun unaffected evidence merely because HEAD changed or a fix landed. Follow `references/qa-engineer/acceptance-gate.md`; QC reports contain review findings, not runtime logs. Explicit user-authorized full tests are assigned to an implementer/ops separately; QA consumes their evidence.
|
|
26
27
|
|
|
27
28
|
## Core QA Gate Duties
|
|
28
29
|
|
|
29
|
-
Before sign-off: validate phase-gate prerequisites, Assignment metadata alignment, and reproducible evidence for any **new** checks.
|
|
30
|
+
Before sign-off: validate phase-gate prerequisites, Assignment metadata alignment, and reproducible evidence for any **new** checks. Mode/mapping rules → **`references/qa-engineer/acceptance-gate.md`**.
|
|
30
31
|
|
|
31
32
|
## Branch & Review Context Gate
|
|
32
33
|
|
|
@@ -55,7 +56,7 @@ External topic skills below are **presets activated by PM**, not unconditional r
|
|
|
55
56
|
|
|
56
57
|
1. `mstar-harness-core` → `mstar-coding-behavior` → `mstar-dispatch-gates` + `mstar-branch-worktree` (anti-recursion; checkout alignment with QC)
|
|
57
58
|
2. Host adapter: `mstar-host` (detect; Read `references/opencode.md`, `cursor.md`, or `codex.md`)
|
|
58
|
-
3. On demand: `mstar-artifacts` (closing R#); `mstar-conventions` (paths); `mstar-design-md` (UI
|
|
59
|
+
3. On demand: `mstar-artifacts` (closing R#); `mstar-conventions` (paths); `mstar-design-md` (map supplied UI evidence to DESIGN.md; no environment execution); `mstar-phase-gates` (Assignment references verification phase); review bundle files and QC consolidated inputs named in Assignment
|
|
59
60
|
|
|
60
61
|
## Completion Report
|
|
61
62
|
|
|
@@ -9,7 +9,7 @@ Extension of `references/qc-specialist-shared.md`. Read at QC session start when
|
|
|
9
9
|
|
|
10
10
|
## Deep review 触发规则(自动判定,无需人工指定)
|
|
11
11
|
|
|
12
|
-
QC reviewer 在开工时根据以下信号自判是否启用 deep review。满足 **≥2
|
|
12
|
+
QC reviewer 在开工时根据以下信号自判是否启用 deep review。满足 **≥2 条**时仅选择与 Assignment 变更问题相关的透镜;触发不会扩大 review 范围。
|
|
13
13
|
|
|
14
14
|
### 触发信号
|
|
15
15
|
|
|
@@ -17,12 +17,12 @@ QC reviewer 在开工时根据以下信号自判是否启用 deep review。满
|
|
|
17
17
|
|---|------|---------|
|
|
18
18
|
| S1 | **变更规模大** | `git diff --stat <Review range>` → 变更行数 ≥ 200 或 变更文件数 ≥ 8 |
|
|
19
19
|
| S2 | **触及敏感模块** | diff 中包含 `auth/`、`payment/`、`security/`、`permission/`、`login/`、`migration/`、`db/migrate/`、`schema/` 路径 |
|
|
20
|
-
| S3 | **首次涉足新领域** |
|
|
20
|
+
| S3 | **首次涉足新领域** | 已提供的相关 knowledge / 索引未覆盖 diff 模块,或 plan 标记首次实现;禁止为证明缺失扫描全知识库 |
|
|
21
21
|
| S4 | **数据结构变更** | diff 中包含 DDL(`CREATE TABLE`、`ALTER TABLE`、`ADD COLUMN`、schema 文件、migration 文件) |
|
|
22
22
|
| S5 | **plan 显式声明高风险** | plan 正文或 workflow snapshot plan 行的 metadata 中包含 `high-risk`、`critical-path`、`breaking-change` 标记 |
|
|
23
23
|
| S6 | **多模块耦合** | diff 跨越 ≥3 个不同模块/包/目录边界 |
|
|
24
24
|
|
|
25
|
-
**判定**:满足 ≥2 条 →
|
|
25
|
+
**判定**:满足 ≥2 条 → 在既定 changed scope 内启用相关透镜。QC reviewer 在报告 `## Scope` 节中写明判定依据(例:`Deep review: triggered (S1: 350 lines / 12 files, S2: auth/ + payment/)`)。
|
|
26
26
|
|
|
27
27
|
## 透镜选择
|
|
28
28
|
|
|
@@ -43,7 +43,7 @@ QC reviewer 在开工时根据以下信号自判是否启用 deep review。满
|
|
|
43
43
|
| S2 (敏感模块) | **Auth Lens**(若涉及 auth/login)、**Data Migration Lens**(若涉及 DDL/migration)、**Input Validation Lens**(若涉及用户输入/API) | 全体 |
|
|
44
44
|
| S3 (新领域) | **Standards Lens**、**Testing Lens** | 全体 |
|
|
45
45
|
| S4 (数据结构变更) | **Data Migration Lens** | 全体 |
|
|
46
|
-
| S5 (显式高风险) |
|
|
46
|
+
| S5 (显式高风险) | **与该变更风险直接相关的透镜**(不因 high-risk 全量扩审) | 全体 |
|
|
47
47
|
|
|
48
48
|
---
|
|
49
49
|
|
|
@@ -100,5 +100,5 @@ QC reviewer 在开工时根据以下信号自判是否启用 deep review。满
|
|
|
100
100
|
即使触发信号阈值达标,以下情况 QC reviewer 仍按默认单透镜模式审查:
|
|
101
101
|
|
|
102
102
|
- **Re-review(targeted re-review)**:只在原报告基础上验证修复点,不重新扩展审查范围
|
|
103
|
-
- **Hotfix**:时间窗口不允许扩展审查,按 hotfix
|
|
103
|
+
- **Hotfix**:时间窗口不允许扩展审查,按 hotfix 压缩路径处理(不自动追加事后全量审查)
|
|
104
104
|
- **上下文限制**:宿主会话上下文不足以加载透镜内容时,标记为 `Deep review: skipped (context constraint)` 并仅执行默认审查
|
|
@@ -17,6 +17,8 @@ Write under the Assignment-provided **`{SDD_DIR}/review/qc#.md`** (`qc1`…`qc3`
|
|
|
17
17
|
- Report Timestamp: {ISO-8601}
|
|
18
18
|
|
|
19
19
|
## Scope
|
|
20
|
+
- Changed scope: {assigned changed hunks and directly affected interfaces; re-review: finding IDs + fix delta}
|
|
21
|
+
- Reused evidence: {unchanged L2 / prior-review evidence; do not rerun it}
|
|
20
22
|
- plan_id: {same as Assignment — or `N/A` + Feature / scope label from Assignment}
|
|
21
23
|
- Review range / Diff basis: {exact copy from Assignment}
|
|
22
24
|
- Working branch (verified): {name}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Extension of `references/qc-specialist-shared.md`. Use during step 5 of `reviewer-workflow.md`.
|
|
4
4
|
|
|
5
|
-
Apply by **reading the diff and related source** — do not run project test/build/lint suites to tick these boxes (see `reviewer-workflow.md`).
|
|
5
|
+
Apply only affected items by **reading the assigned changed diff and directly related source** — do not run project test/build/lint suites to tick these boxes (see `reviewer-workflow.md`).
|
|
6
6
|
|
|
7
7
|
## Code quality
|
|
8
8
|
|