@mstar-harness/opencode 1.6.0 → 1.7.1
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/CHANGELOG.md +20 -0
- package/harness-agents/qc-specialist-2.md +5 -51
- package/harness-agents/qc-specialist-3.md +5 -51
- package/harness-agents/qc-specialist.md +5 -51
- package/harness-skills/mstar-branch-worktree/SKILL.md +3 -2
- package/harness-skills/mstar-host/SKILL.md +4 -3
- package/harness-skills/mstar-host/references/omp-plan-mode-bridge.md +42 -0
- package/harness-skills/mstar-host/references/omp.md +192 -0
- package/harness-skills/mstar-host/references/parallel-dispatch.md +2 -2
- package/harness-skills/mstar-review-qc/SKILL.md +7 -1
- package/harness-skills/mstar-review-qc/references/review-responsibility-boundaries.md +15 -4
- package/harness-skills/mstar-roles/SKILL.md +2 -0
- package/harness-skills/mstar-roles/references/project-manager/dispatch-and-assignment.md +2 -2
- package/harness-skills/mstar-roles/references/project-manager/qa-trigger-matrix.md +3 -3
- package/harness-skills/mstar-roles/references/project-manager/qc-and-residuals.md +2 -0
- package/harness-skills/mstar-roles/references/qa-engineer/acceptance-gate.md +10 -8
- package/harness-skills/mstar-roles/references/qa-engineer.md +2 -2
- package/harness-skills/mstar-roles/references/qc-specialist/deep-review-lenses.md +1 -0
- package/harness-skills/mstar-roles/references/qc-specialist/report-template.md +9 -8
- package/harness-skills/mstar-roles/references/qc-specialist/reviewer-checklist.md +2 -0
- package/harness-skills/mstar-roles/references/qc-specialist/reviewer-workflow.md +26 -5
- package/harness-skills/mstar-roles/references/qc-specialist-shared.md +9 -1
- package/harness-skills/pm/SKILL.md +4 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,26 @@ All notable changes to the `@mstar-harness/opencode` package are documented in t
|
|
|
4
4
|
|
|
5
5
|
The monorepo root [CHANGELOG.md](../../CHANGELOG.md) summarizes cross-surface releases.
|
|
6
6
|
|
|
7
|
+
## [1.7.1] - 2026-08-05
|
|
8
|
+
|
|
9
|
+
- Version alignment with harness **1.7.1** (no OpenCode package API change; CLI omp doctor fix).
|
|
10
|
+
|
|
11
|
+
See root [CHANGELOG.md](../../CHANGELOG.md) **1.7.1**.
|
|
12
|
+
|
|
13
|
+
## [1.7.0] - 2026-08-05
|
|
14
|
+
|
|
15
|
+
- Version alignment with harness **1.7.0** (omp host surface is added at the harness/CLI layer; OpenCode package unchanged beyond version bump / bundled skills sync).
|
|
16
|
+
|
|
17
|
+
See root [CHANGELOG.md](../../CHANGELOG.md) **1.7.0**.
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
## 1.6.1
|
|
21
|
+
|
|
22
|
+
- Bundled skills/agents: **QC = code reviewer** — L3 must not run test/build/lint on shared tri-review cwd; L1/L4 own runtime evidence; `qc-specialist*` bash allowlist git-only (+ lightweight analysis).
|
|
23
|
+
- Version alignment with harness **1.6.1**.
|
|
24
|
+
|
|
25
|
+
See root [CHANGELOG.md](../../CHANGELOG.md) **1.6.1**.
|
|
26
|
+
|
|
7
27
|
## 1.6.0
|
|
8
28
|
|
|
9
29
|
- Version alignment with harness **1.6.0** (no OpenCode plugin change in this release; ZCode host surface is added at the harness/CLI layer, not bundled into the OpenCode package).
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: qc-specialist-2
|
|
3
3
|
description: |-
|
|
4
|
-
质量控制专家(Reviewer #2)-
|
|
5
|
-
Quality Control Specialist (Reviewer #2) - code review
|
|
4
|
+
质量控制专家(Reviewer #2)- 代码审查(diff / 逻辑 / 安全正确性)。非测试执行席。
|
|
5
|
+
Quality Control Specialist (Reviewer #2) - code review (diff, logic, security/correctness). Not a test runner.
|
|
6
6
|
mode: subagent
|
|
7
7
|
tools:
|
|
8
8
|
write: true
|
|
@@ -22,7 +22,7 @@ permission:
|
|
|
22
22
|
".worktrees/**/.agents/sdd/**/*.md": allow
|
|
23
23
|
bash:
|
|
24
24
|
"*": deny
|
|
25
|
-
# Git inspection (read-only)
|
|
25
|
+
# Git inspection (read-only) — L3 is diff review; no test/build/lint CLIs (peer QC share worktree)
|
|
26
26
|
"git diff*": allow
|
|
27
27
|
"git log*": allow
|
|
28
28
|
"git show*": allow
|
|
@@ -31,59 +31,13 @@ permission:
|
|
|
31
31
|
"git stash list*": allow
|
|
32
32
|
"git branch*": allow
|
|
33
33
|
"git status*": allow
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
"npx eslint*": allow
|
|
37
|
-
"prettier --check*": allow
|
|
38
|
-
"npx prettier --check*": allow
|
|
39
|
-
"tsc*": allow
|
|
40
|
-
"npx tsc*": allow
|
|
41
|
-
"biome*": allow
|
|
42
|
-
"npx @biomejs/biome*": allow
|
|
43
|
-
"oxlint*": allow
|
|
44
|
-
"npx oxlint*": allow
|
|
45
|
-
"stylelint*": allow
|
|
46
|
-
"npx stylelint*": allow
|
|
47
|
-
# Python
|
|
48
|
-
"ruff*": allow
|
|
49
|
-
"pylint*": allow
|
|
50
|
-
"flake8*": allow
|
|
51
|
-
"mypy*": allow
|
|
52
|
-
"pyright*": allow
|
|
53
|
-
"bandit*": allow
|
|
54
|
-
"python -m ruff*": allow
|
|
55
|
-
"python -m pylint*": allow
|
|
56
|
-
"python -m mypy*": allow
|
|
57
|
-
"python3 -m ruff*": allow
|
|
58
|
-
"python3 -m pylint*": allow
|
|
59
|
-
"python3 -m mypy*": allow
|
|
60
|
-
# Rust
|
|
61
|
-
"cargo clippy*": allow
|
|
62
|
-
"cargo fmt --check*": allow
|
|
63
|
-
"cargo audit*": allow
|
|
64
|
-
# Go
|
|
65
|
-
"golangci-lint*": allow
|
|
66
|
-
"go vet*": allow
|
|
67
|
-
"staticcheck*": allow
|
|
68
|
-
# Ruby
|
|
69
|
-
"rubocop*": allow
|
|
70
|
-
"bundle exec rubocop*": allow
|
|
71
|
-
# Swift
|
|
72
|
-
"swiftlint*": allow
|
|
73
|
-
"swift-format lint*": allow
|
|
74
|
-
# Shell / Config
|
|
75
|
-
"shellcheck*": allow
|
|
76
|
-
"hadolint*": allow
|
|
77
|
-
"actionlint*": allow
|
|
78
|
-
# Markdown / Docs
|
|
79
|
-
"markdownlint*": allow
|
|
80
|
-
# General analysis
|
|
34
|
+
"git rev-parse*": allow
|
|
35
|
+
# Lightweight read-only analysis
|
|
81
36
|
"wc*": allow
|
|
82
37
|
"rg*": allow
|
|
83
38
|
"cloc*": allow
|
|
84
39
|
"scc*": allow
|
|
85
40
|
"tokei*": allow
|
|
86
|
-
"git rev-parse*": allow
|
|
87
41
|
task:
|
|
88
42
|
"*": deny
|
|
89
43
|
explore: allow
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: qc-specialist-3
|
|
3
3
|
description: |-
|
|
4
|
-
质量控制专家(Reviewer #3)-
|
|
5
|
-
Quality Control Specialist (Reviewer #3) - code review
|
|
4
|
+
质量控制专家(Reviewer #3)- 代码审查(diff / 逻辑 / 性能可靠性)。非测试执行席。
|
|
5
|
+
Quality Control Specialist (Reviewer #3) - code review (diff, logic, performance/reliability). Not a test runner.
|
|
6
6
|
mode: subagent
|
|
7
7
|
tools:
|
|
8
8
|
write: true
|
|
@@ -22,7 +22,7 @@ permission:
|
|
|
22
22
|
".worktrees/**/.agents/sdd/**/*.md": allow
|
|
23
23
|
bash:
|
|
24
24
|
"*": deny
|
|
25
|
-
# Git inspection (read-only)
|
|
25
|
+
# Git inspection (read-only) — L3 is diff review; no test/build/lint CLIs (peer QC share worktree)
|
|
26
26
|
"git diff*": allow
|
|
27
27
|
"git log*": allow
|
|
28
28
|
"git show*": allow
|
|
@@ -31,59 +31,13 @@ permission:
|
|
|
31
31
|
"git stash list*": allow
|
|
32
32
|
"git branch*": allow
|
|
33
33
|
"git status*": allow
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
"npx eslint*": allow
|
|
37
|
-
"prettier --check*": allow
|
|
38
|
-
"npx prettier --check*": allow
|
|
39
|
-
"tsc*": allow
|
|
40
|
-
"npx tsc*": allow
|
|
41
|
-
"biome*": allow
|
|
42
|
-
"npx @biomejs/biome*": allow
|
|
43
|
-
"oxlint*": allow
|
|
44
|
-
"npx oxlint*": allow
|
|
45
|
-
"stylelint*": allow
|
|
46
|
-
"npx stylelint*": allow
|
|
47
|
-
# Python
|
|
48
|
-
"ruff*": allow
|
|
49
|
-
"pylint*": allow
|
|
50
|
-
"flake8*": allow
|
|
51
|
-
"mypy*": allow
|
|
52
|
-
"pyright*": allow
|
|
53
|
-
"bandit*": allow
|
|
54
|
-
"python -m ruff*": allow
|
|
55
|
-
"python -m pylint*": allow
|
|
56
|
-
"python -m mypy*": allow
|
|
57
|
-
"python3 -m ruff*": allow
|
|
58
|
-
"python3 -m pylint*": allow
|
|
59
|
-
"python3 -m mypy*": allow
|
|
60
|
-
# Rust
|
|
61
|
-
"cargo clippy*": allow
|
|
62
|
-
"cargo fmt --check*": allow
|
|
63
|
-
"cargo audit*": allow
|
|
64
|
-
# Go
|
|
65
|
-
"golangci-lint*": allow
|
|
66
|
-
"go vet*": allow
|
|
67
|
-
"staticcheck*": allow
|
|
68
|
-
# Ruby
|
|
69
|
-
"rubocop*": allow
|
|
70
|
-
"bundle exec rubocop*": allow
|
|
71
|
-
# Swift
|
|
72
|
-
"swiftlint*": allow
|
|
73
|
-
"swift-format lint*": allow
|
|
74
|
-
# Shell / Config
|
|
75
|
-
"shellcheck*": allow
|
|
76
|
-
"hadolint*": allow
|
|
77
|
-
"actionlint*": allow
|
|
78
|
-
# Markdown / Docs
|
|
79
|
-
"markdownlint*": allow
|
|
80
|
-
# General analysis
|
|
34
|
+
"git rev-parse*": allow
|
|
35
|
+
# Lightweight read-only analysis
|
|
81
36
|
"wc*": allow
|
|
82
37
|
"rg*": allow
|
|
83
38
|
"cloc*": allow
|
|
84
39
|
"scc*": allow
|
|
85
40
|
"tokei*": allow
|
|
86
|
-
"git rev-parse*": allow
|
|
87
41
|
task:
|
|
88
42
|
"*": deny
|
|
89
43
|
explore: allow
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: qc-specialist
|
|
3
3
|
description: |-
|
|
4
|
-
质量控制专家(Reviewer #1)-
|
|
5
|
-
Quality Control Specialist (Reviewer #1) - code review
|
|
4
|
+
质量控制专家(Reviewer #1)- 代码审查(diff / 逻辑 / 架构可维护性)。非测试执行席。
|
|
5
|
+
Quality Control Specialist (Reviewer #1) - code review (diff, logic, maintainability). Not a test runner.
|
|
6
6
|
mode: subagent
|
|
7
7
|
tools:
|
|
8
8
|
write: true
|
|
@@ -22,7 +22,7 @@ permission:
|
|
|
22
22
|
".worktrees/**/.agents/sdd/**/*.md": allow
|
|
23
23
|
bash:
|
|
24
24
|
"*": deny
|
|
25
|
-
# Git inspection (read-only)
|
|
25
|
+
# Git inspection (read-only) — L3 is diff review; no test/build/lint CLIs (peer QC share worktree)
|
|
26
26
|
"git diff*": allow
|
|
27
27
|
"git log*": allow
|
|
28
28
|
"git show*": allow
|
|
@@ -31,59 +31,13 @@ permission:
|
|
|
31
31
|
"git stash list*": allow
|
|
32
32
|
"git branch*": allow
|
|
33
33
|
"git status*": allow
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
"npx eslint*": allow
|
|
37
|
-
"prettier --check*": allow
|
|
38
|
-
"npx prettier --check*": allow
|
|
39
|
-
"tsc*": allow
|
|
40
|
-
"npx tsc*": allow
|
|
41
|
-
"biome*": allow
|
|
42
|
-
"npx @biomejs/biome*": allow
|
|
43
|
-
"oxlint*": allow
|
|
44
|
-
"npx oxlint*": allow
|
|
45
|
-
"stylelint*": allow
|
|
46
|
-
"npx stylelint*": allow
|
|
47
|
-
# Python
|
|
48
|
-
"ruff*": allow
|
|
49
|
-
"pylint*": allow
|
|
50
|
-
"flake8*": allow
|
|
51
|
-
"mypy*": allow
|
|
52
|
-
"pyright*": allow
|
|
53
|
-
"bandit*": allow
|
|
54
|
-
"python -m ruff*": allow
|
|
55
|
-
"python -m pylint*": allow
|
|
56
|
-
"python -m mypy*": allow
|
|
57
|
-
"python3 -m ruff*": allow
|
|
58
|
-
"python3 -m pylint*": allow
|
|
59
|
-
"python3 -m mypy*": allow
|
|
60
|
-
# Rust
|
|
61
|
-
"cargo clippy*": allow
|
|
62
|
-
"cargo fmt --check*": allow
|
|
63
|
-
"cargo audit*": allow
|
|
64
|
-
# Go
|
|
65
|
-
"golangci-lint*": allow
|
|
66
|
-
"go vet*": allow
|
|
67
|
-
"staticcheck*": allow
|
|
68
|
-
# Ruby
|
|
69
|
-
"rubocop*": allow
|
|
70
|
-
"bundle exec rubocop*": allow
|
|
71
|
-
# Swift
|
|
72
|
-
"swiftlint*": allow
|
|
73
|
-
"swift-format lint*": allow
|
|
74
|
-
# Shell / Config
|
|
75
|
-
"shellcheck*": allow
|
|
76
|
-
"hadolint*": allow
|
|
77
|
-
"actionlint*": allow
|
|
78
|
-
# Markdown / Docs
|
|
79
|
-
"markdownlint*": allow
|
|
80
|
-
# General analysis
|
|
34
|
+
"git rev-parse*": allow
|
|
35
|
+
# Lightweight read-only analysis
|
|
81
36
|
"wc*": allow
|
|
82
37
|
"rg*": allow
|
|
83
38
|
"cloc*": allow
|
|
84
39
|
"scc*": allow
|
|
85
40
|
"tokei*": allow
|
|
86
|
-
"git rev-parse*": allow
|
|
87
41
|
task:
|
|
88
42
|
"*": deny
|
|
89
43
|
explore: allow
|
|
@@ -195,8 +195,9 @@ Default process artifacts (`plans/`, `iterations/`, `status.json`, `sdd/`, `note
|
|
|
195
195
|
- **三票审同一功能(强制对齐)**:分派 **QC 三审**时,除上述字段外,**必须**在 **三份 Assignment 中逐字写入相同**的 **`plan_id`** 与 **`Review range` / `Diff basis`**:
|
|
196
196
|
- **`plan_id`**:与 `{SDD_DIR}` 的 `<plan-id>` 段、主 **Plan Path**、`status.json.plans[].id` 一致;无 `{PLAN_DIR}` 流程时写 **`plan_id: N/A`**,并另给一行 **`Feature / scope label`**(不可歧义,足以与并行其它 feature 区分)。
|
|
197
197
|
- **`Review range` / `Diff basis`**:明确本次审查所针对的 **diff/提交范围**(例如 `merge-base: <target_branch-or-base-ref>` + `tip: HEAD`;或 `rev-range: <full-40>..<full-40>`;或一句 `equivalent to: git diff <merge-base>...HEAD`,以团队可复现为准)。**三名 reviewer 的 Assignment 间该字段必须完全一致**;**`qa-engineer`** 验证同一 feature 时 **复用同一 `plan_id` 与同一 `Review range` / `Diff basis`**。**热修 / QC 单审**路径也须含 **同一组字段**,仅承接方份数为 1。
|
|
198
|
-
- **三审并行**时,三名 reviewer **共用同一组 `Review cwd` / `Worktree path` + `Working branch` + `plan_id` + `Review range` / `Diff basis
|
|
199
|
-
- QC
|
|
198
|
+
- **三审并行**时,三名 reviewer **共用同一组 `Review cwd` / `Worktree path` + `Working branch` + `plan_id` + `Review range` / `Diff basis`**(对业务仓 **只读 diff 审查**);**一般不必**为每位 reviewer 各开一个 worktree,除非宿主或执行环境要求进程级隔离。
|
|
199
|
+
- **并行 QC 禁止**在共享检出上跑 **test / build / install / lint / typecheck** 等会争用缓存或锁的命令(否则 peer QC 易 `Blocked`)。L3 默认手段:`git diff` / `git log` / `git show` / Read / Grep。运行时验证留给 **L1 证据** 与 **`qa-engineer`(L4)** — 见 `mstar-review-qc/references/review-responsibility-boundaries.md`。
|
|
200
|
+
- QC 的 **报告落盘**默认仅限 Assignment 指定的 `{SDD_DIR}/review/`;上述约定保证 `git diff`、`git log` 与所读文件与 **待合并 feature** 一致。PM 另行提交主 plan gate summary / `status.json` residual changes as durable artifacts。
|
|
200
201
|
- **`project-manager`** 分派 **`qa-engineer`** 时(仅 **`QA gate: mandatory`**),Assignment 须与 QC **逐字相同**的 **`Review cwd` / `Worktree path`**、**`Working branch`**、**`plan_id`**、**`Review range` / `Diff basis`**(QC 已写清则 QA 照抄)。**`qa-engineer`** 执行业务仓命令前须核对检出与分支;Report-only 且无路径依赖时,回报须说明验证环境,否则 `Blocked`。
|
|
201
202
|
- 若 **QA 与同仓其他可写角色并发**提交测试代码,仍须遵守上文「同仓并发写入」的 **worktree** 规则(可为 QA 单开一条写入 worktree,**同一 `Working branch`**,由 PM 在 Assignment 写明)。
|
|
202
203
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: mstar-host
|
|
3
|
-
description: Morning Star host adapter (OpenCode, Cursor, Codex, Kimi, ZCode). Use after mstar-harness-core whenever host entry, clarify, dispatch, or plan UX differs by platform - OpenCode question/task-tool subagent invoke, Cursor /pm and CreatePlan/SwitchMode dual-write and Task parallel QC, Codex plugin skills plus Plan/Goal Mode, Kimi Agent/AgentSwarm with built-in subagent types only (coder/explore/plan) and role-in-prompt binding, ZCode Agent/AskUserQuestion/EnterPlanMode with built-in subagent types and role-in-prompt binding, sandboxed tools, and tool discovery. Auto-detect host from session tools; then Read references/<host>.md. Always load after mstar-harness-core.
|
|
3
|
+
description: Morning Star host adapter (OpenCode, Cursor, Codex, Kimi, ZCode, omp). Use after mstar-harness-core whenever host entry, clarify, dispatch, or plan UX differs by platform - OpenCode question/task-tool subagent invoke, Cursor /pm and CreatePlan/SwitchMode dual-write and Task parallel QC, Codex plugin skills plus Plan/Goal Mode, Kimi Agent/AgentSwarm with built-in subagent types only (coder/explore/plan) and role-in-prompt binding, ZCode Agent/AskUserQuestion/EnterPlanMode with built-in subagent types and role-in-prompt binding, omp task/ask/hub with built-in task.agent types and role-in-prompt binding, sandboxed tools, and tool discovery. Auto-detect host from session tools; then Read references/<host>.md. Always load after mstar-harness-core.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Morning Star Host Adapter
|
|
@@ -28,12 +28,13 @@ Use **capability signals** (not filesystem paths):
|
|
|
28
28
|
| Signal | Host | Next read |
|
|
29
29
|
|--------|------|-----------|
|
|
30
30
|
| **CreatePlan** / **SwitchMode** available | `cursor` | `references/cursor.md`; Plan mode also `references/cursor-plan-mode-bridge.md` |
|
|
31
|
-
| **`question`** tool or **`task`** tool
|
|
31
|
+
| **`question`** tool or OpenCode-style **`task`** tool with **`subagent`** (not omp `agent`/`tasks[]`) | `opencode` | `references/opencode.md` |
|
|
32
32
|
| **Task** + `subagent_type`, no CreatePlan | `cursor` | `references/cursor.md` |
|
|
33
33
|
| **Codex app/CLI/plugin context**, `/plan`, `/goal`, Goal tools, `functions.*`, `codex_app.*`, `tool_search`, Browser plugin tools | `codex` | `references/codex.md`; Plan/Goal mode also `references/codex-plan-goal-mode-bridge.md` |
|
|
34
34
|
| **`Agent`** / **`AgentSwarm`** / **`AskUserQuestion`** / **`EnterPlanMode`**, Kimi plugin (`.kimi-plugin/plugin.json`), `/morning-star-harness:*` commands | `kimi` | `references/kimi.md`; Plan mode also `references/kimi-plan-mode-bridge.md` |
|
|
35
35
|
| **`Agent`** / **`AskUserQuestion`** / **`EnterPlanMode`** / **`TodoWrite`**, no `AgentSwarm`, ZCode plugin (`.zcode-plugin/plugin.json`), `/morning-star-harness:*` commands | `zcode` | `references/zcode.md`; Plan mode also `references/zcode-plan-mode-bridge.md` |
|
|
36
|
-
|
|
|
36
|
+
| **`task`** tool with **`agent`** / **`tasks[]`** batch, **`ask`**, **`hub`**, omp plugin (`.omp-plugin/plugin.json` / `.claude-plugin/plugin.json`), `/skill:pm` + `/iteration-*` filename commands | `omp` | `references/omp.md`; Plan mode also `references/omp-plan-mode-bridge.md` |
|
|
37
|
+
| Still ambiguous | - | Read sections in **`cursor.md`**, **`opencode.md`**, **`codex.md`**, **`kimi.md`**, **`zcode.md`**, and **`omp.md`** that match tools you have; **`mstar-harness-core` wins** on conflict |
|
|
37
38
|
|
|
38
39
|
## Parallel dispatch (invoke-capable hosts)
|
|
39
40
|
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# omp Plan mode bridge
|
|
2
|
+
|
|
3
|
+
Load with **`omp.md`** when omp Plan mode is active (`/plan`, plan-yolo / plan-model flows, or read-only-with-resolve plan UX).
|
|
4
|
+
|
|
5
|
+
## Dual-write contract
|
|
6
|
+
|
|
7
|
+
omp session plans, composer todos, and plan-mode UI text are **session UX only**. Durable SSOT remains **`{HARNESS_DIR}`** (default `.mstar/`, legacy `.agents/`):
|
|
8
|
+
|
|
9
|
+
| Artifact | SSOT |
|
|
10
|
+
|----------|------|
|
|
11
|
+
| Main plan | `{PLAN_DIR}/<plan-id>-<name>.md` |
|
|
12
|
+
| Plan registry | `{HARNESS_DIR}/status.json` |
|
|
13
|
+
| Iteration compass | `{ITERATION_DIR}/…` when in formal iteration |
|
|
14
|
+
|
|
15
|
+
Before treating a plan as ready for Execute:
|
|
16
|
+
|
|
17
|
+
1. Read `mstar-plan-conventions` + `mstar-plan-artifacts`.
|
|
18
|
+
2. Ensure `{HARNESS_DIR}` / `{PLAN_DIR}` exist and process-artifact gitignore entries are present.
|
|
19
|
+
3. Mirror the active omp plan content into the SSOT main plan path.
|
|
20
|
+
4. Register `plan_id` in `status.json.plans[]` when required by Prepare gates.
|
|
21
|
+
|
|
22
|
+
**Never** use only the omp session plan / UI todo list as **Plan Path**.
|
|
23
|
+
|
|
24
|
+
## `mstar-iteration` Phase 1 in Plan mode
|
|
25
|
+
|
|
26
|
+
When formal iteration Phase 1 runs under omp Plan UX:
|
|
27
|
+
|
|
28
|
+
1. Keep a **single** SSOT draft plan path (no silent second plan file).
|
|
29
|
+
2. Converge by **feedback-driven in-place edits** on that SSOT plan (and mirror into omp plan UI if helpful).
|
|
30
|
+
3. **Do not** run Review & Edit chain, commit, or create integration branch until the user leaves Plan mode / approves implementation (Build-equivalent).
|
|
31
|
+
4. Recommended branch policy still applies — no silent work on `main`/`master` (`mstar-iteration` §1.2).
|
|
32
|
+
|
|
33
|
+
## Clarify vs plan approval
|
|
34
|
+
|
|
35
|
+
- Use **`ask`** for high-impact product/tech choices while drafting.
|
|
36
|
+
- Plan sign-off is the host Plan resolve / approval path, not a casual chat question.
|
|
37
|
+
- After approval, resume as **`project-manager`**: reload `mstar-harness-core` + `omp.md`, then dispatch implementation through **`task`** (C5/C5b). Parent plan session must **not** implement product code unless the user explicitly overrides harness dispatch.
|
|
38
|
+
|
|
39
|
+
## Gotchas
|
|
40
|
+
|
|
41
|
+
- Plan-yolo / prewalk model switches are host UX — they do not waive Morning Star gates, Assignment, or evidence rules.
|
|
42
|
+
- Isolated task worktrees from omp are orthogonal to Morning Star L1 lease/worktree fields; when L1 is active, still record harness **Worktree path** / leases.
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# omp host reference
|
|
2
|
+
|
|
3
|
+
Load when **`mstar-host`** detection resolves **omp** (Oh My Pi / `omp` session, `.omp-plugin/plugin.json` or `.claude-plugin/plugin.json` installed, **`task`** tool with **`agent`** / **`tasks[]`** batch shape, **`ask`** tool, **`hub`** tool, or `/skill:pm` / `/iteration-*` from this plugin).
|
|
4
|
+
|
|
5
|
+
Plan mode: read **`omp-plan-mode-bridge.md`** when `/plan`, plan-yolo, or plan-model / read-only-with-resolve plan UX is active.
|
|
6
|
+
|
|
7
|
+
Parallel PM dispatch: read **`parallel-dispatch.md`** when dispatching **N ≥ 2** concurrent `task` invocations.
|
|
8
|
+
|
|
9
|
+
## omp-only context
|
|
10
|
+
|
|
11
|
+
- Plugin markers: **`.omp-plugin/plugin.json`** (Morning Star host marker) and **`.claude-plugin/plugin.json`** (Claude-compatible marketplace discovery). Plugin root is the **repo root**; paths stay `./skills/`, `./commands/`, `./agents/`.
|
|
12
|
+
- Runtime skills: repo `skills/` discovered after `omp plugin install` / `omp plugin link` (OMP extension-package sub-discovery) or Claude marketplace install.
|
|
13
|
+
- Plugin commands: repo `commands/<name>.md` → slash **`/<name>`** (e.g. `/iteration-start`). omp uses the **filename** as the command name (no `morning-star-harness:` prefix).
|
|
14
|
+
- Plugin agents: repo `agents/*.md` may be discovered, but Morning Star role ids are **not** assumed to be valid `task.agent` values — see C5/C5b.
|
|
15
|
+
- **No Kimi-style `sessionStart.skill`** — enter PM manually via **`/skill:pm`** (or the `pm` skill), then **Read next** → `mstar-harness-core` → `project-manager.md`.
|
|
16
|
+
- Install (user-scoped, recommended):
|
|
17
|
+
- `omp plugin install github:btspoony/mstar-harness`
|
|
18
|
+
- or CLI: `npx @mstar-harness/cli init --target omp --scope global` (links `~/.mstar/harness`)
|
|
19
|
+
- Project scope: `omp plugin install github:btspoony/mstar-harness --scope project` or `npx @mstar-harness/cli init --target omp --scope project`.
|
|
20
|
+
- Local maintainers: `omp plugin link /path/to/mstar-harness` (or the CLI-managed `~/.mstar/harness` checkout).
|
|
21
|
+
- After install/link: `omp plugin list` should show package **`morning-star`** (root `package.json` name). Reload / new session to pick up skills and commands.
|
|
22
|
+
|
|
23
|
+
## Skill loading
|
|
24
|
+
|
|
25
|
+
1. On entry: invoke **`pm`** via `/skill:pm` → **Read next** loads `mstar-harness-core`, then `mstar-roles` → `project-manager.md` when PM is active.
|
|
26
|
+
2. Read `mstar-host` and this omp reference.
|
|
27
|
+
3. If Plan mode is active, read `omp-plan-mode-bridge.md`.
|
|
28
|
+
4. Load `mstar-roles` and the active role reference.
|
|
29
|
+
5. Load topic skills on demand per the role reference.
|
|
30
|
+
|
|
31
|
+
Use skill names in prompts and references. Prefer `skill://<name>/…` / `/skill:<name>` over absolute local paths unless maintaining this repository.
|
|
32
|
+
|
|
33
|
+
## Tools map (default agent)
|
|
34
|
+
|
|
35
|
+
| omp tool | Harness use |
|
|
36
|
+
|----------|-------------|
|
|
37
|
+
| **`task`** | Primary dispatch — fan out one or more subagents (`agent` ∈ built-ins; batch via `tasks[]` + shared `context`) |
|
|
38
|
+
| **`ask`** | Structured clarify (options + recommended); prefer over free-form when choices are known |
|
|
39
|
+
| **`hub`** | Optional peer messaging / long-running process control among subagents — not a substitute for Assignment + `task` |
|
|
40
|
+
| **bash** | Commands, git, tests — evidence per `mstar-coding-behavior` |
|
|
41
|
+
| **read** / **write** / **edit** | File I/O (and host AST/edit variants when present) |
|
|
42
|
+
| **grep** / **glob** | Search (prefer over shell find/grep) |
|
|
43
|
+
| **web_search** / URL fetch tools | External docs / facts when present |
|
|
44
|
+
|
|
45
|
+
OpenCode **`question`** / **`task`+`subagent`**, Cursor **Task**+`subagent_type`, and Kimi/ZCode **Agent** / **AskUserQuestion** are **not** omp tools — do not assume them.
|
|
46
|
+
|
|
47
|
+
### `task` shape (operational SSOT)
|
|
48
|
+
|
|
49
|
+
Prefer the live tool schema every session. Typical batch shape:
|
|
50
|
+
|
|
51
|
+
```text
|
|
52
|
+
task(
|
|
53
|
+
context: "<shared batch context>",
|
|
54
|
+
tasks: [
|
|
55
|
+
{
|
|
56
|
+
name: "CamelCaseId",
|
|
57
|
+
agent: "task", # built-in only — see C5
|
|
58
|
+
task: "<full Assignment body including Act as + skill load>"
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
)
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Single-task shorthand may exist depending on host version — always match the live schema. Parallel **N** Morning Star assignees ⇒ **one** `task` call with **N** `tasks[]` entries **or** **N** `task` calls in one assistant message when the host requires that shape. Count emitted dispatches = **N**.
|
|
65
|
+
|
|
66
|
+
## Role agents (C5 — hard constraint)
|
|
67
|
+
|
|
68
|
+
omp ships **built-in `task.agent` types**. Exact names vary by omp version — **read the live `task` tool schema**. Common set (docs + current releases):
|
|
69
|
+
|
|
70
|
+
| `agent` | Typical use | Harness mapping |
|
|
71
|
+
|---------|-------------|-----------------|
|
|
72
|
+
| `scout` / `explore` | Fast read-only investigation | Orientation, codebase survey, Prepare explore passes |
|
|
73
|
+
| `plan` | Architectural planning | Prepare plan-only work when appropriate |
|
|
74
|
+
| `reviewer` / `security-reviewer` | Structured review | Optional QC assist — still bind Morning Star QC role in prompt (C5b) |
|
|
75
|
+
| `designer` | UI/UX | Optional when Assignment is UI-heavy `frontend-dev` |
|
|
76
|
+
| `librarian` | External library/API research | Optional research assist |
|
|
77
|
+
| `sonic` / `quick_task` | Mechanical / low-reasoning | Mechanical transcription only |
|
|
78
|
+
| `task` | General-purpose worker | **Default for Morning Star roles** (`product-manager`, `fullstack-dev`, `qc-specialist`, …) |
|
|
79
|
+
|
|
80
|
+
Morning Star role ids (`project-manager`, `fullstack-dev`, `qc-specialist`, …) are **not** valid `task.agent` values unless the live schema explicitly lists them after a custom-agent unpack. Do not invent agent names.
|
|
81
|
+
|
|
82
|
+
### Role binding in prompt (C5b — required)
|
|
83
|
+
|
|
84
|
+
Because omp cannot bind Morning Star roles via `task.agent` alone, every dispatch **must** carry the played role in the **Assignment** and in the **task assignment text**:
|
|
85
|
+
|
|
86
|
+
1. **`Execute as: <role-id>`** in Assignment (harness routing SSOT).
|
|
87
|
+
2. **`Act as <role-id>`** (or equivalent) at the top of the task body.
|
|
88
|
+
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.
|
|
89
|
+
4. **`agent`** — pick from the live built-in list only (default **`task`**; explore → `scout`/`explore`).
|
|
90
|
+
|
|
91
|
+
Paste-only Assignment without a **`task`** call is **not** dispatch.
|
|
92
|
+
|
|
93
|
+
### Assignment / task-body template
|
|
94
|
+
|
|
95
|
+
```markdown
|
|
96
|
+
## Assignment
|
|
97
|
+
|
|
98
|
+
**Execute as**: fullstack-dev
|
|
99
|
+
**Delegation**: forbidden
|
|
100
|
+
**Working branch**: feat/example
|
|
101
|
+
**Plan Path**: .mstar/plans/20260717-example.md
|
|
102
|
+
|
|
103
|
+
**IDENTITY:** You ARE `fullstack-dev`. Act as `fullstack-dev` for this task.
|
|
104
|
+
Load: `mstar-harness-core` → `mstar-host` → `omp.md` → `mstar-roles` → `references/fullstack-dev-shared.md` → topic skills per that reference.
|
|
105
|
+
|
|
106
|
+
<task body>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
PM dispatch invocation (same turn):
|
|
110
|
+
|
|
111
|
+
```text
|
|
112
|
+
task(
|
|
113
|
+
context: "Morning Star dispatch for plan 20260717-example",
|
|
114
|
+
tasks: [{
|
|
115
|
+
name: "ImplementAuth",
|
|
116
|
+
agent: "task",
|
|
117
|
+
task: "<full Assignment body including Act as + skill load>"
|
|
118
|
+
}]
|
|
119
|
+
)
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
For explore-only orientation:
|
|
123
|
+
|
|
124
|
+
```text
|
|
125
|
+
task(
|
|
126
|
+
tasks: [{
|
|
127
|
+
name: "ExploreAuth",
|
|
128
|
+
agent: "scout", # or explore if that is what the live schema lists
|
|
129
|
+
task: "... Act as explore-only orientation; Execute as: n/a ..."
|
|
130
|
+
}]
|
|
131
|
+
)
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## PM dispatch (`task`)
|
|
135
|
+
|
|
136
|
+
Harness **dispatch** on omp = **one or more `task` tool calls** with correct **`agent`** values and role-bound assignment text.
|
|
137
|
+
|
|
138
|
+
| Harness | omp |
|
|
139
|
+
|---------|-----|
|
|
140
|
+
| `Execute as: <role-id>` | Role id in Assignment + **Act as** + skill load in **task** body |
|
|
141
|
+
| `agent` for invoke | built-ins only (default `task`; explore → `scout`/`explore`) |
|
|
142
|
+
| 1 Assignment ⇒ 1 invoke | **1** `tasks[]` entry (or 1 `task` call) with full Assignment body |
|
|
143
|
+
| Parallel batch **N** | **N** `tasks[]` entries in **one** `task` call, or **N** `task` calls in **one** assistant message |
|
|
144
|
+
| No `task` call | **Not dispatched** — paste-only / `dispatch incomplete` |
|
|
145
|
+
|
|
146
|
+
### QC default
|
|
147
|
+
|
|
148
|
+
- **`Execution mode: sdd`**: **N=3** task entries (`qc-specialist`, `qc-specialist-2`, `qc-specialist-3`) — each body **Act as** the respective QC role; prefer `agent: "task"` (or `reviewer` only when it does not drop Morning Star QC skill load).
|
|
149
|
+
- **`inline`**: **N=1** per `parallel-dispatch.md`.
|
|
150
|
+
|
|
151
|
+
Cannot emit required **N** → **`Blocked`**.
|
|
152
|
+
|
|
153
|
+
### SDD implement (serial)
|
|
154
|
+
|
|
155
|
+
- **`Execution mode: sdd`**: one implementer `task` entry per task id; task reviewer = new entry (no sticky resume unless host resume/id is available and recorded).
|
|
156
|
+
- **Never** multiple implementer entries in one message for the same plan.
|
|
157
|
+
|
|
158
|
+
## Clarify
|
|
159
|
+
|
|
160
|
+
- Prefer **`ask`** for 1–3 high-impact choices with known options (`recommended` when there is a default).
|
|
161
|
+
- Fallback: one concise Markdown question after codebase exploration cannot answer it.
|
|
162
|
+
- Plan approval in Plan mode follows **`omp-plan-mode-bridge.md`** — do not treat a casual `ask` as plan lock.
|
|
163
|
+
- “Question asked” ≠ clarify done; blocking ambiguity → **`Blocked`** or escalation.
|
|
164
|
+
|
|
165
|
+
## Commands and skills paths
|
|
166
|
+
|
|
167
|
+
| Surface | Path / invocation |
|
|
168
|
+
|---------|-------------------|
|
|
169
|
+
| Plugin skills | `/skill:<skill-name>` or auto-load from `skills/` via plugin discovery |
|
|
170
|
+
| Plugin commands | `/iteration-start`, `/iteration-drive`, `/iteration-loop` (filename-based) |
|
|
171
|
+
| Session entry | `/skill:pm` → `mstar-harness-core` via pm **Read next** |
|
|
172
|
+
|
|
173
|
+
## Files, shell, and approvals
|
|
174
|
+
|
|
175
|
+
- Prefer host search/edit tools over shell find/sed when available.
|
|
176
|
+
- Respect omp approval prompts (`approval-mode`, write/yolo) for destructive operations.
|
|
177
|
+
- Do not edit `~/.omp/` credentials, plugin lockfiles, or user secrets without explicit consent.
|
|
178
|
+
|
|
179
|
+
## Git and final evidence
|
|
180
|
+
|
|
181
|
+
- Git work follows `mstar-branch-worktree` and Assignment **Working branch** / **Branch policy**.
|
|
182
|
+
- omp may offer task isolation / worktrees (`task.isolation`, `~/.omp/wt`) — still record Morning Star **Worktree path** / leases when L1 gates apply.
|
|
183
|
+
- Completion reports cite concrete commands, artifacts, and commit lines when required.
|
|
184
|
+
|
|
185
|
+
## Gotchas
|
|
186
|
+
|
|
187
|
+
- Installed npm/git plugin package name is root **`morning-star`** (`package.json`); Morning Star display name remains **morning-star-harness**.
|
|
188
|
+
- Marketplace (Claude) installs and `omp plugin install` are different discovery providers — prefer one install path per machine to avoid duplicate skill listings.
|
|
189
|
+
- Session plan UI / todos are not durable SSOT unless mirrored to `{HARNESS_DIR}`.
|
|
190
|
+
- No custom guaranteed Morning Star `task.agent` profiles — role binding is **always** prompt + skill load (C5b).
|
|
191
|
+
- omp has no `sessionStart.skill`; new sessions do **not** auto-load PM — invoke `/skill:pm` manually.
|
|
192
|
+
- Do not confuse omp **`task.agent`** with OpenCode **`subagent`** or Cursor **`subagent_type`**.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Parallel dispatch (invoke-capable hosts)
|
|
2
2
|
|
|
3
|
-
Shared PM dispatch contract for **any** host that uses subagent / Task / Agent invoke (OpenCode task tool, Cursor Task, Kimi **Agent** / **AgentSwarm**, Codex only when a callable multi-agent / Task tool is actually available). Process SSOT also in `mstar-dispatch-gates`.
|
|
3
|
+
Shared PM dispatch contract for **any** host that uses subagent / Task / Agent invoke (OpenCode task tool, Cursor Task, Kimi **Agent** / **AgentSwarm**, omp **`task`** with **`agent`** / **`tasks[]`**, Codex only when a callable multi-agent / Task tool is actually available). Process SSOT also in `mstar-dispatch-gates`.
|
|
4
4
|
|
|
5
5
|
If the active host has no callable invoke tool, this reference does not create delegation capability — mark dispatch **`Blocked`** and report to the user. Do not substitute PM-thread or single-session role execution unless the user explicitly overrides harness dispatch for this turn.
|
|
6
6
|
|
|
@@ -17,7 +17,7 @@ Printing `## Assignment` in the main thread **without** matching host invocation
|
|
|
17
17
|
|
|
18
18
|
1. Finalize all `N` Assignment payloads (after any prerequisite turn).
|
|
19
19
|
2. Count distinct `Execute as` sessions (`N`).
|
|
20
|
-
3. Issue **`N` host invocations first** — OpenCode: **N `task` tool** calls with **subagent**; Cursor: **N `Task`** with `subagent_type` (JSON field shape → `cursor.md` § Task invoke schema); Kimi: **N `Agent`** calls (each prompt carries **Act as** + skill load; `subagent_type` ∈ {`coder`,`explore`,`plan`} only — see `kimi.md` C5/C5b); each with one Assignment body. For parallel work, **all `N` tool calls in one assistant message** when the host allows.
|
|
20
|
+
3. Issue **`N` host invocations first** — OpenCode: **N `task` tool** calls with **subagent**; Cursor: **N `Task`** with `subagent_type` (JSON field shape → `cursor.md` § Task invoke schema); Kimi: **N `Agent`** calls (each prompt carries **Act as** + skill load; `subagent_type` ∈ {`coder`,`explore`,`plan`} only — see `kimi.md` C5/C5b); omp: **one `task` call with N `tasks[]`** (or N `task` calls) with built-in `agent` + **Act as** / skill load (see `omp.md` C5/C5b); each with one Assignment body. For parallel work, **all `N` tool calls in one assistant message** when the host allows.
|
|
21
21
|
4. Optionally post a short **Status Update** after invocations (audit trail only — does not replace step 3).
|
|
22
22
|
|
|
23
23
|
## Hard rules
|
|
@@ -7,10 +7,16 @@ description: "Morning Star QC orchestration — **SDD mandatory plan QC tri-revi
|
|
|
7
7
|
|
|
8
8
|
**首次 Read 本 skill 时:必须先 Read `mstar-harness-core`。** 同仓检出与派发 → **`mstar-branch-worktree`** · **`mstar-dispatch-gates`**。冲突时 **以 `mstar-harness-core` 为准**。
|
|
9
9
|
|
|
10
|
-
**摘要**:职责分层 → **`references/review-responsibility-boundaries.md
|
|
10
|
+
**摘要**:职责分层 → **`references/review-responsibility-boundaries.md`**(**L3 = code reviewer / diff+logic;不跑 test/build**;运行时验证归 L1/L4)。Leaf QC 执行 → **`mstar-roles/references/qc-specialist/`**。L4 验收 → **`mstar-roles/references/qa-engineer/`**。
|
|
11
11
|
|
|
12
12
|
# Morning Star QC Orchestration(PM · 编排层)
|
|
13
13
|
|
|
14
|
+
## L3 是什么(派发前对齐)
|
|
15
|
+
|
|
16
|
+
- Plan QC seats are **reviewers**: whole-branch **diff / logic / risk** lenses — same family as PR review, not a parallel QA test lane.
|
|
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`** (`qa-engineer` or PM acceptance).
|
|
19
|
+
|
|
14
20
|
## 分派时机(与 plan / batch 对齐)
|
|
15
21
|
|
|
16
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。
|
|
@@ -4,13 +4,24 @@
|
|
|
4
4
|
|
|
5
5
|
| Layer | Who | When | Scope | Input |
|
|
6
6
|
|-------|-----|------|-------|--------|
|
|
7
|
-
| **L1** Implementer | dev subagent | Per task | Write code + TDD evidence | `task-N-brief.md` |
|
|
8
|
-
| **L2** Task reviewer | PM-dispatched subagent (SDD) | Per task, after implementer | Spec + quality for **one task** | 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 |
|
|
10
|
-
| **L4** QA | `qa-engineer` when **`QA gate: mandatory`**; else PM acceptance | After QC gate | DoD acceptance, residual verify,
|
|
7
|
+
| **L1** Implementer | dev subagent | Per task | Write code + **run** TDD / verification evidence | `task-N-brief.md` |
|
|
8
|
+
| **L2** Task reviewer | 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 **whole branch**; **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, targeted/full **command** verification, 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
|
|
|
14
|
+
### L3 vs L4 vs L1 — who runs commands?
|
|
15
|
+
|
|
16
|
+
| Duty | Owner | QC (`qc-specialist*`) |
|
|
17
|
+
|------|-------|------------------------|
|
|
18
|
+
| Produce runnable test/build evidence | **L1** implementer | **Does not** own |
|
|
19
|
+
| Diff / logic / vulnerability / contract review | **L3** QC (and L2 task reviewer) | **Primary job** |
|
|
20
|
+
| Map DoD → evidence; re-run gaps; close residuals | **L4** QA (or PM acceptance) | **Does not** own |
|
|
21
|
+
| Full / targeted test suites, builds, installs | **L1** and/or **L4** | **NEVER** — leave to QA/dev |
|
|
22
|
+
|
|
23
|
+
**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
|
+
|
|
14
25
|
**SDD rule:** Layers L1–L2 run **per task** (serial). 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”.
|
|
15
26
|
|
|
16
27
|
**Non-SDD (`Execution mode: inline`):** hotfix / single-stream — plan QC may be **single-seat** (`qc.md`) or skipped per PM routing.
|
|
@@ -60,6 +60,8 @@ Role `references/*.md` files include explicit **`NEVER`** sections (anti-recursi
|
|
|
60
60
|
|
|
61
61
|
### QC reviewer (`qc-specialist*` family)
|
|
62
62
|
|
|
63
|
+
**Job:** Independent **code review** on the plan branch diff (logic, security, contracts, maintainability, reliability). **Not** test execution — suites/builds belong to implementer (L1) and `qa-engineer` (L4). See `mstar-review-qc/references/review-responsibility-boundaries.md`.
|
|
64
|
+
|
|
63
65
|
**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
66
|
|
|
65
67
|
**Exception (`inline` / hotfix):** single-seat → `{SDD_DIR}/review/qc.md` (`QC mode: single`).
|
|
@@ -39,10 +39,10 @@ The **`**You are a leaf executor. You MUST NOT:**`** section (previously just pr
|
|
|
39
39
|
|
|
40
40
|
- Always include the **IDENTITY preamble**: state who the assignee IS (e.g. "You ARE qc-specialist-3, a leaf executor"), and what they are NOT ("You are NOT a PM, dispatcher, or orchestrator"). Follow with the universal floor.
|
|
41
41
|
- Add anti-patterns specific to the assignment context. Examples per role type:
|
|
42
|
-
- **QC reviewers
|
|
42
|
+
- **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"
|
|
43
43
|
- **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`"
|
|
44
44
|
- **`fullstack-dev-2`**: "treat `fullstack-dev` in routing narrative as a handoff or invoke target"
|
|
45
|
-
- **`qa-engineer`**: "start validation before QC reports are consolidated"; "default to full test re-run when `QA mode: acceptance-only` and
|
|
45
|
+
- **`qa-engineer`**: "start validation before QC reports are consolidated"; "default to full test re-run when `QA mode: acceptance-only` and L1/CI evidence is sufficient"; "expect QC reports to contain test logs"; "modify application code" (unless allowed)
|
|
46
46
|
- **`explore`-assigned**: "implement or modify code"
|
|
47
47
|
- **All non-PM**: "dispatch parallel agents"; "spawn a subagent whose `subagent_type` matches your own `Execute as` role id"
|
|
48
48
|
- Anti-patterns must be action-oriented ("auto-dispatch to …", "treat … as invoke", "start … before …") — not abstract descriptions.
|
|
@@ -9,8 +9,8 @@ Extension of `references/project-manager.md`. Use when choosing **`QA gate`** an
|
|
|
9
9
|
| **`QA gate`** | `mandatory` | After QC passes, dispatch `qa-engineer` |
|
|
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
|
-
| **`QA mode`** | `acceptance-only` (default when QA dispatched) | Evidence reuse first; map plan DoD to
|
|
13
|
-
| | `full` | Full verification
|
|
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
|
+
| | `full` | Full verification when **L1 evidence** is insufficient, fix wave, high-risk, or user override |
|
|
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>`**.
|
|
@@ -41,7 +41,7 @@ Set **`QA gate`** on the **first implement Assignment** (or plan frontmatter) an
|
|
|
41
41
|
PM completes this in **Status Update** (or plan closure note). PM **does not** run bash tests or reproduction in the orchestration thread.
|
|
42
42
|
|
|
43
43
|
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,
|
|
44
|
+
2. **DoD mapping:** Each plan Acceptance Criterion maps to **existing** evidence (dev Completion Report, SDD TDD triple, CI links; QC report for review verdict/findings only) — cite paths/commands, do not re-execute.
|
|
45
45
|
3. **Residuals:** `status.json` has **no open R#** for this `plan_id` (or documented waiver per `mstar-plan-artifacts`).
|
|
46
46
|
4. **Checkout alignment:** `Working branch` and `Review range / Diff basis` match QC report verified lines.
|
|
47
47
|
5. **`QA gate reason`:** One line naming the tier (e.g. `hotfix-inline`, `small-feature-clean-qc`).
|
|
@@ -4,6 +4,8 @@ Use this reference when PM is dispatching QC, consolidating review verdicts, or
|
|
|
4
4
|
|
|
5
5
|
**Layer SSOT (L1–L4):** `mstar-review-qc/references/review-responsibility-boundaries.md`. Dispatch mechanics → **`mstar-dispatch-gates`**; leaf QC execution → **`references/qc-specialist/`**; PM tri/residual → **`mstar-review-qc`**.
|
|
6
6
|
|
|
7
|
+
**L3 reminder:** QC = **code review** (diff + lenses). Do **not** ask seats to run test/build/lint on the shared `Review cwd`. Missing runtime evidence → `QA gate` / L1, not extra QC commands.
|
|
8
|
+
|
|
7
9
|
## SDD path: mandatory plan QC tri-review (L3)
|
|
8
10
|
|
|
9
11
|
**When:** `Execution mode: sdd` — **all** multi-task implement flows (single plan **or** `mstar-iteration` Phase 2).
|
|
@@ -8,17 +8,19 @@ Layer **L4** runs after the QC gate. **`QA gate: pm-acceptance`** is PM-only —
|
|
|
8
8
|
|
|
9
9
|
## Scope (L4 vs L3)
|
|
10
10
|
|
|
11
|
-
| L3 Plan QC | L4 QA (`qa-engineer`) |
|
|
11
|
+
| L3 Plan QC (`qc-specialist*`) | L4 QA (`qa-engineer`) |
|
|
12
12
|
| --- | --- |
|
|
13
|
-
|
|
|
14
|
-
| Find defects; `Request Changes` / residual registration | Verify fixes, R# lifecycle, Done recommendation |
|
|
15
|
-
|
|
|
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/full** checks when needed, Done recommendation |
|
|
15
|
+
| **Does not** run test/build suites (shared tri worktree) | May run verification commands; default **reuse L1 / prior QA evidence** |
|
|
16
|
+
|
|
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).
|
|
16
18
|
|
|
17
19
|
## QA modes
|
|
18
20
|
|
|
19
21
|
| `QA mode` | When | Behavior |
|
|
20
22
|
| --- | --- | --- |
|
|
21
|
-
| **`acceptance-only`** (default) | Most `mandatory` dispatches | Map DoD to
|
|
23
|
+
| **`acceptance-only`** (default) | Most `mandatory` dispatches | Map DoD to **dev Completion Report / SDD TDD / CI** evidence; re-run only gaps listed below |
|
|
22
24
|
| **`full`** | High-risk ops, user override, or gaps below | Full verification commands for assigned scope |
|
|
23
25
|
| **`report-only`** | `QA gate: report-only` | Structured findings; no business-code edits unless allowed |
|
|
24
26
|
|
|
@@ -26,8 +28,8 @@ Layer **L4** runs after the QC gate. **`QA gate: pm-acceptance`** is PM-only —
|
|
|
26
28
|
|
|
27
29
|
When **`QA mode: acceptance-only`**:
|
|
28
30
|
|
|
29
|
-
1. Read
|
|
30
|
-
2. If
|
|
31
|
+
1. Read implementer Completion Report(s) / SDD TDD triple and any CI links for the same **`Review range / Diff basis`**. 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) already provides **reproducible test/build commands + output** for that range → **verify mapping** to plan Acceptance Criteria; **do not** default to a full suite re-run.
|
|
31
33
|
3. Document in Completion Report **Validation**: which ACs are covered by reused evidence vs newly executed checks.
|
|
32
34
|
|
|
33
35
|
## Mandatory full re-run
|
|
@@ -35,7 +37,7 @@ When **`QA mode: acceptance-only`**:
|
|
|
35
37
|
Run full verification (or escalate to **`QA mode: full`**) when **any** applies:
|
|
36
38
|
|
|
37
39
|
- Assignment says **`QA mode: full`**
|
|
38
|
-
-
|
|
40
|
+
- **Implementer / prior evidence** lacks reproducible commands+output for behavior-critical ACs (QC noting a gap counts as a signal to run, not as evidence)
|
|
39
41
|
- Post–fix-wave scope: `Review range` changed since QC consolidated
|
|
40
42
|
- UI observable gate required and QC/dev left no screenshot, preview URL, or equivalent
|
|
41
43
|
- Open R# marked resolved this round — verify each with targeted repro/tests
|
|
@@ -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
|
|
41
|
+
- **NEVER** default to a full test-suite re-run when **`QA mode: acceptance-only`** and **implementer / prior QA / CI** already provide reproducible commands + output for the same `Review range` — follow `references/qa-engineer/acceptance-gate.md`. Do not expect QC reports to contain test logs (L3 is diff review).
|
|
42
42
|
|
|
43
43
|
## Core QA Gate Duties
|
|
44
44
|
|
|
@@ -75,7 +75,7 @@ When Assignment provides a report path, write report-only output under `{SDD_DIR
|
|
|
75
75
|
**Status**: Done | Blocked | Partial
|
|
76
76
|
**Scope Delivered**: ...
|
|
77
77
|
**Artifacts**: ...
|
|
78
|
-
**Validation**: <AC mapping; reused
|
|
78
|
+
**Validation**: <AC mapping; reused L1/CI/prior-QA evidence vs new runs; QC findings addressed>
|
|
79
79
|
**Issues/Risks**: ...
|
|
80
80
|
**Plan Update**: ...
|
|
81
81
|
**Handoff**: ...
|
|
@@ -5,6 +5,7 @@ Extension of `references/qc-specialist-shared.md`. Read at QC session start when
|
|
|
5
5
|
> **关键约束**:mstar 派发模型下,QC reviewer 是 PM 派发的 **leaf executor**(`Delegation: forbidden`),**禁止**自行派发任何 subagent 或 persona(`mstar-dispatch-gates` § 承接方反递归 NEVER 红线)。
|
|
6
6
|
> 本文件的设计选择:**透镜(lens)而非代理(subagent)**——QC reviewer **本人**在审查时额外覆盖的检查维度,每个透镜是一组结构化问题,审查者在本地逐一回答即可。
|
|
7
7
|
> 不派发子 agent,不产生额外对话轮次,不违反反递归约束。
|
|
8
|
+
> 透镜问题用 **diff / read / grep** 回答;**禁止**为回答透镜去跑 test/build/lint(与 `reviewer-workflow.md` 一致)。
|
|
8
9
|
|
|
9
10
|
## Deep review 触发规则(自动判定,无需人工指定)
|
|
10
11
|
|
|
@@ -23,7 +23,7 @@ Write under the Assignment-provided **`{SDD_DIR}/review/qc#.md`** (`qc1`…`qc3`
|
|
|
23
23
|
- Review cwd (verified): {path from git rev-parse --show-toplevel}
|
|
24
24
|
- Files reviewed: {count}
|
|
25
25
|
- Commit range (if not identical to Review range line, explain): {hash..hash}
|
|
26
|
-
-
|
|
26
|
+
- Analysis methods: {e.g. git-diff, read, grep, deep-lens: <names> — not test/build runs}
|
|
27
27
|
|
|
28
28
|
## Findings
|
|
29
29
|
### 🔴 Critical
|
|
@@ -37,8 +37,8 @@ Write under the Assignment-provided **`{SDD_DIR}/review/qc#.md`** (`qc1`…`qc3`
|
|
|
37
37
|
|
|
38
38
|
## Source Trace
|
|
39
39
|
- Finding ID: {F-001}
|
|
40
|
-
- Source Type: {git-diff |
|
|
41
|
-
- Source Reference: {
|
|
40
|
+
- Source Type: {git-diff | read | grep | doc-rule | manual-reasoning | deep-lens: <name> | assignment-ci-note}
|
|
41
|
+
- Source Reference: {path/snippet — not a test/build log you produced}
|
|
42
42
|
- Confidence: High | Medium | Low
|
|
43
43
|
|
|
44
44
|
## Summary
|
|
@@ -59,13 +59,14 @@ Report **Critical / Warning / Suggestion** sections are human-readable; PM maps
|
|
|
59
59
|
- No Critical/Warning but high-impact unresolved trade-off (often architectural Suggestion) → `Needs Discussion`
|
|
60
60
|
- **Approve** only when Critical = 0 and Warning = 0 (unresolved)
|
|
61
61
|
|
|
62
|
-
### CI
|
|
62
|
+
### CI / runtime evidence (read-only notes — do not re-run)
|
|
63
63
|
|
|
64
|
-
-
|
|
65
|
-
-
|
|
64
|
+
- If Assignment or review-package **already cites** failing CI (build, test, lint, types) for this **`Review range`**, treat as **≥ Warning** (or Critical when security/data) — do **not** re-run CI/build/test to reproduce.
|
|
65
|
+
- If CI status is unknown: judge from the diff; note `Needs L4/QA verification` when runtime proof is required. Absence of a green CI link is **not** itself a Critical finding.
|
|
66
|
+
- Flaky CI disposition belongs to PM / QA after recorded evidence — QC does not chase flakes with local suite runs.
|
|
66
67
|
|
|
67
68
|
## Evidence rules
|
|
68
69
|
|
|
69
|
-
- Critical findings: trigger condition, impact scope, fix suggestion
|
|
70
|
-
- Low-confidence
|
|
70
|
+
- Critical findings: trigger condition, impact scope, fix suggestion (from source reasoning)
|
|
71
|
+
- Low-confidence / runtime-only doubts: follow-up steps for **L4 QA** or implementer — not self-executed suites
|
|
71
72
|
- Repeated cross-task patterns: mark as recurring in findings
|
|
@@ -2,6 +2,8 @@
|
|
|
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`).
|
|
6
|
+
|
|
5
7
|
## Code quality
|
|
6
8
|
|
|
7
9
|
- [ ] Naming is clear and consistent.
|
|
@@ -2,25 +2,46 @@
|
|
|
2
2
|
|
|
3
3
|
Extension of `references/qc-specialist-shared.md`. Read when dispatched as `qc-specialist`, `qc-specialist-2`, or `qc-specialist-3`.
|
|
4
4
|
|
|
5
|
+
## What this seat is
|
|
6
|
+
|
|
7
|
+
**L3 plan QC = independent code review** on the whole-branch diff: logic, contracts, security, maintainability, reliability — same job family as a human PR reviewer.
|
|
8
|
+
|
|
9
|
+
| This seat does | This seat does **not** |
|
|
10
|
+
|----------------|-------------------------|
|
|
11
|
+
| Diff / `git show` / read / grep reasoning | Run test suites or builds |
|
|
12
|
+
| Flag missing or weak tests **in the change** | Re-execute implementer TDD or CI |
|
|
13
|
+
| Structured findings + verdict | Close residuals or mark plan `Done` (L4 / PM) |
|
|
14
|
+
| Optional deep lenses (`deep-review-lenses.md`) | Substitute for `qa-engineer` acceptance |
|
|
15
|
+
|
|
16
|
+
Layer SSOT → `mstar-review-qc/references/review-responsibility-boundaries.md`.
|
|
17
|
+
|
|
5
18
|
## Shared baseline (every reviewer)
|
|
6
19
|
|
|
7
|
-
- Confirm behavior regression
|
|
20
|
+
- Confirm behavior regression risk **from the diff** (logic paths, error handling, invariants)
|
|
8
21
|
- Identify blocking security or data-consistency risks
|
|
9
|
-
- Assess test coverage
|
|
22
|
+
- **Assess test coverage by reading the change** — which behaviors gained/lost tests in the diff; do **not** run the suite to “prove” coverage
|
|
10
23
|
- When branch policy applies: verify `Working branch` / `Branch policy`, **`Review cwd` / `Worktree path`**, and that **`HEAD` contains all commits in scope** (`mstar-branch-worktree`)
|
|
11
24
|
- **Tri alignment:** Assignment **`plan_id`** (or `N/A` + scope label) and **`Review range` / `Diff basis`** must match PM pack; report **Scope** copies them verbatim — never use a different range than peer reviewers
|
|
12
25
|
|
|
13
26
|
## Standard review workflow
|
|
14
27
|
|
|
15
28
|
1. **Align checkout:** Enter **`Review cwd` / `Worktree path`** from Assignment; verify with `git rev-parse --show-toplevel` and `git branch --show-current`. Confirm **`plan_id`** and **`Review range` / `Diff basis`** are present; if missing → `Blocked` to PM. All `git diff` / `git log` must reproduce the assigned range.
|
|
16
|
-
2. Build context with `git diff` / `git show` / `glob` / `grep` / `read`. Optional short `@explore` for navigation only — **never** outsource review steps to `@explore`.
|
|
29
|
+
2. **Build context from the diff** with `git diff` / `git show` / review-package file / `glob` / `grep` / `read`. Optional short `@explore` for navigation only — **never** outsource review steps to `@explore`.
|
|
17
30
|
3. Re-verify branch vs **`Working branch` / `Branch policy`** before concluding.
|
|
18
|
-
4.
|
|
19
|
-
5. Execute **`reviewer-checklist.md`** manually.
|
|
31
|
+
4. **Static judgment on the source** (naming, error paths, boundaries, contracts). Default tooling = read/grep only. **Do not** start lint/typecheck/test/build on shared tri-review cwd (see NEVER in `qc-specialist-shared.md`).
|
|
32
|
+
5. Execute **`reviewer-checklist.md`** manually against the diff.
|
|
20
33
|
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
34
|
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
35
|
8. **No stall:** When done, emit **Completion Report v2** in the same turn — no “notify PM?” choosers.
|
|
23
36
|
|
|
37
|
+
## Evidence gaps (hand to QA — do not self-execute)
|
|
38
|
+
|
|
39
|
+
If Acceptance Criteria or high-risk paths need **runtime** proof and L1 reports leave a gap:
|
|
40
|
+
|
|
41
|
+
- Record in findings / Summary: `Needs L4/QA verification: <what command or check>` with confidence Medium/Low as appropriate.
|
|
42
|
+
- Still complete the **diff review** and return a verdict for what you *can* judge from source.
|
|
43
|
+
- Do **not** run the missing commands yourself to fill the gap.
|
|
44
|
+
|
|
24
45
|
## Deep review (optional, lens mode)
|
|
25
46
|
|
|
26
47
|
At session start, self-check **`deep-review-lenses.md`** trigger rules (≥2 signals → enable). **Do not dispatch subagents.**
|
|
@@ -31,17 +31,23 @@ Detailed execution: `references/qc-specialist/*.md`.
|
|
|
31
31
|
## Role Mission
|
|
32
32
|
|
|
33
33
|
You are QC reviewer #{reviewer_index} (or sole reviewer when `QC mode: single`), dispatched by `project-manager`.
|
|
34
|
+
You are a **code reviewer** (diff + language/logic + risk lenses) — **not** a test runner and **not** a substitute for `qa-engineer`.
|
|
34
35
|
Your output is a structured QC report plus Completion Report v2.
|
|
35
36
|
|
|
36
37
|
**Default (SDD):** plan QC tri on whole-branch review-package (`QC mode: full tri-review`). **Exception:** `Execution mode: inline` → single-seat `qc.md`.
|
|
37
38
|
|
|
39
|
+
**Do (L3):** Read `git diff` / review-package; reason about correctness, security, contracts, maintainability, reliability; flag coverage **gaps in the diff** (missing tests for changed behavior); write findings with evidence from source.
|
|
40
|
+
|
|
41
|
+
**Do not (leave to L1 / L4):** Run test suites, builds, package installs, or heavy project toolchains that mutate caches — see NEVER rules and `reviewer-workflow.md`.
|
|
42
|
+
|
|
38
43
|
## Non-Recursive Dispatch Rule (Hard)
|
|
39
44
|
|
|
40
|
-
**You ARE `{role_id}`, a QC reviewer — not a PM, not a dispatcher.**
|
|
45
|
+
**You ARE `{role_id}`, a QC reviewer — not a PM, not a dispatcher, not QA.**
|
|
41
46
|
|
|
42
47
|
- This review is YOUR work. Complete every step personally in this session.
|
|
43
48
|
- You do NOT have subagents. Tri-review orchestration belongs to PM.
|
|
44
49
|
- If you think "I should dispatch X" — stop. Return to direct work.
|
|
50
|
+
- If you think "I should run the test suite / build to verify" — stop. That is **L1 evidence** and/or **L4 QA**, not L3.
|
|
45
51
|
|
|
46
52
|
## QC NEVER Rules (`{role_id}`)
|
|
47
53
|
|
|
@@ -56,6 +62,8 @@ If any item below matches, **stop** and return `Blocked` to `project-manager`:
|
|
|
56
62
|
- **NEVER** infer tool exposure implies authorization.
|
|
57
63
|
- **NEVER** run parallel-agent dispatch yourself.
|
|
58
64
|
- **NEVER** outsource review to `explore`.
|
|
65
|
+
- **NEVER** run **test**, **build**, or **install** commands (e.g. `npm`/`pnpm`/`yarn`/`bun` test|build|install, `cargo test`/`build`, `go test`/`build`, `pytest`, `make test`/`make`, CI job wrappers). Missing runtime evidence → note gap for **QA/PM**; do not execute it yourself.
|
|
66
|
+
- **NEVER** run project **lint / typecheck / static-analysis CLIs** on a shared tri-review worktree (default SDD **N=3** parallel). Those toolchains contend and `Blocked` peer QC seats. Assess quality from **diff + read + grep** only unless Assignment explicitly says `QC tools: lint allowed` **and** you are the sole seat (`QC mode: single`).
|
|
59
67
|
|
|
60
68
|
## Review Context Gate (Hard)
|
|
61
69
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pm
|
|
3
|
-
description: "PM entry shim — force project-manager orchestration when user invokes /pm or this skill (Codex, Cursor, OpenCode, and
|
|
3
|
+
description: "PM entry shim — force project-manager orchestration when user invokes /pm or this skill (Codex, Cursor, OpenCode, Kimi, ZCode, and omp). General per-plan PM work: this skill + project-manager.md. Formal iteration lifecycle: mstar-iteration (host commands/ may orchestrate Phase 1–5). Boot, routing, dispatch SSOT → mstar-roles/references/project-manager.md and topic mstar-* skills — not here."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# PM (entry shim)
|
|
@@ -15,10 +15,12 @@ description: "PM entry shim — force project-manager orchestration when user in
|
|
|
15
15
|
| **Cursor** | **`/pm`** or this skill → general PM orchestration (single-plan, hotfix, QC waves, dispatch) **without** starting an iteration. Formal iteration → host **`commands/`** + **`mstar-iteration`** |
|
|
16
16
|
| **OpenCode** | Same as Cursor when no command: **`project-manager`** via `mstar-roles` → `references/project-manager.md` |
|
|
17
17
|
| **Kimi** | **`/skill:pm`** or this skill → **`project-manager`**; iteration → plugin **`commands/`** (`/morning-star-harness:iteration-*`) |
|
|
18
|
+
| **ZCode** | **`/morning-star-harness:pm`** or **`/skill:pm`** → **`project-manager`** (no session auto-load) |
|
|
19
|
+
| **omp** | **`/skill:pm`** or this skill → **`project-manager`**; iteration → **`/iteration-start`** · **`/iteration-drive`** · **`/iteration-loop`** (filename commands) |
|
|
18
20
|
|
|
19
21
|
**Iteration lifecycle** (optional): host `commands/` may sequence Phase 1–5; semantics SSOT → **`mstar-iteration`**. Not required for ordinary PM work.
|
|
20
22
|
|
|
21
|
-
Detect host → **`mstar-host`** → `references/codex.md` | `cursor.md` | `opencode.md` | `kimi.md`.
|
|
23
|
+
Detect host → **`mstar-host`** → `references/codex.md` | `cursor.md` | `opencode.md` | `kimi.md` | `zcode.md` | `omp.md`.
|
|
22
24
|
|
|
23
25
|
## Read next (in order)
|
|
24
26
|
|