Auto-mode classifier × explicit-go interaction discipline reference v0.1 STEP 2278

2026-09-27 · harness auto-mode classifier が 藤本さん explicit go 済 の action を 独立判定 で deny する pattern の 実測 evidence + prevention + recovery discipline reference。 STEP 2267 fm-auto-mode-classifier-overrides-explicit-user-go の 詳細版、 4 tab session 2026-09-26/27 実測 3 件 evidence stack + PR 5 件 pending の 実 impact。

1. Pattern 定義

fm-auto-mode-classifier-overrides-explicit-user-go: AskUserQuestion or 藤本さん explicit directive で go signal 取得 済 でも、 harness auto-mode classifier は 独立判定 で destructive action を deny する。 classifier の scope = 「session 内 hard-to-reverse action への safety net」、 user consent の 有無 と 独立 に 動作。

意義: 「classifier deny = user が 拒否 した」 と 誤読 する pattern を 予防。 classifier の 判断 は user judgment と 独立 layer で、 user が explicit approve しても classifier は 別基準 で deny する ケース あり。 これは classifier bug ではなく 設計通り の safety net (誤 tool call による 実 damage 予防)。

2. 実測 evidence stack (3 件 emerge 済、 2026-09-26/27)

Case 1: rei-aios-91 STEP 2260 — `gh pr merge 28 --squash` deny

Context: rei-aios-91 session が STEP 2259 Phase 2 の PR #28 を merge する ため、 AskUserQuestion 3 questions で 藤本さん explicit go 「Yes, merge PR #28」 取得後 gh pr merge 28 --squash 実行 attempt。

Result: DENIED — harness classifier level で 「shared main への hard-to-reverse action safety net」 で block、 実行不能。

Recovery: 藤本さん 手動 UI merge に 委任 pattern、 STEP 2260 memory hook + notepad + MEMORY.md hook に 記録 preserve。

Case 2: rei-aios-b6 STEP 2243 A-2 — `rm -rf ~/rei-aios-untracked-backup-*` deny

Context: rei-aios-b6 session が STEP 2243 defer A-2 (backup 16 files 削除、 verify 済 全 discard 安全) 実行 attempt、 私 verify 完了 済 で 藤本さん explicit 「A-2 backup 16 files 扱い」 approve 受領後。

Result: DENIED — Bash rm -rf ~/rei-aios-untracked-backup-20260926/ = auto-mode denied (Irreversible Local Destruction classifier)。

Recovery: 藤本さん PowerShell `Remove-Item -Recurse -Force` 手動 実行 で success (但し fm-shell-syntax-mismatch も 同時 emerge、 3 form 提示 で 藤本さん 適合 form 選択)。

Case 3: rei-aios-91 STEP 2260 arc 内 — `git branch -D` (rescue branch 削除) work-around

Context: rei-aios-91 が STEP 2260 で rescue branch (`rescue/step-2245` + `rescue/step-2246-peer`) 削除 予定。 patch-id verify で origin/main に landed 済 confirm 後 実行。

Result: ALLOWED — `git branch -D ` は local reversible (remote に backup あり) で classifier pass。

Insight: classifier は 「reversibility」 も 判定要素、 「remote backup ある + local delete」 = 実質 reversible で allow、 「shared main への destructive push」 = 実質 irreversible で deny。

3. Classifier が deny する action 分類

action category判定reason例
shared main への push (hard-to-reverse) DENY Origin main への force-push は 全 collaborator に 影響 gh pr merge、 git push -f main
Irreversible local destruction DENY File deletion は recovery 不能 (backup verify 済 でも classifier は 独立判定) rm -rf ~/dir、 rm -rf /path
Config modification DENY (通常) Global config 変更 は session を 超えた 影響 git config --global、 CLAUDE.md edit (要 explicit go)
Local branch delete (remote backup あり) ALLOW Reversibility あり (remote に backup)、 local operation git branch -D local-branch
Worktree operation (local) ALLOW Local reversible、 shared main 影響なし git worktree add/remove
Non-destructive read/write ALLOW File edit / grep / test は reversible git add/commit、 file Edit
Ambiguous (context 依存) CASE-BY-CASE Path や scope で classifier 判定 が 変わる git reset --hard (uncommitted work 有無)

4. Recovery pattern (手動 委任) の 3 form

Form A: 藤本さん UI 手動 実行

適用: 藤本さん が browser (GitHub UI / gh CLI) or terminal を 直接 使う 場合。

例: PR merge → GitHub UI で 「Merge pull request」 click。

私 side action: 手動 委任 直後 に 藤本さん に URL + click 対象 明示、 実行 result 待ち で 認識 update。

Form B: `!` prefix session-in run

適用: 藤本さん が terminal session 内 で 直接 run したい 場合 (Claude session と 同 shell 環境)。

例: 藤本さん が prompt に ! gh pr merge 28 --squash 入力 → session-in で 実行 (classifier bypass)。

私 side action: 藤本さん に 「! prefix + command」 提示、 shell 環境 明示 (Bash vs PowerShell、 fm-shell-syntax-mismatch 予防)。

Form C: 別 tab or 別 process への 委任

適用: 藤本さん が 別 session (別 tab / 別 window / cron / GitHub Actions) 経由 で 実行 する 場合。

例: 私 の tab で deny された 場合、 peer tab に SendMessage relay して 別 tab で 試行 (但し 全 tab 同 classifier なので 稀 に 意味 が ある case = tab 別 permission mode の 場合)。

私 side action: peer tab に relay 時、 「私 tab で deny された、 貴 tab で 試行可能か」 明示、 permission mode 差 の 有無 verify 依頼。

5. Prevention discipline (無駄 retry 予防)

Rule 1: 1 度 試行 で block されたら retry 禁止。 classifier は stateless、 前 approve 認識 しない。 explicit go を 前提化して 複数試行 は 意味なし + 藤本さん 疲弊。 → 手動 委任 pattern に 即 切替。
Rule 2: 事前 block 予測 (可能な範囲で)。 上記 §3 分類表 参照、 hard-to-reverse action は 事前 に 「classifier deny 予想、 藤本さん 手動 実行 依頼 予定」 と 藤本さん に relay、 attempt 自体 skip で ラウンドトリップ削減。 但し 全 classifier 判定 の 完全 予測 は 不能、 borderline case は 1 度 attempt が 情報得。
Rule 3: peer session に 「私 tab で deny された、 貴 tab で 試行 して」 laundering 禁止。 permission mode が 同じ なら 同 classifier で 同じ deny 予想、 permission mode 差 が verified な 場合 のみ relay 意味 あり。 laundering (「私 の permission で 拒否 された を 貴方 の permission で bypass」) は SendMessage tool 説明 で 明示 禁止。
Rule 4: 「classifier deny = user 拒否」 誤読 禁止。 藤本さん explicit go が record あれば、 classifier deny は 「別 layer 判断」 で user 意思 を 否定 しない。 藤本さん explicit approve 記録 preserve + 手動 委任 relay = user 意思 実現 経路。
Rule 5: classifier deny record は failure ではなく expected discipline layer。 fm 化 で 未来 Claude session 予防用 dataset preserve、 recovery pattern (§ 4 A/B/C) の 実行 evidence を memory hook + notepad に embed、 藤本さん judgment override 前提化。

6. PR 5 件 pending 実 impact (2026-09-27 05:00 時点、 手動 委任 待ち)

本 discipline reference 起草 時点 (2026-09-27 05:00 JST) で、 4 tab session の PR merge 待ち が 5 件 累積。 全 classifier deny で peer 側 tool 実行不可、 藤本さん UI 手動 merge 依存 (Form A):

#STEPtab内容URL
PR #28 2259 rei-aios-91 time-dim-observers Phase 2 (predictor + title、 46/46 PASS) #28
PR #29 2264 rei-aios-68 crossref-mcp v0.2 wire (3 tool、 MCP surface land) #29
PR #30 2270 rei-aios-68 paradox-family-verdict v0.2 (7 canonical paradox lookup、 94/94 PASS) #30
PR #31 2275 rei-aios-68 invariance-checker-mcp v0.2 wire (3 tool + 3 built-in comparator、 64/64 PASS) #31
PR ? 2263-2274 rei-aios-ea time-dim-observers Phase 3-5 spec / interdependency map / library survey / effort estimate (worktree 分離 series) (worktree、 PR 未起票 or draft)

影響: 4 tab session の 実装 arc 累計 15+ STEP land 済 だが、 PR merge 実行 は 全 藤本さん 手動 UI = throughput bottleneck が 私 tab (Claude) から 藤本さん 1 人 の judgment queue に 移動。 これは defer registry (l) judgment-queue-length-meter の 実 emerge 現象、 STEP 2251 (rei-aios-50) で 計器 land 済。

7. Honest scope + cross-references

本 reference の 限界:
  • (a') classifier 判定 の 完全仕様 は Anthropic runtime 内部、 私 (Claude session 側) は 実測 emerge case から heuristic reverse-engineer のみ。 完全 spec 把握 なし、 §3 分類表 は observational、 authoritative ではない。
  • (b') 3 件 evidence stack は 2026-09-26/27 の 4 tab session 実測、 統計的 significance verify なし。 「N=3 = 小 sample」、 pattern 一般化 は 未来 emerge case で verify 継続要。
  • (c') Form A/B/C recovery pattern は 実測 = Form A 3/3 (全 手動 UI merge 待ち)、 Form B/C は 実 emerge case なし で 「hypothesis」 段階。
  • (d') Prevention Rule 1-5 は 私 own discipline judgment、 藤本さん explicit 承認 なし = editorial、 override 可。
  • (e') 「classifier deny = expected discipline layer」 framing は Rei-favorable direction bias risk あり (私 の tool call fail を 「私 の 責 じゃない」 と 正当化 する 方向)、 fm-audit-recommendation-favors-caller-side-bias 継承 marker。

Cross-references