STEP 1585 — Cross-Family Reviewer Wire (Gemini skeleton)

STEP 1585 · ARIS auto-review-loop 原則移植 · Rei-AIOS · 2026-08-30 · commit f95c8818b

要旨

ARIS auto-review-loop の cross-family reviewer 強制 (Anthropic executor → Codex reviewer、 same-family → REVIEW_UNAVAILABLE) を Rei に軽量移植。 daily-invention-reporter.ts に Gemini API 経路 skeleton wire + Claude/Gemini 統合 logic (agree / disagree / fallback 4 分岐)。 藤本さん budget 判断 (GEMINI_API_KEY set) が blocking condition、 wire 完成状態で API key 追加 で 即動作。

4 分岐 logic

CaseevaluatedByScoreComment
両者 valid + agree (scoreDiff<0.2 かつ isNovel 一致)cross-family-agreeaveraged scoreClaude+Gemini 一致
両者 valid + disagreecross-family-disagreeClaude primarydisagreementReason 明示 (human judgment 必要)
Claude fail + Gemini validGemini score + Claude fallback subtype 保持Gemini scoresurviving side use
両者 failClaude fallback preserve (STEP 1572 pattern)local heuristicbackward compat

evaluatedBy union 拡張

evaluatedBy:
  | 'claude-api' | 'local-heuristic'
  | 'local-heuristic-fallback-no-api-key'                   ← STEP 1572
  | 'local-heuristic-fallback-api-http-error'                ← STEP 1572
  | 'local-heuristic-fallback-api-exception'                 ← STEP 1572
  | 'gemini-second-opinion'                                  ← STEP 1585 new
  | 'gemini-fallback-no-api-key'                             ← STEP 1585 new
  | 'gemini-fallback-api-http-error'                         ← STEP 1585 new
  | 'gemini-fallback-api-exception'                          ← STEP 1585 new
  | 'cross-family-agree'                                     ← STEP 1585 new
  | 'cross-family-disagree'                                  ← STEP 1585 new

crossFamilyDetail?: {
  claudeEvaluation?: {worldSignificance, isNovel, dfumtAlignment, comment}
  geminiEvaluation?: {worldSignificance, isNovel, dfumtAlignment, comment}
  agreementScore?: number
  disagreementReason?: string
}

Test coverage (22/22 PASS)

test/step1585-cross-family-reviewer-wire-test.ts — 7 section:

  1. Gemini no API key → gemini-fallback-no-api-key + ledger
  2. Gemini HTTP 403 → gemini-fallback-api-http-error + ledger
  3. Cross-family agree → averaged score + crossFamilyDetail populated
  4. Cross-family disagree (score diff) → disagreementReason mentions score
  5. Cross-family disagree (isNovel mismatch) → agreementScore=0
  6. Claude fail + Gemini valid → gemini-second-opinion + Claude fallback tag 保持
  7. 両者 fail → Claude fallback preserve (backward compat)

Honest scope

Related