@mstar-harness/opencode 1.5.0 → 1.5.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/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,12 @@ All notable changes to the `@mstar-harness/opencode` package are documented in t
|
|
|
4
4
|
|
|
5
5
|
The monorepo root [CHANGELOG.md](../../CHANGELOG.md) summarizes cross-surface releases.
|
|
6
6
|
|
|
7
|
+
## 1.5.1
|
|
8
|
+
|
|
9
|
+
- Version alignment with harness **1.5.1** (bundled skills/commands: Phase 5 push cadence — local early fix, push only when CI/review wave idle).
|
|
10
|
+
|
|
11
|
+
See root [CHANGELOG.md](../../CHANGELOG.md) **1.5.1**.
|
|
12
|
+
|
|
7
13
|
## 1.5.0
|
|
8
14
|
|
|
9
15
|
- Version alignment with harness **1.5.0** (bundled skills/commands: iteration Phase 2 worktree/lease + Phase 5 babysit-first helpers).
|
|
@@ -196,22 +196,24 @@ Before the first loop pass, search for bundled/host skills(first readable `SKI
|
|
|
196
196
|
| 改 CI workflow 只为「让检查变绿」 | 仅修 **本 PR 范围内** 引起的失败;workflow 变更需用户明确授权 |
|
|
197
197
|
| 未 comment + resolve 就宣称 review 已处理 | 每次 push 针对 review 的修复 → §5.3 |
|
|
198
198
|
| §5.5 未全 `[x]` 就结束会话 | 循环直至 merge-ready |
|
|
199
|
+
| **CI / AI review 仍在跑时 push**(打断 bot review、浪费 token) | **`mstar-iteration` §5.1a**:本地可提前修;push 仅当上一波 CI **与** reviews 均 idle |
|
|
199
200
|
|
|
200
|
-
Fixes **push 到 `spec_integration_branch`**(PR head);禁止另开分支替代。
|
|
201
|
+
Fixes **push 到 `spec_integration_branch`**(PR head);禁止另开分支替代。Push 前核对 §5.1a(无 in-flight CI)。
|
|
201
202
|
|
|
202
203
|
### 5.2 Loop(all modes)
|
|
203
204
|
|
|
204
205
|
Repeat until §5.5 exit checklist passes:
|
|
205
206
|
|
|
206
|
-
1. **Status** — `gh pr view <number> --json mergeable,mergeStateStatus,statusCheckRollup,reviewDecision`(或宿主等价 API
|
|
207
|
-
2. **Merge conflicts** — if blocking: resolve on integration branch(意图冲突 → **Blocked
|
|
208
|
-
3. **Active reviews** — fetch **unresolved** review threads only;triage valid change requests
|
|
209
|
-
4. **CI** — list failing required checks;dispatch or fix in-scope
|
|
210
|
-
5. **
|
|
211
|
-
|
|
207
|
+
1. **Status** — `gh pr view <number> --json mergeable,mergeStateStatus,statusCheckRollup,reviewDecision`(或宿主等价 API);确认 **无 queued/in_progress checks**
|
|
208
|
+
2. **Merge conflicts** — if blocking: resolve **locally** on integration branch(意图冲突 → **Blocked**,问用户);**仅 §5.1a idle 后** push
|
|
209
|
+
3. **Active reviews** — fetch **unresolved** review threads only;triage valid change requests;**本地**开工修复(可在上一波次仍在跑时)
|
|
210
|
+
4. **CI** — list failing required checks;dispatch or fix in-scope **locally**(可提前);**禁止**在 CI 仍在跑时 push
|
|
211
|
+
5. **Push gate** — wait until current head’s CI **and** AI/bot review wave **completed**;then **one** push of the fix batch(§5.1a)
|
|
212
|
+
6. **Mode-specific pass**(on settled head after push / poll):
|
|
213
|
+
- **babysit / `*-babysit`**: follow that SKILL(comments + CI loop)— **primary**;skill 内若暗示立即 push,**仍以 §5.1a 为准**
|
|
212
214
|
- **greploop**(optional, repo has it): follow greploop SKILL until Greptile **5/5** — **after** babysit/`*-babysit` gates when both apply
|
|
213
215
|
- **fallback**(no babysit/`*-babysit`): triage unresolved review threads(§5.3)+ poll CI until all required checks green(no skill Read;**与 babysit 同级的 CI + reviews 门禁**)
|
|
214
|
-
|
|
216
|
+
7. After each push → §5.3 → return to step 1(CI 结束后若出现 **新** reviews → 继续本地修,再等 idle 后 push)
|
|
215
217
|
|
|
216
218
|
**Stop looping only when** §5.5 全 `[x]`。若多轮仍 blocked → 升级用户(列出 failing checks / unresolved threads / Greptile score if greploop mode)。
|
|
217
219
|
|
|
@@ -229,11 +231,12 @@ Do not bulk-resolve without a per-thread reply. Disagree or uncertain → reply
|
|
|
229
231
|
|
|
230
232
|
When no `babysit` / `*-babysit` skill is found, **本 command 承担 babysit 同级职责**(无外部 SKILL,但 exit 标准相同)。`greploop` alone does **not** replace babysit — if only greploop is present and the repo has Greptile, still run §5.4 for CI + reviews, and optionally greploop for score:
|
|
231
233
|
|
|
232
|
-
1. Fetch **unresolved** review threads;triage valid change requests → dispatch fix
|
|
233
|
-
2. Poll PR required checks until **all green
|
|
234
|
-
3. On CI failure: diagnose → dispatch implement/ops if code fix needed
|
|
234
|
+
1. Fetch **unresolved** review threads;triage valid change requests → dispatch fix **locally**(可在 CI/review 波次进行中)
|
|
235
|
+
2. Poll PR required checks until **settled**(all completed — green or failed;reasonable backoff)
|
|
236
|
+
3. On CI failure: diagnose → dispatch implement/ops if code fix needed **locally**;**only push when §5.1a idle**(no in-flight CI / AI review)→ poll again on new head
|
|
235
237
|
4. Do **not** exit until **both** CI green **and** all review threads resolved(或用户书面 waive)
|
|
236
238
|
5. Do **not** exit on first green if new commits or reviews reopened checks
|
|
239
|
+
6. After CI completes, if **new** reviews appear → continue local fixes;push only after the new review wave settles
|
|
237
240
|
|
|
238
241
|
### 5.5 Phase 5 exit checklist(iteration-drive Done)
|
|
239
242
|
|
|
@@ -278,10 +278,12 @@ Both apply: **babysit/`*-babysit` first**, then optional greploop(串行). D
|
|
|
278
278
|
|
|
279
279
|
### 5.1–5.4 Loop
|
|
280
280
|
|
|
281
|
-
Same hygiene as drive consumer pattern: status → conflicts → reviews → CI → mode pass → comment+resolve on addressed threads → repeat until §5.5.
|
|
281
|
+
Same hygiene as drive consumer pattern: status → conflicts → reviews → CI → **§5.1a idle push** → mode pass → comment+resolve on addressed threads → repeat until §5.5.
|
|
282
282
|
|
|
283
283
|
Fixes push to `spec_integration_branch` only. PM does not rewrite product code in-thread.
|
|
284
284
|
|
|
285
|
+
**Push cadence(HARD)** → **`mstar-iteration` §5.1a**:CI/review 发现问题可**本地提前修**;**禁止**在 CI 仍在跑或 AI review 波次未结束时 push(打断 bot reviews、浪费 token)。CI 结束后若出现新 reviews,继续本地修,等 idle 后再 push。
|
|
286
|
+
|
|
285
287
|
### 5.5 Phase 5 exit checklist(iteration-loop Done)
|
|
286
288
|
|
|
287
289
|
与 **`mstar-iteration` §5.2** 对齐:
|
|
@@ -157,6 +157,7 @@ Read **`mstar-host`** after this skill; detect host per its table, then Read the
|
|
|
157
157
|
| Phase 2 paste-only / PM 自实现 | `mstar-dispatch-gates` |
|
|
158
158
|
| Phase 3 折叠进 final plan closure / 跳过 §3.1 gate | `mstar-iteration` §3.0–§3.5 |
|
|
159
159
|
| Phase 4 开 PR 后跳过 merge-ready loop | `mstar-iteration` §5 |
|
|
160
|
+
| Phase 5 在 CI / AI review 仍在跑时 push | `mstar-iteration` §5.1a |
|
|
160
161
|
| iteration-close 无 frontmatter completed / 漏 compound Phase 6 | `mstar-iteration` §3.0.5、§3.4、§3.2 #5 |
|
|
161
162
|
| iteration 默认 `main` 作 base 或 PR 目标 | `mstar-iteration` §1.2、§2.3;`mstar-plan-conventions` Spec 分支模型 |
|
|
162
163
|
|
|
@@ -32,7 +32,7 @@ Phase 5: PR merge-ready loop —— 至 mergeable + CI 全绿 + reviews resolved
|
|
|
32
32
|
**关键定位**:
|
|
33
33
|
|
|
34
34
|
- **Phase 3** 在 integration 分支收口 compound / roadmap;**开 PR(Phase 4)≠ 迭代交付完成**。
|
|
35
|
-
- **Phase 5** 是 **merge-ready loop**:修复
|
|
35
|
+
- **Phase 5** 是 **merge-ready loop**:修复 →(等 CI/review 波次结束再)push → 再验证,直至 §5.5 exit。**Loop 理念与 push cadence SSOT 在本 skill**(§5.1a);宿主 command 可叠加额外 **non-`mstar-*`** helper(**优先** `babysit` / `*-babysit`;**`greploop` 可选** — 仅当仓库具备 Greptile/`greploop` 时采用),但不写入 `mstar-*` load order。
|
|
36
36
|
- 一次迭代 = 一个 PR;compound 产物随 PR 合入 `metadata.target_branch`。
|
|
37
37
|
|
|
38
38
|
## Phase transition gates(HARD — 防跳步)
|
|
@@ -41,7 +41,7 @@ Phase 5: PR merge-ready loop —— 至 mergeable + CI 全绿 + reviews resolved
|
|
|
41
41
|
|------|------|------|------|
|
|
42
42
|
| **→ Phase 3** | `status.json` 中 compass 登记的全部 plan 均为 `Done` | 打印 `## Phase 3: iteration-close`;执行 §3.0→§3.5;host todo `phase-3-iteration-close` 保持 open 直至 §3.5 | 开 PR;宣称迭代交付完成;仅依赖 final plan closure |
|
|
43
43
|
| **→ Phase 4** | §3.5 exit checklist 全 `[x]`;frontmatter `status: completed` + `end_date` | 打印 `## Phase 4: PR delivery`;开 PR 到 `metadata.target_branch`(§4) | 跳过 §3.1 entry checklist 或 compound Phase 6 |
|
|
44
|
-
| **→ Phase 5** | Phase 4 PR 已创建 | 打印 `## Phase 5: PR merge-ready`;执行 §5 loop 至 §5.5 exit | 开 PR 后停止;跳过 review resolve / CI loop |
|
|
44
|
+
| **→ Phase 5** | Phase 4 PR 已创建 | 打印 `## Phase 5: PR merge-ready`;执行 §5 loop 至 §5.5 exit(含 §5.1a push cadence) | 开 PR 后停止;跳过 review resolve / CI loop;**CI/AI review 仍在跑时 push** |
|
|
45
45
|
| **→ 迭代交付完成** | §5.5 exit checklist 全 `[x]` | PR mergeable;required CI 全绿;reviews resolved | Phase 4 开 PR 即宣称完成 |
|
|
46
46
|
| **iteration-start → integration branch** | §1.6 Review & Edit chain | 三角色按序 invoke;**specs** 为主产出;**禁止** start 链向 `{KNOWLEDGE_DIR}/` 新增;writing-specialist corpus hygiene + compass `status: locked` | PM 代做专业编辑;并行三角色;product/architect 写 knowledge;临时笔记进 specs |
|
|
47
47
|
|
|
@@ -454,17 +454,38 @@ PR 目标使用 root `metadata.target_branch`;缺失时停止并补齐,不
|
|
|
454
454
|
- Phase 5 在 PR head(`spec_integration_branch`)上 push 修复;**禁止**另开替代分支
|
|
455
455
|
- 产品代码修复 → PM **dispatch** dev/ops(`mstar-dispatch-gates`);PM 线程不代写实现
|
|
456
456
|
- 禁止为「让 CI 变绿」而改 workflow,除非用户明确授权
|
|
457
|
+
- **Push cadence** → **§5.1a**(本地可提前修;**禁止**在 CI / AI review 波次未结束时 push)
|
|
458
|
+
|
|
459
|
+
### 5.1a Push cadence(HARD — 防打断 CI / AI review)
|
|
460
|
+
|
|
461
|
+
发现 CI 失败或 review 问题时,**允许本地提前修**(含 dispatch implement/ops、落盘 commit),但 **`git push`(更新 PR head)必须等上一波次跑完**。
|
|
462
|
+
|
|
463
|
+
| 允许 | 禁止 |
|
|
464
|
+
|------|------|
|
|
465
|
+
| CI/review **进行中**就开始本地诊断与修复 | 当前 head 上仍有 **CI queued/in_progress**,或 **AI review 波次**(Bugbot / Greptile / 等价 bot)未结束时 **push** |
|
|
466
|
+
| CI **全部结束后**出现新的 review 评论 → 继续本地修,批完再 push | 为「抢时间」在 CI 仍在跑时 push(会取消/孤儿化进行中的 CI 与 **AI reviews**,浪费 token 且无完整结果) |
|
|
467
|
+
| 一批本地修复 **合并为一次 push**(本 head 波次 settled 后) | 同一波次未 settled 就连续多次 push |
|
|
468
|
+
|
|
469
|
+
**Push gate(每次 push 前必须核对)**:
|
|
470
|
+
|
|
471
|
+
1. 当前 PR head 的 **required CI**(及已启动的检查)均已 **completed**(success / failure / cancelled — 不得仍为 queued / in_progress)
|
|
472
|
+
2. 附着在该 head 的 **AI / bot review 波次**已跑完(无进行中的 review job;若宿主无法探测 job,则至少等 CI settled **且** review 评论不再增长一小段稳定窗口后再 push)
|
|
473
|
+
3. 仅当 **1–2 满足** 且本地仍有未推送修复时,才 **push 一次**
|
|
474
|
+
4. Push 后:等 **新 head** 的 CI + reviews 全部跑完 → 再决定下一轮本地修 / push
|
|
475
|
+
|
|
476
|
+
**顺序记忆**:`observe findings → fix locally early → wait until CI + review wave idle → push batch → wait new wave → repeat`。
|
|
457
477
|
|
|
458
478
|
### 5.1 Loop(repeat until §5.5 exit)
|
|
459
479
|
|
|
460
|
-
1. **Status** — PR mergeable?required CI?unresolved review threads
|
|
461
|
-
2. **Merge conflicts** — blocking 则在 integration
|
|
462
|
-
3. **Reviews** — fetch unresolved threads;triage;dispatch
|
|
463
|
-
4. **CI** — 失败项在 PR
|
|
464
|
-
5. **
|
|
480
|
+
1. **Status** — PR mergeable?required CI?unresolved review threads?**任一 CI/AI review 是否仍在跑?**
|
|
481
|
+
2. **Merge conflicts** — blocking 则在 integration 分支**本地**解决;**仅当 §5.1a push gate 满足时**再 push(意图冲突 → **Blocked**)
|
|
482
|
+
3. **Reviews** — fetch unresolved threads;triage;dispatch **本地**修复(可在上一波次仍在跑时开工)
|
|
483
|
+
4. **CI** — 失败项在 PR 范围内**本地**修复(可提前开工);**不**在 CI 仍在跑时 push
|
|
484
|
+
5. **Push** — 仅当 §5.1a 满足:无 in-flight CI,上一波 CI **与** reviews 均已跑完 → **一次** push 本批修复
|
|
485
|
+
6. **Review fix hygiene**(每次因 review 而 push 后):
|
|
465
486
|
- 在同 thread **comment**(改动 + 验证)
|
|
466
487
|
- **Resolve** when addressed
|
|
467
|
-
|
|
488
|
+
7. Return to step 1(CI 结束后若出现 **新** reviews → 继续本地修,再等 idle 后 push)
|
|
468
489
|
|
|
469
490
|
**Optional host helpers(command 层发现;非 `mstar-*` load order)**:
|
|
470
491
|
|
|
@@ -527,6 +548,7 @@ PR **merge** 本身可仍由用户手动执行,除非 Assignment 明确授权
|
|
|
527
548
|
- 不要跳过 compound Phase 6(`{KNOWLEDGE_DIR}/README.md` 索引)——即使只结晶一篇文档
|
|
528
549
|
- 不要跳过 compound——如果本迭代确实没有可结晶的知识,在 compass `## Compound Round Summary` 写 `无可结晶知识(原因:<简述>)`
|
|
529
550
|
- 不要将 **Phase 4 开 PR** 等同于 **迭代交付完成** — 必须完成 **Phase 5** §5.5 merge-ready loop
|
|
551
|
+
- **不要在 Phase 5 于 CI 仍在跑或 AI review 波次未结束时 push**(浪费 token、打断 review;§5.1a)— 本地可提前修,push 必须等 idle
|
|
530
552
|
- **不要在 iteration-start §1.6 由 product/architect 向 `{KNOWLEDGE_DIR}/` 新增文档**(知识 → iteration-close **`mstar-compound`**)
|
|
531
553
|
- **不要把迭代级草案写入 `{SPECS_DIR}/`**(应进 `{ITERATION_DIR}/<iteration-id>/specs/` 或 `guides/`)
|
|
532
554
|
- **不要在 iteration-close 跳过 `<iteration-id>/` package 盘点**(compound 提升 SSOT → **`mstar-compound`**)
|