@mstar-harness/opencode 1.0.3 → 1.0.4
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 +4 -4
- package/harness-skills/mstar-branch-worktree/SKILL.md +9 -7
- package/harness-skills/mstar-branch-worktree/references/parallel-writable-pre-dispatch.md +56 -0
- package/harness-skills/mstar-dispatch-gates/SKILL.md +11 -2
- package/harness-skills/mstar-harness-core/SKILL.md +1 -0
- package/harness-skills/mstar-iteration/SKILL.md +2 -2
- package/harness-skills/mstar-phase-gates/SKILL.md +1 -1
- package/harness-skills/mstar-roles/references/fullstack-dev-shared.md +2 -0
- package/harness-skills/mstar-roles/references/project-manager/dispatch-and-assignment.md +2 -1
- package/harness-skills/mstar-roles/references/project-manager.md +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,13 +4,13 @@ All notable changes to the `@mstar-harness/opencode` package are documented in t
|
|
|
4
4
|
|
|
5
5
|
The monorepo root [CHANGELOG.md](../../CHANGELOG.md) summarizes cross-surface releases.
|
|
6
6
|
|
|
7
|
-
## 1.0.
|
|
7
|
+
## 1.0.4
|
|
8
8
|
|
|
9
|
-
- Bundled skills
|
|
9
|
+
- Bundled skills: parallel writable pre-dispatch SSOT (`parallel-writable-pre-dispatch.md`); dispatch-gates dual-gate table (N invoke vs worktree); deduped skill pointers; routing-eval v16.
|
|
10
10
|
|
|
11
|
-
See root [CHANGELOG.md](../../CHANGELOG.md) **1.0.
|
|
11
|
+
See root [CHANGELOG.md](../../CHANGELOG.md) **1.0.4**.
|
|
12
12
|
|
|
13
|
-
## 1.0.
|
|
13
|
+
## 1.0.3
|
|
14
14
|
|
|
15
15
|
- Bundled skills/commands: iteration artifact boundaries (`{ITERATION_DIR}/<id>/` workspace, specs-first start, compound workspace promotion at close); new iteration references; corpus hygiene aligned.
|
|
16
16
|
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: mstar-branch-worktree
|
|
3
|
-
description: Morning Star business-repo Git feature branches, same-repo concurrent `git worktree` isolation, plan/Spec integration branches, and QC/QA checkout alignment (`Review cwd`, `Working branch`, `plan_id`, `Review range` / `Diff basis` must match verbatim across three QC reviewers and QA). Read when PM writes `Working branch` / `Branch policy`, two or more writable streams touch one repo, dispatching QC tri-review or QA after merging to a single `HEAD`, dev/QA/ops before first `git commit`, or explaining worktree paths. Required for `project-manager` parallel implement or pre-QC orchestration; `fullstack-dev*` / `frontend-dev` / `qa-engineer` / `ops-engineer` on repo writes; `qc-specialist*` before review. Does not replace the state machine (`mstar-harness-core`).
|
|
3
|
+
description: Morning Star business-repo Git feature branches, same-repo concurrent `git worktree` isolation (N parallel Task invokes do NOT satisfy isolation — worktrees must exist before writable dispatch), plan/Spec integration branches, and QC/QA checkout alignment (`Review cwd`, `Working branch`, `plan_id`, `Review range` / `Diff basis` must match verbatim across three QC reviewers and QA). Read when PM writes `Working branch` / `Branch policy`, dispatches ≥2 concurrent writable implement tracks on one repo, `Worktree isolation: required`, two or more writable streams touch one repo, dispatching QC tri-review or QA after merging to a single `HEAD`, dev/QA/ops before first `git commit`, or explaining worktree paths. Required for `project-manager` parallel implement or pre-QC orchestration; `fullstack-dev*` / `frontend-dev` / `qa-engineer` / `ops-engineer` on repo writes; `qc-specialist*` before review. Does not replace the state machine (`mstar-harness-core`).
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## Load order(必读顺序)
|
|
7
7
|
|
|
8
8
|
**首次 Read 本 skill 前:必须先 Read `mstar-harness-core`(SKILL.md)。** 冲突时 **以 `mstar-harness-core` 为准**。
|
|
9
9
|
|
|
10
|
-
**Spec 多 plan 命名**(`iteration_base_branch`、`spec_integration_branch`、`target_branch` PR 门禁)→ **`mstar-plan-conventions
|
|
10
|
+
**Spec 多 plan 命名**(`iteration_base_branch`、`spec_integration_branch`、`target_branch` PR 门禁)→ **`mstar-plan-conventions`**。同仓并行可写派发前清单 → **`references/parallel-writable-pre-dispatch.md`**;下文为分支与 QC/QA 检出对齐主文。
|
|
11
11
|
|
|
12
12
|
## Scope(摘要)
|
|
13
13
|
|
|
14
14
|
- **仅 PM 决定分支**;其他可写角色不得自行新开分支或切回 `main`。
|
|
15
15
|
- **Assignment 须含其一**:`Working branch: <existing>` | `create <new> from <base>` | `Branch policy: direct on <branch> — <reason>`。
|
|
16
|
-
- **同仓 ≥2
|
|
16
|
+
- **同仓 ≥2 可写并发**:派发 **前** 完成 **`references/parallel-writable-pre-dispatch.md`**(含 `git worktree`、绝对 **`Worktree path`**;**N 次并行 invoke ≠ 已隔离**)。
|
|
17
17
|
- **QC/QA 前**:待审提交归并到 **单一 `Working branch` `HEAD`**;三审 + QA 共用一套 **`Review cwd` + `plan_id` + `Review range` / `Diff basis`**(逐字相同)。
|
|
18
18
|
|
|
19
19
|
## Git 功能分支、同仓并发与 Worktree 对齐
|
|
@@ -101,14 +101,14 @@ description: Morning Star business-repo Git feature branches, same-repo concurre
|
|
|
101
101
|
|
|
102
102
|
## 同仓并发写入与 Git worktree(强制)
|
|
103
103
|
|
|
104
|
-
**首要场景是开发阶段**:多条可写流 **并发** 改 **同一仓库** 时,用 worktree 做
|
|
104
|
+
**首要场景是开发阶段**:多条可写流 **并发** 改 **同一仓库** 时,用 worktree 做 **写入侧目录隔离**。派发前清单 → **`references/parallel-writable-pre-dispatch.md`**。下列规则针对该类开发并发;**QC / QA 阶段的检出约定**见下一小节。
|
|
105
105
|
|
|
106
106
|
当 **`project-manager` 在同一调度轮次内并发启动多个** subagent(含宿主侧「并行 Task / 并行 subagent」),且 **≥2 个承接方**可能对 **同一 Git 仓库的同一工作区(同一 cwd 检出目录)**产生写文件或 `git commit` 级改动时:
|
|
107
107
|
|
|
108
108
|
- **必须**为每条并发写流使用 **独立检出目录**:优先使用宿主原生 worktree/checkout 隔离能力;没有原生能力时使用 `git worktree`,并按本 skill 的目录、分支和 QC/QA 对齐规则执行。
|
|
109
109
|
- **必须**与既有分支门禁一致:每个可写承接方的 Assignment 仍须含 PM 已批准的 **`Working branch`** / **`Branch policy`**;在某一 worktree 内 **不得**擅自 `checkout` 到未授权分支或私自新建分支。
|
|
110
110
|
- **PM 须在 Assignment 中写清**各并发写流的 **检出约定**(例如预期 **`Worktree path`** / 命名规则,或「由承接方创建/使用隔离 worktree 并在 Completion Report 回报路径」),避免多代理默认共享同一目录导致互相覆盖、冲突或半写入状态。
|
|
111
|
-
- **同仓、同一 plan、≥2
|
|
111
|
+
- **同仓、同一 plan、≥2 可写并行轨**:派发各轨实现 Assignment **之前** 确认 **`Branch policy`** 与 plan 集成分支 / topic 分支关系(见下节 **「默认编排」**),并完成 reference 清单中的 worktree 步骤。
|
|
112
112
|
|
|
113
113
|
**可不强制新开 worktree** 的情形包括:并发流 **全部为只读**;各写入者针对 **不同 Git 仓库根**;或写入 **串行**(同一时刻仅一个代理持有该仓工作区)。
|
|
114
114
|
|
|
@@ -116,14 +116,14 @@ description: Morning Star business-repo Git feature branches, same-repo concurre
|
|
|
116
116
|
|
|
117
117
|
当多个可写 subagent **并发**修改 **同一仓库** 时,**不得**共用同一检出目录作为写入 cwd。PM 在分派前应规划 worktree/checkout 隔离,并在各承接方 Assignment 中写明 **`Working branch`** / **`Branch policy`** 及 **检出路径约定**(或要求回报实际 worktree 路径)。单分支决策权仍仅属 PM;worktree 只解决「目录与工作区隔离」,不替代分支授权。
|
|
118
118
|
|
|
119
|
-
**同仓、同一 plan
|
|
119
|
+
**同仓、同一 plan、多可写并行轨**:挂齐各轨 worktree **之前** 先确认 plan 集成分支与各轨 topic 分支及 merge 靶;QC 前归并到单一 **`Working branch` `HEAD`**。分步见下节 **「默认编排」**。
|
|
120
120
|
|
|
121
121
|
**QC / QA 与 feature**:开发常在 **feature 分支的 worktree** 中完成;进入 **QC 三审**与随后的 **QA 验证**时,PM 须在 Assignment 中写明 **`Review cwd` / `Worktree path`**、**`Working branch`**、**`plan_id`**(无 plan 流程时 `N/A` + 不可歧义 **Feature / scope label**)与 **`Review range` / `Diff basis`**;**三份 QC Assignment 与 QA Assignment 中 `plan_id` 与 `Review range` / `Diff basis` 须逐字相同**,保证三票审 **同一 plan/feature 与同一 diff 范围**。
|
|
122
122
|
|
|
123
123
|
## 多 worktree 并行开发与 QC / QA 的门禁衔接(强制;避免误派)
|
|
124
124
|
|
|
125
125
|
- **语义区分(必须理解)**:开发阶段可以存在 **多个** `Worktree path`(每条约流一条检出目录);**一轮**正式 QC 三审及与之 **逐字对齐** 的 QA 验证,在 harness 中仍只对应 **一套** `Review cwd` / `Worktree path` + **`Working branch`** + **`Review range` / `Diff basis`**(三票 QC 与 QA **共用且逐字相同**)。**不要**把「多个开发 worktree」误解成「QC 应轮流进多个目录各审一半」。
|
|
126
|
-
-
|
|
126
|
+
- **默认编排:先建 plan 集成分支,再挂各 worktree(PM)**:在 **同仓**、**同一 plan** 且 **≥2 条可写并行轨** 时,按下列顺序编排可最大幅度降低 QC/QA 误用单一开发目录的风险。**不是唯一合法 Git 拓扑**;若采用其它拓扑,仍须满足本节下文 **强制**条款(派发前 worktree 隔离 + 派 QC 前 **单一**待审 `HEAD` + 一套对齐字段)。
|
|
127
127
|
1. **先起集成分支(再挂 worktree)**:在派发各轨 **实现** Assignment 之前,PM 与用户确认 **`Branch policy`**,并建立 **plan 集成分支**(Assignment 使用 **`Working branch: create <plan-integration-branch> from <base>`** 或等价明确写法;`<base>` 必须是 PM 明确记录的 base,例如 root `metadata.iteration_base_branch`、现有 feature 分支、远程跟踪分支或团队既定主线,**不得**未授权假设)。**分支名由 PM 指定**;下文 **`feature/<plan-id>-integrate`**、**`integrate/<plan-id>`** 仅为命名示例,**非强制**。**多 `plan_id` 同源一条 `primary_spec`(Spec 文档)时**:该集成分支在计划语义上即 **Spec 集成分支**;各 Plan 的 feature 线 merge 回此线,**全部 Plans 完成后** 向显式 `target_branch` **走 PR**(见 `mstar-plan-conventions` SKILL.md「Spec 驱动的分支模型」)。
|
|
128
128
|
2. **再挂各轨 worktree**:为每条并行轨分配 **独立** `git worktree` + **`Worktree path`**;各轨 **`Working branch`** 一般为 **从集成分支出** 的 topic 分支(`create <topic-i> from <plan-integration-branch>`)或 PM 书面约定的等价结构(例如从同一 `<base>` 出 topic、但 **书面指定** 合并时 **以集成分支为靶**)。**禁止**承接方擅自把未授权功能提交直接堆在 `main`/`master`。
|
|
129
129
|
3. **进 QC 之前**:将全部 **须同一轮三审覆盖** 的提交 **merge / rebase / cherry-pick**(以 PM 指定的团队方式)**归并**到 **同一条** PM 将作为 QC **`Working branch`** 的分支的 **`HEAD`**(**通常即 plan 集成分支**;若 PM 已将集成分支重命名或快进为最终 `feature/*`,以 Assignment 为准)。**在此**解决冲突;**勿**在 QC Assignment 仍指向「只含部分轨」的旧 `HEAD` 时派三审。
|
|
@@ -145,3 +145,5 @@ description: Morning Star business-repo Git feature branches, same-repo concurre
|
|
|
145
145
|
- QC 的 **报告落盘**仍仅限 `{PLAN_DIR}/reports/`;上述约定保证 `git diff`、`git log`、lint 与所读文件与 **待合并 feature** 一致。
|
|
146
146
|
- **`project-manager`** 分派 **`qa-engineer`** 做 **本 feature 的验证**(跑测试、复现、可观察取证、或向业务仓提交测试/配置)时,须在 Assignment 中写明 **同一套** **`Review cwd` / `Worktree path`**、**`Working branch`**、**`plan_id`** 与 **`Review range` / `Diff basis`**(与 QC 三审 **逐字相同**;若 QC 已写清,QA **照抄**)。**`qa-engineer`** 在执行业务仓命令前须核对当前目录与分支与 Assignment 一致;**Report-only**、且本轮 **不涉及** 业务仓内命令/路径依赖时,若 Assignment 未写 `Review cwd`,须在回报中说明验证所基于的检出或环境,缺失则 `Blocked` 并请 PM 补全。
|
|
147
147
|
- 若 **QA 与同仓其他可写角色并发**提交测试代码,仍须遵守上文「同仓并发写入」的 **worktree** 规则(可为 QA 单开一条写入 worktree,**同一 `Working branch`**,由 PM 在 Assignment 写明)。
|
|
148
|
+
|
|
149
|
+
派发前清单与常见反模式 → **`references/parallel-writable-pre-dispatch.md`**。
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Parallel writable pre-dispatch gate (PM)
|
|
2
|
+
|
|
3
|
+
## Why this exists
|
|
4
|
+
|
|
5
|
+
Host dispatch can satisfy **「N Assignments ⇒ N invokes in one message」** while every writer still shares **one checkout directory**. That may satisfy `mstar-dispatch-gates` tool concurrency but **violates** same-repo write isolation.
|
|
6
|
+
|
|
7
|
+
**N parallel invokes ≠ parallel-safe.** Worktree isolation is a **separate, earlier** gate.
|
|
8
|
+
|
|
9
|
+
## Mode switch (do not carry single-track habits)
|
|
10
|
+
|
|
11
|
+
Serial single-plan waves (one feature branch, one checkout, PM on integration) do **not** authorize multi-writer parallel tracks without re-running this gate.
|
|
12
|
+
|
|
13
|
+
When the round adds a second **concurrent** writable implement track on the **same business repo**, treat it as a **mode switch** — even if earlier plans in the iteration were serial.
|
|
14
|
+
|
|
15
|
+
## Pre-dispatch checklist (HARD)
|
|
16
|
+
|
|
17
|
+
Before the **first** concurrent writable implement dispatch in a round:
|
|
18
|
+
|
|
19
|
+
1. **Re-read repo parallel rules** — root `AGENTS.md` and `{HARNESS_DIR}/AGENTS.md` for branch / worktree / merge-order constraints not duplicated in harness skills.
|
|
20
|
+
2. **Confirm PM checkout** — PM thread stays on **`spec_integration_branch`** (or the team integration line). **Do not** `checkout` topic / feature branches in the PM **primary cwd** to "help" implementers.
|
|
21
|
+
3. **Create isolation** — for each writable track: `git worktree add <worktree-path> <branch>` (or host-equivalent) **before** Task invoke. Each Assignment **must** include absolute **`Worktree path`**.
|
|
22
|
+
4. **Verify paths exist** — for each track: directory exists; `git -C <path> branch --show-current` matches Assignment **`Working branch`**.
|
|
23
|
+
5. **Assignment tags** — `Dispatch mode: parallel independent tracks` + `Worktree isolation: required` (`mstar-phase-gates`).
|
|
24
|
+
6. **Merge order** — when tracks may touch overlapping paths (shared packages, migrations, lockfiles), PM assigns **explicit sequential merge order** before dispatch.
|
|
25
|
+
|
|
26
|
+
## PM primary cwd invariants
|
|
27
|
+
|
|
28
|
+
| Allowed (PM thread) | Forbidden (PM thread) |
|
|
29
|
+
|---------------------|----------------------|
|
|
30
|
+
| `git checkout` integration branch | `checkout` writable topic branches while tracks are active |
|
|
31
|
+
| `git worktree add` / `list` / `remove` | `commit` product code |
|
|
32
|
+
| read-only inspection inside worktrees | switch primary cwd to an implementer feature branch |
|
|
33
|
+
|
|
34
|
+
## Leaf implementer invariants
|
|
35
|
+
|
|
36
|
+
- **Before first** repo `Write` / `commit`: `cd` to Assignment **`Worktree path`**.
|
|
37
|
+
- **Never** implement in PM's integration checkout when Assignment names a different **`Worktree path`**.
|
|
38
|
+
- Completion Report: **`Worktree path used`** (absolute) + **`Working branch used`**.
|
|
39
|
+
|
|
40
|
+
## Common anti-patterns
|
|
41
|
+
|
|
42
|
+
| Looks compliant | Actually wrong |
|
|
43
|
+
|----------------|----------------|
|
|
44
|
+
| Two Task invokes in one message | Both writers share default repo root checkout |
|
|
45
|
+
| Assignment lists `Working branch: feature/...` only | No `Worktree path`; subagent inherits PM cwd |
|
|
46
|
+
| `git checkout -b feature/...` on shared checkout | Branch exists but **no** directory isolation |
|
|
47
|
+
| Parent `.worktrees/` directory exists | Per-track subdirs missing — empty parent ≠ isolation |
|
|
48
|
+
| Prior serial plans succeeded | Assumes parallel needs no worktree setup |
|
|
49
|
+
|
|
50
|
+
## Emit-zero until ready
|
|
51
|
+
|
|
52
|
+
If worktrees are not created and verified, **`Subagent invokes issued: 0`** for that implement batch — same discipline as `mstar-dispatch-gates` emit-zero for incomplete parallel QC batches.
|
|
53
|
+
|
|
54
|
+
## After parallel dev (pointer)
|
|
55
|
+
|
|
56
|
+
Before plan QC tri: merge all tracks to one **`Working branch` `HEAD`** — parent skill §「单一待审 Git 快照」.
|
|
@@ -77,7 +77,15 @@ When **`Execution mode: sdd`** (`mstar-sdd`):
|
|
|
77
77
|
|
|
78
78
|
## 并行规则(摘要)
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
**两条独立门禁(均须满足,不可互相替代)**:
|
|
81
|
+
|
|
82
|
+
| 门禁 | SSOT | 常见误满足 |
|
|
83
|
+
|------|------|------------|
|
|
84
|
+
| **工具并发** | 同条消息发满 N 次 invoke | 已发 2 个 Task ⇒ 误以为「并行合规」 |
|
|
85
|
+
| **同仓写隔离** | 派发 **前** 每轨独立 `Worktree path` | 只写了 `Working branch` / `checkout -b` |
|
|
86
|
+
|
|
87
|
+
- 独立模块可并行 **implement 轨道**(不同 dev Assignment);**同仓 ≥2 可写并发** → **`mstar-branch-worktree`** **`references/parallel-writable-pre-dispatch.md`**(先于 invoke)。
|
|
88
|
+
- **SDD 单 plan 内 task** 仍串行(`mstar-sdd`);plan 间默认串行(`mstar-iteration` §2.6)— 用户书面 override 时仍须 worktree 隔离。
|
|
81
89
|
- **Plan QC tri** after SDD task loop(`Execution mode: sdd`);**单席**仅 `inline` / hotfix。共用 `Review cwd` / `Working branch` / `plan_id` / `Review range`(**`mstar-branch-worktree`**)。
|
|
82
90
|
- **Tri 同消息规则**:plan QC tri(SDD 或 Assignment 显式 `QC mode: full tri-review`)时三席 **同一条消息**、**同一套** scope 字段。
|
|
83
91
|
|
|
@@ -96,7 +104,8 @@ When **`Execution mode: sdd`** (`mstar-sdd`):
|
|
|
96
104
|
|
|
97
105
|
- QC 三审拆在多条消息(tri 模式)或单席却未附 review-package 路径。
|
|
98
106
|
- 仅 1 次 invoke 却声称「tri-review 已并行启动」(tri 模式 N=3)。
|
|
99
|
-
- SDD 并行 implementer dispatch
|
|
107
|
+
- SDD 并行 implementer dispatch(**同一 plan 内**多 task)。
|
|
108
|
+
- 同仓多轨 writable implement:**N invoke ≠ worktree 隔离** → **`mstar-branch-worktree`** **`references/parallel-writable-pre-dispatch.md`**。
|
|
100
109
|
- 递归同角色 subagent;把 Handoff / 多轨编排措辞当 invoke。
|
|
101
110
|
- Review-and-edit 链未完成即 commit integration 分支;PM 代做专业角色编辑而不 invoke。
|
|
102
111
|
- Phase 1 review-and-edit 链三角色并行派发,或未等上一角色返回即派发下一角色。
|
|
@@ -142,6 +142,7 @@ Read **`mstar-host`** after this skill; detect host per its table, then Read the
|
|
|
142
142
|
| 递归误派 / 误读 Handoff | `mstar-dispatch-gates` |
|
|
143
143
|
| `quick` 跳过 Prepare | 上表 + `mstar-phase-gates` |
|
|
144
144
|
| 多 worktree 未归并就 QC | `mstar-branch-worktree` |
|
|
145
|
+
| 并行 implement:N invoke 无 worktree | `mstar-branch-worktree` → `references/parallel-writable-pre-dispatch.md` |
|
|
145
146
|
| residual 只写 plan 不写 SSOT | `mstar-plan-artifacts` |
|
|
146
147
|
| 角色文件塞流程长文 | 用专题 skill |
|
|
147
148
|
| 无证据宣称完成 | `mstar-coding-behavior` / verification |
|
|
@@ -239,7 +239,7 @@ SSOT = `{HARNESS_DIR}/status.json` + `{PLAN_DIR}/`。todos 只追踪本轮下一
|
|
|
239
239
|
|
|
240
240
|
对每个 active `plan_id`:
|
|
241
241
|
|
|
242
|
-
1. **Plan start — feature branch**:Assignment 用 `Working branch: create <plan-feature-branch> from <spec_integration_branch>`。一个 plan
|
|
242
|
+
1. **Plan start — feature branch**:Assignment 用 `Working branch: create <plan-feature-branch> from <spec_integration_branch>`。一个 plan 一条专用实现分支;plan 内多可写并行轨 → **`mstar-branch-worktree`** **`references/parallel-writable-pre-dispatch.md`**
|
|
243
243
|
2. **Implement → InReview**(`§ 2.5`):
|
|
244
244
|
- **默认 `Execution mode: sdd`**(多 task plan;hotfix 可 `inline`)。
|
|
245
245
|
- PM 载入 **`mstar-sdd`** 后,按 plan task 顺序 **串行** per-task 循环(**不是**一次派发 dev 做全部 tasks):
|
|
@@ -281,7 +281,7 @@ Iteration Phase 2 附加:
|
|
|
281
281
|
|
|
282
282
|
- PM **NEVER** 在 PM 线程实现产品代码(delegate dev;hotfix 例外见 **`mstar-phase-gates`**)
|
|
283
283
|
- `Subagent invokes issued: 0` 而 Assignment 已写出 → **`dispatch incomplete`**;下一条补发 invoke,禁止 PM 顶替
|
|
284
|
-
- QC 初轮:**SDD → N=3**;**inline → N=1
|
|
284
|
+
- QC 初轮:**SDD → N=3**;**inline → N=1**;plan QC tri 三席 **同条消息 N=3**(非 implement 轨数)
|
|
285
285
|
|
|
286
286
|
### 2.6 Push 纪律(Autonomous Execute)
|
|
287
287
|
|
|
@@ -28,7 +28,7 @@ description: Morning Star (启明星) Spec-Driven 双阶段门禁 —— Prepare
|
|
|
28
28
|
|
|
29
29
|
- **`plan(locked)`** — 冻结基线;实现中出现新约束时**先回写 plan 再继续**。
|
|
30
30
|
- **`tasks`** — 含依赖顺序、并行标记、完成判据;每任务可追踪到 plan、roadmap 批次与验收标准。
|
|
31
|
-
-
|
|
31
|
+
- **并行标签**:≥2 条实现轨同时分派 → `Dispatch mode: parallel independent tracks`;同仓可写并发 → `Worktree isolation: required`(清单 **`mstar-branch-worktree`** → **`references/parallel-writable-pre-dispatch.md`**)。
|
|
32
32
|
- **`implement`** — 按 tasks 顺序执行;多 task plan **默认** `Execution mode: sdd`(`mstar-sdd`);hotfix 可 `inline`。完成进入 `InReview`;遵循 **`mstar-coding-behavior`**。
|
|
33
33
|
|
|
34
34
|
### 可验证编辑与上下文纪律
|
|
@@ -70,6 +70,8 @@ If plan drift appears, request plan update before continuing.
|
|
|
70
70
|
|
|
71
71
|
- Use PM-defined `Working branch` / `Branch policy` only
|
|
72
72
|
- Same-repo concurrent writers must use isolated worktrees
|
|
73
|
+
- When Assignment includes **`Worktree path`**: `cd` there **before** first repo write; do not use PM integration checkout or default repo root
|
|
74
|
+
- Completion Report must state **`Worktree path used`** (absolute) when assigned
|
|
73
75
|
|
|
74
76
|
## Responsibilities
|
|
75
77
|
|
|
@@ -9,6 +9,7 @@ The concise gate summary remains in `references/project-manager.md`.
|
|
|
9
9
|
- Each independent Assignment requires one matching host invoke.
|
|
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
|
+
- **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`**.
|
|
12
13
|
|
|
13
14
|
## Executor Anti-Recursion Rules
|
|
14
15
|
|
|
@@ -39,7 +40,7 @@ The **`**You are a leaf executor. You MUST NOT:**`** section (previously just pr
|
|
|
39
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.
|
|
40
41
|
- Add anti-patterns specific to the assignment context. Examples per role type:
|
|
41
42
|
- **QC reviewers**: "start review before all QC reviewers are dispatched in parallel"; "treat other reviewers' names in routing text as invoke targets"
|
|
42
|
-
- **Multi-track implementers** (`fullstack-dev` + `frontend-dev`): "auto-dispatch to the other track mentioned in Dev routing"
|
|
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`"
|
|
43
44
|
- **`fullstack-dev-2`**: "treat `fullstack-dev` in routing narrative as a handoff or invoke target"
|
|
44
45
|
- **`qa-engineer`**: "start validation before QC reports are consolidated"; "modify application code"
|
|
45
46
|
- **`explore`-assigned**: "implement or modify code"
|
|
@@ -114,7 +114,7 @@ If any item below matches, fix the dispatch/plan state or mark `Blocked`—do **
|
|
|
114
114
|
- **NEVER** register residuals only inside the plan narrative while skipping root `{HARNESS_DIR}/status.json` `residual_findings[<plan_id>]` when plan conventions require the SSOT field.
|
|
115
115
|
- **NEVER** write non-canonical residual `severity` strings—use only the machine enum from `mstar-plan-artifacts`.
|
|
116
116
|
- **NEVER** use `Task category: quick` to skip mandatory Prepare (`specify → clarify → plan`) for substantive work (`mstar-harness-core` hard rule).
|
|
117
|
-
- **NEVER**
|
|
117
|
+
- **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).
|
|
118
118
|
- **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).
|
|
119
119
|
- **NEVER** label `QA: skipped` for report-only QA—still dispatch `qa-engineer` with report-only mode; QC skip rules are separate and explicit.
|
|
120
120
|
- **NEVER** let non-PM/non-QA roles mark plan `Done`.
|