STEP 1838 · 2026-09-06 · Rei-AIOS comparator infrastructure · commit ff00ec57c

comparison-basis contract v0.1 — 比較基底の 横断契約 + conformance 計器

comparator 全計器を 横断する 「verdict が どの source の どの field を 突合して 出たか、 その 基底で 何が 見えないか」 を 機械可読に 宣言させる 契約 10 field + 4 gate を 定義し、 適合を 検査する read-only 計器を 追加。 STEP 1609 で harvest_lag に 入れた retention gate 最外化 を 比較基底に 一般化した もの。

1. なぜ この 契約 が 必要だった か

発端は rei-meta-mcp meta_check_coherence("seed_kernel") の 実測 payload:

この pattern は harvest_lag / plugin_census / source_freshness にも 同型に 存在しうるので、 1 計器の bug fix ではなく 横断契約に 昇格 させる。

2. 契約 10 field

field意味例 (harvest_lag)
gauge計器 ID"harvest_lag"
unitこの 基底が 属する 単位"arxiv-math.LO"
sourcesDeclared宣言 された 全 source["internal", "oracle"]
sourcesCompared実際に 比較に 参加した source["internal", "oracle"]
uncheckedSources宣言 されたが 未 到達[]
availableFieldssource 別 の 出せる field{"internal": ["id","publishedAt"], "oracle": ["id","publishedAt"]}
comparedFields実際に 突合した field (= meet)["id", "publishedAt"]
basisOrigin基底の 由来"intersection"
separatingPower分離力 5 値 順序尺度"identity-set"
undetectable基底で 見えない divergence class["lag older than compared window is invisible", ...]

+ verdict field (計器の 出した 判定値、 上記 10 field と 分けて 保持)。

3. 4 gate — verdict と 基底の 関係を 縛る

G1basis gate outermostcomparedFields 空 または separatingPower=none なら 肯定的 verdict 禁止。 「基底が 空なのに 一致している」 と 言わせない。 STEP 1609 の retention gate 最外化 と 同じ 位置づけ (他の どの 条件より 先に 効く)。

G2power honestyseparatingPower < content なら undetectable[] に 1 件以上 必須。 「弱い基底で 見ている」 ことを 読者が 読み取れる ように 強制。

G3meet consistencycomparedFields ⊆ ⋂ availableFields[compared source]。 片側にしか 無い field を diff として 報告するのを 拒む。 basisOrigin='intersection' の ときだけ 効く (非対称比較 'declared' は 通す)。

G4unchecked accountinguncheckedSources 非空なら 肯定的 verdict 禁止。 rei-meta §4 「UNCHECKED は coherent ではない」 の 機械可読版。

4. SeparatingPower — 分離力 の 順序尺度

none < scalar < multi-scalar < identity-set < content

5. 実測 basis-audit 結果

npm run comparator:basis-audit による 実測:

計器unit 数verdict備考
harvest_lag9/9CONFORMwindowCompared=0 の 8 feed は 既に N/A (G1 追認)
plugin_census4/4CONFORMcountedProbes<2 の class は 既に N/A (G1 追認)
source_freshness50/50CONFORMgeneratedAt 欠落 は 既に FLOWING (G1 追認)
rei_meta_coherenceN/A (out-of-band)MCP 応答なので runner の file 巡回 対象外

契約は 追認 であり 新規選定 ではない。 file 由来 3 計器は 既に G1 を behavior として 満たしていた ことを 実測で 確認。

6. rei_meta_coherence — 契約 未適合の 実測

唯一 NONCONFORM の 計器。 auditCoherencePayload(payload) による payload 手渡し 監査:

G1-basis-gate: CONFORM — basis non-empty (3 field(s), power=scalar)
G2-power-honesty: NONCONFORM — separatingPower=scalar (< content) but undetectable[] is empty
G3-meet-consistency: NONCONFORM — 2 compared field(s) outside the meet: latest_id (absent in: rei-memory-local); latest_timestamp (absent in: rei-aios-local-mcp)
G4-unchecked-accounting: CONFORM — 1 unchecked source(s) and verdict "divergent" does not assert agreement

反実仮想: 同 payload で statuscoherent に すると G4 も 落ちる — remote 未到達のまま coherent を 返せる 状態が 存在。

修正は 別 arc: STEP 1840 で rei-meta-mcp 側を 契約に 適合させた。

7. 成果物

Tests: 79/79 PASS + regression 166/166 + tsc --strict 0 errors。

8. Honest scope

9. Novelty 主張なし — Prior-art audit

2026-09-06 prior-art audit の 結論: 「descent / Robinson consistency radius / CQA / N-version programming / Merkle / RV 4値 semantics に 対応物が あり、 枠組みとしての 新規性は 無い」。 6 系統を 突き合わせた 結果、 rei-meta の 乖離検出 に 新理論と 呼べる 差分は 無く、 産物は 仕様の 穴 1 つ (verdict が 比較基底を 宣言しない ため coherent が 「全一致」 と 読まれる) の 昇格 のみ。

10. 関連 STEP

11. STEP 番号 由来

当初 STEP 1836 で 計画したが、 同日中に 別タブが STEP 1836 (comparator-cron mirror centralize) + STEP 1837 (cmix bpc corrigendum、 docs/notepad 先取り) を 使用済と判明したため STEP 1838 に corrigendum rename。 学び: 番号は commit で 確定 する もので、 計画時点の 予約 では ない。 4 系統 check (git log / notes/steps / package.json / docs/notepad) が 全て 必須。

12. 詳細 参照