@mstar-harness/opencode 0.3.0 → 0.3.1
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-harness-core/references/branch-and-worktree.md +1 -1
- package/harness-skills/mstar-plan-conventions/SKILL.md +35 -2
- package/harness-skills/mstar-plan-conventions/references/plan-files-and-reports.md +1 -1
- package/harness-skills/mstar-plan-conventions/references/status-and-residuals.md +2 -1
- package/package.json +1 -1
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
|
|
109
109
|
- **语义区分(必须理解)**:开发阶段可以存在 **多个** `Worktree path`(每条约流一条检出目录);**一轮**正式 QC 三审及与之 **逐字对齐** 的 QA 验证,在 harness 中仍只对应 **一套** `Review cwd` / `Worktree path` + **`Working branch`** + **`Review range` / `Diff basis`**(三票 QC 与 QA **共用且逐字相同**)。**不要**把「多个开发 worktree」误解成「QC 应轮流进多个目录各审一半」。
|
|
110
110
|
- **推荐默认编排:先建 plan 集成分支,再挂各 worktree(PM;强推荐)**:在 **同仓**、**同一 plan** 且 **≥2 条可写并行轨** 时,按下列顺序编排可最大幅度降低 QC/QA 误用单一开发目录的风险。**此为推荐套路,不是唯一合法 Git 拓扑**;若采用其它拓扑,仍须满足本节下文 **强制**条款(派 QC 前 **单一**待审 `HEAD` + 一套对齐字段)。
|
|
111
|
-
1. **先起集成分支(再挂 worktree)**:在派发各轨 **实现** Assignment 之前,PM 与用户确认 **`Branch policy`**,并建立 **plan 集成分支**(Assignment 使用 **`Working branch: create <plan-integration-branch> from <base>`** 或等价明确写法;`<base>` 通常为 `origin/main` 或团队既定主线,**不得**未授权假设)。**分支名由 PM 指定**;下文 **`feature/<plan-id>-integrate`**、**`integrate/<plan-id>`**
|
|
111
|
+
1. **先起集成分支(再挂 worktree)**:在派发各轨 **实现** Assignment 之前,PM 与用户确认 **`Branch policy`**,并建立 **plan 集成分支**(Assignment 使用 **`Working branch: create <plan-integration-branch> from <base>`** 或等价明确写法;`<base>` 通常为 `origin/main` 或团队既定主线,**不得**未授权假设)。**分支名由 PM 指定**;下文 **`feature/<plan-id>-integrate`**、**`integrate/<plan-id>`** 仅为命名示例,**非强制**。**多 `plan_id` 同源一条 `primary_spec`(Spec 文档)时**:该集成分支在计划语义上即 **Spec 集成分支**;各 Plan 的 feature 线 merge 回此线,**全部 Plans 完成后** 合入默认保护分支须 **走 PR**(见 `mstar-plan-conventions` SKILL.md「Spec 文档驱动的分支模型」)。
|
|
112
112
|
2. **再挂各轨 worktree**:为每条并行轨分配 **独立** `git worktree` + **`Worktree path`**;各轨 **`Working branch`** 一般为 **从集成分支出** 的 topic 分支(`create <topic-i> from <plan-integration-branch>`)或 PM 书面约定的等价结构(例如从同一 `<base>` 出 topic、但 **书面指定** 合并时 **以集成分支为靶**)。**禁止**承接方擅自把未授权功能提交直接堆在 `main`/`master`。
|
|
113
113
|
3. **进 QC 之前**:将全部 **须同一轮三审覆盖** 的提交 **merge / rebase / cherry-pick**(以 PM 指定的团队方式)**归并**到 **同一条** PM 将作为 QC **`Working branch`** 的分支的 **`HEAD`**(**通常即 plan 集成分支**;若 PM 已将集成分支重命名或快进为最终 `feature/*`,以 Assignment 为准)。**在此**解决冲突;**勿**在 QC Assignment 仍指向「只含部分轨」的旧 `HEAD` 时派三审。
|
|
114
114
|
4. **QC / QA 的 `Working branch` 与合并主线**:派发 QC 三审与对齐的 QA 时,**`Working branch`** **即为**上一步 **已含全部待审提交** 的那条分支(常见为 plan 集成分支)。**`Review range` / `Diff basis`** 通常相对 **尚未合并 feature 的** 主线参照(例如 `merge-base: origin/main` + `tip: HEAD`),审查的是 **「feature 线 vs 主线」** 的差异;**默认不要求**在 QC **通过前** 已把该分支 merge 进 `main`(除非 **`Branch policy`** 或用户明确约定 trunk 式例外)。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: mstar-plan-conventions
|
|
3
|
-
description: Morning Star (启明星) harness 的计划目录约定 —— {HARNESS_DIR} 与 {PLAN_DIR} 的发现与初始化、status.json 的 SSOT 结构与状态权限、residual findings 登记/归档/生命周期、severity 枚举(SSOT,机器字段)、notes.json 程序时间线、tech_debt_summary 技术债一览、knowledge/ 开发过程知识库、reports/ 审查留档命名、QC 三审触发时机、主 plan Done 标记、archived/plans Profile A/B、工期预估(仅 agent-oriented
|
|
3
|
+
description: Morning Star (启明星) harness 的计划目录约定 —— {HARNESS_DIR} 与 {PLAN_DIR} 的发现与初始化、status.json 的 SSOT 结构与状态权限、residual findings 登记/归档/生命周期、severity 枚举(SSOT,机器字段)、notes.json 程序时间线、tech_debt_summary 技术债一览、knowledge/ 开发过程知识库、reports/ 审查留档命名、QC 三审触发时机、主 plan Done 标记、archived/plans Profile A/B、工期预估(仅 agent-oriented)、**Spec 集成分支 + 多 Plan 实现分支** 的 Git 对齐与 **Spec 完成后须经 PR 合入 main** 门禁。任何角色在读写 .agents/、创建/更新 plan 文件、登记 residual finding、QC/QA 报告入库、Done 收口、写工期预估时必读;`@project-manager` 编排任一含 plan 的任务前必读;实现角色开工前须读本 skill 以对齐 metadata.primary_spec/spec_refs 与 knowledge 目录。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## Load order(必读顺序)
|
|
@@ -107,6 +107,38 @@ description: Morning Star (启明星) harness 的计划目录约定 —— {HARN
|
|
|
107
107
|
- **仅本机私密**:若必须 ignore 整个 **`{HARNESS_DIR}`**,则按上文「可到达性」约束已提交文档;敏感片段另用密钥或私密渠道管理。
|
|
108
108
|
10. 如果项目已有 **`.plans/`** 或 **`plans/`** 目录(遗留同目录布局),**不要再创建** **`.agents/`**,直接使用已有目录作为 **`{HARNESS_DIR} = {PLAN_DIR}`**,并视需要补建 **`reports/`**、**`residuals/`**、**`knowledge/`**、**`archived/residuals/`**、可选 **`notes.json`** 与 `metadata` 结构。
|
|
109
109
|
|
|
110
|
+
## Spec 文档驱动的分支模型(多 Plan 归属同一 Spec)
|
|
111
|
+
|
|
112
|
+
当 **`metadata.primary_spec`**(及可选 **`spec_refs`**)指向**单一规格主线**,且 PM 将工作拆成 **多个 `plan_id`** 并行或串行交付时,业务仓库的 Git 拓扑建议按下述对齐,避免「实现分支直接打 main」与「多 Plan 无集成靶」两类漂移。**同仓 worktree、QC 前归并到单一 `HEAD` 等强制条款**仍以 **`mstar-harness-core`** `references/branch-and-worktree.md` 为准;本节只补充 **Spec ↔ 分支** 的命名级契约。
|
|
113
|
+
|
|
114
|
+
### 分支角色
|
|
115
|
+
|
|
116
|
+
| 概念 | 含义 |
|
|
117
|
+
|------|------|
|
|
118
|
+
| **Spec 文档** | 该次交付冻结或主规格(常为 `{SPECS_DIR}` / `knowledge/` 下路径;与 `primary_spec` 对齐)。 |
|
|
119
|
+
| **Spec 集成分支** | **一条**与「该 Spec 所覆盖的全部 Plans」对应的 **集成线**:各 Plan 实现成果 **merge 回** 此分支后,才视为该 Spec 在代码侧已集成。 |
|
|
120
|
+
| **Plan 实现分支** | **每个 `plan_id`** 一条(或 PM 书面拆分的子轨);**仅**承载该 Plan 范围内的提交与 QC/QA 前归并。 |
|
|
121
|
+
|
|
122
|
+
### 工作流(默认推荐)
|
|
123
|
+
|
|
124
|
+
1. **开线**:由 **`@project-manager`** 与用户确认后,建立 **Spec 集成分支**(Assignment 写明 `Working branch: create <spec-integration-branch> from <base>` 或等价;`<base>` 见 `branch-and-worktree.md`,**禁止**未授权默认)。
|
|
125
|
+
2. **拆 Plan**:每个从该 Spec 拆出的 plan 使用 **各自的 Plan 实现分支**(通常 `create <plan-feature-branch> from <spec-integration-branch>` 或 PM 规定的等价拓扑);**实现 / QA / 运维等可写角色**在本 Plan 周期内 **只操作 Assignment 写明的该 Plan 分支**(及 PM 授权的 worktree 检出),**不得**擅自把未授权提交直接堆到默认保护分支。
|
|
126
|
+
3. **Plan 收口**:该 Plan 完成 **QC 三审 + QA** 等 harness 要求后,将其变更 **merge(或团队书面约定的 rebase/cherry-pick)回 Spec 集成分支**;**不是**在「仅完成单个 Plan」时默认直接 merge 进 `main`/`master`,除非 Assignment 含显式 **`Branch policy`** 例外。
|
|
127
|
+
4. **与 `mstar-harness-core` 的「plan 集成分支」关系**:**同仓、同一 plan、多并行轨**时,该 skill 推荐的 **plan 集成分支** 在「多 Plan、同源 Spec」场景下 **即** 本条所述 **Spec 集成分支**;各 Plan 的 topic 线 **merge 靶** 优先为 **Spec 集成分支**,而非彼此随意交叉除非 PM 书面约定。
|
|
128
|
+
|
|
129
|
+
### 合入默认保护分支(main):必须经 PR
|
|
130
|
+
|
|
131
|
+
当 **归属该 Spec 的全部 Plans** 已在计划状态上完成(且代码变更已按团队流程 **汇总到 Spec 集成分支**)时:
|
|
132
|
+
|
|
133
|
+
- **禁止**将 Spec 集成分支 **直接本地 merge / fast-forward push** 到 **`main`/`master`**(或项目约定的其它默认保护分支)作为**常规完成路径**。
|
|
134
|
+
- **必须**通过 **Pull Request(或宿主平台等价的受控合入流程)** 将 Spec 集成分支合入默认分支,以满足 **审查、CI、权限与审计** 等团队门禁。
|
|
135
|
+
|
|
136
|
+
**窄例外**(须 **Assignment 显式** **`Branch policy: direct on <branch> — <reason>`**,与 `mstar-harness-core` 一致):例如已批准的热修、或用户与团队书面采用的无 PR 流程。**不得**由 agent 自行认定「可以跳过 PR」。
|
|
137
|
+
|
|
138
|
+
### 登记建议
|
|
139
|
+
|
|
140
|
+
在 **`{HARNESS_DIR}/status.json`** 的 **`plans[].metadata`**(或根级 **`metadata.versioning`** 等团队约定节)中记录 **`spec_integration_branch`**、各 plan 的 **`working_branch`**,以及 **`merge_target`**(对 Plan 实现分支通常为 **Spec 集成分支名**,而非 `main`)。字段表见 `references/status-and-residuals.md`。
|
|
141
|
+
|
|
110
142
|
## Harness 初始化蓝图(含 `AGENTS.md` 分层策略)
|
|
111
143
|
|
|
112
144
|
当仓库从 0 到 1 启用 harness,建议按下面顺序初始化,避免后续出现规则散落与双轨 SSOT:
|
|
@@ -223,7 +255,7 @@ Assignment 模板中的 **`Parallelism`** 行应与上表 **`Parallelism`** / **
|
|
|
223
255
|
|
|
224
256
|
## 各角色与 Plan 的关系
|
|
225
257
|
|
|
226
|
-
- **`@project-manager`**:负责发现 plan 目录、创建/登记 plan、分配任务、推进状态、Done 收口。分配时须告知 subagent plan 目录的实际路径;涉及业务 Git 仓库写操作时须在 Assignment 中写明 **`Working branch`** 或 **`Branch policy`**(见 `mstar-harness-core` `references/branch-and-worktree.md`)。启用 **`knowledge/`** 时维护索引 README,并在 Assignment 中点名 **`primary_spec` / `spec_refs
|
|
258
|
+
- **`@project-manager`**:负责发现 plan 目录、创建/登记 plan、分配任务、推进状态、Done 收口。分配时须告知 subagent plan 目录的实际路径;涉及业务 Git 仓库写操作时须在 Assignment 中写明 **`Working branch`** 或 **`Branch policy`**(见 `mstar-harness-core` `references/branch-and-worktree.md`)。启用 **`knowledge/`** 时维护索引 README,并在 Assignment 中点名 **`primary_spec` / `spec_refs`**(若本轮依赖知识库)。**多 Plan 归属同一 Spec 时**:按上文 **「Spec 文档驱动的分支模型」** 声明 **Spec 集成分支**、各 **Plan 实现分支** 与 **merge 靶**;在 `status.json` 登记 **`spec_integration_branch` / `merge_target`**(见 `references/status-and-residuals.md`);**全部 Plans 完成后** 合入 `main`/`master` **走 PR**,不得默认直接 merge。**维护 `status.json` 时**:若存在 **`InReview`** 行,每轮 Status Update **自检**是否对该 `plan_id` 已派或未派 QC;派发前 **Read `mstar-review-qc`**。
|
|
227
259
|
- **`@architect`** / **`@product-manager`**:产出规格或评审结论若适合跨会话复用,写入 **`{HARNESS_DIR}/knowledge/`**(或 `{SPECS_DIR}`)并更新对应 **README**,建议由 PM 在 `plans[].metadata` 挂接路径。
|
|
228
260
|
- **可写盘 agent**(dev / qa / ops):完成任务后更新主 plan 中**本人负责**的任务 checkbox(见 `references/plan-files-and-reports.md`)、相关 Sign-off 栏位,并更新 `status.json`(权限见上)。**实现前**若 `plans[].metadata` 含 `primary_spec` / `spec_refs`,须先阅读对应文件(见 `references/knowledge-and-designs.md`)。
|
|
229
261
|
- **`@product-manager`**:可更新 plan 文档中需求/验收/用户故事等产品负责部分,并在交付后勾选**与之对应**的主 plan 任务 checkbox;**不得**将 `status.json` 中计划状态设为 `Done`;如需改 `progress`/`notes`,以 Assignment 为准或交由 PM 收口。
|
|
@@ -233,6 +265,7 @@ Assignment 模板中的 **`Parallelism`** 行应与上表 **`Parallelism`** / **
|
|
|
233
265
|
|
|
234
266
|
## References
|
|
235
267
|
|
|
268
|
+
- 本 SKILL **「Spec 文档驱动的分支模型(多 Plan 归属同一 Spec)」** — Spec 集成分支、Plan 实现分支、merge 回集成线、**全部完成后经 PR 合入 main**(与 `mstar-harness-core` `references/branch-and-worktree.md` 并用)。
|
|
236
269
|
- `references/status-and-residuals.md` — `{HARNESS_DIR}/status.json` SSOT 结构、`plans[].metadata` 标准字段、根级 `metadata` 字段、residual findings 的 **severity** 枚举(SSOT)、生命周期(open → closed → archived)、`notes.json` 程序时间线、`tech_debt_summary` 技术债一览、常用 jq 查询。
|
|
237
270
|
- `references/knowledge-and-designs.md` — `{HARNESS_DIR}/knowledge/` 开发过程知识库(目录、索引、命名、维护)、`{SPECS_DIR}`(`specs/` or `designs/`)规格目录、`{PLAN_DIR}/residuals/<plan-id>/` open residual 散文详情、与 `reports/` 的分工。
|
|
238
271
|
- `references/plan-files-and-reports.md` — 主 plan 文件命名、审查报告命名表、QC 分报告与 consolidated 保留原则、**QC 三审触发时机(单 plan · 多 batch)**、**多 `plan_id` 同时 `InReview` 的 QC 编排**、residual findings 权威位置与顺序、主 plan Markdown checkbox 规则、Done 标记方式、QC 落盘宿主权限。
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
- **batch 之间**:依赖实现方 **`verification-before-completion`**、主 plan 任务勾选与 PM 协调;需要书面中间意见时,用对话、主 plan 批注或**非三审**的定向检查(如单审、架构 review),**不**默认等同「又一轮完整三审」。
|
|
37
37
|
- **Request Changes 后复验**:若须再跑一轮完整三审,使用**新文件名**落盘,避免覆盖首轮报告,例如 `<plan-id>-qc1-rev2.md` … `<plan-id>-qc3-rev2.md`(或团队约定的 `wave2-` 前缀);`@project-manager` 在 `QC Consolidated Decision` 中写明**当前以哪一波次为准**。
|
|
38
38
|
- **显式例外**:仅当用户与 PM 书面同意**中间门禁**时,在 Assignment 写清 **`QC gate: incremental — <scope>`**(或等价),并仍须保证该次三审的 **`plan_id` + `Review range` / `Diff basis`** 三份一致;**优先**用子范围专用标签或子目录,避免与「整 plan 终局」那套 `-qc*.md` 混名。
|
|
39
|
-
- **同仓多 worktree 并行 dev**:**推荐**在排各 batch / 各轨 worktree 前确立 **plan 集成分支** 与各轨 topic 线及 **merge 靶**(见 `mstar-harness-core` `references/branch-and-worktree.md` **「推荐默认编排:先建 plan 集成分支,再挂各 worktree
|
|
39
|
+
- **同仓多 worktree 并行 dev**:**推荐**在排各 batch / 各轨 worktree 前确立 **plan 集成分支** 与各轨 topic 线及 **merge 靶**(见 `mstar-harness-core` `references/branch-and-worktree.md` **「推荐默认编排:先建 plan 集成分支,再挂各 worktree」**)。**多 `plan_id` 同属一条 `primary_spec`(Spec 文档)时**:该「集成分支」在计划语义上即 **Spec 集成分支**;各 Plan 的 topic 分支 **merge 回 Spec 集成分支**,**全部 Plans 完成后** 合入 `main`/`master` **须走 PR**,见 `mstar-plan-conventions` SKILL.md **「Spec 文档驱动的分支模型」**。终局(或增量)三审派单前,PM 仍须满足 **单一待审 `Working branch` / `HEAD`** 或已按上条 **拆 scope**;**不得**假设「整 plan 一次三审」可只靠某一个开发 worktree 路径覆盖未合并的其他并行轨。
|
|
40
40
|
|
|
41
41
|
### 多 `plan_id` 同时 `InReview`(PM 编排)
|
|
42
42
|
|
|
@@ -116,7 +116,8 @@ QC 报告模板见 `mstar-review-qc`。把 finding 登记进根级 `**residual_f
|
|
|
116
116
|
| 键 | 类型 | 用途 |
|
|
117
117
|
| --------------------------------- | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
118
118
|
| `working_branch` | string | 本 plan 实现所用分支名,与 Assignment `**Working branch`** 对齐(SSOT) |
|
|
119
|
-
| `
|
|
119
|
+
| `spec_integration_branch` | string | (多 Plan 同源 **Spec** 时推荐)该 Spec 对应的 **集成分支** 名;各 Plan 实现分支收口时应 merge 回此线,而非默认直接进 `main`(见 `mstar-plan-conventions` SKILL.md「Spec 文档驱动的分支模型」) |
|
|
120
|
+
| `merge_target` | string | 本 plan 成果 **下一跳** 预期合并到的分支:多 Plan + Spec 模型下 **通常为 `spec_integration_branch`**;最终进 `main` 仍走 **PR**(同 skill)。单 plan / 无 Spec 集成线时可为 `main` 或团队约定名 |
|
|
120
121
|
| `branch_policy` | string | 与 `mstar-harness-core` 一致的一行策略说明(如 `direct on main — <reason>` 或 `create feature/x from main`) |
|
|
121
122
|
| `phase` | string | 程序/路线图阶段标签(如 `Phase 0`、`v1.0`) |
|
|
122
123
|
| `priority` | `high` | `medium` | `low` | PM 编排优先级 |
|