@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**,问用户)→ push
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 push
210
- 5. **Mode-specific pass**:
211
- - **babysit / `*-babysit`**: follow that SKILL(comments + CI loop)— **primary**
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
- 6. After each push → §5.3 → return to step 1
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 push → §5.3 comment + resolve
233
- 2. Poll PR required checks until **all green**(reasonable backoff between polls
234
- 3. On CI failure: diagnose → dispatch implement/ops if code fix needed push poll again
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**:修复 push → 再验证,直至 §5.5 exit。**Loop 理念 SSOT 在本 skill**;宿主 command 可叠加额外 **non-`mstar-*`** helper(**优先** `babysit` / `*-babysit`;**`greploop` 可选** — 仅当仓库具备 Greptile/`greploop` 时采用),但不写入 `mstar-*` load order。
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 分支解决 push(意图冲突 → **Blocked**)
462
- 3. **Reviews** — fetch unresolved threads;triage;dispatch 修复 → push
463
- 4. **CI** — 失败项在 PR 范围内修复 push
464
- 5. **Review fix hygiene**(每次因 review push 后):
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
- 6. Return to step 1
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`**)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mstar-harness/opencode",
3
- "version": "1.5.0",
3
+ "version": "1.5.1",
4
4
  "description": "Morning Star harness OpenCode plugin (skills bootstrap and agent loading).",
5
5
  "license": "MIT",
6
6
  "repository": {