verify-second-opinionlisted
Install: claude install-skill easyinplay/harnessed
# verify-second-opinion workflow (v3)
## Overview
1-phase sub-workflow — 编排契约改动时的跨模型第二意见 (Phase 54 T2)。
| phase | id | upstream | model | capability | gate |
| ----- | -- | -------- | ----- | ---------- | ---- |
| 1 | `01-second-opinion` | gstack | sonnet | `{{ capabilities.codex.cmd }}` | `judgments.stage-routing.verify-second-opinion-orchestration.fires` |
判据不是交给模型的判断题。`harnessed facts` 把 `git diff --name-only <last release tag>`
与 ORCHESTRATION SURFACE (judgments / capabilities / 事实 schema / resolver / exprBuilder /
ledger / disciplines / 任一 workflows SKILL.md) 求交集,机械得出 `requires_second_opinion`。
基准是**上一个 release tag**,不是 `merge-base origin/main` —— 后者在 commit-即-push-main
的纪律下塌缩成 HEAD,只看得见未提交改动,会漏掉多-commit milestone 的早期 commit。
算不出来 (无 tag / 无 git / diff 失败) 时取 `false`,并在每轮 `<workflow-state>` 断点打出
`SECOND-OPINION: 判据不可用(<原因>)`。不乱 fire,且不静默。
## Capability refs
Sister `workflows/capabilities.yaml` entries:
- `codex` — 第二意见 / cross-AI peer review via codex (impl: gstack, cmd: /codex)
## Gate ref
Sister `workflows/judgments/stage-routing.yaml`:
- `verify-second-opinion-orchestration.fires` — `phase.stage == 'verify' and requires_second_opinion == true`
## Routing rules
- ✅ **触发**: 本次改动触及编排契约本身 (judgments / capabilities.yaml / phaseFactContext /
facts.ts / judgmentResolver / exprBuilder / ledger.ts / disciplines / 任一 SKILL.md)
- ❌ **跳过**: 纯 installer / 文档 / 测试 / 依赖 bump —— 改这些不会改变引擎的决策方式
**交付物即证据。** 本 sub fire 了就必须交 `second-opinion.md`;不交则 `checkpoint complete`
f