@mstar-harness/opencode 0.6.8 → 0.6.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/harness-skills/mstar-plan-artifacts/SKILL.md +1 -1
- package/harness-skills/mstar-plan-artifacts/references/done-compaction.md +25 -15
- package/harness-skills/mstar-plan-artifacts/templates/README.md +1 -0
- package/harness-skills/mstar-plan-artifacts/templates/plans-done.empty.json +3 -0
- package/harness-skills/mstar-plan-conventions/references/harness-bootstrap-and-agents-layering.md +6 -5
- package/harness-skills/mstar-roles/references/project-manager/plan-management.md +2 -1
- package/harness-skills/mstar-roles/references/project-manager.md +2 -2
- package/harness-skills/pm/SKILL.md +77 -26
- package/package.json +1 -1
|
@@ -15,7 +15,7 @@ description: Morning Star plan harness artifacts — `{PLAN_DIR}` main plans and
|
|
|
15
15
|
| knowledge / iterations / specs boundaries and indexes | `references/knowledge-and-designs.md` |
|
|
16
16
|
| Done row compaction Profile A/B | `references/done-compaction.md` |
|
|
17
17
|
| `status.json`, residual severity, lifecycle, `jq` | `references/status-and-residuals.md` |
|
|
18
|
-
| Empty-repo `status.json` / `notes.json` templates | `templates/status.empty.json`, `templates/notes.empty.json` (`templates/README.md`) |
|
|
18
|
+
| Empty-repo `status.json` / `notes.json` / Profile B `plans-done.json` templates | `templates/status.empty.json`, `templates/notes.empty.json`, `templates/plans-done.empty.json` (`templates/README.md`) |
|
|
19
19
|
| Tech-debt rollup (read-only) | `scripts/tech-debt-rollup.sh` |
|
|
20
20
|
|
|
21
21
|
**Out of scope:** branch and QC/QA checkout alignment → **`mstar-branch-worktree`**; QC checklist and verdict → **`mstar-review-qc`**; `{HARNESS_DIR}` discovery and init → **`mstar-plan-conventions`**.
|
|
@@ -22,32 +22,42 @@
|
|
|
22
22
|
- **可选**(人类扫表友好,非必须):**`title`** 一行、**`done_at`**;勿把长叙述塞回热行——放进 **`{HARNESS_DIR}/notes.json`** 或依赖冷快照 / `reports/`。
|
|
23
23
|
- 一旦快照已写入,热行**不得**再承载完整 `gates`、`qc_status`、`tests`、`commits`、长 `description`/`scope` 等;**以 `archived_record` 指向文件为准**。
|
|
24
24
|
- 单条 **`plans[].notes`** 字符串若仍在用,保持**极短**(如指向 `reports/<plan-id>/`);**不要**重复 QC 报告大段原文。
|
|
25
|
+
- **可选索引**:`{HARNESS_DIR}/archived/plans/_index.json` — `plan-id` → 相对路径,便于不依赖 glob 的工具。
|
|
26
|
+
- **可选滚动保留**:进一步缩小 `plans[]` 时,可只在热文件中保留**最近窗口**的瘦 `Done` 行,更旧 id 仅出现在 `_index.json` 与快照文件中;若采用,须在项目 `AGENTS.md` 中写明,并检查依赖「热文件中必有全部历史 id」的脚本。
|
|
25
27
|
|
|
26
28
|
## Profile B(可选)— 热文件不保留任何 `Done` 行(统一压缩)
|
|
27
29
|
|
|
28
|
-
- **Done 快照路径**:`{HARNESS_DIR}/archived/plans/<plan-id>.json
|
|
29
|
-
- **Done 目录路径**:`{HARNESS_DIR}/archived/plans-done.json
|
|
30
|
-
- **`plans-done.json`
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
- **Done 快照路径**:`{HARNESS_DIR}/archived/plans/<plan-id>.json` — 单个 **`plans[]` 行对象**(含当时全部 `metadata`);**不是**包装层,勿再套 `plan_id` / `snapshot` 外壳。
|
|
31
|
+
- **Done 目录路径**:`{HARNESS_DIR}/archived/plans-done.json` — **仅** plan id 列表(见下);**勿**使用 `_index.json`、对象数组目录或其它并行索引。
|
|
32
|
+
- **`plans-done.json` schema(唯一权威;不得扩展)**:
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
{
|
|
36
|
+
"plans": ["01-data-infrastructure", "02-auth-refactor"]
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
- 根对象**只允许**键 **`plans`**(字符串数组)。
|
|
41
|
+
- 数组元素为 **`plans[].id`**(= `archived/plans/<plan-id>.json` 的 basename;通常亦为主 plan `.md` 去扩展名)。
|
|
42
|
+
- 标题、`done_at`、主 plan 路径、`archived_record` 等**只**存在于 `archived/plans/<plan-id>.json` 快照内。
|
|
43
|
+
- 初始化:`mstar-plan-artifacts/templates/plans-done.empty.json` → `{ "plans": [] }`。
|
|
44
|
+
- **热文件行为**:`status.json.plans[]` 只保留非 `Done`;`Done` 后从热文件**删除**该行。
|
|
45
|
+
- **读取约定**:活跃计划 → `status.json`;历史 Done id 列表 → `plans-done.json`.`plans`;单条详情 → `archived/plans/<plan-id>.json`(路径由 id 拼接,**不**读目录内嵌路径字段)。
|
|
33
46
|
|
|
34
47
|
## 原子更新约束(Profile A / B 通用)
|
|
35
48
|
|
|
36
49
|
- 将计划标记为 `Done` 时,冷快照写入与 `status.json` 更新应在**同一变更集**完成(或紧随合并后一次性完成)。
|
|
37
50
|
- 采用 **Profile B** 时,必须在同一变更集中同时完成:
|
|
38
51
|
1) 写入/更新 `archived/plans/<plan-id>.json`,
|
|
39
|
-
2)
|
|
52
|
+
2) 将 `<plan-id>` 追加进 `archived/plans-done.json` 的 **`plans`** 数组(去重;勿写额外字段),
|
|
40
53
|
3) 从 `status.json.plans[]` 删除该 `Done` 行。
|
|
41
54
|
- 若无法满足以上三步,视为未完成 `Done` 收口,不应宣称已完成压缩迁移。
|
|
42
55
|
|
|
43
|
-
**可选索引**:`{HARNESS_DIR}/archived/plans/_index.json` — `plan-id` → 相对路径,便于不依赖 glob 的工具。
|
|
44
|
-
|
|
45
|
-
**可选滚动保留**:进一步缩小 `plans[]` 时,可只在热文件中保留**最近窗口**的瘦 `Done` 行,更旧 id 仅出现在 `_index.json` 与快照文件中;若采用,须在项目 `AGENTS.md` 中写明,并检查依赖「热文件中必有全部历史 id」的脚本。
|
|
46
|
-
|
|
47
56
|
## 采纳说明
|
|
48
57
|
|
|
49
58
|
- 未写快照、热文件中仍保留完整 `Done` 行在历史仓库里依然可读;但新落地时建议先确定并固定使用 **Profile A** 或 **Profile B**,避免同仓混跑。
|
|
50
|
-
- 从 Profile A 迁到 Profile B 前,先检查依赖 `status.json.plans[]` 扫描全部历史 `Done`
|
|
59
|
+
- 从 Profile A 迁到 Profile B 前,先检查依赖 `status.json.plans[]` 扫描全部历史 `Done` 的脚本与流程,并改为读取 `archived/plans-done.json`.`plans`。
|
|
60
|
+
- 若仓库 `plans-done.json` 仍为非 `{ "plans": [...] }` 形态(例如对象数组、顶层 `entries`/`catalog`),**整文件改写**为仅 id 列表;勿保留兼容层或双写富字段。
|
|
51
61
|
|
|
52
62
|
## 仓库级采用声明模板(贴到项目 `AGENTS.md`)
|
|
53
63
|
|
|
@@ -56,7 +66,7 @@
|
|
|
56
66
|
```markdown
|
|
57
67
|
### Plan compaction profile (this repository)
|
|
58
68
|
|
|
59
|
-
This repository uses **Profile A** from the Morning Star `mstar-plan-
|
|
69
|
+
This repository uses **Profile A** from the Morning Star `mstar-plan-artifacts` skill (`references/done-compaction.md`).
|
|
60
70
|
|
|
61
71
|
- `status.json.plans[]` keeps active plans and may keep **slim `Done` rows**.
|
|
62
72
|
- `archived/plans/<plan-id>.json` is used as cold snapshot when available.
|
|
@@ -68,11 +78,11 @@ This repository uses **Profile A** from the Morning Star `mstar-plan-conventions
|
|
|
68
78
|
```markdown
|
|
69
79
|
### Plan compaction profile (this repository)
|
|
70
80
|
|
|
71
|
-
This repository uses **Profile B** from the Morning Star `mstar-plan-
|
|
81
|
+
This repository uses **Profile B** from the Morning Star `mstar-plan-artifacts` skill (`references/done-compaction.md`).
|
|
72
82
|
|
|
73
83
|
- `status.json.plans[]` keeps **non-`Done`** plans only.
|
|
74
84
|
- Every `Done` plan MUST be represented in:
|
|
75
85
|
- `archived/plans/<plan-id>.json` (full snapshot), and
|
|
76
|
-
- `archived/plans-done.json` (
|
|
77
|
-
- Historical `Done` discovery MUST read `archived/plans-done.json
|
|
86
|
+
- `archived/plans-done.json` (`{ "plans": ["<plan-id>", ...] }` only).
|
|
87
|
+
- Historical `Done` discovery MUST read `archived/plans-done.json` **`plans`**, not `status.json.plans[]`; per-plan detail from `archived/plans/<plan-id>.json`.
|
|
78
88
|
```
|
|
@@ -6,3 +6,4 @@ Copy these into `{HARNESS_DIR}` when bootstrapping a project. Path symbols (`{HA
|
|
|
6
6
|
|------|---------|--------|
|
|
7
7
|
| `status.empty.json` | `{HARNESS_DIR}/status.json` | Root `residual_findings` only (see **`mstar-plan-artifacts` SKILL.md**). Replace `updated_at` with the real date. |
|
|
8
8
|
| `notes.empty.json` | `{HARNESS_DIR}/notes.json` | Optional program timeline. Replace `updated_at` when first edited. |
|
|
9
|
+
| `plans-done.empty.json` | `{HARNESS_DIR}/archived/plans-done.json` | **Profile B only** — `{ "plans": [<plan-id>, ...] }` **only** (`references/done-compaction.md`). Append id on each `Done` compaction; no other keys or object elements. |
|
package/harness-skills/mstar-plan-conventions/references/harness-bootstrap-and-agents-layering.md
CHANGED
|
@@ -15,10 +15,11 @@
|
|
|
15
15
|
1. 创建 `{HARNESS_DIR}`(推荐 `.mstar/`)与 `{PLAN_DIR}`(推荐 `.mstar/plans/`)。
|
|
16
16
|
2. 初始化 `status.json`:从 **`mstar-plan-artifacts/templates/status.empty.json`** 复制;residual canonical 见 **`mstar-plan-artifacts` SKILL.md**;字段与生命周期见 **`mstar-plan-artifacts/references/status-and-residuals.md`**。
|
|
17
17
|
3. 初始化可选 `notes.json`(**`mstar-plan-artifacts/templates/notes.empty.json`**)与 `plans/reports/README.md`。
|
|
18
|
-
4.
|
|
19
|
-
5.
|
|
20
|
-
6.
|
|
21
|
-
7.
|
|
18
|
+
4. **Profile B**(统一 Done 压缩)时另建 `{HARNESS_DIR}/archived/plans/` 与 `archived/plans-done.json`(自 **`mstar-plan-artifacts/templates/plans-done.empty.json`** 复制;schema 仅 `{ "plans": [] }`,见 **`mstar-plan-artifacts/references/done-compaction.md`**)。
|
|
19
|
+
5. 可选:创建 `{ITERATION_DIR}`(`iterations/` + `README.md`)与 `{KNOWLEDGE_DIR}`(`knowledge/` + `README.md`);内容边界见 `mstar-plan-conventions` SKILL.md 与 `references/knowledge-and-designs.md`。
|
|
20
|
+
6. 创建 `{HARNESS_DIR}/AGENTS.md`(harness 子树规则):符号表可复述 `{HARNESS_DIR}`、`{PLAN_DIR}`、`{ITERATION_DIR}`、`{KNOWLEDGE_DIR}`、`{SPECS_DIR}` 与 `docs/` 分工;新项目推荐 `.mstar/AGENTS.md`,已有项目可继续使用 `.agents/AGENTS.md`。
|
|
21
|
+
7. 校准根 `AGENTS.md`:只保留仓库级长期约束,显式引用 `{HARNESS_DIR}/AGENTS.md` 作为 harness SSOT。
|
|
22
|
+
8. 仅在确有稳定边界时新增目录级 `AGENTS.md`(如 `contracts/`、`gateway/`、`sdk/`)。
|
|
22
23
|
|
|
23
24
|
## 三层 `AGENTS.md` 职责切分
|
|
24
25
|
|
|
@@ -29,7 +30,7 @@
|
|
|
29
30
|
|
|
30
31
|
### `{HARNESS_DIR}/AGENTS.md`(harness 层)
|
|
31
32
|
|
|
32
|
-
- 放:`{HARNESS_DIR}`/`{PLAN_DIR}`/`{ITERATION_DIR}`/`{KNOWLEDGE_DIR}`/`{SPECS_DIR}` 契约、`docs/` 与 harness 子树内容边界、状态推进门禁、QC/QA 对齐规则、residual 生命周期、Done compaction profile
|
|
33
|
+
- 放:`{HARNESS_DIR}`/`{PLAN_DIR}`/`{ITERATION_DIR}`/`{KNOWLEDGE_DIR}`/`{SPECS_DIR}` 契约、`docs/` 与 harness 子树内容边界、状态推进门禁、QC/QA 对齐规则、residual 生命周期、Done compaction profile(Profile B 时声明 `archived/plans-done.json` 仅为 `{ "plans": [<plan-id>, ...] }`,细则见 **`mstar-plan-artifacts/references/done-compaction.md`**)。
|
|
33
34
|
- 不放:语言/框架编码细节、业务模块实现约束。
|
|
34
35
|
|
|
35
36
|
### `<subdir>/AGENTS.md`(边界层)
|
|
@@ -21,7 +21,8 @@ Legacy fallbacks:
|
|
|
21
21
|
2. Initialize `{HARNESS_DIR}/status.json` from template if available.
|
|
22
22
|
3. Initialize reports path: `{PLAN_DIR}/reports/`.
|
|
23
23
|
4. Initialize residual archive path: `{HARNESS_DIR}/archived/residuals/`.
|
|
24
|
-
5.
|
|
24
|
+
5. **Profile B** only: `{HARNESS_DIR}/archived/plans/` and `archived/plans-done.json` from `mstar-plan-artifacts/templates/plans-done.empty.json` (`{ "plans": [] }` only; see `done-compaction.md`).
|
|
25
|
+
6. Optional: `{HARNESS_DIR}/notes.json`, `{HARNESS_DIR}/knowledge/README.md`.
|
|
25
26
|
|
|
26
27
|
If legacy plan directories already exist, reuse them; avoid dual-structure duplication.
|
|
27
28
|
|
|
@@ -133,9 +133,9 @@ Before first implement dispatch (non-hotfix):
|
|
|
133
133
|
|
|
134
134
|
If any fail -> do not dispatch implement.
|
|
135
135
|
|
|
136
|
-
### `/pm`
|
|
136
|
+
### PM entry sessions (`/pm` or OpenCode PM switch)
|
|
137
137
|
|
|
138
|
-
When the session entered via **`/pm`**, follow **`skills/pm/SKILL.md`**
|
|
138
|
+
When the session entered via **`/pm`**, **`pm` skill**, or OpenCode PM orchestration, follow **`skills/pm/SKILL.md`** — especially **Host entry**, **Autonomous Execute driver** (status.json backlog, `spec_integration_branch`, per-plan feature branches), and **Dispatch-first**. Routing, gates, Task Board, QC, and templates remain in this file and topic `mstar-*` skills.
|
|
139
139
|
|
|
140
140
|
---
|
|
141
141
|
|
|
@@ -1,60 +1,111 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pm
|
|
3
|
-
description: "
|
|
3
|
+
description: "Morning Star PM orchestration entry and autonomous Execute driver. On Cursor/Codex, /pm launches project-manager and keeps dispatch loops running. On OpenCode, switch to project-manager when the active agent is not PM. After Pre-implement GO, checkout the iteration spec_integration_branch, advance all open plans in {HARNESS_DIR}/status.json (per-plan feature branch → merge to integration → repeat until Done), and set host todos before each work unit. Use when user invokes /pm, resumes harness Execute, asks PM to drive an iteration, or OpenCode needs PM role for orchestration."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# PM — Morning Star orchestration entry
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Universal **project-manager** entry and **Execute automation driver**. Orchestrate and dispatch — **not** parent-agent product implementation (host tools do not waive this).
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
## Host entry (read `mstar-host` first)
|
|
11
|
+
|
|
12
|
+
| Host | Entry | PM role |
|
|
13
|
+
| --- | --- | --- |
|
|
14
|
+
| **Cursor / Codex** | User invokes **`/pm`** (or explicit “run as PM”) | Force **`project-manager`** for the session; this skill is the launcher + automation driver |
|
|
15
|
+
| **OpenCode** | User may already be on a configured agent | **If active role ≠ `project-manager`**: operate **only** as PM — load `mstar-roles` → `references/project-manager.md`; do **not** stay in dev/QC/architect voice for orchestration. Named invokes still use `@<agent-id>` per Assignment |
|
|
16
|
+
|
|
17
|
+
Detect host → Read `mstar-host` → `references/cursor.md` | `opencode.md` | `codex.md`.
|
|
11
18
|
|
|
12
19
|
## Boot (order)
|
|
13
20
|
|
|
14
21
|
1. `mstar-harness-core`
|
|
15
22
|
2. `mstar-roles` → `references/project-manager.md`
|
|
16
|
-
3. Before first **implement** (non-hotfix): `mstar-dispatch-gates` +
|
|
23
|
+
3. Before first **implement** (non-hotfix): `mstar-dispatch-gates` + host reference
|
|
17
24
|
4. Before **QC**: `mstar-review-qc`
|
|
18
25
|
5. **On demand:** `mstar-phase-gates`, `mstar-plan-conventions`, `mstar-plan-artifacts`, `mstar-branch-worktree`, `mstar-superpowers-align`
|
|
19
26
|
|
|
20
|
-
Prepare/Execute gates, routing, Assignment templates, Task Board, QC tri-review, residuals →
|
|
27
|
+
Prepare/Execute gates, routing, Assignment templates, Task Board, QC tri-review, residuals → topic skills + PM references (not repeated here).
|
|
21
28
|
|
|
22
|
-
##
|
|
29
|
+
## When to activate autonomous Execute
|
|
23
30
|
|
|
24
|
-
|
|
31
|
+
Run **§ Autonomous Execute driver** when **all** are true:
|
|
25
32
|
|
|
26
|
-
|
|
33
|
+
1. Harness has **`{HARNESS_DIR}/status.json`** (default `.mstar/status.json`) with at least one plan **not** `Done`
|
|
34
|
+
2. **Pre-implement gate = GO** (`plan` locked, tasks ready — see `mstar-phase-gates` / PM Pre-Implement Gate Check)
|
|
35
|
+
3. User intent is **continue Execute** (`/pm`, “推进 iteration”, “继续 plans”, or equivalent)
|
|
27
36
|
|
|
28
|
-
|
|
29
|
-
| --- | --- |
|
|
30
|
-
| **Loop:** `## Assignment` → invoke → Completion Report v2 → report-to-status → next batch | Parent **Write/Edit/Shell** on product code to “move faster” |
|
|
31
|
-
| **1 Assignment ⇒ 1 invoke** in the dispatch message when host supports Task/@agent (`mstar-dispatch-gates`) | Assignment markdown only, no matching invoke |
|
|
32
|
-
| Put merge/branch/handoff from **this thread** into Assignment | Skip subagent because context is “already here” (cold start ≠ excuse) |
|
|
37
|
+
If Prepare is incomplete → follow phase gates first; do **not** skip to implement dispatch.
|
|
33
38
|
|
|
34
|
-
|
|
35
|
-
|
|
39
|
+
## Autonomous Execute driver
|
|
40
|
+
|
|
41
|
+
**Goal:** finish the **active iteration** (all non-`Done` rows in `status.json.plans[]`) via dispatch loops — may span **multiple** `plan_id`s; do **not** stop after one plan while siblings remain open.
|
|
42
|
+
|
|
43
|
+
### 0. Session todos (before any dispatch)
|
|
44
|
+
|
|
45
|
+
Host UI todos are **session guardrails**, not SSOT. Set them **before** each plan wave so scope does not drift:
|
|
46
|
+
|
|
47
|
+
| Host | Tool | Minimum set |
|
|
48
|
+
| --- | --- | --- |
|
|
49
|
+
| **Cursor** | `TodoWrite` or CreatePlan todos | Current `plan_id`; next batch (implement / QC / QA); branch checkpoint |
|
|
50
|
+
| **Codex** | `update_plan` / Goal or Plan UI todos | Same intent — mirror active `plan_id` + next gate |
|
|
51
|
+
| **OpenCode** | Host todo/plan UI if present | Same intent |
|
|
52
|
+
|
|
53
|
+
SSOT remains `{HARNESS_DIR}/status.json` + `{PLAN_DIR}/` — todos track **this session’s next moves**, not replace status.
|
|
54
|
+
|
|
55
|
+
### 1. Read backlog
|
|
56
|
+
|
|
57
|
+
1. Read **`mstar-plan-artifacts`** + **`{HARNESS_DIR}/status.json`**
|
|
58
|
+
2. List plans where `status` ∈ `{Todo, InProgress, InReview, Blocked}` (priority: `InProgress` → `InReview` → `Todo` → unblock `Blocked` if PM can)
|
|
59
|
+
3. Read **`metadata.spec_integration_branch`** / **`merge_target`** and **`primary_spec`** links (`mstar-plan-conventions`)
|
|
36
60
|
|
|
37
|
-
### 2.
|
|
61
|
+
### 2. Iteration integration branch (Git cwd)
|
|
38
62
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
63
|
+
1. Resolve **Spec / iteration integration branch** from `status.json` (`spec_integration_branch` on plan metadata or iteration-level registration — see `mstar-plan-artifacts/references/status-and-residuals.md`)
|
|
64
|
+
2. **Checkout or create** that branch on the **business repo** cwd PM will orchestrate from; confirm with `git branch --show-current`
|
|
65
|
+
3. If missing from metadata → **stop**, Read `mstar-plan-conventions` + confirm with user per `mstar-branch-worktree` (PM branch confirmation template); record in plan + status **same round**
|
|
42
66
|
|
|
43
|
-
|
|
67
|
+
This branch is the **merge target** for each plan’s work until **all** plans under the iteration are `Done`.
|
|
44
68
|
|
|
45
|
-
|
|
69
|
+
### 3. Per-plan loop (until all `Done`)
|
|
70
|
+
|
|
71
|
+
For each active `plan_id`:
|
|
72
|
+
|
|
73
|
+
1. **Plan start — feature branch:** Assignment uses **`Working branch: create <plan-feature-branch> from <spec_integration_branch>`** (or PM-approved equivalent). One **dedicated plan implementation branch** per `plan_id`; parallel tracks inside a plan → topic branches from integration + worktrees (`mstar-branch-worktree`).
|
|
74
|
+
2. **Implement → InReview:** dispatch-only loops (`§ Dispatch-first`); update `status.json` + main plan after each Completion Report v2
|
|
75
|
+
3. **QC → QA → Done:** tri-review + QA per `mstar-review-qc`; PM marks `Done` only when gates pass
|
|
76
|
+
4. **Plan complete — merge back:** merge **plan feature branch** (and any integrated topic heads) **into `spec_integration_branch`**; resolve conflicts **before** next plan or QC on shared scope
|
|
77
|
+
5. **Next plan** from step 1 on updated integration branch
|
|
78
|
+
|
|
79
|
+
When **every** plan in the iteration is `Done` → optional PR from `spec_integration_branch` to `main` per `mstar-plan-conventions` (unless Assignment `Branch policy` says otherwise).
|
|
80
|
+
|
|
81
|
+
### 4. Push discipline
|
|
82
|
+
|
|
83
|
+
- **No** routine “should I continue?” on harness basics — decide, record in Assignment if needed, **dispatch**
|
|
84
|
+
- Unknowns → **Read** `mstar-*`; **`Blocked`** or user only for stop, secrets, irreversible scope gaps, or post-read rule conflict
|
|
85
|
+
- Actual Git ≠ plan/`status.json` `working_branch` → **same round** update plan + status **or** worktree dispatches before next implement
|
|
86
|
+
|
|
87
|
+
## Dispatch-first (`implement`)
|
|
88
|
+
|
|
89
|
+
| Do | Don't |
|
|
90
|
+
| --- | --- |
|
|
91
|
+
| **Loop:** `## Assignment` → invoke → Completion Report v2 → report-to-status → next batch | Parent **Write/Edit/Shell** on product code to “move faster” |
|
|
92
|
+
| **1 Assignment ⇒ 1 invoke** when host supports Task/@agent (`mstar-dispatch-gates`) | Assignment markdown only, no matching invoke |
|
|
93
|
+
| Put merge/branch/handoff from **this thread** into Assignment | Skip subagent because context is “already here” |
|
|
94
|
+
|
|
95
|
+
- **NEVER** implement while staying PM — QC 3× comes later; **implement still delegates** dev roles.
|
|
96
|
+
- **Delegate scope / PM whitelist:** `mstar-roles` → PM Execution Boundary.
|
|
46
97
|
|
|
47
|
-
**Exceptions:** user explicitly asks PM thread to implement; hotfix per `mstar-phase-gates
|
|
98
|
+
**Exceptions:** user explicitly asks PM thread to implement; hotfix per `mstar-phase-gates`.
|
|
48
99
|
|
|
49
100
|
## Cursor Plan mode
|
|
50
101
|
|
|
51
|
-
|
|
102
|
+
CreatePlan / SwitchMode: Read **`mstar-host/references/cursor-plan-mode-bridge.md`**. Bootstrap todos `harness-init` → `spec-register` → `mirror-plan` before implement todos; evidence on **subagent** work.
|
|
52
103
|
|
|
53
104
|
## Conflict order
|
|
54
105
|
|
|
55
106
|
1. User explicit instructions
|
|
56
107
|
2. Project `AGENTS.md` / `CLAUDE.md`
|
|
57
|
-
3. `mstar-harness-core` + runtime `mstar-*`
|
|
108
|
+
3. `mstar-harness-core` + runtime `mstar-*`
|
|
58
109
|
4. This skill
|
|
59
110
|
|
|
60
|
-
**Dispatch-first + `mstar-dispatch-gates
|
|
111
|
+
**Dispatch-first + `mstar-dispatch-gates`** win over “fast parent agent” unless user overrides.
|