@mstar-harness/opencode 1.0.6 → 1.2.0
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 +14 -0
- package/README.md +2 -2
- package/harness-agents/qc-specialist-2.md +9 -16
- package/harness-agents/qc-specialist-3.md +9 -16
- package/harness-agents/qc-specialist.md +9 -16
- package/harness-commands/iteration-loop.md +297 -0
- package/harness-commands/iteration-start.md +2 -0
- package/harness-skills/mstar-branch-worktree/SKILL.md +2 -2
- package/harness-skills/mstar-dispatch-gates/SKILL.md +3 -3
- package/harness-skills/mstar-harness-core/SKILL.md +2 -2
- package/harness-skills/mstar-host/references/cursor-plan-mode-bridge.md +4 -4
- package/harness-skills/mstar-host/references/cursor.md +1 -1
- package/harness-skills/mstar-host/references/parallel-dispatch.md +3 -3
- package/harness-skills/mstar-iteration/SKILL.md +26 -9
- package/harness-skills/mstar-iteration/references/autonomous-direction-lock.md +89 -0
- package/harness-skills/mstar-iteration/references/iteration-compass-template.md +14 -0
- package/harness-skills/mstar-iteration/references/iteration-corpus-hygiene.md +1 -1
- package/harness-skills/mstar-phase-gates/SKILL.md +2 -2
- package/harness-skills/mstar-plan-artifacts/SKILL.md +2 -2
- package/harness-skills/mstar-plan-artifacts/references/done-compaction.md +2 -2
- package/harness-skills/mstar-plan-artifacts/references/knowledge-and-designs.md +9 -8
- package/harness-skills/mstar-plan-artifacts/references/plan-files-and-reports.md +39 -21
- package/harness-skills/mstar-plan-artifacts/references/status-and-residuals.md +7 -6
- package/harness-skills/mstar-plan-conventions/SKILL.md +7 -7
- package/harness-skills/mstar-plan-conventions/references/artifact-storage-paths.md +4 -4
- package/harness-skills/mstar-plan-conventions/references/harness-bootstrap-and-agents-layering.md +2 -2
- package/harness-skills/mstar-review-qc/SKILL.md +5 -5
- package/harness-skills/mstar-review-qc/references/review-responsibility-boundaries.md +5 -5
- package/harness-skills/mstar-roles/SKILL.md +7 -7
- package/harness-skills/mstar-roles/references/project-manager/plan-management.md +2 -2
- package/harness-skills/mstar-roles/references/project-manager/qa-trigger-matrix.md +2 -2
- package/harness-skills/mstar-roles/references/project-manager/qc-and-residuals.md +6 -6
- package/harness-skills/mstar-roles/references/project-manager.md +4 -4
- package/harness-skills/mstar-roles/references/qa-engineer/acceptance-gate.md +2 -2
- package/harness-skills/mstar-roles/references/qa-engineer.md +4 -2
- package/harness-skills/mstar-roles/references/qc-specialist/report-template.md +1 -1
- package/harness-skills/mstar-roles/references/qc-specialist/reviewer-workflow.md +1 -1
- package/harness-skills/mstar-roles/references/qc-specialist-shared.md +7 -7
- package/harness-skills/mstar-sdd/SKILL.md +2 -2
- package/harness-skills/mstar-sdd/references/file-handoffs.md +3 -2
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: mstar-iteration
|
|
3
|
-
description: Morning Star 迭代管理 ——
|
|
3
|
+
description: Morning Star 迭代管理 —— Phase 1(默认 interactive direction lock;opt-in autonomous;specs + `<iteration-id>/` workspace;禁止直写 knowledge)、Autonomous Execute、iteration-close(compound 提升 workspace → knowledge)、PR 交付、PR merge-ready loop。分支 SSOT:`status.json` + compass frontmatter。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# mstar-iteration(迭代管理)
|
|
@@ -69,7 +69,7 @@ PM 在新迭代启动时执行。
|
|
|
69
69
|
|
|
70
70
|
### 1.2 定义迭代范围
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
与用户/产品对齐后(或按下方 **autonomous** 模式锁定后),确定:
|
|
73
73
|
|
|
74
74
|
| 字段 | 说明 |
|
|
75
75
|
|------|------|
|
|
@@ -81,10 +81,22 @@ PM 在新迭代启动时执行。
|
|
|
81
81
|
| **非目标** | 明确排除在本次迭代外的事项 |
|
|
82
82
|
| **Roadmap 上下文** | 本迭代在整体 roadmap 中的位置(current iteration / next iteration) |
|
|
83
83
|
| **Delivery branch policy** | `iteration_base_branch`(integration 分支从何处分出)、`spec_integration_branch`、`target_branch`(最终 PR 目标) |
|
|
84
|
+
| **Scale budget**(可选) | 仅当 caller **显式**给出或选用 **autonomous** 时适用:`S` = 1 **业务** plan;`M` = 2–3;`L` = 3–4(默认上限 4)。**只计实际业务交付 plan**,不计 harness 流程性工作(Review 链 / QC / QA / compound / close / PR 等)。**interactive 默认不强制** S/M/L。计数细则 → **`references/autonomous-direction-lock.md`** § Scale budget |
|
|
84
85
|
|
|
85
|
-
|
|
86
|
+
#### Direction lock modes
|
|
86
87
|
|
|
87
|
-
|
|
88
|
+
compass/plans 初稿落盘前,必须锁定**单一**迭代方向、成功标准、非目标,并确认 delivery branch policy;决策写入 compass `## Scope` / `## Acceptance Criteria` / `## Non-Goals` 与 Delivery Branch Policy。
|
|
89
|
+
|
|
90
|
+
| Mode | 何时选用 | 行为 |
|
|
91
|
+
|------|----------|------|
|
|
92
|
+
| **`interactive`** | **默认**(未显式声明 mode 时一律用此) | 与用户/产品**逐问**收敛方向与 branch policy;不得静默默认 `main`/`master` |
|
|
93
|
+
| **`autonomous`** | **仅**当 caller / Assignment **显式**声明 `Direction lock mode: autonomous`(或等价书面 opt-in) | 代码优先调研 → 排序候选 → **锁定推荐方向并落盘 rationale**;不因「是否同意该方向」例行问用户。细则 → **`references/autonomous-direction-lock.md`** |
|
|
94
|
+
|
|
95
|
+
**禁止**:在未显式 opt-in 时自行切换到 `autonomous`(例如仅因读了本 skill 或存在 roadmap next)。
|
|
96
|
+
|
|
97
|
+
**Branch policy gate(interactive — 默认路径)**:若用户、现有 roadmap、或项目约定未明确 `iteration_base_branch` / `target_branch`,PM 必须检查当前分支并向用户确认。**不得**因为存在 `main` / `master` 就默认从默认分支开 iteration 或向默认分支提 PR。
|
|
98
|
+
|
|
99
|
+
**Autonomous branch resolve**:仅 `autonomous` 模式;解析顺序与 STOP 规则见 **`references/autonomous-direction-lock.md`**(勿把该顺序套用到 interactive 以跳过向用户确认)。
|
|
88
100
|
|
|
89
101
|
### 1.3 创建迭代 compass
|
|
90
102
|
|
|
@@ -177,7 +189,7 @@ Phase 1 与 §1.6 须遵守 **`references/iteration-artifact-boundaries.md`**(
|
|
|
177
189
|
|
|
178
190
|
**顺序理由**:产品范围与优先级 → 架构与长期契约(specs)→ 行文、规格库卫生与错放纠正(须在 PM/architect 定稿后扫全库 specs)。并行会导致后手重复劳动或覆盖前手未定稿内容。OpenCode:plain role id — **`mstar-host/references/opencode.md`** § Role-mention hygiene。
|
|
179
191
|
|
|
180
|
-
**完成证据** = 磁盘上的 compass / plans / specs / iteration 文档修订 + specs(与既有 knowledge)卫生/归档(如有)+ 索引与 metadata 更新 + compass `status: locked
|
|
192
|
+
**完成证据** = 磁盘上的 compass / plans / specs / iteration 文档修订 + specs(与既有 knowledge)卫生/归档(如有)+ 索引与 metadata 更新 + compass `status: locked`。**不**要求单独的迭代审查报告——迭代审查的 SSOT 是被编辑的文档本身,无 per-plan QC 式审计链。
|
|
181
193
|
|
|
182
194
|
**反模式**:PM 线程代替三角色完成全部编辑而不 invoke;或将本链三角色并行派发 —— 见 **`mstar-harness-core`** 反模式索引。
|
|
183
195
|
|
|
@@ -251,7 +263,7 @@ SSOT = `{HARNESS_DIR}/status.json` + `{PLAN_DIR}/`。todos 只追踪本轮下一
|
|
|
251
263
|
6. Fix loop 直至 review clean;append `{SDD_DIR}/progress.md`;更新 `status.json` / plan checkbox
|
|
252
264
|
7. Next task
|
|
253
265
|
- 每次 Completion Report v2 后更新 `status.json` + 主 plan
|
|
254
|
-
3. **QC → QA gate → Done**:per-plan 审查链 → **`mstar-sdd`**(L1–L2)+ **`mstar-review-qc/references/review-responsibility-boundaries.md`**(L3 tri / inline
|
|
266
|
+
3. **QC → QA gate → Done**: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)。
|
|
255
267
|
4. **Plan complete — merge back**:合并 plan feature branch → `spec_integration_branch`;在下一 plan 或 QC 前解决冲突
|
|
256
268
|
5. **Cross-plan 进度同步**:更新 `{ITERATION_DIR}/<iteration-id>-delivery-compass.md` 的 `## Plans` 表状态列
|
|
257
269
|
6. **Next plan** 从步骤 1 继续
|
|
@@ -275,7 +287,7 @@ SSOT = `{HARNESS_DIR}/status.json` + `{PLAN_DIR}/`。todos 只追踪本轮下一
|
|
|
275
287
|
| 文件交接 | brief / report / diff / `progress.md` 在 `{SDD_DIR}`;dispatch prompt **只给路径**,不贴 plan 全文或 task 历史 |
|
|
276
288
|
| Assignment 字段 | 每个 implement dispatch 须含 `Execution mode: sdd`、`SDD dir`、`Model tier`;**禁止**省略 `Model tier` |
|
|
277
289
|
| 大包 inline | **禁止**把 T1–Tn 或整份 plan 写进 **一个** `fullstack-dev` leaf Assignment 冒充 SDD |
|
|
278
|
-
| 分支 diff | 全部 task 完成后 `review-package MERGE_BASE HEAD` → branch diff → plan QC tri(N=3) |
|
|
290
|
+
| 分支 diff | 全部 task 完成后 `review-package MERGE_BASE HEAD` → `{SDD_DIR}/review/` branch diff → plan QC tri(N=3) |
|
|
279
291
|
|
|
280
292
|
Iteration Phase 2 附加:
|
|
281
293
|
|
|
@@ -315,6 +327,7 @@ PM 在迭代内全部 plan Done 后执行。**本 Phase 在 integration 分支
|
|
|
315
327
|
|------|----------|
|
|
316
328
|
| YAML frontmatter:`iteration_id`, `start_date`, `status` | 从文件名 / 正文提取;收口前 `status` 保持 `active` 或 `locked` |
|
|
317
329
|
| `## Roadmap Position` | 从 general context / roadmap prose 迁移为本节 |
|
|
330
|
+
| `## Quality Gate Summary` | 按模板补占位,§3.4 填写 |
|
|
318
331
|
| `## Compound Round Summary` | 按模板补占位,§3.4 填写 |
|
|
319
332
|
| `## Iteration Retrospective (minimal)` | 按模板补占位,§3.4 填写 |
|
|
320
333
|
|
|
@@ -359,7 +372,7 @@ PM 批量触发后须:
|
|
|
359
372
|
|
|
360
373
|
1. compass **YAML frontmatter**:`status: completed`,`end_date: YYYY-MM-DD`(必须;见 §3.0.5)
|
|
361
374
|
2. 更新 `{ITERATION_DIR}/README.md` 索引中该迭代行 Status 为 `completed`
|
|
362
|
-
3. 填充 compass `## Compound Round Summary` 与 `## Iteration Retrospective (minimal)`(见模板)
|
|
375
|
+
3. 填充 compass `## Quality Gate Summary`、`## Compound Round Summary` 与 `## Iteration Retrospective (minimal)`(见模板)
|
|
363
376
|
|
|
364
377
|
### 3.5 Close exit checklist + commit
|
|
365
378
|
|
|
@@ -370,7 +383,7 @@ PM 打印 **iteration-close exit checklist**;全部为 `[x]` 后方可 `git co
|
|
|
370
383
|
- [ ] §3.1 前置 gate 已打印并满足
|
|
371
384
|
- [ ] §3.2 compound 完成;**`<iteration-id>/` workspace 已盘点**(提升 / 保留 / 跳过已记入 Compound Summary);新增 knowledge doc 均已登记 `{KNOWLEDGE_DIR}/README.md`(或已记录无可结晶原因)
|
|
372
385
|
- [ ] §3.3 `## Roadmap Position` current iteration 已标 `delivered`;tracker / STRATEGY 已按需更新
|
|
373
|
-
- [ ] §3.4 frontmatter `status: completed` + `end_date`;Compound Summary + Retrospective 已填
|
|
386
|
+
- [ ] §3.4 frontmatter `status: completed` + `end_date`;Quality Gate Summary + Compound Summary + Retrospective 已填
|
|
374
387
|
- [ ] 当前分支是 `spec_integration_branch`
|
|
375
388
|
- [ ] PR base = `metadata.target_branch`(与 compass frontmatter 一致);**不是**未记录的 `main`
|
|
376
389
|
|
|
@@ -459,6 +472,7 @@ PR **merge** 本身可仍由用户手动执行,除非 Assignment 明确授权
|
|
|
459
472
|
| `references/iteration-artifact-boundaries.md` | Phase 1 specs / iterations workspace / knowledge 分工 |
|
|
460
473
|
| `references/iteration-workspace-readme-template.md` | `<iteration-id>/README.md` 可选模板 |
|
|
461
474
|
| `references/iteration-corpus-hygiene.md` | §1.6 writing-specialist specs 卫生细则 |
|
|
475
|
+
| `references/autonomous-direction-lock.md` | §1.2 autonomous direction lock、scale budget、branch resolve |
|
|
462
476
|
| `mstar-strategy` | iteration-start 时读 `STRATEGY.md` 对齐方向 |
|
|
463
477
|
|
|
464
478
|
## NOT to do
|
|
@@ -479,3 +493,6 @@ PR **merge** 本身可仍由用户手动执行,除非 Assignment 明确授权
|
|
|
479
493
|
- **不要在 iteration-close 跳过 `<iteration-id>/` workspace 盘点**(compound 提升 SSOT → **`mstar-compound`**)
|
|
480
494
|
- **不要在 iteration-start §1.6 跳过 writing-specialist 全库 specs corpus hygiene**(仅改当轮 compass/plans 而不扫 `{SPECS_DIR}/`)
|
|
481
495
|
- **不要在 SDD plan 上以单席 `qc.md` 收尾**(除非用户书面 `QC mode: single — override`)
|
|
496
|
+
- **不要在未显式 `Direction lock mode: autonomous` 时跳过与用户收敛方向**(interactive 仍为默认)
|
|
497
|
+
- **不要在 `autonomous` mode 下例行问用户「是否同意该方向」**(须落盘 rationale;无候选且无约束时 STOP)
|
|
498
|
+
- **不要把 harness 流程(Review 链 / QC / QA / compound / close / PR 等)计进 Scale budget 的 plan 数量**,也不得为此单独建 process plan 占坑
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Autonomous direction lock
|
|
2
|
+
|
|
3
|
+
Capability detail for Phase 1 when direction lock mode is **`autonomous`**.
|
|
4
|
+
|
|
5
|
+
**Opt-in only.** Default Phase 1 mode remains **`interactive`** (user-converged). Do **not** apply this reference unless the caller / Assignment explicitly declares `Direction lock mode: autonomous` (or equivalent written opt-in). Reading this file alone is not opt-in.
|
|
6
|
+
|
|
7
|
+
## Preconditions
|
|
8
|
+
|
|
9
|
+
- Research (§1.1) and candidate exploration already done — **read repo artifacts before ranking**.
|
|
10
|
+
- Do not invent roadmap items that have no file or status evidence.
|
|
11
|
+
- Scale budget (`S`/`M`/`L`) applies in this mode (or when the caller supplies one); do not retrofit a scale cap onto an interactive start that never asked for one.
|
|
12
|
+
|
|
13
|
+
## Ranking heuristics(highest first)
|
|
14
|
+
|
|
15
|
+
1. **Deferred / roadmap next** — prior compass `## Roadmap Position` next iteration, deferred-features, residuals marked for follow-up
|
|
16
|
+
2. **STRATEGY alignment** — `STRATEGY.md` vision / decision principles when present
|
|
17
|
+
3. **Product completeness** — closes a user-visible gap or unfinished capability
|
|
18
|
+
4. **Risk / blast radius** — prefer smaller, shippable slices when candidates are otherwise equal
|
|
19
|
+
|
|
20
|
+
Document trade-offs for **each** shortlisted candidate (2–4), then lock **one**.
|
|
21
|
+
|
|
22
|
+
## Lock outputs(must land on disk)
|
|
23
|
+
|
|
24
|
+
Write into compass (and plan Scope as needed):
|
|
25
|
+
|
|
26
|
+
| Field | Content |
|
|
27
|
+
|-------|---------|
|
|
28
|
+
| Locked direction | Single sentence |
|
|
29
|
+
| Rationale | Why this candidate won(cite paths / roadmap lines) |
|
|
30
|
+
| Acceptance criteria | Iteration-level Done |
|
|
31
|
+
| Non-goals | Explicit exclusions |
|
|
32
|
+
| Scale budget | `S` \| `M` \| `L` and resulting plan-count cap |
|
|
33
|
+
|
|
34
|
+
## Scale budget
|
|
35
|
+
|
|
36
|
+
| Budget | **Business** plan count |
|
|
37
|
+
|--------|-------------------------|
|
|
38
|
+
| `S` | 1 |
|
|
39
|
+
| `M` | 2–3 |
|
|
40
|
+
| `L` | 3–4(default cap 4 unless a written constraint requires more) |
|
|
41
|
+
|
|
42
|
+
### What counts toward the budget(HARD)
|
|
43
|
+
|
|
44
|
+
Count only **business delivery plans** registered in compass / `status.json` whose primary outcome is product, feature, bugfix, user-facing docs, API/contract, or architecture work for the locked direction.
|
|
45
|
+
|
|
46
|
+
**Do not count** harness / process work as plans (and do not invent plans whose sole job is process):
|
|
47
|
+
|
|
48
|
+
| Exclude from scale count | Examples |
|
|
49
|
+
|--------------------------|----------|
|
|
50
|
+
| Phase 1 process | Research, direction lock, Review & Edit chain, compass/index/`status.json` bootstrap |
|
|
51
|
+
| Phase 2 process | Per-task SDD briefs/reviews, plan QC tri, QA gate, branch merge-back |
|
|
52
|
+
| Phase 3–5 process | Compound / workspace promotion, iteration-close, Create PR, merge-ready / CI babysit |
|
|
53
|
+
| Meta “plans” | “run QC”, “do compound”, “open PR”, “setup harness”, “write compass only” |
|
|
54
|
+
|
|
55
|
+
Harness steps remain **mandatory gates** outside the budget — they do not consume S/M/L slots and must not be padded into the plan list to “fill” the budget.
|
|
56
|
+
|
|
57
|
+
If evidence suggests more **business** work than the budget allows, keep overflow in compass `## Roadmap Position` → next iteration — do not silently expand past the budget, and do not replace business plans with process plans to stay under the cap.
|
|
58
|
+
|
|
59
|
+
## Direction constraint(optional input)
|
|
60
|
+
|
|
61
|
+
When a free-text direction / feedback constraint is supplied by the caller:
|
|
62
|
+
|
|
63
|
+
- Filter or re-rank candidates to fit that intent
|
|
64
|
+
- Still require code/roadmap evidence; do not lock a direction that contradicts the repo without documenting the conflict
|
|
65
|
+
- If constraint and evidence conflict irreconcilably → **Blocked**(escalate)
|
|
66
|
+
|
|
67
|
+
## Autonomous branch resolve
|
|
68
|
+
|
|
69
|
+
**Only in `autonomous` mode.** Do not use this order to skip user confirmation under `interactive`.
|
|
70
|
+
|
|
71
|
+
Resolve `iteration_base_branch` and `target_branch` in order(first hit wins per field):
|
|
72
|
+
|
|
73
|
+
1. `{HARNESS_DIR}/status.json` root `metadata`
|
|
74
|
+
2. Existing / prior iteration compass frontmatter
|
|
75
|
+
3. Current git branch **only if** it is already a documented delivery, integration, or project-policy branch(not merely “whatever HEAD is”)
|
|
76
|
+
4. Still missing → **STOP** — escalate; **never** substitute `main` / `master` because those names exist
|
|
77
|
+
|
|
78
|
+
`spec_integration_branch` defaults to `iteration/<iteration-id>` once base/target are known.
|
|
79
|
+
|
|
80
|
+
## Anti-patterns
|
|
81
|
+
|
|
82
|
+
- Applying this reference without explicit autonomous opt-in
|
|
83
|
+
- Asking the user “do you agree with this direction?” as a routine gate in autonomous mode
|
|
84
|
+
- Locking without reading roadmap / status / STRATEGY when those files exist
|
|
85
|
+
- Silent default to `main` / `master` for base or PR target
|
|
86
|
+
- Skipping written rationale because “it was obvious”
|
|
87
|
+
- Forcing S/M/L plan caps on interactive starts that did not request a scale budget
|
|
88
|
+
- Counting harness process (Review chain / QC / QA / compound / close / PR) toward the scale budget
|
|
89
|
+
- Creating process-only plans to fill or absorb S/M/L slots
|
|
@@ -85,6 +85,19 @@ Link from compass when used:
|
|
|
85
85
|
|
|
86
86
|
- Workspace: `<iteration-id>/` | <one-line purpose>
|
|
87
87
|
|
|
88
|
+
## Quality Gate Summary
|
|
89
|
+
|
|
90
|
+
> Filled at iteration-close. Human summary only; per-plan gate details stay in each main plan, and open residual SSOT stays in `{HARNESS_DIR}/status.json`.
|
|
91
|
+
|
|
92
|
+
| plan_id | QC decision | QA gate | Residuals | Durable summary |
|
|
93
|
+
|---------|-------------|---------|-----------|-----------------|
|
|
94
|
+
| <plan-id-1> | Approve / Approve with residuals / Request Changes / N/A | mandatory / pm-acceptance / report-only / N/A | none / R1,R2 / accepted | `{PLAN_DIR}/<plan>.md#review-gate-summary` |
|
|
95
|
+
|
|
96
|
+
Notes:
|
|
97
|
+
|
|
98
|
+
- Raw review bundle: `{SDD_DIR}/review/` (ephemeral; do not rely on it after Done).
|
|
99
|
+
- Open residual SSOT: `{HARNESS_DIR}/status.json` root `residual_findings[<plan-id>]`.
|
|
100
|
+
|
|
88
101
|
## Compound Round Summary
|
|
89
102
|
|
|
90
103
|
> Filled at iteration-close.
|
|
@@ -120,6 +133,7 @@ Link from compass when used:
|
|
|
120
133
|
| `## Roadmap Position` | **Yes** | Phase 1(必填节,非散落于 general context prose);Phase 3 §3.3(current iteration → `delivered`) |
|
|
121
134
|
| `## Risk Register` | Optional | Phase 1, Phase 2 (update) |
|
|
122
135
|
| Iteration workspace (`<iteration-id>/`) | Optional | Phase 1 §1.5.5 — `guides/` + `specs/`; index in `{ITERATION_DIR}/README.md` |
|
|
136
|
+
| `## Quality Gate Summary` | Yes | Phase 3 §3.4 |
|
|
123
137
|
| `## Compound Round Summary` | Yes | Phase 3 §3.4 |
|
|
124
138
|
| `## Iteration Retrospective` | Recommended | Phase 3 §3.4 |
|
|
125
139
|
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
| **Secondary** | `{KNOWLEDGE_DIR}/**` (existing) | Archive / relocate only — **no** new docs |
|
|
13
13
|
| **Included** | `{PLAN_DIR}/` plans touched this iteration | Spec refs, terminology |
|
|
14
14
|
|
|
15
|
-
**Out of scope**: compound promotion (iteration-close); `{
|
|
15
|
+
**Out of scope**: compound promotion (iteration-close); per-plan review bundles (`{SDD_DIR}/review/`); code.
|
|
16
16
|
|
|
17
17
|
## Misplaced content (relocate)
|
|
18
18
|
|
|
@@ -74,9 +74,9 @@ per-plan 门禁通过后,PM 在**迭代层面**管理以下活动(不计入
|
|
|
74
74
|
|
|
75
75
|
per-plan Done 是 per-plan 的闭环终点;compound 是迭代级收口活动,不影响 per-plan 状态判定。
|
|
76
76
|
|
|
77
|
-
## Plan
|
|
77
|
+
## Plan 目录与审查证据(启用 `{PLAN_DIR}` 时)
|
|
78
78
|
|
|
79
|
-
- 进入 `InReview` 后,QC
|
|
79
|
+
- 进入 `InReview` 后,QC/QA 原始过程报告默认落入 `{SDD_DIR}/review/`(**SDD 默认 tri** `qc1`…`qc-consolidated`;**inline** 单席 `qc.md`)。**fix 后默认 targeted re-review**。SDD per-task review 在 implement 波次内完成(`mstar-sdd` task reviewer)。PM 将 durable gate summary 回写主 plan / `status.json`,而不是把 raw reports 作为默认 git 产物。
|
|
80
80
|
- 非阻断项与后续技术债:PM 汇总后写入 `{HARNESS_DIR}/status.json` 根级 `residual_findings[<plan-id>]`(**open**,与 `plans` 平级;canonical 见 **`mstar-plan-artifacts` SKILL.md**);关闭后迁入 `{HARNESS_DIR}/archived/residuals/<plan-id>.json`,与 `mstar-review-qc` 一致。每条 **`severity`** 遵守 **`mstar-plan-artifacts/references/status-and-residuals.md`**「Residual findings:severity(SSOT,机器字段)」。
|
|
81
81
|
|
|
82
82
|
## 快速判定(PM)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: mstar-plan-artifacts
|
|
3
|
-
description: Morning Star plan harness artifacts — `{PLAN_DIR}` main plans and `
|
|
3
|
+
description: Morning Star plan harness artifacts — `{PLAN_DIR}` main plans and durable review summaries, `{SDD_DIR}/review/` ephemeral QC/QA bundles, `{KNOWLEDGE_DIR}` / `{ITERATION_DIR}` indexes, Done compaction, plus `{HARNESS_DIR}/status.json` and root `residual_findings` (severity SSOT, open/archived lifecycle, `notes.json`). Read when writing plans or QC/QA review bundles, maintaining knowledge/iteration indexes, reading or writing `status.json` / R#, Done compaction, or mapping QC severity to JSON. Required for `@project-manager` on status, residuals, and InReview/QC waves; `@qc-specialist*` before writing review bundle reports; `@qa-engineer` before closing R# when `QA gate: mandatory`. Verdict rules: leaf → `mstar-roles/references/qc-specialist/report-template.md`; PM → `mstar-review-qc`. Paths in `mstar-plan-conventions`.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## Load order
|
|
@@ -11,7 +11,7 @@ description: Morning Star plan harness artifacts — `{PLAN_DIR}` main plans and
|
|
|
11
11
|
|
|
12
12
|
| Topic | See |
|
|
13
13
|
|-------|-----|
|
|
14
|
-
| Main plan,
|
|
14
|
+
| Main plan, review bundle naming, durable summaries, QC waves, residual and plan index order | `references/plan-files-and-reports.md` |
|
|
15
15
|
| Plan template (Global Constraints, Interfaces) | `templates/plan.main.md` |
|
|
16
16
|
| knowledge / iterations / specs boundaries and indexes | `references/knowledge-and-designs.md` |
|
|
17
17
|
| Done row compaction Profile A/B | `references/done-compaction.md` |
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
- **最小集**(机器导航够用):**`id`**、**`status`**(`Done`)、**`file`**(主 plan 路径)、**`metadata`** 仅含:
|
|
20
20
|
- **`archived_record`**:相对 **`{HARNESS_DIR}`** 的路径,例如 `archived/plans/<plan-id>.json`(冷快照内为**完整**当时 `plans[]` 元素,含臃肿字段)
|
|
21
21
|
- 若该 `plan-id` 在 **open 列表**(根级 **`residual_findings`**;若仅存 legacy 侧则同口径)中仍有 **open** 行,在 **`metadata`** 内保留 **`residual_summary`**(语义见 `status-and-residuals.md` **`residual_summary`(可选)** 小节)
|
|
22
|
-
- **可选**(人类扫表友好,非必须):**`title`** 一行、**`done_at`**;勿把长叙述塞回热行——放进 **`{HARNESS_DIR}/notes.json
|
|
22
|
+
- **可选**(人类扫表友好,非必须):**`title`** 一行、**`done_at`**;勿把长叙述塞回热行——放进 **`{HARNESS_DIR}/notes.json`**、主 plan gate summary、archived residuals,或依赖冷快照。
|
|
23
23
|
- 一旦快照已写入,热行**不得**再承载完整 `gates`、`qc_status`、`tests`、`commits`、长 `description`/`scope` 等;**以 `archived_record` 指向文件为准**。
|
|
24
|
-
- 单条 **`plans[].notes`**
|
|
24
|
+
- 单条 **`plans[].notes`** 字符串若仍在用,保持**极短**(如指向主 plan gate summary 或 R#);**不要**重复 QC/QA 原始报告大段原文。
|
|
25
25
|
- **可选索引**:`{HARNESS_DIR}/archived/plans/_index.json` — `plan-id` → 相对路径,便于不依赖 glob 的工具。
|
|
26
26
|
- **可选滚动保留**:进一步缩小 `plans[]` 时,可只在热文件中保留**最近窗口**的瘦 `Done` 行,更旧 id 仅出现在 `_index.json` 与快照文件中;若采用,须在项目 `AGENTS.md` 中写明,并检查依赖「热文件中必有全部历史 id」的脚本。
|
|
27
27
|
|
|
@@ -15,16 +15,16 @@
|
|
|
15
15
|
| **`{SPECS_DIR}`**(可选) | 冻结 v1-spec、ADR、program roadmap — **跨迭代长期权威** | 产品/API 规范性最高权威;**iteration-start** 由 product/architect 主写 |
|
|
16
16
|
| **`{ITERATION_DIR}`**(可选) | delivery compass + **`<iteration-id>/` workspace**(`guides/`、`specs/`) | Agent handoff;迭代级草稿;close 时 compound **提升** → knowledge |
|
|
17
17
|
| **`{KNOWLEDGE_DIR}`**(可选) | 实现细节 SSOT、架构细则、契约说明、跨版本 tracker — **经 `mstar-compound` 结晶** | Agent handoff;**不**在 iteration-start 由 product/architect 新增 |
|
|
18
|
-
| **`{PLAN_DIR}/`** | 单 plan
|
|
18
|
+
| **`{PLAN_DIR}/`** | 单 plan 主文件、durable gate summary、可选 `residuals/` | 计划执行与长期决策留档 |
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
**不应**放入 `docs/` 的内容:迭代 compass 正文、作为**特定 plan 输入/输出**的评审结论、实施笔记、未稳定规格草案、QC
|
|
21
|
+
**不应**放入 `docs/` 的内容:迭代 compass 正文、作为**特定 plan 输入/输出**的评审结论、实施笔记、未稳定规格草案、QC/QA 原始过程报告 —— 分别落 `{ITERATION_DIR}`、`{KNOWLEDGE_DIR}`、`{SPECS_DIR}` 或 `{SDD_DIR}/review/`;长期 gate 摘要回写主 plan。
|
|
22
22
|
|
|
23
23
|
## `{ITERATION_DIR}`(可选·迭代/版本级 compass)
|
|
24
24
|
|
|
25
25
|
- **物理路径**:`**{ITERATION_DIR}/**`(推荐布局下常为 `**.mstar/iterations/**`,与 `{KNOWLEDGE_DIR}`、`{PLAN_DIR}` 并列;legacy 项目可继续为 `.agents/iterations/`)。
|
|
26
26
|
- **放什么**:delivery compass(根目录 `*-delivery-compass*.md`);**`<iteration-id>/` 工作区** — `guides/`(探索、过程)、`specs/`(迭代级规格草案);遗留规划快照。
|
|
27
|
-
- **不放什么**:已锁定的仓库级规范(→ **`{SPECS_DIR}/`**);已提升的跨迭代实施 SSOT(→ **`{KNOWLEDGE_DIR}/`**,经 compound);单 plan QC
|
|
27
|
+
- **不放什么**:已锁定的仓库级规范(→ **`{SPECS_DIR}/`**);已提升的跨迭代实施 SSOT(→ **`{KNOWLEDGE_DIR}/`**,经 compound);单 plan QC/QA 原始报告(→ `{SDD_DIR}/review/`)。
|
|
28
28
|
- **索引**:`**{ITERATION_DIR}/README.md**` 登记 compass + workspace 目录;`<iteration-id>/README.md` 登记工作区内文档。
|
|
29
29
|
- **维护**:`@product-manager` / `@architect` 起草 workspace;`**@project-manager**` 维护索引与 metadata;**iteration-close** 时 **`mstar-compound`** 盘点 workspace 并**提升**至 `{KNOWLEDGE_DIR}/`。
|
|
30
30
|
|
|
@@ -66,13 +66,14 @@
|
|
|
66
66
|
- **其它时机**:当文档内容已完全反映到已合并代码中、且非 iteration-start 扫库时:可将索引 **Status** 标为 `Superseded by implementation (...)` 或 `Archived`;可保留原位或迁入 `archived/knowledge/`。**不要**把知识库产物搬进 `{HARNESS_DIR}/archived/plans/`(该处用于**计划行**冷快照)。
|
|
67
67
|
5. **结晶(Compound)**:PM 在 **iteration-close** 触发 **`mstar-compound`**:plan 素材 + **`{ITERATION_DIR}/<iteration-id>/` workspace 提升** → `{KNOWLEDGE_DIR}/`。不在 per-plan Done 后单独执行。维护 → **`mstar-compound-refresh`**。
|
|
68
68
|
|
|
69
|
-
## 与
|
|
69
|
+
## 与 review bundle、`{PLAN_DIR}/residuals/` 的区分
|
|
70
70
|
|
|
71
|
-
- `**
|
|
71
|
+
- `**{SDD_DIR}/review/`**:偏 **审查流程临时证据**(review package、QC1/2/3、consolidated、QA),gitignored,可在 Done 后丢失。
|
|
72
|
+
- `**主 plan gate summary**`:偏 **长期门禁决策摘要**(verdict、review range、R#、QA gate),随主 plan 追踪。
|
|
72
73
|
- `**{PLAN_DIR}/residuals/<plan-id>/`**:偏 **仍 open 的 R# 长文补充**(与根级 `**residual_findings**` 配套,canonical 见 `mstar-plan-conventions` **SKILL.md** 开篇);见下文「open residual 散文详情」。
|
|
73
74
|
- `**{KNOWLEDGE_DIR}/**`:偏 **可复用的实现向设计上下文**(架构细则、决策、分析),可被后续 plan 或多会话反复引用。
|
|
74
75
|
- `**{ITERATION_DIR}/**`:偏 **某一迭代/版本** 的 compass 与规划快照,通常按版本索引而非按单 plan 长期复用。
|
|
75
|
-
-
|
|
76
|
+
- review bundle、gate summary、residuals、knowledge、iterations 可互链,但职责不混写。
|
|
76
77
|
|
|
77
78
|
---
|
|
78
79
|
|
|
@@ -83,7 +84,7 @@
|
|
|
83
84
|
|
|
84
85
|
| 与相邻目录的分工 | 典型内容 |
|
|
85
86
|
| ----------------------------------------- | --------------------------------------------------------------------- |
|
|
86
|
-
| `**{
|
|
87
|
+
| `**{SDD_DIR}/review/**` | QC / QA **流程临时证据**(`qc1.md` … `qc-consolidated.md`、`qa.md` 等),gitignored |
|
|
87
88
|
| **本目录 `{PLAN_DIR}/residuals/<plan-id>/`** | 针对**仍 open** 的某一 R#:defer 背景、遗留原因、代码锚点、后续接手提示等**长文** |
|
|
88
89
|
| `**{KNOWLEDGE_DIR}/**` | 可跨 plan 复用的**实现向**设计上下文、规格修订、gap 分析(若文中顺带提到 residual,仍以 JSON + residuals 为跟踪权威) |
|
|
89
90
|
| `**{ITERATION_DIR}/**` | 迭代/版本级 compass;**不**替代 `{KNOWLEDGE_DIR}` 中的跨版本 SSOT |
|
|
@@ -93,6 +94,6 @@
|
|
|
93
94
|
|
|
94
95
|
**登记**:在对应 open 条目中填写可选 `**detail_doc`**(仓库内相对路径,常形如 `**{PLAN_DIR}/residuals/<plan-id>/R1-….md**`)。**禁止**只写散文、不在 SSOT 中登记 open 行。
|
|
95
96
|
|
|
96
|
-
**维护**:`**@project-manager`**(或与 Assignment 一致的可写角色);`**@qc-specialist***` 宿主白名单通常**不含**本目录——审查结论仍以 `**
|
|
97
|
+
**维护**:`**@project-manager`**(或与 Assignment 一致的可写角色);`**@qc-specialist***` 宿主白名单通常**不含**本目录——审查结论仍以 Assignment 指定的 `**{SDD_DIR}/review/`** 为准,散文由 PM/实现方据结论整理。
|
|
97
98
|
|
|
98
99
|
**关闭与归档**:当该条从 **open 列表**(根级 **`residual_findings[<plan-id>]`**;若仅存 legacy 侧则从该处)移除并**追加**至 `**{HARNESS_DIR}/archived/residuals/<plan-id>.json`** 时,应将对应 `**.md**` 一并收口:可迁入 `**{HARNESS_DIR}/archived/knowledge/**`(若视为历史考据)、或团队约定的 `**{HARNESS_DIR}/archived/residuals/**` 子路径(与 `**.json**` 同批变更可追溯);并在归档条目的 `**closure_evidence` / `closure_note**`(或团队约定字段)中**写明散文最终路径**。勿长期保留「JSON 已关闭而散文仍留在 `residuals/` 且声称仍 open」的状态。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Plan 文件与
|
|
1
|
+
# Plan 文件与 Review Bundle 留档(Morning Star)
|
|
2
2
|
|
|
3
|
-
> **Load order(与其它 `mstar-*` skill 一致)**:依赖本 reference 排
|
|
3
|
+
> **Load order(与其它 `mstar-*` skill 一致)**:依赖本 reference 排 review bundle / QC 波次前,须已 Read **`mstar-harness-core`** skill(SKILL.md;多 worktree 与 QC 单一 `HEAD` 见 **`mstar-branch-worktree`**)。冲突以 **`mstar-harness-core`** 为准。
|
|
4
4
|
|
|
5
5
|
## Plan 文件(`{PLAN_DIR}/<name>.md`)
|
|
6
6
|
|
|
@@ -8,67 +8,85 @@
|
|
|
8
8
|
|
|
9
9
|
**命名(推荐)**:`<plan-id>-<plan-name>.md`(例:`01-data-infrastructure.md`)。`status.json` 中 `file` 字段填相对仓库根或 `{PLAN_DIR}` 下的实际路径。
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
## Review bundle(`{SDD_DIR}/review/`)
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
QC/QA 原始过程报告默认是 **ephemeral review bundle**,置于 `{SDD_DIR}/review/`(即 `{HARNESS_DIR}/sdd/<plan-id>/review/`)。该目录随 `{SDD_DIR}` gitignored,不作为长期 git 审计链。
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
**QC basename rule**:`{SDD_DIR}` 已含 `<plan-id>` — **do not** repeat it in report filenames. Put `plan_id` in YAML frontmatter only.
|
|
16
|
+
|
|
17
|
+
| 类型 | 文件名(相对 `{SDD_DIR}/review/`) |
|
|
16
18
|
|------|--------|
|
|
17
|
-
| 架构/设计评审 | `<plan-id>-review.md`(或团队约定的 `review.md`) |
|
|
18
19
|
| QC 三审报告(**SDD 默认** `Execution mode: sdd`) | `qc1.md`、`qc2.md`、`qc3.md` |
|
|
19
20
|
| QC 单席报告(**`inline` / hotfix 例外**) | `qc.md` |
|
|
20
21
|
| QC 汇总结论(tri 模式) | `qc-consolidated.md` |
|
|
22
|
+
| QA 验收报告(`QA gate: mandatory`) | `qa.md`(或 Assignment 指定的同目录 basename) |
|
|
23
|
+
|
|
24
|
+
`{PLAN_DIR}/reports/` is **legacy / explicit audit mode only**. Use it only when the user or project policy explicitly requires tracked raw reports; the default harness path is `{SDD_DIR}/review/`.
|
|
21
25
|
|
|
22
26
|
## SDD 运行时(不入 reports)
|
|
23
27
|
|
|
24
|
-
Per-task briefs, implementer reports,
|
|
28
|
+
Per-task briefs, implementer reports, review diffs, branch review packages, and QC/QA bundle files live under **`{SDD_DIR}`** (`mstar-plan-conventions`). Gitignored. Main plan may index `{SDD_DIR}` / `{SDD_DIR}/review/` paths only — do not paste SDD bodies or raw QC/QA reports into plan markdown.
|
|
25
29
|
|
|
26
30
|
Plan template with Global Constraints / Interfaces → **`templates/plan.main.md`**.
|
|
27
31
|
|
|
28
32
|
## QC 模式(L3 plan 级)
|
|
29
33
|
|
|
30
|
-
职责分层 L1–L4 → **`mstar-review-qc/references/review-responsibility-boundaries.md
|
|
34
|
+
职责分层 L1–L4 → **`mstar-review-qc/references/review-responsibility-boundaries.md`**。bundle basename 见上表;触发时机与 re-review 波次见下节 **§ QC 三审触发时机**。
|
|
35
|
+
|
|
36
|
+
## Durable summaries(主 plan / status)
|
|
37
|
+
|
|
38
|
+
Raw bundle files may disappear after the working context is gone. Before Done, PM must preserve the durable decision surface:
|
|
31
39
|
|
|
32
|
-
|
|
40
|
+
- Main plan `## Review Gate Summary`:
|
|
41
|
+
- `Decision`: `Approve` | `Approve with residuals` | `Request Changes` | `Needs Discussion`
|
|
42
|
+
- `Review range / Diff basis`
|
|
43
|
+
- `Review bundle`: `{SDD_DIR}/review/`
|
|
44
|
+
- `QC inputs`: `qc1.md` / `qc2.md` / `qc3.md` or `qc.md`
|
|
45
|
+
- `Blocking result`: fixed / none / deferred with reason
|
|
46
|
+
- `Residual findings`: R# ids + short titles + owner/target
|
|
47
|
+
- Main plan `## QA Gate Summary` when QA applies:
|
|
48
|
+
- `QA gate` / `QA mode`
|
|
49
|
+
- evidence reused vs newly run checks
|
|
50
|
+
- related R# closure recommendations
|
|
51
|
+
- `{HARNESS_DIR}/status.json` root `residual_findings[<plan-id>]`: open R# machine SSOT.
|
|
33
52
|
|
|
34
|
-
|
|
35
|
-
- **极窄例外**(须团队显式采纳并承担审计缺口):例如仓库体积极敏感时,仅保留 consolidated + 指向外部归档的链接——**不在**本默认 harness 中推荐;默认仍保留三份 `qc*.md`。
|
|
53
|
+
The durable summary is not a paste of raw reports. It is a small gate record sufficient for handoff after `{SDD_DIR}` is unavailable.
|
|
36
54
|
|
|
37
55
|
## Residual findings(R#):权威在哪、和主 plan 谁先谁后?
|
|
38
56
|
|
|
39
57
|
- **Open 条目的单一事实来源(SSOT)**是 **`{HARNESS_DIR}/status.json`** 根级 **`residual_findings[<plan-id>]`**(与 `plans` 平级;canonical 见 `mstar-plan-artifacts` **SKILL.md** 开篇;字段见 `mstar-plan-artifacts/references/status-and-residuals.md`)。跨会话 handoff、关闭与归档流程**以该数组为准**。
|
|
40
58
|
- **推荐操作顺序**(避免 plan 与 JSON 两套 ID 漂移):
|
|
41
|
-
1. `project-manager`
|
|
42
|
-
2. **立即**将上述条目写入根级 **`residual_findings[<plan-id>]`**(含 `source`
|
|
59
|
+
1. `project-manager` 读完 review bundle 并完成「QC 三审轻量汇总」:对 finding **去重合并**,为每条待跟踪项分配**稳定 `id`**(如 `R1`、`R2`,全 plan 内唯一)。
|
|
60
|
+
2. **立即**将上述条目写入根级 **`residual_findings[<plan-id>]`**(含 `source` 指向 reviewer seat + bundle basename + finding id + review range,便于回溯);**勿**与 legacy 侧双写(见 `mstar-plan-conventions` **SKILL.md** 开篇)。
|
|
43
61
|
3. **可选**:在主 plan 中增加 **「Residual findings(索引)」** 小节,**仅复述** `id` + 短标题 + 决策摘要,并写明「**权威列表见** `status.json` 根级 `residual_findings[<plan-id>]`(见 `mstar-plan-conventions` **SKILL.md** 开篇)」。**不要**只在主 plan 里「发明」R# 而不写回 SSOT。
|
|
44
62
|
- **不要**反过来把主 plan 当作唯一登记处:若仅更新 plan、`status.json` 未同步,下一任 agent **无法**依赖 SSOT 继承债务状态。
|
|
45
63
|
|
|
46
64
|
## QC 三审触发时机(单 plan · 多 batch)
|
|
47
65
|
|
|
48
|
-
- **默认(SDD)**:同一 **`plan_id`** 下,**plan QC tri-review**(`qc-specialist` ×3 → `qc1`…`qc3` + consolidated
|
|
66
|
+
- **默认(SDD)**:同一 **`plan_id`** 下,**plan QC tri-review**(`qc-specialist` ×3 → `{SDD_DIR}/review/qc1.md`…`qc3.md` + `qc-consolidated.md`)**仅在** dev team 按该 plan 约定范围全部交付、且 **L2 task reviewers** 均已通过后执行 **一次**。**不要**在每个中间 batch 跑完整三审。
|
|
49
67
|
- **单席例外**:`Execution mode: inline` / hotfix → 交付完成后 **一次** `qc.md`(`QC mode: single`)。
|
|
50
68
|
- **batch 之间**:依赖实现方按 **`mstar-coding-behavior`** 提供完成证据、主 plan 任务勾选与 PM 协调;需要书面中间意见时,用对话、主 plan 批注或**非三审**的定向检查(如单审、架构 review),**不**默认等同「又一轮完整三审」。
|
|
51
|
-
- **After `Request Changes` (default — targeted re-review)**:PM maps each **blocking** finding to the QC seat that raised it (`source` on R#, consolidated table, or the originating `qcN.md` / `F-###`). Dispatch **only** those reviewers (`QC re-review: targeted — reviewers: qc-specialist, qc-specialist-2, …`). Each re-reviewing QC **updates the same** `qc1.md` / `qc2.md` / `qc3.md` in place (add `## Revalidation`, refresh verdict / `generated_at`); **do not** add `qc1-rev2.md` siblings
|
|
52
|
-
- **Full tri re-review (exception)**:Only when Assignment states **`QC re-review: full tri-review`**. Run **three** parallel reviews again; use **new basenames** (`qc1-rev2.md` … `qc3-rev2.md`, `qc-consolidated-rev2.md`) so wave-1 files stay
|
|
53
|
-
- **显式例外**:仅当用户与 PM 书面同意**中间门禁**时,在 Assignment 写清 **`QC gate: incremental — <scope>`**(或等价),并仍须保证该次三审的 **`plan_id` + `Review range` / `Diff basis`**
|
|
69
|
+
- **After `Request Changes` (default — targeted re-review)**:PM maps each **blocking** finding to the QC seat that raised it (`source` on R#, consolidated table, or the originating `qcN.md` / `F-###`). Dispatch **only** those reviewers (`QC re-review: targeted — reviewers: qc-specialist, qc-specialist-2, …`). Each re-reviewing QC **updates the same** bundle file (`qc1.md` / `qc2.md` / `qc3.md`) in place (add `## Revalidation`, refresh verdict / `generated_at`); **do not** add `qc1-rev2.md` siblings for targeted re-review. PM **updates the same** `qc-consolidated.md` and durable plan summary.
|
|
70
|
+
- **Full tri re-review (exception)**:Only when Assignment states **`QC re-review: full tri-review`**. Run **three** parallel reviews again; use **new bundle basenames** (`qc1-rev2.md` … `qc3-rev2.md`, `qc-consolidated-rev2.md`) so wave-1 files stay distinct; PM states **active wave** in consolidated decision and durable plan summary. See `mstar-review-qc` · `mstar-dispatch-gates`.
|
|
71
|
+
- **显式例外**:仅当用户与 PM 书面同意**中间门禁**时,在 Assignment 写清 **`QC gate: incremental — <scope>`**(或等价),并仍须保证该次三审的 **`plan_id` + `Review range` / `Diff basis`** 三份一致;**优先**用 `{SDD_DIR}/review/<scope>/` 子目录,避免与终局 `qc1..3.md` 混名。
|
|
54
72
|
- **同仓多 worktree 并行 dev**:**推荐**在排各 batch / 各轨 worktree 前确立 **plan 集成分支** 与各轨 topic 线及 **merge 靶**(见 `mstar-branch-worktree` **「推荐默认编排:先建 plan 集成分支,再挂各 worktree」**)。**多 `plan_id` 同属一条 `primary_spec`(Spec 文档)时**:该「集成分支」在计划语义上即 **Spec 集成分支**;各 Plan 的 topic 分支 **merge 回 Spec 集成分支**,**全部 Plans 完成后** 向显式 `target_branch` **走 PR**,见 `mstar-plan-conventions` SKILL.md **「Spec 驱动的分支模型」**。终局(或增量)三审派单前,PM 仍须满足 **单一待审 `Working branch` / `HEAD`** 或已按上条 **拆 scope**;**不得**假设「整 plan 一次三审」可只靠某一个开发 worktree 路径覆盖未合并的其他并行轨。
|
|
55
73
|
|
|
56
74
|
### 多 `plan_id` 同时 `InReview`(PM 编排)
|
|
57
75
|
|
|
58
76
|
- **流程**:实现完成 → 该 **`plan_id`** 进入 **`InReview`** → **QC 三审(仅针对该 plan 的 `Review range`)** → PM consolidated → **QA** → **`Done`**。**禁止**在多个 `plan_id` 已 `InReview` 的情况下,只推进新实现、不派 QC,或把多个 plan 的变更**伪装成**一套三审字段(单一 `plan_id` / 单一 diff 范围覆盖多 plan)。
|
|
59
|
-
- **并行 vs 串行**:不同 `plan_id` **相互独立**时,可 **并行**派发多组三审(每组各自的 Assignment 与 `
|
|
77
|
+
- **并行 vs 串行**:不同 `plan_id` **相互独立**时,可 **并行**派发多组三审(每组各自的 Assignment 与 `{SDD_DIR}/review/`);若 PM 选择串行,须在 Status Update 写明顺序——**每组仍须完整三审 + QA**,不是「一个大 QC」混审。
|
|
60
78
|
- **读 skill**:书写或派发 QC 相关 Assignment 前,PM **必须** Read **`mstar-review-qc`**(编排与 residual);leaf `qc-specialist*` → **`mstar-roles/references/qc-specialist/`**。见 `mstar-plan-conventions` SKILL.md **QC pre-dispatch gate**。
|
|
61
79
|
|
|
62
|
-
**QC 落盘与宿主权限**:`qc-specialist` / `qc-specialist-2` / `qc-specialist-3` 在支持路径白名单的宿主上(如 OpenCode 的 **`permission.edit
|
|
80
|
+
**QC 落盘与宿主权限**:`qc-specialist` / `qc-specialist-2` / `qc-specialist-3` 在支持路径白名单的宿主上(如 OpenCode 的 **`permission.edit`**),默认 **仅可** Write/Edit Assignment 指定的 **`{SDD_DIR}/review/`** 下 **`.md`**。全局 agent 提示词应允许 `.mstar/sdd/**`、`.agents/sdd/**` 及 worktree 下对应路径。报告文件**必须**以 YAML **frontmatter** 开头(键见各 QC agent 提示词)。
|
|
63
81
|
|
|
64
|
-
**QC 报告与 Git
|
|
82
|
+
**QC 报告与 Git**:默认 raw QC/QA bundle **不**执行 `git add` / `git commit`。PM must commit durable artifacts instead: main plan gate summaries, `{HARNESS_DIR}/status.json` residual changes, and any tracked specs/knowledge/iteration updates. If a project explicitly opts into tracked audit reports, state `Review archive mode: tracked reports` in Assignment and use project-specific allow rules.
|
|
65
83
|
|
|
66
84
|
## 主 plan 内任务清单(Markdown checkbox)
|
|
67
85
|
|
|
68
86
|
- **谁应更新**:`fullstack-dev` / `frontend-dev` / `fullstack-dev-2`、`qa-engineer`、`ops-engineer`、`architect`、`product-manager` 在**完成本人 Assignment 范围内的工作后**,须在主 plan(`<plan-id>-<plan-name>.md`)中把**对应条目**的 Markdown 任务标记为已完成(常见:`- [ ]` → `- [x]`;若项目用其它清单记号,保持同文件内一致)。与 Completion Report **并列**,作为跨会话可核对的**落盘痕迹**。
|
|
69
87
|
- **范围**:**只勾选与当前任务直接对应、且已由本角色交付证据支撑的条目**;不得代为勾选他人负责或未完工项。若正文用分段、Owner 或角色标签区分任务,以 Assignment 与文内约定为准。
|
|
70
88
|
- **与 `status.json` / frontmatter 的关系**:勾选任务**不**等于整条计划收口。`plans[].status` 及主 plan frontmatter 的 **`Done`** 仍**仅** `project-manager` / `qa-engineer`(见「状态更新权限」)。`architect` / `product-manager` **不得**擅自将整条计划标为 `Done`;是否将 `status.json` 推进为 `InReview` 等仍按下文「状态更新权限」与 Assignment。
|
|
71
|
-
- **`qc-specialist*`**:**不得**修改主 plan(宿主仅允许 `{
|
|
89
|
+
- **`qc-specialist*`**:**不得**修改主 plan(宿主仅允许 Assignment 指定的 review bundle `.md`);审查结论落在 `{SDD_DIR}/review/` 内。若主 plan 需新增或勾选与审查相关的条目,由 `project-manager` 或 Assignment 明确授权的角色据报告回写。
|
|
72
90
|
- **只读角色**:不直接改主 plan;将建议交给 `project-manager` 代为更新清单。
|
|
73
91
|
|
|
74
92
|
Plan 正文与 `status.json` 必须保持一致;不一致时以 `status.json` 的条目状态为准并尽快纠正正文或登记 notes。
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
Canonical vs legacy residual definitions → **`mstar-plan-artifacts` SKILL.md** (“`status.json` and open residual (summary)”); this file covers **fields, severity, lifecycle, archive, and `jq` examples**.
|
|
7
7
|
**Closed** residuals should not accumulate here long-term; authoritative archive → **`{HARNESS_DIR}/archived/residuals/<plan-id>.json`** (see “Residual findings lifecycle”).
|
|
8
8
|
|
|
9
|
-
**Why this matters:** The open list and `archived/residuals/` are the **cross-session handoff surface** for risk and decisions. Non-blocking conclusions that stay only in chat or a
|
|
9
|
+
**Why this matters:** The open list and `archived/residuals/` are the **cross-session handoff surface** for risk and decisions. Non-blocking conclusions that stay only in chat or a gitignored review bundle **without SSOT** cannot be inherited reliably; `Done` drifts from visible known debt. **`@project-manager`** should register trackable open items soon after review closure; close/archive after verification per **`QA gate`** (`qa-engineer` when `mandatory`, else PM acceptance checklist).
|
|
10
10
|
|
|
11
11
|
## Basic structure
|
|
12
12
|
|
|
@@ -37,7 +37,7 @@ Canonical vs legacy residual definitions → **`mstar-plan-artifacts` SKILL.md**
|
|
|
37
37
|
"id": "R1",
|
|
38
38
|
"title": "Finding title",
|
|
39
39
|
"severity": "critical | high | medium | low | nit",
|
|
40
|
-
"source": "QC-#1
|
|
40
|
+
"source": "QC-#1 qc1.md F-001 @ <review-range>, QA qa.md, review, …",
|
|
41
41
|
"scope": "Affected file or component",
|
|
42
42
|
"decision": "defer | accept | risk-accepted",
|
|
43
43
|
"owner": "@fullstack-dev",
|
|
@@ -124,9 +124,10 @@ In old JSON, **`"severity": "warning"`** is read and rolled up as **`low`**. **F
|
|
|
124
124
|
| `primary_spec` | string | Main spec path (`{KNOWLEDGE_DIR}/…`, `{SPECS_DIR}/…`) |
|
|
125
125
|
| `iteration_compass` | string | Optional `{ITERATION_DIR}/…` |
|
|
126
126
|
| `iteration_refs` | string[] | Optional multiple compass paths |
|
|
127
|
-
| `qc_status` / `tests` / `commits` | string | InReview/Done snapshots; not a substitute for `
|
|
127
|
+
| `qc_status` / `tests` / `commits` | string | InReview/Done snapshots; not a substitute for durable plan gate summaries or root `residual_findings` |
|
|
128
128
|
| `sdd_dir` | string | SDD scratch path, e.g. `{HARNESS_DIR}/sdd/<plan-id>/` (gitignored; `mstar-sdd`) |
|
|
129
129
|
| `sdd_progress` | string | Optional pointer to `{SDD_DIR}/progress.md` ledger |
|
|
130
|
+
| `review_bundle` | string | Optional pointer to `{SDD_DIR}/review/` for current ephemeral QC/QA evidence |
|
|
130
131
|
| `task_commits` | array\<object\> | SDD recovery: `{ "task_id": "T1", "base": "<sha>", "head": "<sha>" }` per completed task |
|
|
131
132
|
|
|
132
133
|
### Optional delivery ledger (`phase` + `batches` + `verification`)
|
|
@@ -141,7 +142,7 @@ For multi-batch or multi-role plans:
|
|
|
141
142
|
|
|
142
143
|
Recommended `batches[]` subfields: `index`, `covers`, `status`, `owner`, `commits`, `a2_self_audit` (or synonym), `verification`.
|
|
143
144
|
|
|
144
|
-
> `batches` / `verification` are evidence indexes — not replacements for
|
|
145
|
+
> `batches` / `verification` are evidence indexes — not replacements for durable plan gate summaries or root `residual_findings`.
|
|
145
146
|
|
|
146
147
|
### `plans[].notes` vs `{HARNESS_DIR}/notes.json`
|
|
147
148
|
|
|
@@ -184,7 +185,7 @@ Plan row (per active iteration plan):
|
|
|
184
185
|
|
|
185
186
|
- Each `plans[]` row may include optional **`metadata`** (`{}` or omit).
|
|
186
187
|
- Init with `"residual_findings": {}`; **no dual-write** with legacy side (see SKILL.md). Program timeline → **`notes.json`**, not long `metadata.notes` in `status.json`.
|
|
187
|
-
- **`plans[].id`** keys must align with root **`residual_findings`** keys
|
|
188
|
+
- **`plans[].id`** keys must align with root **`residual_findings`** keys and `{SDD_DIR}` plan-id segments. Do not store `residual_findings_plan_id`.
|
|
188
189
|
- **Empty `plan-id` key:** when no open items remain, **delete** the key from root **`residual_findings`** (and legacy side if present) — no `"plan-id": []`. Whether **`plans[]`** keeps the row is separate (`done-compaction.md`).
|
|
189
190
|
- **`residual_summary` (optional):** one-line human summary of **open** items only.
|
|
190
191
|
|
|
@@ -245,7 +246,7 @@ Archive file shape (append to `entries`):
|
|
|
245
246
|
```
|
|
246
247
|
|
|
247
248
|
- Each archived entry needs **`archived_at`** (`YYYY-MM-DD`).
|
|
248
|
-
- Closed records live in archive +
|
|
249
|
+
- Closed records live in archive + durable plan summaries; raw review bundles are ephemeral and not part of the long-term open list.
|
|
249
250
|
- After batch archive/close, **refresh `tech_debt_summary`** (script below).
|
|
250
251
|
|
|
251
252
|
### Short in-place close (transition only)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: mstar-plan-conventions
|
|
3
|
-
description: Morning Star (启明星) harness 计划目录约定 —— `{HARNESS_DIR}` / `{PLAN_DIR}` / `{ITERATION_DIR}` / `{KNOWLEDGE_DIR}` / `{SPECS_DIR}` 发现与初始化(默认 `.mstar/`,兼容 `.agents/`)、`docs
|
|
3
|
+
description: Morning Star (启明星) harness 计划目录约定 —— `{HARNESS_DIR}` / `{PLAN_DIR}` / `{SDD_DIR}` / `{ITERATION_DIR}` / `{KNOWLEDGE_DIR}` / `{SPECS_DIR}` 发现与初始化(默认 `.mstar/`,兼容 `.agents/`)、`docs` 与 harness 子树边界、review bundle、未启用 plan 时的工作方式、Spec 集成分支与多 Plan 实现分支(显式 base / merge 靶 / PR target)、Morning Star plan-writing path gate、工期预估(agent-oriented)。**必须**在读写 `.mstar/` / `.agents/`、初始化 harness、编排含 plan 的任务、或对齐 `metadata.primary_spec` 时 Read;`@project-manager` 开 plan 任务前必读。plan 文件 / status / residual / review bundle / knowledge → **`mstar-plan-artifacts`**;分支与 QC 检出 → **`mstar-branch-worktree`**。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## Load order(必读顺序)
|
|
@@ -9,7 +9,7 @@ description: Morning Star (启明星) harness 计划目录约定 —— `{HARNES
|
|
|
9
9
|
|
|
10
10
|
| 你还可能要 Read | 何时 |
|
|
11
11
|
|-----------------|------|
|
|
12
|
-
| `mstar-plan-artifacts` | 主 plan、
|
|
12
|
+
| `mstar-plan-artifacts` | 主 plan、review bundle 摘要、`status.json`、residual、InReview/QC 波次、knowledge |
|
|
13
13
|
| `mstar-branch-worktree` | Assignment 写分支 / worktree / QC 检出 |
|
|
14
14
|
| `mstar-review-qc` | 派 QC(PM 同轮必读;SDD 强制 tri) |
|
|
15
15
|
| `mstar-sdd` | PM 执行 `Execution mode: sdd` 的 implement 波次 |
|
|
@@ -20,7 +20,7 @@ description: Morning Star (启明星) harness 计划目录约定 —— `{HARNES
|
|
|
20
20
|
|------|------|
|
|
21
21
|
| `{HARNESS_DIR}` | `.mstar/` |
|
|
22
22
|
| `{PLAN_DIR}` | `{HARNESS_DIR}/plans/` |
|
|
23
|
-
| `{SDD_DIR}` | `{HARNESS_DIR}/sdd/<plan-id>/`(SDD 运行时 scratch;
|
|
23
|
+
| `{SDD_DIR}` | `{HARNESS_DIR}/sdd/<plan-id>/`(SDD 运行时 scratch + review bundle;gitignored) |
|
|
24
24
|
| `{ITERATION_DIR}` | `{HARNESS_DIR}/iterations/` |
|
|
25
25
|
| `{KNOWLEDGE_DIR}` | `{HARNESS_DIR}/knowledge/` |
|
|
26
26
|
| `{SPECS_DIR}` | `specs/` 优先,否则 `designs/` |
|
|
@@ -44,16 +44,16 @@ description: Morning Star (启明星) harness 计划目录约定 —— `{HARNES
|
|
|
44
44
|
| `{SPECS_DIR}` | 冻结规格 / ADR |
|
|
45
45
|
| `{ITERATION_DIR}` | 迭代 compass 快照 |
|
|
46
46
|
| `{KNOWLEDGE_DIR}` | 实现 SSOT、可复用设计 |
|
|
47
|
-
| `{PLAN_DIR}/` | 主 plan
|
|
47
|
+
| `{PLAN_DIR}/` | 主 plan、durable gate summaries、可选 residual prose |
|
|
48
48
|
|
|
49
|
-
单 plan
|
|
49
|
+
单 plan 的 QC/QA **原始过程报告**默认进入 **`{SDD_DIR}/review/`**(gitignored review bundle),非 `docs/`,也不默认进入 `{PLAN_DIR}`。主 plan 仅保留 durable gate summary;R# open 状态以 `{HARNESS_DIR}/status.json` 为 SSOT。细则 → **`mstar-plan-artifacts`**。
|
|
50
50
|
|
|
51
51
|
## 初始化 Plan 目录
|
|
52
52
|
|
|
53
53
|
PM 在需要持久化追踪时:
|
|
54
54
|
|
|
55
55
|
1. 建 `.mstar/`、`plans/`、`status.json`(空模板见 **`mstar-plan-artifacts/templates/status.empty.json`**)
|
|
56
|
-
2. 可选 `notes.json`(模板 **`mstar-plan-artifacts/templates/notes.empty.json`**)、`
|
|
56
|
+
2. 可选 `notes.json`(模板 **`mstar-plan-artifacts/templates/notes.empty.json`**)、`knowledge/`、`iterations/`、`specs/`、`sdd/`(空目录占位;运行时 per-plan 子目录由 `mstar-sdd/scripts/sdd-workspace` 创建)
|
|
57
57
|
3. 项目根 `.gitignore` 追加 `.mstar/sdd/`(或 `.agents/sdd/` legacy)— CLI `init` 可自动添加
|
|
58
58
|
4. Git:团队交付 **勿** ignore 整个 `{HARNESS_DIR}`(handoff 需 clone 可达)
|
|
59
59
|
|
|
@@ -92,4 +92,4 @@ Plans are written to **`{PLAN_DIR}`** when persistent plan tracking is enabled.
|
|
|
92
92
|
- `references/effort-estimation.md` — agent-oriented 工期(禁人天/FTE)
|
|
93
93
|
- `references/artifact-storage-paths.md` — **产物存储路径 SSOT**(知识文档、CONCEPTS.md、STRATEGY.md 等落盘位置;`mstar-compound`、`mstar-compound-refresh`、`mstar-strategy` 等技能引用此表,不得本地重定义)
|
|
94
94
|
|
|
95
|
-
**Plan 工件细则**(主 plan、
|
|
95
|
+
**Plan 工件细则**(主 plan、review bundle / durable summaries、`status.json`、residual、knowledge、Done 归档、**`templates/`**)→ skill **`mstar-plan-artifacts`**(`references/` 与 `templates/`)。
|