@mstar-harness/opencode 1.8.0 → 1.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/harness-commands/codebase-audit.md +5 -68
  3. package/harness-commands/iteration-drive.md +17 -159
  4. package/harness-commands/iteration-loop.md +16 -194
  5. package/harness-commands/iteration-start.md +17 -185
  6. package/harness-skills/mstar-branch-worktree/SKILL.md +38 -27
  7. package/harness-skills/mstar-coding-behavior/SKILL.md +40 -114
  8. package/harness-skills/mstar-compound/SKILL.md +25 -197
  9. package/harness-skills/mstar-compound/references/compound-workflow.md +155 -0
  10. package/harness-skills/mstar-dispatch-gates/SKILL.md +3 -8
  11. package/harness-skills/mstar-host/SKILL.md +9 -8
  12. package/harness-skills/mstar-host/references/_shared/host-role-binding-core.md +44 -0
  13. package/harness-skills/mstar-host/references/_shared/plan-mode-bridge-core.md +91 -0
  14. package/harness-skills/mstar-host/references/codex-plan-goal-mode-bridge.md +6 -11
  15. package/harness-skills/mstar-host/references/codex.md +2 -2
  16. package/harness-skills/mstar-host/references/cursor-plan-mode-bridge.md +9 -78
  17. package/harness-skills/mstar-host/references/cursor.md +3 -3
  18. package/harness-skills/mstar-host/references/kimi-plan-mode-bridge.md +5 -24
  19. package/harness-skills/mstar-host/references/kimi.md +6 -33
  20. package/harness-skills/mstar-host/references/omp-plan-mode-bridge.md +3 -13
  21. package/harness-skills/mstar-host/references/omp.md +20 -33
  22. package/harness-skills/mstar-host/references/opencode.md +1 -3
  23. package/harness-skills/mstar-host/references/zcode-plan-mode-bridge.md +5 -24
  24. package/harness-skills/mstar-host/references/zcode.md +6 -33
  25. package/harness-skills/mstar-iteration/SKILL.md +21 -211
  26. package/harness-skills/mstar-iteration/references/phase-3-iteration-close.md +95 -0
  27. package/harness-skills/mstar-iteration/references/phase-4-5-pr-delivery.md +81 -0
  28. package/harness-skills/mstar-iteration/references/phase5-helper-discovery.md +24 -0
  29. package/harness-skills/mstar-phase-gates/SKILL.md +1 -1
  30. package/harness-skills/mstar-roles/references/_shared/leaf-executor-core.md +46 -0
  31. package/harness-skills/mstar-roles/references/architect.md +3 -23
  32. package/harness-skills/mstar-roles/references/frontend-dev.md +4 -24
  33. package/harness-skills/mstar-roles/references/fullstack-dev-shared.md +4 -24
  34. package/harness-skills/mstar-roles/references/ops-engineer.md +3 -23
  35. package/harness-skills/mstar-roles/references/product-manager.md +3 -23
  36. package/harness-skills/mstar-roles/references/project-manager/dispatch-and-assignment.md +5 -5
  37. package/harness-skills/mstar-roles/references/project-manager.md +4 -13
  38. package/harness-skills/mstar-roles/references/prompt-engineer.md +4 -23
  39. package/harness-skills/mstar-roles/references/qa-engineer.md +3 -22
  40. package/harness-skills/mstar-roles/references/qc-specialist/deep-review-lenses.md +16 -75
  41. package/harness-skills/mstar-roles/references/qc-specialist/reviewer-workflow.md +1 -1
  42. package/harness-skills/mstar-roles/references/qc-specialist-shared.md +4 -17
  43. package/harness-skills/mstar-roles/references/writing-specialist.md +4 -24
  44. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  # Kimi host reference
2
2
 
3
- Load when **`mstar-host`** detection resolves **kimi** (Kimi Code CLI session, `.kimi-plugin/plugin.json` plugin installed, `Agent` / `AgentSwarm` / `AskUserQuestion` / `EnterPlanMode` tools, or `/morning-star-harness:*` plugin commands).
3
+ Load when **`mstar-host`** detection resolves **kimi** (Kimi Code CLI session, `Agent` / `AgentSwarm` / `AskUserQuestion` / `EnterPlanMode` tools, or `/morning-star-harness:*` plugin commands).
4
4
 
5
5
  Plan mode: read **`kimi-plan-mode-bridge.md`** when `EnterPlanMode` / `ExitPlanMode`, `/plan`, or `kimi --plan` is active.
6
6
 
@@ -59,32 +59,7 @@ Morning Star role ids (`project-manager`, `fullstack-dev`, `qc-specialist`, …)
59
59
 
60
60
  ### Role binding in prompt (C5b — required)
61
61
 
62
- Because Kimi cannot bind roles via agent config, every dispatch **must** carry the played Morning Star role in the **Assignment** and in the **`Agent` prompt**:
63
-
64
- 1. **`Execute as: <role-id>`** in Assignment (harness routing SSOT).
65
- 2. **`Act as <role-id>`** (or equivalent) at the top of the Agent prompt.
66
- 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.
67
- 4. **`subagent_type`** — pick from the mapping table above only.
68
-
69
- Paste-only Assignment without an **`Agent`** call is **not** dispatch.
70
-
71
- ### Assignment / Agent-prompt template
72
-
73
- ```markdown
74
- ## Assignment
75
-
76
- **Execute as**: fullstack-dev
77
- **Delegation**: forbidden
78
- **Working branch**: feat/example
79
- **Plan Path**: .mstar/plans/20260717-example.md
80
-
81
- **IDENTITY:** You ARE `fullstack-dev`. Act as `fullstack-dev` for this task.
82
- Load: `mstar-harness-core` → `mstar-host` → `kimi.md` → `mstar-roles` → `references/fullstack-dev-shared.md` → topic skills per that reference.
83
-
84
- <task body>
85
- ```
86
-
87
- PM dispatch invocation (same turn):
62
+ Role-binding contract + Assignment template **`_shared/host-role-binding-core.md`** (C5/C5b). Kimi-specific invoke shapes, same turn:
88
63
 
89
64
  ```text
90
65
  Agent(
@@ -107,26 +82,24 @@ Agent(subagent_type: "plan", prompt: "... Act as architect for plan design; load
107
82
 
108
83
  ## PM dispatch (`Agent` / `AgentSwarm`)
109
84
 
110
- Harness **dispatch** on Kimi = **one or more `Agent` tool calls** with correct **`subagent_type`** and role-bound prompts.
85
+ Harness **dispatch** on Kimi = **one or more `Agent` tool calls** with correct **`subagent_type`** and role-bound prompts (C5b → **`_shared/host-role-binding-core.md`**). N-parallel / 1-Assignment-1-invoke / paste-only mechanics → **`parallel-dispatch.md`**.
111
86
 
112
87
  | Harness | Kimi |
113
88
  |---------|------|
114
- | `Execute as: <role-id>` | Role id in Assignment + **Act as** + skill load in **Agent** prompt |
89
+ | `Execute as: <role-id>` | Role id in Assignment + **Act as** + skill load in **Agent** prompt (C5b) |
115
90
  | `subagent_type` for invoke | `coder` \| `explore` \| `plan` only (see mapping) |
116
- | 1 Assignment ⇒ 1 invoke | **1 `Agent`** call with full Assignment prompt |
117
91
  | Parallel batch **N** | **N `Agent`** calls in **one assistant message** when roles may differ; **`AgentSwarm`** only when same role/profile |
118
- | No `Agent` call | **Not dispatched** — paste-only / `dispatch incomplete` |
119
92
 
120
93
  ### QC default
121
94
 
122
- - **`Execution mode: sdd`**: **N=3** `Agent` calls (`qc-specialist`, `qc-specialist-2`, `qc-specialist-3`) — each prompt **Act as** the respective QC role, all `subagent_type: "coder"`.
95
+ - **`Execution mode: sdd`**: **N=3** `Agent` calls (`qc-specialist`, `qc-specialist-2`, `qc-specialist-3`) — each prompt **Act as** the respective QC role, all `subagent_type: "coder"` (N rules → `parallel-dispatch.md`).
123
96
  - **`inline`**: **N=1** per `parallel-dispatch.md`.
124
97
 
125
98
  Cannot emit required **N** → **`Blocked`**.
126
99
 
127
100
  ### SDD implement (serial)
128
101
 
129
- - **`Execution mode: sdd`**: one implementer **`Agent`** per task id; task reviewer = new **`Agent`** (no sticky resume unless host adds it later).
102
+ - **`Execution mode: sdd`**: one implementer **`Agent`** per task id; task reviewer = new **`Agent`** (no sticky resume unless host adds it later). Serial rule → **`parallel-dispatch.md`** § SDD implement.
130
103
  - **Never** multiple implementer Agents in one message for the same plan.
131
104
 
132
105
  ## Clarify
@@ -1,6 +1,6 @@
1
1
  # omp Plan mode bridge
2
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).
3
+ Load with **`omp.md`** when omp Plan mode is active (`/plan`, plan-yolo / plan-model flows, or read-only-with-resolve plan UX). Shared contract → **`references/_shared/plan-mode-bridge-core.md`** (dual-write SSOT rule + priority, bootstrap init, Build resume contract, bootstrap todos, implement done-gate, Phase 1 gate, shared anti-patterns). This bridge covers omp plan-UX specifics only.
4
4
 
5
5
  ## Dual-write contract
6
6
 
@@ -12,23 +12,13 @@ omp session plans, composer todos, and plan-mode UI text are **session UX only**
12
12
  | Plan registry | `{HARNESS_DIR}/status.json` |
13
13
  | Iteration compass | `{ITERATION_DIR}/…` when in formal iteration |
14
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.
15
+ Bootstrap before treating a plan as ready for Execute (read `mstar-plan-conventions` + `mstar-plan-artifacts`; ensure `{HARNESS_DIR}` / `{PLAN_DIR}` exist with process-artifact gitignore entries; mirror the active omp plan into the SSOT main plan path; register `plan_id` in `status.json.plans[]` when required by Prepare gates) → core.
21
16
 
22
17
  **Never** use only the omp session plan / UI todo list as **Plan Path**.
23
18
 
24
19
  ## `mstar-iteration` Phase 1 in Plan mode
25
20
 
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).
21
+ When formal iteration Phase 1 runs under omp Plan UX, the shared gate → core: single SSOT draft plan path (no silent second plan file); feedback-driven in-place edits; **do not** run Review & Edit chain, commit, or create integration branch until the user leaves Plan mode / approves implementation (Build-equivalent). Recommended branch policy still applies — no silent work on `main`/`master` (`mstar-iteration` §1.2).
32
22
 
33
23
  ## Clarify vs plan approval
34
24
 
@@ -1,6 +1,6 @@
1
1
  # omp host reference
2
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).
3
+ Load when **`mstar-host`** detection resolves **omp** (Oh My Pi / `omp` session, **`task`** tool with **`agent`** / **`tasks[]`** batch shape, **`ask`** tool, **`hub`** tool, or `/skill:pm` / `/iteration-*` from this plugin).
4
4
 
5
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
6
 
@@ -30,6 +30,20 @@ Parallel PM dispatch: read **`parallel-dispatch.md`** when dispatching **N ≥ 2
30
30
 
31
31
  Use skill names in prompts and references. Prefer `skill://<name>/…` / `/skill:<name>` over absolute local paths unless maintaining this repository.
32
32
 
33
+ ## Internal URLs
34
+
35
+ omp resolves **internal URL schemes** natively (see <https://omp.sh/#urls>), so skills and shared content stay addressable wherever omp installs the plugin — prefer URLs over absolute local paths:
36
+
37
+ | Scheme | Use |
38
+ |--------|-----|
39
+ | `skill://<name>` | Load a skill's `SKILL.md` — e.g. `skill://mstar-harness-core`, `skill://mstar-host` |
40
+ | `skill://<name>/<path>` | Read a file inside a skill — e.g. `skill://mstar-host/references/omp.md` |
41
+ | `local://<name>.md` | Share context / assignments with subagents — prefer over pasting large payloads inline |
42
+ | `artifact://<id>` / `agent://<id>` | Read a subagent's output artifact / a nested child's output |
43
+ | `history://<id>` | Read-only transcript of a (sub)agent session |
44
+
45
+ `/skill:<name>` (slash command to **invoke**) and `skill://<name>` (URL the model can **`Read`**) resolve to the same skill. Put URLs in `task` assignment bodies and skill **Read next** lists so a role subagent loads the right skill regardless of install path — this is what makes cross-host skill references portable on omp.
46
+
33
47
  ## Tools map (default agent)
34
48
 
35
49
  | omp tool | Harness use |
@@ -81,32 +95,7 @@ Morning Star role ids (`project-manager`, `fullstack-dev`, `qc-specialist`, …)
81
95
 
82
96
  ### Role binding in prompt (C5b — required)
83
97
 
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):
98
+ Role-binding contract + Assignment template **`_shared/host-role-binding-core.md`** (C5/C5b). omp-specific invoke shapes, same turn:
110
99
 
111
100
  ```text
112
101
  task(
@@ -133,26 +122,24 @@ task(
133
122
 
134
123
  ## PM dispatch (`task`)
135
124
 
136
- Harness **dispatch** on omp = **one or more `task` tool calls** with correct **`agent`** values and role-bound assignment text.
125
+ Harness **dispatch** on omp = **one or more `task` tool calls** with correct **`agent`** values and role-bound assignment text (C5b → **`_shared/host-role-binding-core.md`**). N-parallel / 1-Assignment-1-invoke / paste-only mechanics → **`parallel-dispatch.md`**.
137
126
 
138
127
  | Harness | omp |
139
128
  |---------|-----|
140
- | `Execute as: <role-id>` | Role id in Assignment + **Act as** + skill load in **task** body |
129
+ | `Execute as: <role-id>` | Role id in Assignment + **Act as** + skill load in **task** body (C5b) |
141
130
  | `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
131
  | 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
132
 
146
133
  ### QC default
147
134
 
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).
135
+ - **`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). N rules → `parallel-dispatch.md`.
149
136
  - **`inline`**: **N=1** per `parallel-dispatch.md`.
150
137
 
151
138
  Cannot emit required **N** → **`Blocked`**.
152
139
 
153
140
  ### SDD implement (serial)
154
141
 
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).
142
+ - **`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). Serial rule → **`parallel-dispatch.md`** § SDD implement.
156
143
  - **Never** multiple implementer entries in one message for the same plan.
157
144
 
158
145
  ## Clarify
@@ -20,14 +20,12 @@ Parallel PM dispatch: **`parallel-dispatch.md`** (read in dispatch rounds).
20
20
 
21
21
  ## PM dispatch (task tool + subagent)
22
22
 
23
- Harness **dispatch** on OpenCode = **one or more `task` tool calls**, each with **`subagent: <agent-id>`** (read the tool schema every session).
23
+ Harness **dispatch** on OpenCode = **one or more `task` tool calls**, each with **`subagent: <agent-id>`** (read the tool schema every session). N-parallel / 1-Assignment-1-invoke / paste-only mechanics → **`parallel-dispatch.md`**.
24
24
 
25
25
  | Harness | OpenCode |
26
26
  |---------|----------|
27
27
  | `Execute as: <role-id>` | **`subagent`** on **task tool** = same agent id |
28
- | 1 Assignment ⇒ 1 invoke | **1 task tool** call with matching **subagent** + prompt from Assignment |
29
28
  | Parallel batch **N** | **N task tool** calls in **one assistant message** when the host allows (`parallel-dispatch.md`) |
30
- | No task tool call | **Not dispatched** — paste-only / `dispatch incomplete` |
31
29
 
32
30
  PM workflow: finalize Assignment → **call task tool** with **subagent** + generated prompt → wait for subagent Completion Report → update plan / status.
33
31
 
@@ -1,31 +1,16 @@
1
1
  # ZCode Plan Mode × Harness Dual-Write Bridge
2
2
 
3
- > **Load order**: Read **`mstar-harness-core`** first, then **`mstar-plan-conventions`** and **`mstar-plan-artifacts`** when Plan mode is active. Path symbols `{HARNESS_DIR}`, `{PLAN_DIR}`, `{SPECS_DIR}` are defined in `mstar-plan-conventions`. On conflict, **`mstar-harness-core`** wins.
3
+ > **Load order**: Read **`mstar-harness-core`** first, then **`mstar-host`** and **`references/zcode.md`**, then **`references/_shared/plan-mode-bridge-core.md`** (shared contract) + this bridge. When Plan mode is active, also read **`mstar-plan-conventions`** and **`mstar-plan-artifacts`**. Path symbols `{HARNESS_DIR}`, `{PLAN_DIR}`, `{SPECS_DIR}` are defined in `mstar-plan-conventions`. On conflict, **`mstar-harness-core`** wins.
4
4
 
5
- ## Purpose
5
+ **Shared contract** (dual-write SSOT rule + priority, bootstrap init, Build resume contract, bootstrap todos, implement done-gate, Phase 1 gate, shared anti-patterns) → **`references/_shared/plan-mode-bridge-core.md`**. This bridge covers ZCode plan-UX specifics only.
6
6
 
7
- ZCode **Plan mode** (`EnterPlanMode` / `ExitPlanMode`) uses read-only exploration for design and a plan approval gate before implementation. Morning Star **SSOT** lives on disk under **`{HARNESS_DIR}`** (default `.mstar/`, legacy `.agents/`). This reference defines **dual-write**: mirror durable plan artifacts to the repo; never treat the ZCode session todo list alone as the handoff surface.
8
-
9
- ## Priority (hard)
10
-
11
- 1. User explicit instructions (this turn)
12
- 2. Project `AGENTS.md` / `CLAUDE.md`
13
- 3. **`{HARNESS_DIR}` / `{PLAN_DIR}` / `status.json`** (harness SSOT)
14
- 4. ZCode `TodoWrite` UI (session UX mirror)
15
-
16
- **NEVER** cite only a session todo list path in Assignment **Plan Path**, **Context Loaded**, or Completion Report when `{PLAN_DIR}/<plan-id>-<name>.md` should exist.
7
+ ZCode **Plan mode** (`EnterPlanMode` / `ExitPlanMode`) uses read-only exploration for design and a plan approval gate before implementation; the session todo list is a **session UX mirror** **NEVER** cite only a session todo list path in Assignment **Plan Path**, **Context Loaded**, or Completion Report when `{PLAN_DIR}/<plan-id>-<name>.md` should exist.
17
8
 
18
9
  ## When this applies
19
10
 
20
11
  - ZCode **Plan mode** is active (`EnterPlanMode` succeeded).
21
12
  - Morning Star plugin is installed (`.zcode-plugin/plugin.json` skills loaded) or **`/morning-star-harness:pm`** / **`pm` skill** is in use.
22
13
 
23
- ## Before entering Plan mode
24
-
25
- 1. **Read** (minimum): `mstar-plan-conventions`, `mstar-plan-artifacts` (SKILL.md); Prepare gates from `mstar-phase-gates` if not hotfix.
26
- 2. **Discover** `{HARNESS_DIR}` / `{PLAN_DIR}` per `mstar-plan-conventions`.
27
- 3. **Initialize** if absent: `{HARNESS_DIR}/`, `{PLAN_DIR}/`, `status.json` from `mstar-plan-artifacts/templates/status.empty.json`, `archived/residuals/`, Morning Star process-artifact gitignore set (see `mstar-plan-conventions` SKILL.md「Git 跟踪策略」).
28
-
29
14
  ## Plan mode workflow (dual-write)
30
15
 
31
16
  | Step | ZCode session | Harness SSOT |
@@ -40,15 +25,11 @@ ZCode **Plan mode** (`EnterPlanMode` / `ExitPlanMode`) uses read-only exploratio
40
25
 
41
26
  ## ExitPlanMode gate
42
27
 
43
- Do **not** treat ExitPlanMode approval as Morning Star **Done**. Implementation still follows phase gates, per-task commits, QC, and QA per the SSOT plan.
28
+ Host plan approval (`ExitPlanMode`) is **not** Morning Star **Done** (gate → core). Implementation still follows phase gates, per-task commits, QC, and QA per the SSOT plan.
44
29
 
45
30
  ## `mstar-iteration` Phase 1
46
31
 
47
- When iteration Phase 1 runs in Plan mode:
48
-
49
- - Use **one** plan session; iterate the **same** plan content and SSOT mirror in place (feedback-driven edits).
50
- - Do **not** run Review & Edit, commit integration branch, or dispatch implementers until the user approves via `ExitPlanMode` (or explicit go-ahead after plan lock).
51
- - After approval: reload `mstar-harness-core` + `zcode.md`; resume as `project-manager` orchestration.
32
+ When iteration Phase 1 runs in Plan mode, the shared gate (single plan session, feedback-driven in-place edits, no Review & Edit / commit / integration branch until approval) → core. After approval: reload `mstar-harness-core` + **`zcode.md`**; resume as `project-manager` orchestration.
52
33
 
53
34
  ## Enforcement
54
35
 
@@ -1,6 +1,6 @@
1
1
  # ZCode host reference
2
2
 
3
- Load when **`mstar-host`** detection resolves **zcode** (ZCode client session, `.zcode-plugin/plugin.json` plugin installed, `Agent` / `AskUserQuestion` / `EnterPlanMode` / `TodoWrite` tools, or `/morning-star-harness:*` plugin commands).
3
+ Load when **`mstar-host`** detection resolves **zcode** (ZCode client session, `Agent` / `AskUserQuestion` / `EnterPlanMode` / `TodoWrite` tools, or `/morning-star-harness:*` plugin commands).
4
4
 
5
5
  Plan mode: read **`zcode-plan-mode-bridge.md`** when `EnterPlanMode` / `ExitPlanMode` is active.
6
6
 
@@ -57,32 +57,7 @@ Morning Star role ids (`project-manager`, `fullstack-dev`, `qc-specialist`, …)
57
57
 
58
58
  ### Role binding in prompt (C5b — required)
59
59
 
60
- Because ZCode cannot bind roles via agent config, every dispatch **must** carry the played Morning Star role in the **Assignment** and in the **`Agent` prompt**:
61
-
62
- 1. **`Execute as: <role-id>`** in Assignment (harness routing SSOT).
63
- 2. **`Act as <role-id>`** (or equivalent) at the top of the Agent prompt.
64
- 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.
65
- 4. **`subagent_type`** — pick from the host's built-in profiles only (typically `general-purpose`; `Explore` for read-only orientation).
66
-
67
- Paste-only Assignment without an **`Agent`** call is **not** dispatch.
68
-
69
- ### Assignment / Agent-prompt template
70
-
71
- ```markdown
72
- ## Assignment
73
-
74
- **Execute as**: fullstack-dev
75
- **Delegation**: forbidden
76
- **Working branch**: feat/example
77
- **Plan Path**: .mstar/plans/20260717-example.md
78
-
79
- **IDENTITY:** You ARE `fullstack-dev`. Act as `fullstack-dev` for this task.
80
- Load: `mstar-harness-core` → `mstar-host` → `zcode.md` → `mstar-roles` → `references/fullstack-dev-shared.md` → topic skills per that reference.
81
-
82
- <task body>
83
- ```
84
-
85
- PM dispatch invocation (same turn):
60
+ Role-binding contract + Assignment template **`_shared/host-role-binding-core.md`** (C5/C5b). ZCode-specific invoke shapes, same turn:
86
61
 
87
62
  ```text
88
63
  Agent(
@@ -100,26 +75,24 @@ Agent(subagent_type: "Explore", description: "...", prompt: "... Act as explore-
100
75
 
101
76
  ## PM dispatch (`Agent`)
102
77
 
103
- Harness **dispatch** on ZCode = **one or more `Agent` tool calls** with correct **`subagent_type`** and role-bound prompts.
78
+ Harness **dispatch** on ZCode = **one or more `Agent` tool calls** with correct **`subagent_type`** and role-bound prompts (C5b → **`_shared/host-role-binding-core.md`**). N-parallel / 1-Assignment-1-invoke / paste-only mechanics → **`parallel-dispatch.md`**.
104
79
 
105
80
  | Harness | ZCode |
106
81
  |---------|-------|
107
- | `Execute as: <role-id>` | Role id in Assignment + **Act as** + skill load in **Agent** prompt |
82
+ | `Execute as: <role-id>` | Role id in Assignment + **Act as** + skill load in **Agent** prompt (C5b) |
108
83
  | `subagent_type` for invoke | built-in profiles only (typically `general-purpose`; `Explore` for read-only) |
109
- | 1 Assignment ⇒ 1 invoke | **1 `Agent`** call with full Assignment prompt |
110
84
  | Parallel batch **N** | **N `Agent`** calls in **one assistant message** |
111
- | No `Agent` call | **Not dispatched** — paste-only / `dispatch incomplete` |
112
85
 
113
86
  ### QC default
114
87
 
115
- - **`Execution mode: sdd`**: **N=3** `Agent` calls (`qc-specialist`, `qc-specialist-2`, `qc-specialist-3`) — each prompt **Act as** the respective QC role, all `subagent_type: "general-purpose"`.
88
+ - **`Execution mode: sdd`**: **N=3** `Agent` calls (`qc-specialist`, `qc-specialist-2`, `qc-specialist-3`) — each prompt **Act as** the respective QC role, all `subagent_type: "general-purpose"` (N rules → `parallel-dispatch.md`).
116
89
  - **`inline`**: **N=1** per `parallel-dispatch.md`.
117
90
 
118
91
  Cannot emit required **N** → **`Blocked`**.
119
92
 
120
93
  ### SDD implement (serial)
121
94
 
122
- - **`Execution mode: sdd`**: one implementer **`Agent`** per task id; task reviewer = new **`Agent`** (no sticky resume unless host adds it later).
95
+ - **`Execution mode: sdd`**: one implementer **`Agent`** per task id; task reviewer = new **`Agent`** (no sticky resume unless host adds it later). Serial rule → **`parallel-dispatch.md`** § SDD implement.
123
96
  - **Never** multiple implementer Agents in one message for the same plan.
124
97
 
125
98
  ## Clarify
@@ -295,7 +295,7 @@ SSOT = `{HARNESS_DIR}/status.json` + `{PLAN_DIR}/`。todos 只追踪本轮下一
295
295
  5. Dispatch **one** task reviewer subagent(brief + report + diff + Global Constraints)
296
296
  6. Fix loop 直至 review clean;append `{SDD_DIR}/progress.md`;更新 `status.json` / plan checkbox
297
297
  7. Next task
298
- - 每次 Completion Report v2 后更新 `status.json` + 主 plan
298
+ - 每次 Completion Report 后更新 `status.json` + 主 plan
299
299
  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/status)+ **`QA gate`**(`mandatory` → `qa-engineer`;`pm-acceptance` → PM checklist)。**禁止**在 integration merge 成功前设 `Done` 或删除 `execution_lease`。
300
300
  5. **Plan complete — serial merge back**(§2.0 #5 未 waive):自 **control worktree** claim/resume `metadata.integration_merge_lease` → 将 plan feature branch 合并入 `spec_integration_branch`(仅 merge-lease holder;细则 → **`references/phase-2-worktree-lease.md`**)→ 记录 merge commit 证据 → 释放 merge lease;**同轮**设 `Done` 并删除 `execution_lease`。merge 失败:保持 `InReview` + 保留 lease,不得标 `Done`。
301
301
  6. **Cross-plan 进度同步**:更新 `{ITERATION_DIR}/<iteration-id>/delivery-compass.md` 的 `## Plans` 表状态列
@@ -341,181 +341,21 @@ Iteration Phase 2 附加:
341
341
  - plan 内 SDD task **串行** — 见 §2.4、§2.5、`mstar-sdd` Continuous execution
342
342
  - **zero-residual(默认)**:单 plan QC findings 尽量在当轮清干净;仅真 blocker 才 defer 到后续迭代(须 Durable Roadmap)— 见 **`mstar-plan-artifacts`** Findings cleanup modes
343
343
 
344
- ---
345
-
346
344
  ## Phase 3: iteration-close(收口迭代)
347
345
 
348
- PM 在迭代内全部 plan Done 后执行。**本 Phase 在 integration 分支上运行**,产出物 commit integration 分支,随迭代 PR 合入 root `metadata.target_branch`。入口:Phase 2 全部 plan `Done` 后按 **Phase transition gates** 进入。
349
-
350
- **Close Done 定义**:§3.1→§3.5 全部完成;compass frontmatter 写入 `status: completed` + `end_date`;每篇新增 knowledge doc 已登记 `{KNOWLEDGE_DIR}/README.md`。只在 final plan 中写了 compound / roadmap / PR 说明,不算 iteration-close 完成。
351
-
352
- ### 3.0 Phase boundary(HARD)
353
-
354
- - Phase 3 是 iteration 级收口,不是任一 plan 的子任务。
355
- - final plan closure、plan notes、plan compaction 可作为输入,但不能替代 §3.1→§3.5。
356
- - 读过 `mstar-iteration` / `mstar-compound` 不等于执行 gate;必须打印 checklist 并写入产物。
357
-
358
- ### 3.0.5 Compass shape normalization(legacy 漂移修复)
359
-
360
- 进入 §3.1 前,先确认 compass 具有 close 可写入的结构。若缺失,PM 在本 thread 做最小规范化,不委派、不重写无关内容。
361
-
362
- | 检查 | 缺则补齐 |
363
- |------|----------|
364
- | YAML frontmatter:`iteration_id`, `start_date`, `status` | 从文件名 / 正文提取;收口前 `status` 保持 `active` 或 `locked` |
365
- | `## Roadmap Position` | 从 general context / roadmap prose 迁移为本节 |
366
- | `## Quality Gate Summary` | 按模板补占位,§3.4 填写 |
367
- | `## Compound Round Summary` | 按模板补占位,§3.4 填写 |
368
- | `## Iteration Retrospective (minimal)` | 按模板补占位,§3.4 填写 |
369
-
370
- 正文 completion status 只能作为历史注释;最终状态必须写入 frontmatter `status: completed` + `end_date`。
371
-
372
- ### 3.1 Close entry checklist(HARD GATE)
373
-
374
- **STOP**: 打印下方 checklist,且全部为 `[x]` 后,才可进入 §3.2 Compound。
375
-
376
- - [ ] 所有 compass 中登记的 plan 在 `{HARNESS_DIR}/status.json` 均为 `Done`
377
- - [ ] 所有 plan 的 residual findings 已收口:优先 empty open 列表;若仍有 open R#,须均为 Phase 2 `zero-residual` 允许的 blocker-defer + roadmap,或已 closed/accepted/waived 归档(见 `mstar-plan-artifacts` Findings cleanup modes)
378
- - [ ] compass `## Plans` 表状态列已与 `status.json` 同步
379
- - [ ] 迭代 `## Acceptance Criteria` 已达成或显式豁免(compass 或对话记录原因)
380
- - [ ] compass shape 已满足(frontmatter + `## Roadmap Position` + close 占位节)
381
-
382
- PM **必须**在对话中打印本 checklist;不得默认同过。
383
-
384
- ### 3.2 知识结晶(Compound)—— 迭代级核心收口
385
-
386
- **Compound 在此执行,不在 per-plan Done 后独立执行。** 工作流 SSOT → **`mstar-compound`**(Q1–Q8 自检、Phase 1–7、Phase 6 索引登记强制)。
387
-
388
- PM 批量触发后须:
389
-
390
- 1. 收集本迭代 plan 实现 / debug / review 素材,筛候选知识
391
- 2. **盘点** `{ITERATION_DIR}/<iteration-id>/**` package(`guides/`、`specs/`;默认排除 `delivery-compass.md`)— **`mstar-compound`**「Iteration package promotion」;提升值得保留者进 `{KNOWLEDGE_DIR}/`
392
- 3. 逐条过 `mstar-compound` 自检;跳过项记入 compass `## Compound Round Summary`
393
- 4. 写入或更新 `{KNOWLEDGE_DIR}/<category>/<slug>.md`;新领域词更新 `CONCEPTS.md`
394
- 5. **每篇**新 doc 完成 Phase 6(`{KNOWLEDGE_DIR}/README.md` 登记)
395
-
396
- 若无结晶且无 package 提升,仍在 `## Compound Round Summary` 写明 `无可结晶知识` / package 盘点结论及原因。
397
-
398
- ### 3.3 更新 roadmap
399
-
400
- 1. 更新 compass **`## Roadmap Position`**(§3.0.5 已确保本节存在):
401
- - current iteration 行标记为 **`delivered`**(或等价明确措辞)
402
- - next iteration 更新为即将开始的内容、触发条件、owner
403
- 2. 若 `status.json` 中有 `plans[].metadata.roadmap` 字段,同步更新
404
- 3. 若存在 deferred-features / roadmap tracker 类文档,按项目惯例刷新
405
- 4. 若 `STRATEGY.md` 存在,可更新 `## Decision Log`(重大架构决策时)
406
-
407
- ### 3.4 标记迭代完成
408
-
409
- 1. compass **YAML frontmatter**:`status: completed`,`end_date: YYYY-MM-DD`(必须;见 §3.0.5)
410
- 2. 更新 `{ITERATION_DIR}/README.md` 索引中该迭代行 Status 为 `completed`
411
- 3. 填充 compass `## Quality Gate Summary`、`## Compound Round Summary` 与 `## Iteration Retrospective (minimal)`(见模板)
412
-
413
- ### 3.5 Close exit checklist + commit
414
-
415
- **Precondition**: §3.1 checklist `[x]`;§3.4 frontmatter `completed` + `end_date` 已写。
416
-
417
- PM 打印 **iteration-close exit checklist**;全部为 `[x]` 后方可 `git commit`;然后进入 **Phase 4**(§4):
418
-
419
- - [ ] §3.1 前置 gate 已打印并满足
420
- - [ ] §3.2 compound 完成;**`<iteration-id>/` package 已盘点**(提升 / 保留 / 跳过已记入 Compound Summary);新增 knowledge doc 均已登记 `{KNOWLEDGE_DIR}/README.md`(或已记录无可结晶原因)
421
- - [ ] §3.3 `## Roadmap Position` current iteration 已标 `delivered`;tracker / STRATEGY 已按需更新
422
- - [ ] §3.4 frontmatter `status: completed` + `end_date`;Quality Gate Summary + Compound Summary + Retrospective 已填
423
- - [ ] 当前分支是 `spec_integration_branch`
424
- - [ ] PR base = `metadata.target_branch`(与 compass frontmatter 一致);**不是**未记录的 `main`
425
-
426
- **Commit 到 integration 分支**:
427
-
428
- ```bash
429
- git add {ITERATION_DIR}/<id>/ {ITERATION_DIR}/README.md {KNOWLEDGE_DIR}/ CONCEPTS.md
430
- git commit -m "chore(iteration): close <iteration-id> — compound round, roadmap update"
431
- git push origin <spec_integration_branch>
432
- ```
433
-
434
- PR 目标使用 root `metadata.target_branch`;缺失时停止并补齐,不得默认 `main`。
346
+ **入口**:Phase 2 全部 plan `Done` 后按 **Phase transition gates** 进入。本 Phase **integration 分支**上运行;产出物 commit 到该分支,随迭代 PR 合入 `metadata.target_branch`。
435
347
 
436
- ### 3.6 可选:触发 compound-refresh
348
+ 完整流程(§3.0 phase boundary、§3.0.5 compass 规范化、§3.1 entry checklist **HARD GATE**、§3.2 compound、§3.3 roadmap、§3.4 标记完成、§3.5 exit checklist + commit、§3.6 可选 compound-refresh)→ **`references/phase-3-iteration-close.md`**。
437
349
 
438
- 若本轮 compound 新增了较多知识文档,或 compass 标记了可能过时的旧知识,触发 `mstar-compound-refresh` 对有重叠的知识文档做维护。
350
+ **Close Done 定义**:§3.1→§3.5 全部完成;compass frontmatter 写入 `status: completed` + `end_date`;每篇新增 knowledge doc 已登记 `{KNOWLEDGE_DIR}/README.md`。只在 final plan 中写了 compound / roadmap / PR 说明,不算 iteration-close 完成。
439
351
 
440
352
  ---
441
353
 
442
- ## Phase 4: PR delivery(开 PR)
354
+ ## Phase 4 & 5: PR delivery + merge-ready loop
443
355
 
444
- **Precondition**: Phase 3 §3.5 exit `[x]`;close commit push 到 `spec_integration_branch`。
356
+ **Phase 4**(开 PR)与 **Phase 5**(merge-ready loop)完整流程(§4、§5.0、§5.1a push cadence、§5.1 loop、§5.2 exit checklist)→ **`references/phase-4-5-pr-delivery.md`**。
445
357
 
446
- 1. 打印 **`## Phase 4: PR delivery`**
447
- 2. Resolve target:`metadata.target_branch`(compass frontmatter 镜像);缺失 → **STOP**,问用户
448
- 3. 创建 PR:`spec_integration_branch` → `target_branch`
449
- 4. 记录 PR URL / number(Phase 5 会话 SSOT)
450
- 5. **Immediately** 进入 **Phase 5** — **Phase 4 exit ≠ 迭代交付完成**
451
-
452
- ---
453
-
454
- ## Phase 5: PR merge-ready loop
455
-
456
- **Precondition**: Phase 4 PR 已创建且 head = `spec_integration_branch`。
457
-
458
- **Loop 理念**(mstar SSOT):PR 开完后进入 **验证—修复—再验证** 循环,直至 PR 可合并。与 Phase 2 per-plan loop 类似,但对象是 **PR 级** merge 门禁(CI、review、冲突),不是 plan 实现。
459
-
460
- ### 5.0 Phase boundary
461
-
462
- - Phase 5 在 PR head(`spec_integration_branch`)上 push 修复;**禁止**另开替代分支
463
- - 产品代码修复 → PM **dispatch** dev/ops(`mstar-dispatch-gates`);PM 线程不代写实现
464
- - 禁止为「让 CI 变绿」而改 workflow,除非用户明确授权
465
- - **Push cadence** → **§5.1a**(本地可提前修;**禁止**在 CI / AI review 波次未结束时 push)
466
-
467
- ### 5.1a Push cadence(HARD — 防打断 CI / AI review)
468
-
469
- 发现 CI 失败或 review 问题时,**允许本地提前修**(含 dispatch implement/ops、落盘 commit),但 **`git push`(更新 PR head)必须等上一波次跑完**。
470
-
471
- | 允许 | 禁止 |
472
- |------|------|
473
- | CI/review **进行中**就开始本地诊断与修复 | 当前 head 上仍有 **CI queued/in_progress**,或 **AI review 波次**(Bugbot / Greptile / 等价 bot)未结束时 **push** |
474
- | CI **全部结束后**出现新的 review 评论 → 继续本地修,批完再 push | 为「抢时间」在 CI 仍在跑时 push(会取消/孤儿化进行中的 CI 与 **AI reviews**,浪费 token 且无完整结果) |
475
- | 一批本地修复 **合并为一次 push**(本 head 波次 settled 后) | 同一波次未 settled 就连续多次 push |
476
-
477
- **Push gate(每次 push 前必须核对)**:
478
-
479
- 1. 当前 PR head 的 **required CI**(及已启动的检查)均已 **completed**(success / failure / cancelled — 不得仍为 queued / in_progress)
480
- 2. 附着在该 head 的 **AI / bot review 波次**已跑完(无进行中的 review job;若宿主无法探测 job,则至少等 CI settled **且** review 评论不再增长一小段稳定窗口后再 push)
481
- 3. 仅当 **1–2 满足** 且本地仍有未推送修复时,才 **push 一次**
482
- 4. Push 后:等 **新 head** 的 CI + reviews 全部跑完 → 再决定下一轮本地修 / push
483
-
484
- **顺序记忆**:`observe findings → fix locally early → wait until CI + review wave idle → push batch → wait new wave → repeat`。
485
-
486
- ### 5.1 Loop(repeat until §5.5 exit)
487
-
488
- 1. **Status** — PR mergeable?required CI?unresolved review threads?**任一 CI/AI review 是否仍在跑?**
489
- 2. **Merge conflicts** — blocking 则在 integration 分支**本地**解决;**仅当 §5.1a push gate 满足时**再 push(意图冲突 → **Blocked**)
490
- 3. **Reviews** — fetch unresolved threads;triage;dispatch **本地**修复(可在上一波次仍在跑时开工)
491
- 4. **CI** — 失败项在 PR 范围内**本地**修复(可提前开工);**不**在 CI 仍在跑时 push
492
- 5. **Push** — 仅当 §5.1a 满足:无 in-flight CI,上一波 CI **与** reviews 均已跑完 → **一次** push 本批修复
493
- 6. **Review fix hygiene**(每次因 review 而 push 后):
494
- - 在同 thread **comment**(改动 + 验证)
495
- - **Resolve** when addressed
496
- 7. Return to step 1(CI 结束后若出现 **新** reviews → 继续本地修,再等 idle 后 push)
497
-
498
- **Optional host helpers(command 层发现;非 `mstar-*` load order)**:
499
-
500
- | Priority | Helper | When |
501
- |----------|--------|------|
502
- | 1 | `babysit` or any `*-babysit` skill(first readable `SKILL.md`) | **Default prefer** — CI green + reviews resolved loop |
503
- | 2 | `greploop` | **Optional** — only when the **repo** uses Greptile / has `greploop` available; then run for Greptile **5/5** in addition to babysit/`*-babysit` (or fallback) gates |
504
- | 3 | neither | Command fallback = babysit-equivalent CI + reviews gates |
505
-
506
- When both babysit/`*-babysit` and `greploop` apply: **babysit/`*-babysit` first**(CI + reviews),then optional greploop for Greptile score. Discovery paths → host `commands/iteration-drive` / `iteration-loop` Phase 5.
507
-
508
- ### 5.2 Phase 5 exit checklist(迭代交付完成)
509
-
510
- 打印 **`## Phase 5 exit checklist`**;全 `[x]` 后方可宣称 **迭代交付完成**:
511
-
512
- - [ ] PR mergeable(无 blocking merge conflicts)
513
- - [ ] All **required** CI checks green on latest head
514
- - [ ] All review threads **resolved**(或用户书面 waive 特定 thread)
515
- - [ ] §5.1 review comment + resolve 已覆盖本轮所有 addressed feedback
516
- - [ ] Host todo `phase-5-pr-merge-ready` 可勾选
517
-
518
- PR **merge** 本身可仍由用户手动执行,除非 Assignment 明确授权 auto-merge。
358
+ **关键定位(hard)**:Phase 4 PR **≠** 迭代交付完成;必须完成 Phase 5 §5.2 merge-ready exit。**Push cadence(§5.1a HARD)**:本地可提前修,**禁止**在 CI / AI review 波次未结束时 `git push`。
519
359
 
520
360
  ---
521
361
 
@@ -525,50 +365,20 @@ PR **merge** 本身可仍由用户手动执行,除非 Assignment 明确授权
525
365
 
526
366
  ## 与其它技能的关系
527
367
 
528
- | 技能 | 关系 |
529
- |------|------|
530
- | `mstar-dispatch-gates` | Dispatch rules per-plan loop 引用 |
531
- | `mstar-phase-gates` | per-plan gate 判定 |
532
- | `mstar-plan-conventions` | 路径符号(`{ITERATION_DIR}`、`{HARNESS_DIR}`) |
533
- | `mstar-plan-artifacts` | `status.json` SSOT、`{ITERATION_DIR}` 索引维护 |
534
- | `mstar-sdd` | SDD implement 波次 — per-plan loop |
535
- | `mstar-review-qc` | SDD 强制 plan QC tri — per-plan loop |
536
- | `mstar-branch-worktree` | 分支/merge/worktree 隔离 |
537
- | `mstar-compound` | iteration-close 中触发知识结晶(**唯一**默认 knowledge 新增路径) |
538
- | `mstar-compound-refresh` | iteration-close 后可触发知识维护 |
539
- | `references/iteration-artifact-boundaries.md` | Phase 1 specs / iteration package / knowledge 分工 |
540
- | `references/iteration-workspace-readme-template.md` | `<iteration-id>/README.md` 可选模板(Documents 单表) |
541
- | `references/iteration-corpus-hygiene.md` | §1.6 writing-specialist specs 卫生细则 |
542
- | `references/autonomous-direction-lock.md` | §1.2 autonomous direction lock、scale budget、branch resolve |
543
- | `references/phase-2-worktree-lease.md` | Phase 2 control worktree、`execution_lease`、`integration_merge_lease` |
544
- | `mstar-strategy` | iteration-start 时读 `STRATEGY.md` 对齐方向 |
368
+ 完整 topic-skill 索引见 **`mstar-harness-core`**。本 skill 迭代级关键引用:
369
+
370
+ - **`mstar-compound`**iteration-close 中触发知识结晶(**唯一**默认 knowledge 新增路径)
371
+ - **`references/phase-2-worktree-lease.md`** Phase 2 control worktree、`execution_lease`、`integration_merge_lease`
372
+ - **`references/autonomous-direction-lock.md`** §1.2 autonomous direction lock、scale budget、branch resolve
373
+ - **`references/iteration-artifact-boundaries.md`** Phase 1 specs / iteration package / knowledge 分工
374
+ - **`references/iteration-corpus-hygiene.md`** §1.6 writing-specialist specs 卫生细则
545
375
 
546
376
  ## NOT to do
547
377
 
548
- - 不要在 per-plan Done 后立即单独 compound——等 iteration-close 统一做
549
- - 不要在 Autonomous Execute(Phase 2)中修改 per-plan gate 判定
550
- - **不要在 Phase 2 inline 大包 Assignment 替代 SDD per-task 循环**(除非 plan 显式 `Execution mode: inline` / hotfix)
551
- - 不要用 compass 替代 `status.json` 作为 plan 状态 SSOT
552
- - 不要在没有完成 per-plan 前置检查的情况下进入 iteration-close
553
- - 不要在缺少 `iteration_base_branch` / `target_branch` 时默认使用 `main` / `master`
554
- - 不要将 Phase 3 折叠进 final plan closure——须显式 §3.0→§3.5
555
- - 不要用 prose completion status 替代 compass frontmatter `status: completed` + `end_date`
556
- - 不要跳过 compound Phase 6(`{KNOWLEDGE_DIR}/README.md` 索引)——即使只结晶一篇文档
557
- - 不要跳过 compound——如果本迭代确实没有可结晶的知识,在 compass `## Compound Round Summary` 写 `无可结晶知识(原因:<简述>)`
558
- - 不要将 **Phase 4 开 PR** 等同于 **迭代交付完成** — 必须完成 **Phase 5** §5.5 merge-ready loop
559
- - **不要在 Phase 5 于 CI 仍在跑或 AI review 波次未结束时 push**(浪费 token、打断 review;§5.1a)— 本地可提前修,push 必须等 idle
560
- - **不要在 iteration-start §1.6 由 product/architect 向 `{KNOWLEDGE_DIR}/` 新增文档**(知识 → iteration-close **`mstar-compound`**)
561
- - **不要把迭代级草案写入 `{SPECS_DIR}/`**(应进 `{ITERATION_DIR}/<iteration-id>/specs/` 或 `guides/`)
562
- - **不要在 iteration-close 跳过 `<iteration-id>/` package 盘点**(compound 提升 SSOT → **`mstar-compound`**)
563
- - **不要新写根目录 `<iteration-id>-delivery-compass.md`**(canonical:`<iteration-id>/delivery-compass.md`;legacy flat 仅兼容读)
564
- - **不要在 `{ITERATION_DIR}/README.md` 为同一迭代登记 compass + workspace 双行**(一行 = 一次迭代)
565
- - **不要在 iteration-start §1.6 跳过 writing-specialist 全库 specs corpus hygiene**(仅改当轮 compass/plans 而不扫 `{SPECS_DIR}/`)
566
- - **不要在 SDD plan 上以单席 `qc.md` 收尾**(除非用户书面 `QC mode: single — override`)
567
- - **不要在未显式 `Direction lock mode: autonomous` 时跳过与用户收敛方向**(interactive 仍为默认)
568
- - **不要在 `autonomous` mode 下例行问用户「是否同意该方向」**(须落盘 rationale;无候选且无约束时 STOP)
569
- - **不要把 harness 流程(Review 链 / QC / QA / compound / close / PR 等)计进 Scale budget 的 plan 数量**,也不得为此单独建 process plan 占坑
570
- - **不要在 Phase 2 无 verified `execution_lease` 就做可写 implement 派发**(resume 仅限同 `holder` verify-held-lease)
571
- - **不要 steal / 覆盖他人 `execution_lease` 或 `integration_merge_lease`**(除非用户本轮显式 override + audit `notes`)
572
- - **不要从 feature worktree 的 `{HARNESS_DIR}` 路径当作 plans / status / iterations / SDD SSOT**(control worktree 绝对路径为准;默认 gitignore 下 feature 缺 plans **不得**推断 `Worktree mode: waived`)
573
- - **不要把「无 flock」与「gitignore / feature 缺 plans」捆成一次 waive**(无锁 → `Plan parallelism: serial` only;gitignore → control-path harness)
574
- - **不要并行 merge 入 `spec_integration_branch`**(merge 必须经 `integration_merge_lease` 串行)
378
+ 完整反模式索引见 **`mstar-harness-core`**。迭代级高频陷阱(其余各 Phase 内已含对应 hard rule):
379
+
380
+ - **不要将 Phase 4 PR 等同于迭代交付完成** 必须完成 Phase 5 §5.2 merge-ready loop
381
+ - **不要在 Phase 5 CI 仍跑或 AI review 波次未结束时 push**(§5.1a)— 本地可提前修,push idle
382
+ - **不要在缺 `iteration_base_branch` / `target_branch` 时默认 `main` / `master`**
383
+ - **不要在 iteration-start §1.6 由 product/architect `{KNOWLEDGE_DIR}/` 新增**(知识 iteration-close **`mstar-compound`**)
384
+ - **不要在 per-plan Done 后立即 compound** iteration-close 统一做