@mstar-harness/opencode 2.4.1 → 3.1.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 +38 -0
- package/README.md +1 -1
- package/dist/mstar.js +4563 -227
- package/harness-agents/code-reviewer.md +0 -8
- package/harness-skills/mstar-branch-worktree/SKILL.md +14 -14
- package/harness-skills/mstar-branch-worktree/references/parallel-writable-pre-dispatch.md +2 -2
- package/harness-skills/mstar-compound/SKILL.md +2 -2
- package/harness-skills/mstar-compound/references/compound-workflow.md +3 -3
- package/harness-skills/mstar-compound-refresh/SKILL.md +4 -4
- package/harness-skills/mstar-compound-refresh/references/project-knowledge-bootstrap.md +1 -1
- package/harness-skills/mstar-dispatch-gates/SKILL.md +2 -2
- package/harness-skills/mstar-engine-legacy/SKILL.md +53 -0
- package/harness-skills/mstar-engine-legacy/references/anti-recursion-checklists.md +58 -0
- package/harness-skills/mstar-engine-legacy/references/engine-check-boilerplate.md +26 -0
- package/harness-skills/mstar-engine-legacy/references/lease-protocol.md +92 -0
- package/harness-skills/mstar-engine-legacy/references/qc-seat-n-restatements.md +57 -0
- package/harness-skills/mstar-engine-legacy/references/status-field-history.md +186 -0
- package/harness-skills/mstar-harness-core/SKILL.md +6 -3
- package/harness-skills/mstar-host/references/_shared/plan-mode-bridge-core.md +8 -8
- package/harness-skills/mstar-host/references/codex.md +1 -1
- package/harness-skills/mstar-host/references/cursor-plan-mode-bridge.md +19 -8
- package/harness-skills/mstar-host/references/cursor.md +5 -5
- package/harness-skills/mstar-host/references/dsh.md +10 -7
- package/harness-skills/mstar-host/references/kimi-plan-mode-bridge.md +3 -3
- package/harness-skills/mstar-host/references/kimi.md +1 -1
- package/harness-skills/mstar-host/references/omp-plan-mode-bridge.md +2 -2
- package/harness-skills/mstar-host/references/omp.md +2 -2
- package/harness-skills/mstar-host/references/zcode-plan-mode-bridge.md +3 -3
- package/harness-skills/mstar-host/references/zcode.md +1 -1
- package/harness-skills/mstar-iteration/SKILL.md +38 -37
- package/harness-skills/mstar-iteration/references/autonomous-direction-lock.md +2 -2
- package/harness-skills/mstar-iteration/references/iteration-compass-template.md +3 -3
- package/harness-skills/mstar-iteration/references/phase-2-worktree-lease.md +50 -38
- package/harness-skills/mstar-iteration/references/phase-3-iteration-close.md +7 -7
- package/harness-skills/mstar-iteration/references/phase-4-5-pr-delivery.md +2 -2
- package/harness-skills/mstar-phase-gates/SKILL.md +3 -3
- package/harness-skills/mstar-plan-artifacts/SKILL.md +21 -23
- package/harness-skills/mstar-plan-artifacts/references/knowledge-and-designs.md +16 -6
- package/harness-skills/mstar-plan-artifacts/references/plan-files-and-reports.md +10 -10
- package/harness-skills/mstar-plan-artifacts/references/status-and-residuals.md +190 -309
- package/harness-skills/mstar-plan-artifacts/templates/README.md +1 -3
- package/harness-skills/mstar-plan-artifacts/templates/status.empty.json +2 -4
- package/harness-skills/mstar-plan-conventions/SKILL.md +53 -13
- package/harness-skills/mstar-plan-conventions/references/artifact-storage-paths.md +7 -3
- package/harness-skills/mstar-plan-conventions/references/harness-bootstrap-and-agents-layering.md +9 -10
- package/harness-skills/mstar-project-governance/SKILL.md +119 -0
- package/harness-skills/mstar-review-qc/SKILL.md +3 -3
- package/harness-skills/mstar-roles/references/project-manager/dispatch-and-assignment.md +1 -1
- package/harness-skills/mstar-roles/references/project-manager/plan-management.md +6 -8
- package/harness-skills/mstar-roles/references/project-manager/qc-and-residuals.md +6 -6
- package/harness-skills/mstar-roles/references/project-manager.md +7 -7
- package/harness-skills/mstar-roles/references/qc-specialist/deep-review-lenses.md +1 -1
- 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 +2 -2
- package/harness-skills/mstar-sdd/SKILL.md +2 -2
- package/harness-skills/mstar-sdd/references/file-handoffs.md +1 -1
- package/package.json +1 -1
- package/harness-skills/mstar-plan-artifacts/references/done-compaction.md +0 -88
- package/harness-skills/mstar-plan-artifacts/templates/notes.empty.json +0 -5
- package/harness-skills/mstar-plan-artifacts/templates/plans-done.empty.json +0 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: mstar-plan-artifacts
|
|
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,
|
|
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, plus `{HARNESS_DIR}/status.json` (v2 root register) / `{WORKFLOW_DIR}/<id>/snapshot.json` (plan rows + leases) and `{PROJECT_DIR}/<id>/residuals.json` (residual register; severity SSOT, open/close lifecycle). Read when writing plans or QC/QA review bundles, maintaining knowledge/iteration indexes, reading or writing status/snapshot/register, 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`."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## Load order
|
|
@@ -14,55 +14,53 @@ description: "Morning Star plan harness artifacts — `{PLAN_DIR}` main plans an
|
|
|
14
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
|
-
|
|
|
18
|
-
| `status.json
|
|
19
|
-
| 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`) |
|
|
17
|
+
| `status.json` (v2 root), workflow snapshots, project register, residual severity / lifecycle, engine-check queries | `references/status-and-residuals.md` |
|
|
18
|
+
| Empty-repo `status.json` template | `templates/status.empty.json` (`templates/README.md`) |
|
|
20
19
|
| Tech-debt rollup (read-only) | `mstar status tech-debt [path]` (engine `techDebtRollup`; see `references/status-and-residuals.md`) |
|
|
21
20
|
|
|
22
21
|
**Out of scope:** branch and QC/QA checkout alignment → **`mstar-branch-worktree`**; leaf QC checklist and verdict → **`mstar-roles/references/qc-specialist/`**; PM QC orchestration → **`mstar-review-qc`**; `{HARNESS_DIR}` discovery and init → **`mstar-plan-conventions`**.
|
|
23
22
|
|
|
24
|
-
## `status.json
|
|
23
|
+
## `status.json`, workflow snapshots, and open residual (summary)
|
|
25
24
|
|
|
26
|
-
- **`{HARNESS_DIR}/status.json
|
|
27
|
-
-
|
|
25
|
+
- **`{HARNESS_DIR}/status.json` (v2)**: active-lifecycle register — `{ version: 2, updated_at, workflows[] }`. Each entry points at its snapshot dir (`dir: workflows/<id>`); terminal lifecycles are unregistered after the snapshot write.
|
|
26
|
+
- **`{WORKFLOW_DIR}/<id>/snapshot.json`**: per-lifecycle running state — `plans[]` rows (legacy PlanRow shape verbatim) + per-row `execution_lease` + top-level `integration_merge_lease` / `execution_policy` / `branch` anchors / `control_worktree_path`.
|
|
27
|
+
- **`{PROJECT_DIR}/<id>/residuals.json`**: open residual register, `entries[<plan-id>]` arrays — the **open-list SSOT** (severity enum + lifecycle semantics verbatim; project-less flows use `_default`).
|
|
28
|
+
- **Canonical**: register new findings only in the project register (`projects/<id>/residuals.json`); v1 root `residual_findings` is legacy read-only — migrate via `mstar migrate`, do not dual-write.
|
|
28
29
|
|
|
29
30
|
> **Engine check (when available):** run `mstar status validate <path>` (or `import { validateStatus } from "@mstar-harness/engine"` in a host hook). On `fail` -> do not proceed; fix and re-run. Skill text below remains authoritative when the runtime is absent.
|
|
30
31
|
|
|
31
|
-
- **Fail-loud handoff**: findings must pass `validateResidual` (per entry) / `
|
|
32
|
-
- **Lifecycle**: open → verified close
|
|
32
|
+
- **Fail-loud handoff**: findings must pass `validateResidual` (per entry) / `validateProjectRegister` (register) before registration; snapshots and the v2 root pass `validateWorkflowSnapshot` / `validateStatus` (`mstar status validate`); malformed → reject + rewrite → **`references/status-and-residuals.md`** (“Fail-loud handoff contract”).
|
|
33
|
+
- **Lifecycle**: open → verified close **in place** in the register (`lifecycle` / `closed_at` / `closure_note`); machine **`severity`** enum in reference. v1 `archived/residuals/` + `archive-residuals` are retired.
|
|
33
34
|
|
|
34
|
-
|
|
35
|
+
- **Findings cleanup**: Assignment **`Findings cleanup: zero-residual | allow-residual`** (the `metadata.findings_cleanup` mirror is deleted); iteration Phase 2 defaults to **`zero-residual`** → **`references/status-and-residuals.md`** (“Findings cleanup modes”).
|
|
35
36
|
|
|
36
|
-
|
|
37
|
+
> **Engine check (when available):** run `mstar status findings-cleanup <plan-id> [--project <id>] [--mode zero-residual|allow-residual]` (or import `findingsCleanupGate` from `@mstar-harness/engine` in a host hook) to enforce the Findings cleanup mode above against the plan's register entries. On `fail` -> do not proceed; fix and re-run. Skill text below remains authoritative when the runtime is absent.
|
|
37
38
|
|
|
38
|
-
|
|
39
|
+
- **`{WORKFLOW_DIR}/<id>/notes.jsonl`**: per-workflow append-only notes ledger (runtime); snapshot plan-row `notes` is the legacy verbatim copy. **Tech-debt rollup**: `mstar status tech-debt <project-dir>` over the project registers — **`references/status-and-residuals.md`**.
|
|
40
|
+
- **Iteration Phase 2 leases** (snapshot: `control_worktree_path`, `plans[].execution_lease`, top-level `integration_merge_lease`): field semantics → **`references/status-and-residuals.md`** (“Iteration execution leases”); Phase 2 execution checklist → **`mstar-iteration`** `references/phase-2-worktree-lease.md`; full protocol prose (single copy) → **`mstar-engine-legacy`** `references/lease-protocol.md`.
|
|
39
41
|
|
|
40
|
-
-
|
|
41
|
-
- **Iteration Phase 2 leases** (`metadata.control_worktree_path`, `plans[].execution_lease`, `metadata.integration_merge_lease`): claim-before-`InProgress`, resume vs steal, orphan recovery → **`references/status-and-residuals.md`** (“Iteration execution leases”).
|
|
42
|
-
|
|
43
|
-
> **Engine check (when available):** run `mstar lease verify <plan-id>` or `mstar lease verify-integration` (or import `validateExecutionLease` / `validateIntegrationMergeLease` from `@mstar-harness/engine` in a host hook) to validate the iteration leases above (execution_lease / integration_merge_lease). On `fail` -> do not proceed; fix and re-run. Skill text below remains authoritative when the runtime is absent.
|
|
42
|
+
> **Engine check (when available):** run `mstar lease verify --workflow <id> [--plan <plan-id>]` or `mstar lease verify-integration --workflow <id>` (or import `validateExecutionLease` / `validateIntegrationMergeLease` from `@mstar-harness/engine` in a host hook) to validate the iteration leases above on the workflow snapshot (execution_lease / integration_merge_lease). On `fail` -> do not proceed; fix and re-run. Skill text below remains authoritative when the runtime is absent.
|
|
44
43
|
|
|
45
44
|
Field semantics, severity mapping, findings cleanup modes, archive flow, and `jq` examples → **`references/status-and-residuals.md`**.
|
|
46
45
|
|
|
47
|
-
**Templates (this skill):** `templates/status.empty.json`, `
|
|
46
|
+
**Templates (this skill):** `templates/status.empty.json` — the **v2 shape** (`version: 2`, `updated_at`, `workflows: []`); copy into `{HARNESS_DIR}/` (`templates/README.md`).
|
|
48
47
|
|
|
49
48
|
## Workflow
|
|
50
49
|
|
|
51
|
-
产物生命周期主链:主 plan 落盘 `{PLAN_DIR}`(命名见 `references/plan-files-and-reports.md`)→ 实现推进时更新
|
|
50
|
+
产物生命周期主链:主 plan 落盘 `{PLAN_DIR}`(命名见 `references/plan-files-and-reports.md`)→ 实现推进时更新 workflow snapshot(`workflows/<id>/snapshot.json` 的 `plans[]` 行 + 根 `status.json` `workflows[]` 登记)→ 审查波次产出 `{SDD_DIR}/review/` bundle(raw QC/QA reports)+ durable gate summary 回写主 plan / snapshot → 关闭后 residual **in place** close in the project register(`projects/<id>/residuals.json`)。索引(`{KNOWLEDGE_DIR}` / `{ITERATION_DIR}` / `{PLAN_DIR}`)随产物更新。
|
|
52
51
|
|
|
53
52
|
## Decision Rules
|
|
54
53
|
|
|
55
|
-
- residual **severity** 是机器字段 SSOT(`references/status-and-residuals.md`);每条新 finding 只登记
|
|
54
|
+
- residual **severity** 是机器字段 SSOT(`references/status-and-residuals.md`);每条新 finding 只登记 project register(`projects/<id>/residuals.json` → `entries[<plan-id>]`),v1 根级 `residual_findings` 仅 legacy 只读,**禁止**双写。
|
|
56
55
|
- **`Findings cleanup: zero-residual`** 默认(迭代 Phase 2):可修 findings 当轮 fix → re-review 清干净;仅真 blocker 可 defer 且须 Durable Roadmap。
|
|
57
|
-
- 登记前必须过 `validateResidual` / `validateStatus`(fail-loud handoff);malformed → reject + rewrite。
|
|
56
|
+
- 登记前必须过 `validateResidual` / `validateProjectRegister` / `validateStatus`(fail-loud handoff);malformed → reject + rewrite。
|
|
58
57
|
|
|
59
58
|
## Evidence
|
|
60
59
|
|
|
61
|
-
正确结果 = 可复核产物链:`{SDD_DIR}/review/` 审查 bundle 落盘 + 主 plan /
|
|
60
|
+
正确结果 = 可复核产物链:`{SDD_DIR}/review/` 审查 bundle 落盘 + 主 plan / workflow snapshot 的 durable gate summary + residual 生命周期(open → verified close **in place** in the register)。拒绝「仅对话声称」。
|
|
62
61
|
|
|
63
62
|
## References
|
|
64
63
|
|
|
65
64
|
- `references/plan-files-and-reports.md` — 主 plan / review bundle 命名、QC 波次、durable summaries
|
|
66
|
-
- `references/status-and-residuals.md` — `status.json
|
|
67
|
-
- `references/done-compaction.md` — Done 行 compaction Profile A/B
|
|
65
|
+
- `references/status-and-residuals.md` — `status.json` (v2), workflow snapshots, project register, residual severity / lifecycle / engine-check queries
|
|
68
66
|
- `references/knowledge-and-designs.md` — knowledge / iterations / specs 边界与索引
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
| **`{SPECS_DIR}`**(可选) | 冻结 v1-spec、ADR、program roadmap — **跨迭代长期权威** | 产品/API 规范性最高权威;**iteration-start** 由 product/architect 主写 |
|
|
16
16
|
| **`{ITERATION_DIR}`**(可选) | **`<iteration-id>/` package**(`delivery-compass.md` + `guides/`、`specs/`) | Agent handoff;迭代级草稿;close 时 compound **提升** → knowledge |
|
|
17
17
|
| **`{KNOWLEDGE_DIR}`**(可选) | 实现细节 SSOT、架构细则、契约说明、跨版本 tracker — **经 `mstar-compound` 结晶** | Agent handoff;**不**在 iteration-start 由 product/architect 新增 |
|
|
18
|
+
| **`{PROJECT_DIR}/<id>/references/`**(可选) | 主题化研究:surveys、epic roadmaps、第三方 notes — **与项目绑定**,非跨迭代 corpora | 项目所有者 / operator;engine 只列文件名,**无 markdown schema** |
|
|
18
19
|
| **`{PLAN_DIR}/`** | 单 plan 主文件、durable gate summary、可选 `residuals/` | 计划执行与长期决策留档 |
|
|
19
20
|
|
|
20
21
|
|
|
@@ -43,6 +44,14 @@
|
|
|
43
44
|
- 可选:目录级 `**{KNOWLEDGE_DIR}/AGENTS.md**` 承载命名、维护节奏、与 `{SPECS_DIR}` 的权威边界(Nexus 模式);harness 宽规则仍以 `mstar-plan-conventions` 与本 reference 为准。
|
|
44
45
|
- 初始化启用知识库时:创建空表头的 `README.md`,随文档递增行。
|
|
45
46
|
|
|
47
|
+
## `{PROJECT_DIR}/<id>/references/`(可选·主题化研究语料)
|
|
48
|
+
|
|
49
|
+
- **物理路径**:`**{PROJECT_DIR}/<id>/references/**`(默认 `{HARNESS_DIR}/projects/<id>/references/`;`.mstarc` `project_dir` 声明时用声明值)。
|
|
50
|
+
- **放什么**:**主题化研究** — surveys、epic roadmaps、第三方 notes,与拥有它的项目(`<id>`)绑定(compass ruling 1)。项目缺失用 `_default`(`{PROJECT_DIR}/_default/references/`)。
|
|
51
|
+
- **不放什么**:冻结规格 / ADR(→ `{SPECS_DIR}/`);compound 结晶的实现 SSOT(→ `{KNOWLEDGE_DIR}/`);迭代内 ranking notes 与草稿 spec(→ `{ITERATION_DIR}/<id>/guides|specs/`)。研究**不**迁入这三处 corpora,三处内容也**不**迁入 `references/`。
|
|
52
|
+
- **engine 职责边界**:`listProjectReferenceFiles(projectDir)` 只返回**文件名**(相对路径、`/` 分隔、code-unit 排序;跳过根级 `roadmap.md` / `residuals.json`;缺失目录 → `[]`);**不**读文件正文,**不**做 markdown schema 校验 — 归属语义是本 reference(技能散文)契约,不是 engine 校验。
|
|
53
|
+
- **历史 dump**:harness 根 `.mstar/references/` 已退役(dogfood 后缺省或仅一行 redirect);当前路径由 `mstar-project-governance` Scope 表与 `mstar-plan-conventions` `references/artifact-storage-paths.md` 命名。
|
|
54
|
+
|
|
46
55
|
## 文件命名
|
|
47
56
|
|
|
48
57
|
- 推荐:`<topic>-<qualifier>-v<N>.md`(例:`sync-contract-gap-analysis-v1.md`),便于同主题多版共存。
|
|
@@ -64,23 +73,24 @@
|
|
|
64
73
|
3. **修订**:评审或规格变更若改动了 knowledge 文件,同步更新 README 中 **Status** 或 Description;版本迭代优先新文件名 `v<N+1>` 或保留旧版并标明 Superseded。
|
|
65
74
|
4. **归档**:
|
|
66
75
|
- **iteration-start(强制)**:`writing-specialist` §1.6 以 **`{SPECS_DIR}/` 全库卫生为主**;对**既有** `{KNOWLEDGE_DIR}/` 仅归档/错放纠正,**不**新增 knowledge。细则 → **`mstar-iteration/references/iteration-corpus-hygiene.md`**。
|
|
67
|
-
- **其它时机**:当文档内容已完全反映到已合并代码中、且非 iteration-start 扫库时:可将索引 **Status** 标为 `Superseded by implementation (...)` 或 `Archived`;可保留原位或迁入 `archived/knowledge
|
|
76
|
+
- **其它时机**:当文档内容已完全反映到已合并代码中、且非 iteration-start 扫库时:可将索引 **Status** 标为 `Superseded by implementation (...)` 或 `Archived`;可保留原位或迁入 `archived/knowledge/`。
|
|
68
77
|
5. **结晶(Compound)**:PM 在 **iteration-close** 触发 **`mstar-compound`**:plan 素材 + **`{ITERATION_DIR}/<iteration-id>/` package 提升** → `{KNOWLEDGE_DIR}/`。不在 per-plan Done 后单独执行。维护 → **`mstar-compound-refresh`**。
|
|
69
78
|
|
|
70
79
|
## 与 review bundle、`{PLAN_DIR}/residuals/` 的区分
|
|
71
80
|
|
|
72
81
|
- `**{SDD_DIR}/review/`**:偏 **审查流程临时证据**(review package、QC1/2/3、consolidated、QA),gitignored,可在 Done 后丢失。
|
|
73
82
|
- `**主 plan gate summary**`:偏 **长期门禁决策摘要**(verdict、review range、R#、QA gate),随主 plan 追踪。
|
|
74
|
-
- `**{PLAN_DIR}/residuals/<plan-id>/`**:偏 **仍 open 的 R#
|
|
83
|
+
- `**{PLAN_DIR}/residuals/<plan-id>/`**:偏 **仍 open 的 R# 长文补充**(与 project register `entries[<plan-id>]` 配套,canonical 见 `mstar-plan-conventions` **SKILL.md** 开篇);见下文「open residual 散文详情」。
|
|
75
84
|
- `**{KNOWLEDGE_DIR}/**`:偏 **可复用的实现向设计上下文**(架构细则、决策、分析),可被后续 plan 或多会话反复引用。
|
|
76
85
|
- `**{ITERATION_DIR}/**`:偏 **某一迭代/版本** 的 package(compass + guides/specs),通常按版本索引而非按单 plan 长期复用。
|
|
86
|
+
- `**{PROJECT_DIR}/<id>/references/**`:偏 **主题化研究**(surveys、epic 备注、第三方 notes),随项目绑定;与 specs / knowledge / iteration guides 职责不混写。
|
|
77
87
|
- review bundle、gate summary、residuals、knowledge、iterations 可互链,但职责不混写。
|
|
78
88
|
|
|
79
89
|
---
|
|
80
90
|
|
|
81
91
|
## `{PLAN_DIR}/residuals/<plan-id>/`(可选·open residual 散文详情)
|
|
82
92
|
|
|
83
|
-
当某条 open residual 需要**多于**
|
|
93
|
+
当某条 open residual 需要**多于** register(`projects/<id>/residuals.json` → `entries[<plan-id>]`)里结构化字段所能承载的叙述时,可在本目录增加 **Markdown 散文**,作为 **SSOT 的补充**(**不替代** JSON;**权威仍以 register 中的 open 条目为准**)。
|
|
84
94
|
|
|
85
95
|
|
|
86
96
|
| 与相邻目录的分工 | 典型内容 |
|
|
@@ -91,10 +101,10 @@
|
|
|
91
101
|
| `**{ITERATION_DIR}/**` | 迭代 package(`<id>/delivery-compass.md` 等);**不**替代 `{KNOWLEDGE_DIR}` 中的跨版本 SSOT |
|
|
92
102
|
|
|
93
103
|
|
|
94
|
-
**文件命名(推荐)**:`<finding-id>-<short-label>.md`,其中 `**finding-id`** 与该条在
|
|
104
|
+
**文件命名(推荐)**:`<finding-id>-<short-label>.md`,其中 `**finding-id`** 与该条在 register(`projects/<id>/residuals.json` → `entries[<plan-id>]`,见 `mstar-plan-conventions` **SKILL.md** 开篇)中的 `**id`**(如 `R1`)或团队约定的 `**td-*` 等技术债编号**一致,便于 `detail_doc` 与目录互查。
|
|
95
105
|
|
|
96
|
-
**登记**:在对应 open 条目中填写可选 `**detail_doc`**(仓库内相对路径,常形如 `**{PLAN_DIR}/residuals/<plan-id>/R1-….md**`)。**禁止**只写散文、不在
|
|
106
|
+
**登记**:在对应 open 条目中填写可选 `**detail_doc`**(仓库内相对路径,常形如 `**{PLAN_DIR}/residuals/<plan-id>/R1-….md**`)。**禁止**只写散文、不在 register 中登记 open 行。
|
|
97
107
|
|
|
98
108
|
**维护**:`**@project-manager`**(或与 Assignment 一致的可写角色);`**@qc-specialist***` 宿主白名单通常**不含**本目录——审查结论仍以 Assignment 指定的 `**{SDD_DIR}/review/`** 为准,散文由 PM/实现方据结论整理。
|
|
99
109
|
|
|
100
|
-
|
|
110
|
+
**关闭**:当该条在 register 中 close(`lifecycle` / `closed_at` / `closure_note`)或从 `entries[<plan-id>]` 移除时,应将对应 `**.md**` 一并收口:可迁入 `**{HARNESS_DIR}/archived/knowledge/**`(若视为历史考据)、或团队约定的归档子路径(与 register 变更同批可追溯);并在关闭条目的 `**closure_evidence` / `closure_note**`(或团队约定字段)中**写明散文最终路径**。勿长期保留「JSON 已关闭而散文仍留在 `residuals/` 且声称仍 open」的状态。
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
每个 plan 的详细内容(任务清单、决策、Sign-off)。
|
|
8
8
|
|
|
9
|
-
**命名(推荐)**:`<plan-id>-<plan-name>.md`(例:`01-data-infrastructure.md
|
|
9
|
+
**命名(推荐)**:`<plan-id>-<plan-name>.md`(例:`01-data-infrastructure.md`)。snapshot plan 行的 `file` 字段填相对仓库根或 `{PLAN_DIR}` 下的实际路径。
|
|
10
10
|
|
|
11
11
|
## Review bundle(`{SDD_DIR}/review/`)
|
|
12
12
|
|
|
@@ -48,18 +48,18 @@ Raw bundle files may disappear after the working context is gone. Before Done, P
|
|
|
48
48
|
- `QA gate` / `QA mode`
|
|
49
49
|
- evidence reused vs newly run checks
|
|
50
50
|
- related R# closure recommendations
|
|
51
|
-
- `{
|
|
51
|
+
- `{PROJECT_DIR}/<id>/residuals.json` (default `{HARNESS_DIR}/projects/<id>/`): open R# machine SSOT — `entries[<plan-id>]`.
|
|
52
52
|
|
|
53
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.
|
|
54
54
|
|
|
55
55
|
## Residual findings(R#):权威在哪、和主 plan 谁先谁后?
|
|
56
56
|
|
|
57
|
-
- **Open 条目的单一事实来源(SSOT)**是 **`{
|
|
57
|
+
- **Open 条目的单一事实来源(SSOT)**是 **`{PROJECT_DIR}/<id>/residuals.json`**(默认 `{HARNESS_DIR}/projects/<id>/`;无项目流程用 `_default`)的 **`entries[<plan-id>]`**(canonical 见 `mstar-plan-artifacts` **SKILL.md** 开篇;字段见 `mstar-plan-artifacts/references/status-and-residuals.md`)。**同一工作副本内**的会话 handoff、关闭流程**以该数组为准**(本地 SSOT,默认 gitignored);**跨 clone** 须持久的 residual 须提升入 tracked `{KNOWLEDGE_DIR}/` / `{SPECS_DIR}/` 等(见 `mstar-plan-conventions`「Git 跟踪策略」)。
|
|
58
58
|
- **推荐操作顺序**(避免 plan 与 JSON 两套 ID 漂移):
|
|
59
59
|
1. `project-manager` 读完 review bundle 并完成「QC 三审轻量汇总」:对 finding **去重合并**,为每条待跟踪项分配**稳定 `id`**(如 `R1`、`R2`,全 plan 内唯一)。
|
|
60
|
-
2.
|
|
61
|
-
3. **可选**:在主 plan 中增加 **「Residual findings(索引)」** 小节,**仅复述** `id` + 短标题 + 决策摘要,并写明「**权威列表见** `
|
|
62
|
-
- **不要**反过来把主 plan 当作唯一登记处:若仅更新 plan
|
|
60
|
+
2. **立即**将上述条目写入 register **`entries[<plan-id>]`**(含 `source` 指向 reviewer seat + bundle basename + finding id + review range,便于回溯;`source_plan` = plan id,`registered_at` = 当日);v1 根级 `residual_findings` 仅 legacy 只读,**勿**双写。
|
|
61
|
+
3. **可选**:在主 plan 中增加 **「Residual findings(索引)」** 小节,**仅复述** `id` + 短标题 + 决策摘要,并写明「**权威列表见** `projects/<id>/residuals.json` `entries[<plan-id>]`(见 `mstar-plan-conventions` **SKILL.md** 开篇)」。**不要**只在主 plan 里「发明」R# 而不写回 SSOT。
|
|
62
|
+
- **不要**反过来把主 plan 当作唯一登记处:若仅更新 plan、register 未同步,下一任 agent **无法**依赖 SSOT 继承债务状态。
|
|
63
63
|
|
|
64
64
|
## QC 三审触发时机(单 plan · 多 batch)
|
|
65
65
|
|
|
@@ -79,21 +79,21 @@ The durable summary is not a paste of raw reports. It is a small gate record suf
|
|
|
79
79
|
|
|
80
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 提示词)。
|
|
81
81
|
|
|
82
|
-
**QC 报告与 Git**:默认 raw QC/QA bundle **不**执行 `git add` / `git commit`。PM 将 durable gate summary 写入主 plan(本地会话 SSOT;默认 gitignored)并在当轮更新
|
|
82
|
+
**QC 报告与 Git**:默认 raw QC/QA bundle **不**执行 `git add` / `git commit`。PM 将 durable gate summary 写入主 plan(本地会话 SSOT;默认 gitignored)并在当轮更新 project register 的 open residuals(本地 SSOT,默认 gitignored)。**跨 clone 须持久的** residual 或决策须提升入 tracked `{KNOWLEDGE_DIR}/` / `{SPECS_DIR}/` 或 `{HARNESS_DIR}/AGENTS.md`(见 `mstar-plan-conventions`「Git 跟踪策略」)— **勿**默认 `git add` `status.json` / `workflows/` / `projects/` / `plans/`。若项目显式 opt-in 跟踪审计报告,在 Assignment 写 `Review archive mode: tracked reports` 并使用项目 allow rules。
|
|
83
83
|
|
|
84
84
|
## 主 plan 内任务清单(Markdown checkbox)
|
|
85
85
|
|
|
86
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 **并列**,作为跨会话可核对的**落盘痕迹**。
|
|
87
87
|
- **范围**:**只勾选与当前任务直接对应、且已由本角色交付证据支撑的条目**;不得代为勾选他人负责或未完工项。若正文用分段、Owner 或角色标签区分任务,以 Assignment 与文内约定为准。
|
|
88
|
-
- **与
|
|
88
|
+
- **与 snapshot / frontmatter 的关系**:勾选任务**不**等于整条计划收口。snapshot `plans[].status` 及主 plan frontmatter 的 **`Done`** 仍**仅** `project-manager` / `qa-engineer`(见「状态更新权限」)。`architect` / `product-manager` **不得**擅自将整条计划标为 `Done`;是否将 snapshot 推进为 `InReview` 等仍按下文「状态更新权限」与 Assignment。
|
|
89
89
|
- **`qc-specialist*`**:**不得**修改主 plan(宿主仅允许 Assignment 指定的 review bundle `.md`);审查结论落在 `{SDD_DIR}/review/` 内。若主 plan 需新增或勾选与审查相关的条目,由 `project-manager` 或 Assignment 明确授权的角色据报告回写。
|
|
90
90
|
- **只读角色**:不直接改主 plan;将建议交给 `project-manager` 代为更新清单。
|
|
91
91
|
|
|
92
|
-
Plan 正文与
|
|
92
|
+
Plan 正文与 snapshot 行必须保持一致;不一致时以 snapshot `plans[].status` 为准并尽快纠正正文或登记 notes(`workflows/<id>/notes.jsonl`)。
|
|
93
93
|
|
|
94
94
|
## Done 标记方式
|
|
95
95
|
|
|
96
96
|
1. **Frontmatter**(首选):添加 `status: Done` 和可选的 `done_at: YYYY-MM-DD`。
|
|
97
97
|
2. **文件名**(备选):重命名为 `DONE__<name>.md` 或 `<name>.done.md`。
|
|
98
98
|
|
|
99
|
-
同时更新 `status.json`
|
|
99
|
+
同时更新 snapshot 对应 plan 行(`workflows/<id>/snapshot.json` → `plans[]`)与根 `status.json` `workflows[]` 登记。
|