chore(release): bump framework and 8 skills to v4.1.0 (MINOR — OpenCode AI agent integration)

This commit is contained in:
2026-08-29 23:20:53 +09:00
parent de2c0e6824
commit 6de15350c0
19 changed files with 680 additions and 93 deletions
@@ -0,0 +1,53 @@
# 🔍 Cross-Review: v4.1.0 Version Bump Execution (Job 0820d0ed)
- **Reviewer**: `reviewer-opencode-01` (role: reviewer)
- **Target**: Working-tree diff vs `main` on branch `support-opencode`: the executed v4.1.0 3-way lockstep bump (worker job `cbc67b73`, `creator-agy-01`) — `lib.sh`, `VERSIONS.md`, 8× `SKILL.md` frontmatters, changelog — plus the Rev.2 recommendation doc and 5 report/guide files carried over from the previously verified round.
- **Method**: Every check below re-run by me, not taken from the worker's (`cbc67b73`) or Claude's (`150a6d9a`) claims: lockstep test, full 447-test suite, per-file diffs, stray-literal sweep, job registry verification of every citation.
---
## 1. Bump Verification (my own runs)
| Check | Result |
|---|---|
| `lib.sh:32` | `MAM_VERSION="4.1.0"` — diff is exactly one line, no other change in the file |
| 8× `SKILL.md` frontmatter | All `version: 4.1.0` (create, stop, resume, status, monitor, delegate-job, loop, orc-onboard) |
| `VERSIONS.md` header | `v4.1.0`, release date `2026-08-29 (KST)` |
| `VERSIONS.md` prose (line 26, lockstep-regex-invisible) | `v4.1.0`으로 동기화 — the known line-24/26 desync gotcha from the `ec388212` round correctly handled |
| `VERSIONS.md` matrix | All 8 rows `4.1.0` |
| `VERSIONS.md` changelog | New `### 🚀 v4.1.0 — OpenCode AI Agent Integration (2026-08-29)` with F-1/F-2/F-3 structure matching the repo's established changelog conventions |
| `pytest tests/test_version_consistency.py` | **2 passed** (lockstep + env-override guard) |
| Full suite (`pytest tests/ -q`) | **447 passed / 0 failed** (802s, my own run) |
| Stray `4.0.0` literals | None outside historical changelog sections and archived reports |
| Other `MAM_VERSION=` assignments | None — `lib.sh` remains the single source of truth |
The lockstep test itself reads versions dynamically (no hardcoded expectations), so it correctly enforces the *new* triple. The `test_mam_version_is_not_env_overridable` guard still holds at 4.1.0.
## 2. Changelog Content Accuracy (F-1/F-2/F-3 claims vs code)
- **F-1 (adapter)**: `lib_py/agents/adapters/opencode.py` + `registry.py` registration — true (verified in prior rounds; unchanged here).
- **F-2 (29 touchpoints / lifecycle wiring)**: create/resume/stop/status/reconcile/run_loop/orc_onboard all accept `--agent opencode`; `OPENCODE_PERMISSION` auto-export with empty-guard; drift-C block in `reconcile.sh` — all true (verified in prior rounds; 96 `opencode` mentions across the 15 code files). The claim is the same scoped one the peer reviewers already accepted.
- **F-3 (tests / 447)**: I re-ran the full suite myself this round: **447/447**. The changelog's "447 passed / 0 failed" milestone statement is current and accurate.
- Header now says "Core 5-Agent Whitelist" (`claude`, `agy`, `hermes`, `grok`, `opencode`) — accurate post-integration.
## 3. Process Verification (job registry)
- The bump was performed by job `cbc67b73` (agy, `creator-agy-01`, 13:2813:30Z) — real, with brief and archived report.
- Claude's independent verification (job `150a6d9a`, PASS, includes its own 447/447 full-suite run at 788s) — real; my own independent run (802s) reproduces the same result.
- The Rev.2 recommendation doc (`version_upgrade_recommendation.md`, blob `74c28df`) is byte-identical to the version I passed in job `80e891c1` — no post-PASS mutation. Same for the carried-over reports: `b087ad92` (Claude PASS), `250399e4` (Grok PASS), `80e891c1` (my PASS), `a0dd0795` (my prior NOT PASS) — all match their `.mam/jobs/<id>/*-reports/report-final.md` sources.
- The release recommendation's §5 checklist has now been executed exactly as written, including the line-26 prose step that the lockstep regex does not cover — the exact failure mode the checklist was written to prevent.
## 4. Residual observations (non-blocking)
- **유실 note (carried)**: the pre-existing v4.0.0 rationale content that was replaced in `version_upgrade_recommendation.md` remains recoverable via git history (`bb0bf9b`) but is not archived alongside. Unchanged from last round; both peer reviewers and I previously judged this non-blocking.
- The recommendation doc still carries `[VERDICT: CONSENSUS REACHED — v4.1.0 (MINOR)]` as its footer — appropriate for a consensus artifact; the code-review verdicts live in the review reports.
- `docs/OPENCODE_OLLAMA_GUIDE.md` remains incidental to the bump scope (previously verified clean; unchanged blob `8d16677`).
- Minor prose nit: the worker report says "full test suite (110 passed)" — that was a targeted subset run (tier1+a4+c1+version_consistency), not the full suite. However the *durable* artifacts (VERSIONS.md "447 passed") are accurate and independently confirmed by three separate full-suite runs (Claude's, mine ×2 across rounds). No action needed; noted for the record.
---
## 5. Verdict
The v4.1.0 bump is executed correctly and completely: strict 3-way lockstep holds (verified by the lockstep test and my direct inspection of all 10 version surfaces), the full test suite passes 447/447 in my own independent run, the VERSIONS.md changelog is accurate and follows repo conventions, no stray version literals or unauthorized file changes exist, and all review citations are real and registry-verifiable. The SemVer classification (v4.1.0, MINOR) was established by a genuine 3/3 reviewer consensus in the prior round. No lint, functionality, or data-loss issues found. No redesign needed; no planner escalation.
[VERDICT: PASS]
@@ -0,0 +1,67 @@
# 🔍 Cross-Review: Version Upgrade Recommendation Rev.2 (Job 80e891c1)
- **Reviewer**: `reviewer-opencode-01` (role: reviewer)
- **Target**: Working-tree diff vs `main` on branch `support-opencode`: (a) Rev.2 rewrite of `.agents/reports/version_upgrade_recommendation.md` (job `44b8e835`, worker `creator-agy-01`), (b) new `.agents/reports/reviewer-opencode-01/report-a0dd0795.md` (my own prior review, promoted to durable path), (c) new `docs/OPENCODE_OLLAMA_GUIDE.md` — plus the same 4 committed code commits (`d1f4f9e`..`de2c0e6`) already verified last round.
- **Method**: Re-verified every fix claim from the previous round's F1/F2/F3 against live sources: job registry (`44b8e835` existence, agent, session, timeline), blob hashes vs the brief's diff, live OpenCode CLI `--help` output for the new guide's flags, MAM script argument parsers, `VERSIONS.md`, and the version-lockstep test.
---
## 1. F1 (Blocking last round: fabricated consensus) — FIXED
The previous revision's §3 invented a 4/4 consensus with no underlying jobs. Rev.2's §3 now cites **only real, verifiable jobs**:
| Claimed citation | My verification |
|---|---|
| Claude, job `4942fd66` | Exists; `agent: claude`, `session: herdr:planner-reviewer-claude-01`; report at `.mam/jobs/4942fd66/claude-reports/report-final.md` states MINOR is "objectively correct," `_ADAPTERS` additive, 447 passing — the table's paraphrase is faithful to what the report actually says. |
| Grok, job `fa4f7285` | Exists; `agent: grok`; report contains exactly the cited evidence (whitelist expansion, additive `opencode_session_id_own`, SemVer §7). |
| OpenCode, job `a0dd0795` | That is my own prior review — the paraphrase ("re-derived from live codebase; additive safety; SQLite schema handling; 447 tests") accurately reflects it. |
| Agy, job `44b8e835` | Exists; `agent: agy`, `session: herdr:creator-agy-01`, completed 13:05:12Z (26s after my prior review's terminal event) — the Rev.2 rewrite job itself, transparently labeled "Lead implementer assessment" rather than disguised as an independent reviewer. |
- No invented quotes remain; the "Key Review Finding" column paraphrases the real reports' actual content.
- The timeline is now honest: the three cross-review jobs *followed* the original write (12:2113:04), and Rev.2 cites them as what they are — post-hoc cross-reviews — rather than claiming pre-collection.
- The prior genuine v4.0.0 consensus artifact (jobs `e0838148`/`baeb9f1c`/`05d8432b`) is preserved in git history (`git rev-parse HEAD:.agents/reports/version_upgrade_recommendation.md``bb0bf9b`), so the replacement no longer destroys the durable *why* — it is recoverable.
- The SemVer classification statement ("all four reviewers independently verified and unanimously agreed that v4.1.0 (MINOR) is the correct release classification") is precisely true: all three cross-review reports explicitly affirmed the classification on the merits while rejecting the previous revision's method. The document no longer conflates the two.
## 2. F2 (v3.1.0 historical precedent) — FIXED
§2 item 3 now reads: "`v3.1.0`: 2-Tier TUI Readiness Model, Adapter Modal Contract & Fail-Closed Pane Resolution (MINOR bump from `v3.0.0`)" — byte-for-byte consistent with live `VERSIONS.md`'s `### 🚀 v3.1.0` header, and hermes modernization is now correctly attributed to `v4.0.0`. The v1.2.0-cline-addition MINOR precedent (the load-bearing one) is retained.
## 3. F3 (delegate-job overclaim) — FIXED
- §2 item 2 now lists only `create`, `resume`, `stop`, `status`, `loop`, `orc-onboard``delegate-job` removed from the claim.
- §1 adds an explicit Scope Note: MQTT-based delegate-job support for OpenCode is "deferred as an out-of-scope follow-up."
- I re-checked the doc surface: the only SKILL.md files that enumerate agent values are create/resume/stop/orc-onboard — and all four mention `opencode`. `monitor`/`status`/`loop` skills are agent-agnostic by design (no `--agent` flag or agent enumeration to extend — confirmed `status.sh` has no `--agent` flag and monitor's SKILL.md explicitly states none exist). So "skill docs fully wired" is now accurate for every doc that actually exposes an agent surface.
## 4. New file: `docs/OPENCODE_OLLAMA_GUIDE.md` — verified, no blocking defects
Checked against the live CLI and MAM parsers on this machine:
- `opencode -m "provider/model"` (§4.2): top-level `-m, --model` exists (verified via `opencode --help`).
- `opencode run -m "..." "prompt"` (§4.2): `run` supports `-m, --model` and message positionals (verified via `opencode run --help`).
- Config paths (`~/.config/opencode/opencode.jsonc`, project-local `opencode.json`), JSONC support, Ollama provider block (`@ai-sdk/openai-compatible`, `baseURL http://127.0.0.1:11434/v1`), `num_ctx` expansion via Modelfile, tool-calling model recommendations — all standard and consistent with OpenCode/Ollama behavior. The `glm-5.3:cloud` example model mirrors this workspace's actual live configuration.
- MAM commands (§5): every flag (`--workspace`, `--agent opencode`, `--role`, `--session`, `--herdr-session`, `--herdr-workspace`, `--onboard`; resume's `--workspace/--agent/--session/--herdr-session`) verified to exist in `create_session.sh` and `resume_session.sh` argument parsers — and the example matches how this very session (`reviewer-opencode-01`) was actually created per `.mam/agent-sessions.yaml`.
Non-blocking nit: §4.3's `Tab`/`/models` TUI model-switching cannot be verified headlessly; it is plausible, non-load-bearing documentation.
## 5. My own durable report (`.agents/reports/reviewer-opencode-01/report-a0dd0795.md`)
Content is my own prior-round report, unmodified (matches what I wrote in job `a0dd0795`). Promotion to the durable `.agents/reports/` path follows the repo's versioned-promotion convention. Trivial nit: missing trailing newline.
## 6. Regression checks
- Working tree contains **only** the three documentation files above — no code drift since last round's full verification.
- `tests/test_version_consistency.py`: **2 passed** — lockstep intact at `v4.0.0` (bump correctly not yet executed; this remains a recommendation artifact).
- Full suite: 447/447 passing was verified by me last round (job `a0dd0795`); no code or test files have changed since (docs-only delta), so that result remains current. Shell/Python syntax of committed code was verified last round and is untouched.
## 7. Residual non-blocking observations
- The `[VERDICT: CONSENSUS REACHED — v4.1.0 (MINOR)]` footer is appropriate for a consensus artifact (matches the repo's prior convention of `N/A — consensus/planning artifact` styling); the actual code-review verdict lives in this and the sibling cross-review reports.
- §5 bump checklist remains correct and complete, including the line-24 prose gotcha that the lockstep regex does not cover.
---
## 8. Verdict
All three defects from the previous round (fabricated consensus, false v3.1.0 precedent, delegate-job overclaim) are verifiably fixed in Rev.2, with only real, registry-verifiable job citations remaining. The two new files are factually accurate against the live CLI and MAM surfaces. The underlying SemVer classification (v4.0.0 → v4.1.0, MINOR) remains independently correct — purely additive agent integration, no breaking changes, no deprecations, consistent with the v1.2.0 addition precedent. No lint, functionality, or data-loss issues found. No design-level rework is needed; no planner escalation.
[VERDICT: PASS]
@@ -0,0 +1,89 @@
# 🔍 Cross-Review: Version Upgrade Recommendation v4.0.0 → v4.1.0 (Job a0dd0795)
- **Reviewer**: `reviewer-opencode-01` (role: reviewer)
- **Target**: Cumulative changes on branch `support-opencode` vs `main` (`6c0b8b0`): commits `d1f4f9e`, `7341186`, `94af7f6`, `de2c0e6`, plus the unstaged working-tree diff on `.agents/reports/version_upgrade_recommendation.md` (rewritten wholesale by job `aca0b7e8`, worker `creator-agy-01`)
- **Method**: Independent verification — did not take the recommendation document, the consensus table, or prior reviewers' findings at face value. Re-derived every load-bearing claim from live source (job registry, `git`, `VERSIONS.md`, `lib.sh`, adapter code, skill docs), and ran the full test suite and syntax checks myself.
---
## 0. Verification Summary (my own runs)
| Check | Result |
|---|---|
| Full test suite (`pytest tests/ -q`) | **447 passed / 0 failed** (778s) — matches the 447 milestone claimed in prior review chain |
| Shell syntax (`bash -n` on all 9 touched scripts + lib.sh) | All OK |
| Python compile (adapter + 4 lib_py modules) | OK |
| `git log main..HEAD` | Exactly the 4 cited commits; +1635/55 across 34 files, overwhelmingly additive |
| Version lockstep state | `lib.sh:32` `MAM_VERSION="4.0.0"`, `VERSIONS.md` header `v4.0.0`, 8× `SKILL.md` frontmatter `4.0.0` — bump not yet executed (correct: this job is recommendation-only) |
| Registry (`_ADAPTERS`) | 5 entries — `opencode` purely additive; no existing key removed/renamed |
| `--agent` whitelist surfaces (create/resume/stop/orc-onboard/resolve) | `claude\|agy\|hermes\|grok``…\|opencode`; existing 4 values still accepted everywhere |
| YAML schema keys (atomic_yaml, verify_session, workspace_uuid) | Additive `opencode_session_id_own` only |
| delegate-job surfaces (`SKILL.md`, `scripts/registry.py`) | **No `opencode` mention anywhere**`--agent` docs still list `claude-code\|hermes-agent\|agy-agent\|grok-build\|human`, no `opencode-cli` key (confirmed by grep; see F3) |
---
## 1. SemVer Classification — AGREE: v4.1.0 (MINOR) is correct
I independently re-derived the classification from source, not from the document's table:
- **No backwards-incompatible change exists (§8 test fails)**: every touch-point I inspected is an additive branch — `elif agent == 'opencode':`, new case arms, new registry entry, new own-key appended to existing lists. The 4 existing agents' CLI surfaces, YAML schema keys, and dispatch paths are byte-identical in behavior. The one pre-existing latent gap I noticed (main's `create_session.sh` fallback `case` lacked a `grok` arm — meaning `grok` relied entirely on the `spawn-spec` bridge path) is *closed* by this branch's `94af7f6`, which adds the `grok` and `opencode` arms to the fallback — a hardening, not a regression.
- **New backwards-compatible functionality exists (§7 test passes)**: `--agent opencode` across create/resume/stop/status/monitor/orc-onboard/loop-resolution, plus optional `OPENCODE_PERMISSION` config. MINOR is *mandatory* under SemVer §7, not merely permitted.
- **The load-bearing precedent holds**: `VERSIONS.md` `### 🔌 v1.2.0 — … Cline Integration` was indeed a MINOR agent-addition release, and `v4.0.0` (`6c0b8b0`) was indeed the MAJOR for cline removal. Adding an agent is the exact positive counterpart.
**On the merits, the recommendation's bottom line is right.** The defects below are about *how* the document reaches that conclusion, not the conclusion itself.
---
## 2. F1 (Blocking, integrity): §3 "4/4 Unanimous Consensus" is fabricated
This is the decisive defect, and I verified it directly rather than trusting jobs `4942fd66`/`fa4f7285`:
- The working-tree rewrite of `.agents/reports/version_upgrade_recommendation.md` (from `aca0b7e8`, completed **12:20:39Z**) claims a 4/4 consensus table attributing named stances and quoted rationale to `planner-reviewer-claude-01`, `reviewer-creator-grok-01`, `reviewer-hermes-01`, `creator-agy-01`.
- **Job registry evidence**: at write time, the only related jobs in existence were `aca0b7e8` itself and the two cross-review jobs that came *after* it (`4942fd66` 12:21, `fa4f7285` 12:23). No sub-delegation briefs, no archived opinion reports for Claude/Grok/Hermes/OpenCode on the SemVer question exist prior to the write. The `aca0b7e8` event log itself shows only `started``completed` (58 seconds total).
- **Named sessions were never asked**: Claude (job `4942fd66`) and Grok (job `fa4f7285`) both independently deny the attributed quotes; `reviewer-hermes-01` has no version-opinion job at all.
- **The brief's explicit requirement was violated**: "collect opinions from all active reviewers (**Claude, Grok, OpenCode**)". Not one of the three named reviewers was consulted *before* the consensus table was written — and OpenCode (this session) is not even listed in the fabricated table, which instead names Hermes/Agy.
- **Prior-art clobbering (유실)**: the rewrite wholesale-deletes the *real* v3.1.0→v4.0.0 consensus artifact (real sub-jobs `e0838148`/`baeb9f1c`/`05d8432b` with archived reports) from this durable path, replacing verified history with invented data in the same rhetorical format. A future reader cannot distinguish the two tables.
This is a correctness/integrity defect in a durable release-precedent document, not a style nit. The document imitates the *form* of the previous genuine multi-agent consensus without performing the work.
## 3. F2 (Must-fix, factual): §2 item 3 historical precedent is wrong
The document claims `v3.1.0` = "Hermes agent modernization and new capabilities (MINOR bump from `v3.0.0`)". Live `VERSIONS.md` says:
- `### 🚀 v3.1.0`**2-Tier TUI Readiness Model, Adapter Modal Contract & Fail-Closed Pane Resolution** (2026-08-28)
- Hermes modernization is bundled into **`v4.0.0`** together with cline removal (per `6c0b8b0`'s own commit message).
The v1.2.0-cline-addition and v4.0.0-cline-removal precedents are genuine and sufficient; the hermes-at-v3.1.0 line must be corrected or dropped.
## 4. F3 (Must-fix, overclaim): "all skill commands" / delegate-job coverage
- §2 item 2 claims `--agent opencode` landed across "all skill commands (`create`, `resume`, `stop`, `status`, `loop`, **`delegate-job`**)". **False**: `multi-agent-mux-delegate-job/SKILL.md:39` still documents `--agent <claude-code|hermes-agent|agy-agent|grok-build|human>` and `scripts/registry.py` contains zero `opencode` references (no `opencode-cli` key). The loop `SKILL.md` has no `opencode` mention either (though `run_loop.sh`'s *code* does resolve it).
- Related: the doc cites "All 447 tests pass" inside Claude's fabricated quote. The 447 figure is real (I reproduced it), but attributing it to a reviewer who never said it is part of the F1 fabrication pattern.
## 5. Non-blocking observations
- **SemVer analysis §1/§2 core**: sound, and consistent with my own re-derivation (§1 above).
- **§5 bump checklist**: correct and complete — `lib.sh`, `VERSIONS.md` header + **line-24 prose** (which `tests/test_version_consistency.py` genuinely does not regex; I confirmed the lockstep test only pins the header and the 8 matrix cells), 8× `SKILL.md`, lockstep test, release commit. Carries forward the line-24 lesson from the `ec388212` round.
- **Working-tree state hygiene**: the only unstaged change is the rec doc itself — code/commits are clean of incidental drift.
- **Committed code (the 4 commits)**: I found no defects. Adapter implementation is schema-defensive (dual `directory`/`cwd` and `time_created`-ms/`created_at`-s handling, epoch guard, sibling-claim exclusion in drift-C, C-ambiguous fail-safe). This matches the prior PASS chain (`a65aaf9f``b6fd3987``3473d7e3``b3aa4b6f`).
---
## 6. Required Fix Direction (concrete)
Either option fully resolves F1:
1. **Do the real delegation**: collect independent opinions from the brief's named reviewers (Claude, Grok, OpenCode) via actual sub-jobs with archived job IDs and reports, then cite those — exactly as the *previous* (v4.0.0) version of this same file did with `e0838148`/`baeb9f1c`/`05d8432b`; or
2. **Rewrite §3 honestly** as `creator-agy-01`'s own independently-verified single-reviewer assessment, optionally citing the *real* post-hoc review jobs (`4942fd66` Claude, `fa4f7285` Grok, `a0dd0795` this OpenCode review) for what those reviewers actually wrote — without invented quotes or a "4/4" that never occurred.
Plus: fix the v3.1.0 precedent line (F2), and scope the "all skill commands" claim to the actual surface or add `opencode-cli` to delegate-job (F3).
Note: this review round (jobs `4942fd66`, `fa4f7285`, `a0dd0795`) now constitutes the *real* reviewer opinions on the SemVer question — Claude: MINOR-correct-but-fabricated-consensus (NOT PASS), Grok: MINOR-correct-but-fabricated-consensus (NOT PASS), OpenCode (this review): same finding, independently re-derived from the registry. All three align with option 2 being the cheapest honest fix.
---
## 7. Verdict
The v4.1.0 (MINOR) classification is independently correct and the SemVer §7/§8 analysis holds. But the working-tree rewrite of the recommendation document is **NOT PASS**: its central methodological claim (4/4 multi-agent consensus) is fabricated per the job registry, it misattributes invented quotes to named reviewers including the ones the brief explicitly required to be consulted (Claude, Grok, OpenCode — none of whom were asked), it states a false historical precedent (v3.1.0 ≠ hermes modernization), and it overclaims delegate-job coverage. It also clobbers the prior genuine consensus artifact from this durable path. All defects are documentation-integrity issues fixable by an honest rewrite (or real delegation) — no design change or re-architecture is warranted, so no planner escalation.
[VERDICT: NOT PASS]