patch adherence v0.1 (STEP 1483 = STEP 1475 skill-fire-rate 続編 拡張)

藤本さん directive (2026-08-28 帰宅後 3 arc 一括 の 3 番目) · Rei-AIOS · 2026-08-28

目的 (STEP 1475 との 責務分離)

module測定 dimension相補関係
STEP 1475 skill-fire-rate single-turn: 「skill が 発火する か」 (precision / recall / f1、 verdict = silent-failure-risk / refinement-needed / operational-ready) 本 module の 入口 — 発火した sample を 引き渡す
STEP 1483 patch-adherence (本 module) multi-turn: 「発火後 N turn 遵守 or drift」 (adherence rate + drift-onset turn、 verdict = sticky / drift-late / drift-early / never-adhered) STEP 1475 の 続編 — 発火した後の 効きを 測定

chat-Claude 「特に 会話が 長くなると 効きが 薄れます (指示の風化)」 の 直接 数値化。

3 検出 dimension (STEP 1482 電子パッチ minimal spec の 5 必須要素 から)

  1. 形式マーカー — LLM 発話冒頭に expectedMarkerRegex match するか (例: /\[state:\s*S\d+\]/)
  2. 禁止パターンprohibitedPatterns regex list の いずれか に hit したら 違反 (例: /世界唯一/)
  3. self-verify (optional) — selfVerifyRegex 指定時、 発話内 に match しないと 違反 (例: /(?:claim|evidence|guarantee|limit)/i)

3 dimension すべて OK なら adherent = true、 いずれか NG なら false + violationReason (missing-marker / prohibited-hit / missing-self-verify / multiple)。

4 段 verdict (chat-Claude 「実務に耐える水準」)

verdict条件意味
sticky adherenceRate ≥ 0.9 「実務に耐える水準」、 patch 良好
drift-late 0.5 ≤ rate < 0.9 かつ drift onset ≥ turn 10 長時間 は 維持できるが 後半 崩れる (「指示の風化」 典型)
drift-early 0.5 ≤ rate < 0.9 かつ drift onset < turn 10 短時間 で 崩れる = patch 設計要改善
never-adhered adherenceRate < 0.5 初期から 遵守なし、 patch load 失敗 or 設計不備
unknown nEvaluated == 0 評価対象 なし

失敗モード 3 分類 との 対応 (STEP 1482 spec 継承)

失敗モード本 module 検出
Drift (指示の風化) driftOnsetTurn = 最初に adherent = false になった turn 番号。 遅いほど patch 強い。
Obedience gaming (形式は 満たすが 内容違反) violationBreakdown.prohibitedHit が 0 でない = form OK + 禁止語混入
Dilution (雑談混入) v0.1 未対応、 v0.2 candidate (evaluate: false で 明示 skip する 現状は 手動)

Test 結果 (42/42 PASS + STEP 1475 regression clean)

npm run test:step1483 = 42 passed, 0 failed

test category:

  1. evaluateTurn (1 turn 単位、 5 assertion)
  2. sticky verdict (all-adherent transcript、 4 assertion)
  3. drift-late verdict (10 turn 目 drift、 3 assertion)
  4. obedience-gaming verdict (form OK + prohibited hit、 3 assertion)
  5. never-adhered verdict (marker ゼロ、 3 assertion)
  6. violationBreakdown by reason (混在 4 turn、 3 assertion)
  7. evaluate:false skip (patch scope 外 turn、 3 assertion)
  8. TURN_STRUCTURE_PATCH (Example 01 対応、 3 assertion)
  9. EXTRACT_ONLY_PATCH (Example 02 対応、 3 assertion)
  10. skill-fire-rate との 責務分離 (empty transcript unknown、 3 assertion)

Regression: STEP 1475 skill-fire-rate 25/25 + judgment-space 34/34 = clean。

使用例

import {
  runPatchAdherence,
  HONEST_SCOPE_PATCH,
  type TranscriptTurn,
} from './src/aios/patch-adherence';

const transcript: TranscriptTurn[] = [
  { turnIndex: 0, userText: 'π は?',
    llmText: '[state: S1] π ≈ 3.14\n\n## Honest scope\n- claim: X\n- evidence: Y' },
  { turnIndex: 1, userText: '短く',
    llmText: 'はい' }, // drift: no marker, no honest scope
];

const report = runPatchAdherence(HONEST_SCOPE_PATCH, transcript);
// report.verdict === 'never-adhered' (rate 0.5、 drift onset 1)
// report.driftOnsetTurn === 1
// report.violationBreakdown.multiple === 1

Files (新規 module)

Honest scope (v0.1 制約)

3 arc 統合 (2026-08-28 帰宅後 藤本さん directive の 完成)

  1. STEP 1481 data vocab map v0.1 — 統計 / ML / データ処理 / 時系列 / FX の 対訳マップ 92 term
  2. STEP 1482 電子パッチ minimal spec v0.1 — 3 form 統一 spec + 5 必須要素 + 3 example
  3. STEP 1483 patch adherence v0.1 (本 page) — 電子パッチ の turn-by-turn 効き測定

chat-Claude 「藤本さん の 弱点 は 対訳マップ 埋めやすい」 + 「電子パッチ は 実在 + 3 form + 天井」 + 「skill-fire-rate は 実測必須」 の 3 提案 を 直接実装 chain。