Claude Codeに頼む手作業を、依頼箱で自動にした

ロボットのシミュレーションを進めるとき、作業を2つの AI に分けています。設計と指示文を書くのは Claude(チャットで話す AI)。Mac の上でコードを書いて動かすのは Claude Code(Mac のターミナルで動く、コードを書く AI)です。この2つの間で依頼文を運んでいたのは、人の手でした。Claude が書いた依頼文を開いてコピーし、Claude Code の画面に貼り、終わったら結果をまた Claude に伝える。配膳ロボットのシミュレーションだけで、10月20日から26日の7日間に、依頼文が21本、Claude Code からの報告が43本、この往復を通っています。

今はUnityや実機の作業をclaude codeに頻繁に手動で頼んでいますが、それが自動化できないか(重要な指示だけは手動はいいけど、それ以外のところ)

そこで「依頼箱」を作りました。iCloud のフォルダに Claude が依頼文を置くと、Mac で待っている小さなプログラム(見張り係)がそれを見つけ、Claude Code を画面なしで動かします。Claude Code の報告は同じフォルダに戻り、Mac に通知が出ます。人が手を入れるのは、決めてほしいことが出たときと、実機を動かす前だけです。

作る途中で、予想していなかったことが2つありました。1つは、据え付けを Claude Code に頼むと、「別の Claude を起動して無人で動かす」操作だけが、Claude Code 自身の安全の仕組みに止められたこと。もう1つはお金です。最初に自動で動いた Claude Code は、契約している定額のプランではなく、APIキーの従量課金で払われていました。 ふだん手で使う Claude Code は定額のプランなのに、画面なしで起動したときだけ、Mac に設定されていた APIキー(使った分だけ払う契約の鍵)が優先されていたのです。1回分は約16円(Claude Code の見積もりで0.0997ドル。1ドル=158円)。見張り係が Claude Code を起動するときだけ APIキーを外すように直し、2回目は定額のプランの枠で動きました。

やったことなぜ結果
Claude が Mac のどこに届くかを確かめた
どこまで自動にできるかを決めるため
届くのは選んだ2つのフォルダだけ。ターミナルのアプリには文字を打てない
依頼箱と見張り係を作った手で貼る往復をなくすため
依頼を置いてから報告が戻るまで約20〜30秒(疎通確認2回)
自動で回す場所を1つに絞り、危ない操作を拒否にした
無人で動くので、範囲を仕組みで縛るため
回すのはサービスロボット導入シミュレーションの Unity のフォルダだけ
偽の Claude Code で9つの場合を確かめた
本物で失敗すると、お金と時間がかかるため
時間切れのとき見張り係が止まらなくなる穴を見つけて直した
APIキーを外し、claude.ai のコネクタも止めた
従量課金を避け、無人の作業が Notion などに書き込めないようにするため
警告が消え、コネクタは0個になった
Mac にログインしたら自動で起動する形にした
再起動のたびにコマンドを貼らないため
次の再起動で確かめる

1回目の疎通確認(つながるかを確かめるだけの依頼)では、Claude Code が夜のシミュレーションの判定を読み、件数の表と本文が食い違っているのを見つけてきました。判定のスクリプトの不具合です。まだ本番の依頼は1本も流していません。依頼箱に最初に流す本番の依頼は、この不具合の直しにする予定です。

作業ログ ― Mac で届く範囲を確かめてから、依頼箱が再起動のあとも動くようにするまで

この記事のコード・ログ・データは、1ファイルずつ下に置いています。全文はリンク先にあります。

ファイルの一覧(2本)

01_Claude_Code_9_test_inbox_runner.sh.txt ― 偽の Claude Code で9つの場合を確かめた / test_inbox_runner.sh(確かめのスクリプト)・3,064字

02_inbox_runner.py.txt ― inbox_runner.py(見張り係の全文・最後の版)・11,703字

ここから下は作業の記録です。時間・件数・費用は、ログとファイルから読んだ値です。依頼箱で手作業がどれだけ減るかは、まだ測っていない見込みで、何で確かめるかを添えています。

Claude が Mac で使えるのは、選んだ2つのフォルダの中のシェルだけだった

この作業は、Claude のデスクトップアプリから Mac につないだ会話で進めました。最初に、Claude がその Mac で何をできるかを確かめています。

Claude が Mac で使えるシェル(コマンドを打つ画面)は、Mac の中で動く小さな Linux の上にあります。そこから見えるのは、会話を始めるときに選んだ2つのフォルダ(iCloud の PixelstoMotors と、外付けの SSD の KIOXIA)だけです。

$ uname -a; ls $HOME/mnt/; which python3 git node
Linux claude 6.8.0-138-generic #138~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug  7 13:34:27 UTC  aarch64 aarch64 aarch64 GNU/Linux
KIOXIA
PixelstoMotors
/usr/bin/python3
/usr/bin/git
/usr/bin/node

Mac の画面を見て操作する機能もありますが、ターミナルのアプリは「クリックだけ」の扱いで、文字を打つことも貼り付けることもできない決まりです。つまり Claude から直接は、Unity・実機・~/r2r2r-scripts(実機のコード)・Mac の Claude Code のどれにも届きません。届くのはフォルダだけなので、フォルダを受け渡しの場所にする形にしました。

手で運んでいた依頼文は、7日間で21本、報告は43本だった

配膳ロボットのシミュレーション(Unity で作ったファミレスで、配膳ロボットと店員を動かす試算)の作業フォルダには、Claude Code あての依頼文と、Claude Code からの報告が日付つきで残っています。

$ ls -l --time-style=+%m-%d claude_code_request_*.md | awk '{print $6, $7}' | sort
10-20 claude_code_request_v0.md
10-20 claude_code_request_v1_store.md
10-20 claude_code_request_v2_guests.md
10-21 claude_code_request_v3_fixes.md
10-22 claude_code_request_v4_json_store.md
10-22 claude_code_request_v5_align.md
10-22 claude_code_request_v5b_routes.md
10-23 claude_code_request_v6_yield.md
10-23 claude_code_request_v6b_yield_only_in_path.md
10-23 claude_code_request_v7_stageB.md
10-23 claude_code_request_v7b_stageB_resume.md
10-23 claude_code_request_v8_dish_arrival.md
10-24 claude_code_request_v8b_timeout_place_rng.md
10-24 claude_code_request_v8b_timeout_rng.md
10-24 claude_code_request_v9_map_planner.md
10-25 claude_code_request_v10_valve_v28.md
10-25 claude_code_request_v10b_stageB_timeline.md
10-25 claude_code_request_v11_project_split.md
10-25 claude_code_request_v12_night_runner.md
10-25 claude_code_request_v13_pass_by_and_clock.md
10-26 claude_code_request_v14_ledger_fixes.md

$ ls claude_code_reports | cut -c1-8 | sort | uniq -c
      6 20261020
      9 20261021
      9 20261022
      2 20261023
      1 20261024
      6 20261025
      7 20261026
      3 20261027

夜のあいだに Unity を回す仕組み(画面なしの実行ファイルと、並べた条件を順に回す実行係)は、10月25日にできています。残っていた手作業は、依頼文を Claude Code に渡すところと、報告を Claude に戻すところでした。

依頼箱はフォルダ6つで、依頼の頭に作業フォルダと上限時間を書く

依頼箱は iCloud の PixelstoMotors/依頼箱/ です。Claude は会話の中からこのフォルダに書けて、人は iPhone からでも中を見られます。

フォルダ中身
新規
Claude が依頼を置く。見張り係が1件ずつ自動で実行する
確認待ち
人の確認が要る依頼。読んで良ければ「新規」へ移すと実行される
実行中
いま Claude Code が作業している依頼
済み/失敗終わった依頼
結果
Claude Code の報告(.md)と元の出力(.json)
_仕組み
見張り係の元のファイル。据え付け先は Mac の ~/r2r2r-scripts/inbox/

依頼文の頭には、どのフォルダで作業するかと、何分で打ち切るかだけを書きます。

---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 120
---
(依頼の本文)

自動で回してよい作業フォルダは、設定ファイルの allowed_dirs に書いたものだけにしました。今はサービスロボット導入シミュレーションの Unity のプロジェクト(ServiceSim)だけです。ロボットアームの Unity や実機のコードのフォルダの依頼が来ても、実行せずに「失敗」へ回します。このプロジェクトでは、関節や姿勢を変えるコードは、設計 → 実装 → 外部のレビュー → 人が実機で試す、の順を飛ばさない決まりがあります。依頼箱で自動にするのは、実装とレビューまで。実機に流す前は「確認待ち」で止めます。

  • ねらい:Claude と Claude Code の間で、人が依頼文と報告を運ぶ往復をなくす
  • 変わったこと:Claude が「新規」に依頼を置けば、見張り係が Claude Code を起動し、報告が「結果」に戻る。人が見るのは、報告の「決めてほしいこと」と「確認待ち」だけ
  • 見込める効果:依頼1本あたりの貼る・戻すの手作業がなくなる(7日間で21本の依頼・43本の報告の分)。依頼ごとに新しい短い会話で動くので、長い会話で頼み続けるより、定額のプランの枠の減りも少ない見込み。実際に減ったかは、依頼箱の 記録.log の本数と、プランの使用量の表示で確かめる

見張り係は Claude Code を画面なしで起動し、承認を人に聞かない

見張り係(inbox_runner.py)は、30秒ごとに「新規」を見て、依頼があれば Claude Code を次の形で起動します。

claude -p "<依頼文>" --output-format json --permission-mode auto --permission-prompts none --settings settings.json
  • -p:画面を開かずに1回だけ動かし、終わったら返事を出して閉じる
  • --output-format json:返事を、報告の文・会話の番号・止められた操作の一覧などが入った形で受け取る
  • --permission-mode auto:ファイルの書き換えやコマンドを、人に聞く代わりに、Claude Code の中の判定の仕組みが1つずつ見て通すか決める
  • --permission-prompts none:人に聞かないと進めない操作は、待たずに断る。夜中に承認待ちで止まらないようにするため
  • --settings settings.json:必ず断る操作の一覧。git clean・git add .・強制の push・rm -rf・sudo を入れた。git clean は、以前 Unity のシーンを消した事故があってから使わない決まり

依頼文の前には、見張り係が毎回同じ前置きを付けます。人は見ていないこと、範囲の外は変えないこと、方針や数値の決め方・公開・実機を動かすことに当たったら手を止めて「決めてほしいこと」に書くこと、報告は日本語で決まった形にすること、の4つです。前置きの全文は、下のコードの PREAMBLE にあります。

時間切れの確かめで、見張り係が止まらなくなる穴が見つかった

本物の Claude Code で試す前に、決まった返事を返すだけの偽の Claude Code を作って確かめました。偽物は、依頼文の言葉によって、すぐ返す・5分眠る・子のプロセス(裏で動き続ける別のプログラム)を残して終わる、などを切り替えます。

最初の版で「5分眠る」依頼を上限1分で流したところ、見張り係が戻ってきませんでした。確かめのコマンドは2分30秒で打ち切られています。最初の版は、Claude Code の出力を管(パイプ)で受け取り、時間切れのときは Claude Code に止まる合図を送ってから、管が閉じるのを待っていました。

    p = subprocess.Popen(cmd, cwd=str(workdir), stdout=subprocess.PIPE,
                         stderr=subprocess.PIPE, text=True, encoding="utf-8")
    timed_out = False
    try:
        out, err = p.communicate(timeout=limit_min * 60)
    except subprocess.TimeoutExpired:
        timed_out = True
        # 先に SIGINT(その回の作業を終わらせる)→ だめなら SIGTERM → 最後に kill
        for sig, wait in ((signal.SIGINT, 120), (signal.SIGTERM, 60)):
            p.send_signal(sig)
            try:
                out, err = p.communicate(timeout=wait)
                break
            except subprocess.TimeoutExpired:
                continue
        else:
            p.kill()
            out, err = p.communicate()

偽物は眠るために sleep という子のプロセスを起動していて、その子が管の口を持ったままでした。親が止まっても子が管を閉じないので、見張り係は管が閉じるのを待ち続けます。本物の Claude Code も、ビルドや Unity の実行を裏で動かしたまま終わることがあるので、同じことが起きえます。

  • ねらい:時間切れや、子のプロセスが残ったときでも、見張り係が次の依頼へ進めるようにする
  • 変わったこと:出力を管ではなく一時ファイルで受け取り、Claude Code を自分専用のプロセスのまとまりで起動する。時間切れのときは、そのまとまり全体に、止まる合図 → 終われの合図 → 強制終了の順で送る。時間内に終わったときは、残った子のプロセスに手を出さない(夜の実行係を裏で起動して終わる依頼もあるため)
  • 見込める効果:直す前は、上限1分の依頼で2分30秒たっても戻らなかった(打ち切られるまで待ち続けた)。直したあとは、同じ依頼が61秒で「時間切れ」として報告に残り、次の依頼へ進んだ(下の確かめの出力)

偽の Claude Code で9つの場合を確かめた

確かめたのは次の9つです。設定の確かめ・前回作業の途中で止まった依頼・正常に終わる依頼・自動で回さない場所の依頼・頭の項目がない依頼・子のプロセスを残して終わる依頼・時間切れ・APIキーを外さない設定にしたとき・見張り係を2つ起動したとき。偽物には、渡された環境変数を書き出させ、APIキーが外れているかも見ています(APIキーの話は下の節)。確かめの APIキーは dummy-not-a-key という偽の文字です。

test_inbox_runner.sh(確かめのスクリプト)

#!/bin/bash
# 依頼箱の見張り係を、偽の claude で確かめる(Linux の作業環境で動かす)
# 使い方: bash test_inbox_runner.sh <inbox_runner.py があるフォルダ>
set -u
SRC="$(cd "$1" && pwd)"
T="$(mktemp -d)"
mkdir -p "$T/run" "$T/box/新規" "$T/work" "$T/other"
cp "$SRC/inbox_runner.py" "$SRC/settings.json" "$T/run/"
別のタブで開く保存

test_output.txt(確かめの出力)

== 確かめ1:設定の確かめ(APIキーが設定された窓)
依頼箱: /tmp/tmp.WU9xt3sglO/box あり
自動で回してよい場所: /tmp/tmp.WU9xt3sglO/work あり
claude: /tmp/tmp.WU9xt3sglO/fakeclaude
claude の版: 2.1.311 (fake)
承認の扱い: auto / 拒否の決まり: /tmp/tmp.WU9xt3sglO/run/settings.json
外す環境変数: ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN / うち今この窓で設定されているもの: ANTHROPIC_API_KEY

== 確かめ2:正常/自動で回さない場所/頭の項目なし/子のプロセスを残す/時間切れ
2026-10-27T08:40:02 見張り係を起動(1回だけ)
2026-10-27T08:40:02 中断されていた依頼を失敗へ 00_stuck.md
2026-10-27T08:40:02 開始 01_ok.md
2026-10-27T08:40:03 完了 01_ok.md → 結果/01_ok_20261027_0840.md
2026-10-27T08:40:03 開始 02_ng.md
2026-10-27T08:40:03 失敗 02_ng.md → 結果/02_ng_20261027_0840.md
2026-10-27T08:40:03 開始 03_nohead.md
2026-10-27T08:40:03 失敗 03_nohead.md → 結果/03_nohead_20261027_0840.md
2026-10-27T08:40:03 開始 04_leave.md
2026-10-27T08:40:03 完了 04_leave.md → 結果/04_leave_20261027_0840.md
2026-10-27T08:40:03 開始 05_sleep.md
2026-10-27T08:41:03 時間切れ(途中で止めました) 05_sleep.md → 結果/05_sleep_20261027_0840.md
かかった秒数: 61
偽の claude が受け取った環境: key=なし mcp=false

== フォルダの中身
./失敗/00_stuck.md
./失敗/02_ng.md
./失敗/03_nohead.md
./失敗/05_sleep.md
./済み/01_ok.md
./済み/04_leave.md
./結果/00_stuck_20261027_0840.md
./結果/01_ok_20261027_0840.json
./結果/01_ok_20261027_0840.md
./結果/02_ng_20261027_0840.md
./結果/03_nohead_20261027_0840.md
./結果/04_leave_20261027_0840.json
./結果/04_leave_20261027_0840.md
./結果/05_sleep_20261027_0840.json
./結果/05_sleep_20261027_0840.md
./記録.log

---- 00_stuck_20261027_0840.md
# 結果:00_stuck

- 状態:失敗
## Claude Code の報告

見張り係が止まった(Mac の再起動など)ため、この依頼は途中で終わっています。途中まで変わったファイルがあるかもしれません。やり直すかどうかは、確かめてから決めます。

---- 01_ok_20261027_0840.md
# 結果:01_ok

- 状態:完了
## Claude Code の報告

やったこと:確認
決めてほしいこと:なし

## 止められた操作

- {"tool_name": "Bash", "tool_input": {"command": "git clean -fd"}}

---- 02_ng_20261027_0840.md
# 結果:02_ng

- 状態:失敗
## Claude Code の報告

作業フォルダ /tmp/tmp.WU9xt3sglO/other は自動で回してよい場所(config.json の allowed_dirs)に入っていません。実行していません。手で頼むか、allowed_dirs に足すかを決めてください。

---- 03_nohead_20261027_0840.md
# 結果:03_nohead

- 状態:失敗
## Claude Code の報告

依頼の頭に「作業フォルダ:」がありません。実行していません。

---- 04_leave_20261027_0840.md
# 結果:04_leave

- 状態:完了
## Claude Code の報告

やったこと:確認
決めてほしいこと:なし

## 止められた操作

- {"tool_name": "Bash", "tool_input": {"command": "git clean -fd"}}

---- 05_sleep_20261027_0840.md
# 結果:05_sleep

- 状態:時間切れ(途中で止めました)
## Claude Code の報告

中断

== 確かめ3:APIキーを外さない設定にしたとき、報告に★が付くか
2026-10-27T08:41:03 見張り係を起動(1回だけ)
2026-10-27T08:41:03 開始 06_key.md
2026-10-27T08:41:03 完了 06_key.md → 結果/06_key_20261027_0841.md
偽の claude が受け取った環境: key=dummy-not-a-key mcp=false
- ★ APIキーで動いた可能性があります(プランの利用枠ではなく従量課金)。_stderr.txt を見てください

== 確かめ4:2つ目の見張り係は起動しない
2026-10-27T08:41:03 見張り係を起動(1回だけ)
2026-10-27T08:41:03 開始 07_wait.md
見張り係はもう動いています(2つ目は起動しません)
2つ目の終了コード: 1
2026-10-27T08:41:08 完了 07_wait.md → 結果/07_wait_20261027_0841.md

据え付けを頼んだ Claude Code は、別の Claude の起動を自分の安全の仕組みで止めた

見張り係を Mac に入れる作業は、Claude Code に1回だけ手で頼みました。頼んだのは5つの手順です。ファイルを ~/r2r2r-scripts/inbox/ にコピーして commit する、Claude Code の版を確かめる、見張り係の設定を確かめる、承認の扱い「auto」が使えるかを試す、見張り係を新しいターミナルの窓で起動する。

1〜3は通りました。Claude Code の版は 2.1.220 で、画面なしで承認を人に聞かない指定(--permission-prompts)に要る 2.1.259 より古かったので、Claude Code 自身が 2.1.311 に上げています。

4と5は止まりました。Claude Code の窓の中から claude -p を起動する操作も、ターミナルの窓を開いて見張り係を起動する操作も、Claude Code の判定の仕組みに「Blocked by classifier」で断られています。**Claude Code が別の Claude を起動して無人で動かす操作は、Claude Code の中から勝手にはできない、ということです。**Claude Code は3回目を試さずに止まり、人が手で打つコマンドを報告に書いてきました。

この報告を受けて、4は飛ばしました。疎通確認の依頼そのものが同じ確かめになり、auto が使えなければ報告にそう出るからです。5は、人がふつうのターミナルで1行打つ形にしました。

python3 ~/r2r2r-scripts/inbox/inbox_runner.py

据え付け_20261027.md(Claude Code の報告)

# 据え付け報告:依頼箱の見張り係(2026-10-27)

状態:**手順1〜3は完了。手順4・5は未実施**(この Claude Code の窓からは claude の起動と
ターミナル操作が承認の仕組みで止められるため。下の「決めてほしいこと」を見てください)

## 手順1:ファイルのコピーと commit — 完了

元のファイル3つを `~/r2r2r-scripts/inbox/` にコピーしました。

- `inbox_runner.py`(12,692 バイト)
- `config.json`
- `settings.json`
- `.gitignore`(新しく作成。中身は `.runner.lock` の1行だけ)

4つを個別に指定して add し、commit しました(`git add .`・`git clean` は使っていません)。
`~/r2r2r-scripts` には他に多数の未追跡・変更済みファイルがありますが、どれも触っていません。

- commit の番号:`636f374b0dd64e683f2aea031a59ca1004929d26`(短い番号 `636f374`)
- 件名:依頼箱の見張り係を据え付け(inbox_runner)

## 手順2:claude の版 — 完了(上げました)

- 据え付け前:**2.1.220**(2.1.259 より古い)
- `claude update` を実行:2.1.220 → **2.1.311**
- 場所:`/Users/shimazueiichi/.npm-global/bin/claude`

## 手順3:`--check` — 完了(全部「あり」)

```
依頼箱: /Users/shimazueiichi/Library/Mobile Documents/com~apple~CloudDocs/デスクトップ/ADAPT DESIGN/じぶんの/PixelstoMotors/依頼箱 あり
自動で回してよい場所: /Users/shimazueiichi/Robotics_UX/ServiceSim あり
claude: /Users/shimazueiichi/.npm-global/bin/claude
claude の版: 2.1.311 (Claude Code)
承認の扱い: auto / 拒否の決まり: /Users/shimazueiichi/r2r2r-scripts/inbox/settings.json
```

終了コードは 0。claude は見つかったので、`config.json` の `"claude"` は `"claude"` のまま
変えていません。

## 手順4:承認の扱い「auto」が使えるか — 未実施

指示された確認の命令を2通りの出し方で試しましたが、どちらもこの窓の承認の仕組み
(auto mode classifier)に止められました。

1. ターミナルで直に `claude -p ... --permission-mode auto --permission-prompts none`
   → 「Blocked by classifier」で拒否
2. 手順5と同じ `osascript` でターミナルの窓に出す形
   → 同じく「Blocked by classifier」で拒否

これは**この Claude Code の窓の制限**であって、見張り係が使う `auto` が有効かどうかの
答えにはなっていません。見張り係は別のプロセスとして動くので、エイイチが手で確かめる
必要があります。

`config.json` は**変えていません**(`"permission_mode": "auto"` のまま)。

## 手順5:見張り係の起動 — 未実施

手順4の答えが出ていないため、起動していません。`.runner.lock` も作られていません。

## 疎通確認の依頼について(参考)

`依頼箱/新規/20261027_01_疎通確認.md` はそのまま置いてあります。見張り係が起動すれば
30 秒以内に拾います。その依頼が読む `/Volumes/KIOXIA/r2r2r-data/service_sim/unity/night/`
は今マウントされていて、一番新しい日付は `20261027` です。

## 変えたファイル

- 新規作成:`~/r2r2r-scripts/inbox/inbox_runner.py`・`config.json`・`settings.json`・`.gitignore`
- claude 本体を 2.1.220 → 2.1.311 に更新
- Assets・ServiceSim のプロジェクトは何も変えていません

## 決めてほしいこと

手順4と5を、エイイチが手で(またはこの窓で `!` を頭に付けて)実行してください。

1. auto が使えるかの確認:
   ```
   cd /Users/shimazueiichi/Robotics_UX/ServiceSim && claude -p "OKとだけ返して" --output-format json --permission-mode auto --permission-prompts none --settings ~/r2r2r-scripts/inbox/settings.json
   ```
   - うまく返れば `config.json` はそのままで次へ。
   - auto が無効・選べないという誤りが出たら、`config.json` を
     `"permission_mode": "acceptEdits"`、
     `"extra_args": ["--allowedTools", "Bash,Read,Edit,Write"]` に変えて、個別に add して
     commit する(この変更はまだしていません)。

2. 見張り係の起動:
   ```
   osascript -e 'tell application "Terminal" to do script "python3 ~/r2r2r-scripts/inbox/inbox_runner.py"'
   ```
   - Mac が「ターミナルを操作する許可」を求めたら許可してください。

結果を教えてもらえれば、この報告を書き足します。

1回目の疎通確認は20秒で戻り、夜の判定の食い違いも見つけた

見張り係を起動すると、置いておいた疎通確認の依頼を同じ秒に拾い、20秒後に「完了」と書きました。

2026-10-27T08:08:13 見張り係を起動
2026-10-27T08:08:13 開始 20261027_01_疎通確認.md
2026-10-27T08:08:33 完了 20261027_01_疎通確認.md → 結果/20261027_01_疎通確認_20261027_0808.md

依頼は、ファイルを変えずに4つを調べるだけのものです。Unity の版、画面なしの実行ファイルの作った日時、一番新しい夜の判定の件数、止められた操作があったか。止められた操作は0件で、auto はそのまま使えました。

報告の3つ目で、Claude Code は夜の判定(judge.md)の食い違いを書いてきました。「試算を見直す候補」は件数の表では0回なのに、本文の欄には2つの項目が載っています。判定のスクリプトは Claude が作ったもので、表と本文で数え方がずれている不具合です。

20261027_01_疎通確認.md(依頼)

---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 20
---
# 疎通確認(依頼箱の1本目)

依頼箱の自動の受け渡しが動くかを確かめるための依頼です。ファイルは何も変えないでください。

調べて報告すること:
1. Unity の版(ProjectSettings/ProjectVersion.txt)
2. 画面なしの実行ファイル(Builds/headless/)の build_info.json の要点(作った日時・changeset)。なければ「なし」
3. 一番新しい夜の判定(`/Volumes/KIOXIA/r2r2r-data/service_sim/unity/night/` の一番新しい日付の judge.md)の振り分けの件数(正常・回の失敗・Unity の作り・試算を見直す候補)
4. この実行で止められた操作があったか(分かる範囲で)

報告は最後の返答だけでよいです(claude_code_reports には書かなくてよい)。

20261027_01_疎通確認_20261027_0808.md(報告)

# 結果:20261027_01_疎通確認

- 状態:完了
- 始めた時刻:2026-10-27 08:08
- 終わった時刻:2026-10-27 08:08(0分)
- 作業フォルダ:/Users/shimazueiichi/Robotics_UX/ServiceSim
- この続きを Claude Code で話すとき:作業フォルダで `claude --resume 6497c089-2d50-432f-8728-718207e83406`

## Claude Code の報告

やったこと
- 依頼にあった3つの場所を読みました。ファイルは変えていません。

結果
1. Unity の版は 2022.3.62f3(96770f904ca7)でした。
2. 画面なしの実行ファイル(Builds/headless/)の build_info.json の要点は次のとおりです。
   - 作った日時:2026-10-27 08:00:56
   - changeset:ServiceSim/cs:24(作りの番号は cs24_20261027_0800)
   - 作ったときに未登録の変更はありませんでした。
   - 対象は macOS の ARM64 で、場面は ServiceSim_Family.unity、大きさは約 60MB です。
3. 一番新しい夜は 20261027 でした。基準は 20261025 の第二段階の18回で、振り分けたのは70回です。
   - 正常:30回
   - 回の失敗:1回(fam_p1・ロボット2台・すれ違い入・種0の回で、全員が帰っていない)
   - Unity の作り:30回(4つの印。fam_p1 と fam_p5 のロボット1台で「30秒以上の止まり」が多い、fam_p5 のロボット1台で「動けなくなった」が多い、fam_p5 のロボット2台で「瞬間移動」が多い)
   - 試算を見直す候補:0回
     - ただし本文の「Unity÷試算 が基準の範囲から外れた」の欄には、fam_p5 の料理の待ちで2つの項目が載っています(ロボット1台が 1.24倍、ロボット2台が 1.4倍)。表の数と本文の書き方が食い違っています。
   - 基準なし:9回(ロボット2台・すれ違い入。基準に同じ条件がないため)
4. この実行で止められた操作はありませんでした。3回の読み取りはすべて通りました。

変えたファイル
- なし

決めてほしいこと
- なし

自動の実行だけ、APIキーの従量課金で払われていた

報告と一緒に残した、Claude Code のエラー出力(_stderr.txt)に、1行だけ警告がありました。

⚠ claude.ai connectors are disabled because ANTHROPIC_API_KEY or another auth source is set and takes precedence over your claude.ai login · Unset it to load your organization's connectors

「APIキーなどの別の認証が設定されているので、claude.ai のログインより優先している」という意味です。Claude Code の説明書には、ANTHROPIC_API_KEY が設定されていると、画面なしの実行(-p)では必ずその APIキーを使い、ふだんの画面では最初に1回だけ使うかを聞く、とあります。見張り係を起動したターミナルの窓には APIキーが設定されていて、見張り係から起動した Claude Code もそれを受け継いでいました。

ふだん手で使っている Claude Code の /status を開くと、ログインの方法は「Claude Max account」(定額のプラン)でした。手で使う分は定額、見張り係から起動した分だけ従量、という状態です。1回目の疎通確認は、Claude Code の見積もりで0.0997ドル(約16円)。軽い調べものでこの額なので、実装やビルドの依頼なら1本で数百円になりえます。

プランの使用量の画面も一緒に見ました。今週の枠はすでに73%使っていて、戻るのは10月29日の16時。追加の利用分が有効になっていて、枠を使い切るとそこから払われる設定です。同じ画面に、最近の使用量の99%が8時間以上続いた会話から、96%がやりとりが長く溜まった状態(15万トークン超)から、と出ていました。

定額の枠で回すか、APIの従量のままにするかは、次の4点を並べて決めました。

定額の枠で回すときの注意中身
枠を食う
ふだんの Claude や Claude Code と同じ枠から減る。夜に重い依頼を回すと、翌日に使える分が減る
枠を使い切ると止まる
その依頼は「失敗」に回る。追加の利用分が有効なので、使い切ったあとはそこから払われる
ログインが要る
Claude Code に claude.ai のアカウントでログインしていないと、APIキーを外した時点で動かない
コネクタが読み込まれる
APIキーを外すと、claude.ai でつないだ Notion・Google ドライブ・カレンダーなどが Claude Code で使える状態になる。無人の作業がそこに書き込める

決めたのは、定額の枠で回すことでした。そのうえで、4つ目のコネクタは依頼箱の作業では使えないように止めます。

見張り係が Claude Code を起動するときだけ、APIキーを外した

ターミナルの窓の APIキーは、ほかの作業で使っているので消しません。見張り係が Claude Code を起動するときに渡す環境から、ANTHROPIC_API_KEY と ANTHROPIC_AUTH_TOKEN だけを抜きます。あわせて、claude.ai のコネクタを読み込まない設定を2か所に入れました(必ず断る操作の一覧に disableClaudeAiConnectors、渡す環境に ENABLE_CLAUDEAI_MCP_SERVERS=false)。エラー出力にもう一度同じ警告が出たら、報告の頭に★を付けて知らせます。

入れ替えは、見張り係を Ctrl+C で止めて、入れ替えのスクリプト(update.sh)を1行打つだけにしました。最新のファイルを iCloud からコピーし、そのファイルだけを commit し、設定を確かめてから起動し直します。

commit: 6aaacf4 依頼箱の見張り係を更新
依頼箱: /Users/shimazueiichi/Library/Mobile Documents/com~apple~CloudDocs/デスクトップ/ADAPT DESIGN/じぶんの/PixelstoMotors/依頼箱 あり
自動で回してよい場所: /Users/shimazueiichi/Robotics_UX/ServiceSim あり
claude: /Users/shimazueiichi/.npm-global/bin/claude
claude の版: 2.1.311 (Claude Code)
承認の扱い: auto / 拒否の決まり: /Users/shimazueiichi/r2r2r-scripts/inbox/settings.json
外す環境変数: ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN / うち今この窓で設定されているもの: ANTHROPIC_API_KEY
2026-10-27T08:23:31 見張り係を起動
2026-10-27T08:23:31 開始 20261027_02_疎通確認_利用枠.md
2026-10-27T08:24:02 完了 20261027_02_疎通確認_利用枠.md → 結果/20261027_02_疎通確認_利用枠_20261027_0823.md

窓には APIキーが設定されたままで、2回目の疎通確認はそれでも APIキーなしで動いています。

  • ねらい:依頼箱の作業を、APIの従量課金ではなく定額のプランの枠で動かす。無人の作業から claude.ai のコネクタを外す
  • 変わったこと:1回目はエラー出力に APIキーの警告が出て、0.0997ドル(約16円)が従量で払われたとみられる。2回目はエラー出力が空で(_stderr.txt が作られなかった)、Claude Code が自分で調べた環境変数は ANTHROPIC_API_KEY・ANTHROPIC_AUTH_TOKEN ともに「なし」、claude.ai のコネクタの道具は0個
  • 見込める効果:依頼箱の作業で、従量課金のお金が出なくなる。2回目の json にも見積もりの額(0.136ドル)は出るが、これは払い方に関係なく Claude Code が出す見積もりで、定額の枠の中で数えられる分。枠の減り方は、プランの使用量の表示で見ていく

報告の「止められた操作」の1件は、環境変数があるかを調べるコマンドの書き方(${(P)v} という、変数の名前から中身を引く書き方)が、判定の仕組みに断られたものです。Claude Code は printenv で調べ直していて、結果には影響していません。

20261027_02_疎通確認_利用枠.md(依頼)

---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 10
---
# 疎通確認の2回目(プランの利用枠で動いているか)

見張り係が APIキーを外して Claude Code を起動するように直しました。その確かめです。ファイルは何も変えないでください。

報告すること:
1. いま使える MCP のサーバーと道具の名前の一覧(claude.ai のコネクタ、たとえば Notion・Google ドライブ・カレンダーなどが含まれていないか)
2. 環境変数 ANTHROPIC_API_KEY と ANTHROPIC_AUTH_TOKEN が設定されているか(「あり/なし」だけ。値は書かない)

報告は最後の返答だけでよいです。

20261027_02_疎通確認_利用枠_20261027_0823.md(報告)

# 結果:20261027_02_疎通確認_利用枠

- 状態:完了
- 始めた時刻:2026-10-27 08:23
- 終わった時刻:2026-10-27 08:24(1分)
- 作業フォルダ:/Users/shimazueiichi/Robotics_UX/ServiceSim
- この続きを Claude Code で話すとき:作業フォルダで `claude --resume 9b566183-03a6-4adf-a005-b88c551f4659`
- 止められた操作:1件(いちばん下に一覧)

## Claude Code の報告

**やったこと**
- このセッションで使える道具の一覧を確認し、MCP のサーバーと道具を書き出しました。
- `printenv` で 2 つの環境変数が設定されているかだけを確認しました。値は出していません。
- ファイルは何も変えていません。

**結果**

1. **MCP のサーバーと道具**
   - 使える MCP の道具(`mcp__` で始まる名前のもの)は 0 個です。
   - 設定されている MCP サーバーは freee 関係の 2 つだけで、どちらも使えない状態です。
     - `plugin:freee-mcp:freee`:認証が済んでいないため使えません。
     - `plugin:freee-mcp:freee-mcp`:接続に失敗しました(「Connection closed」)。
   - claude.ai のコネクタ(Notion・Google ドライブ・カレンダーなど)は 1 つも含まれていません。
   - なお、「google-workspace」「docs」といった名前のスキルは一覧にありますが、これは MCP サーバーではありません。コネクタの道具も読み込まれていません。

2. **環境変数**
   - `ANTHROPIC_API_KEY`:なし
   - `ANTHROPIC_AUTH_TOKEN`:なし

   APIキーは外れていて、プランの利用枠で動いている状態とみられます。

**変えたファイル**
なし

**決めてほしいこと**
なし

(参考:freee の道具を使うには、対話できる画面で `/mcp` から認証するか、接続をやり直す必要があります。今回の依頼の範囲外なので、手は付けていません。)

## 止められた操作

- {"tool_name": "Bash", "tool_use_id": "toolu_01Y12aBuoWQNYcWtSaPPxv4w", "tool_input": {"command": "for v in ANTHROPIC_API_KEY ANTHROPIC_AUTH_TOKEN; do if [ -n \"${(P)v}\" ]; then echo \"$v: あり\"; else echo \"$v: なし\"; fi; done", "description": "Check whether two env vars are set (no values printed)"}}

Mac にログインしたら、ターミナルの窓で見張り係が立ち上がるようにした

もしMACの再起動とかでリセットかかった時のコマンドは?

見張り係は、ターミナルの窓を閉じたり Mac を再起動したりすると止まります。最初は、再起動のたびに起動のコマンドを1行打つ形でした。これを、Mac にログインしたときに自動で立ち上がる形にしました。

Mac には、ログインしたときに決めたプログラムを動かす仕組み(LaunchAgent)があります。ここに見張り係の Python を直接登録するのではなく、「ターミナルで start_inbox.command を開く」を登録しました。依頼箱は iCloud の「デスクトップ」の中にあり、裏で動くプログラムがここを読むには、Mac の許可が別に要る見込みです。ターミナルの窓で動かせば、今と同じ許可のまま動きます(裏で直接動かす形は試していません)。窓が開くので、見張り係が動いていることも目で分かります。

再起動したときに作業の途中だった依頼は、次に見張り係が起動したとき「失敗」へ回し、Mac に通知を出します。途中まで変わったファイルがあるかもしれないので、自動ではやり直しません。見張り係は2つ目を起動しないので、手でコマンドを重ねて打っても大丈夫です。

入れ替えのスクリプトがこの登録もするようにして、もう一度入れ替えました。

2026-10-27T08:32:28 見張り係を止めました
2026-10-27T08:32:36 見張り係を起動

本当にログインで立ち上がるかは、次に Mac を再起動したときに確かめます。立ち上がらなければ、python3 ~/r2r2r-scripts/inbox/inbox_runner.py で手で起動できます。

依頼箱の記録.log(10月27日の全部)

2026-10-27T08:08:13 見張り係を起動
2026-10-27T08:08:13 開始 20261027_01_疎通確認.md
2026-10-27T08:08:33 完了 20261027_01_疎通確認.md → 結果/20261027_01_疎通確認_20261027_0808.md
2026-10-27T08:22:03 「止める」があるので一時停止中
2026-10-27T08:23:24 見張り係を止めました
2026-10-27T08:23:31 見張り係を起動
2026-10-27T08:23:31 開始 20261027_02_疎通確認_利用枠.md
2026-10-27T08:24:02 完了 20261027_02_疎通確認_利用枠.md → 結果/20261027_02_疎通確認_利用枠_20261027_0823.md
2026-10-27T08:32:28 見張り係を止めました
2026-10-27T08:32:36 見張り係を起動

inbox_runner.py(見張り係の全文・最後の版)

02_inbox_runner.py.txt11,703字・349行・python
#!/usr/bin/env python3
"""依頼箱の見張り係(inbox_runner)

依頼箱/新規/ に置かれた依頼(.md)を1件ずつ Claude Code(claude -p)に渡し、
Claude Code の報告を 依頼箱/結果/ に書き戻す。

使い方:
  python3 inbox_runner.py           見張りを続ける(ターミナルの窓を開けたままにする)
別のタブで開く保存

config.json(見張り係の設定)

{
  "inbox": "~/Library/Mobile Documents/com~apple~CloudDocs/デスクトップ/ADAPT DESIGN/じぶんの/PixelstoMotors/依頼箱",
  "allowed_dirs": [
    "/Users/shimazueiichi/Robotics_UX/ServiceSim"
  ],
  "claude": "/Users/shimazueiichi/.npm-global/bin/claude",
  "permission_mode": "auto",
  "default_limit_minutes": 180,
  "poll_seconds": 30,
  "settle_seconds": 15,
  "extra_args": [],
  "drop_env": [
    "ANTHROPIC_API_KEY",
    "ANTHROPIC_AUTH_TOKEN"
  ],
  "set_env": {
    "ENABLE_CLAUDEAI_MCP_SERVERS": "false"
  }
}

settings.json(Claude Code に必ず断らせる操作)

{
  "disableClaudeAiConnectors": true,
  "permissions": {
    "deny": [
      "Bash(git clean)",
      "Bash(git clean *)",
      "Bash(git add .)",
      "Bash(git add -A)",
      "Bash(git add -A *)",
      "Bash(git add --all)",
      "Bash(git add --all *)",
      "Bash(git push --force *)",
      "Bash(git push -f *)",
      "Bash(git reset --hard *)",
      "Bash(rm -rf *)",
      "Bash(sudo *)"
    ]
  }
}

update.sh(入れ替えと起動し直しのスクリプト)

#!/bin/bash
# 依頼箱の見張り係を、iCloud の _仕組み/ の最新に入れ替えて commit し、起動し直す。
# 使い方:見張り係の窓で Ctrl+C で止めてから
#   bash ~/r2r2r-scripts/inbox/update.sh
set -e
INBOX="$HOME/Library/Mobile Documents/com~apple~CloudDocs/デスクトップ/ADAPT DESIGN/じぶんの/PixelstoMotors/依頼箱"
SRC="$INBOX/_仕組み"
DST="$HOME/r2r2r-scripts/inbox"
FILES="inbox_runner.py config.json settings.json update.sh start_inbox.command com.pixelstomotors.inbox.plist"

for f in $FILES; do cp "$SRC/$f" "$DST/$f"; done
chmod +x "$DST/start_inbox.command"
xattr -d com.apple.quarantine "$DST/start_inbox.command" 2>/dev/null || true

# Mac にログインしたら見張り係が自動で起動するように登録(次のログインから効く)
mkdir -p "$HOME/Library/LaunchAgents"
plutil -lint "$DST/com.pixelstomotors.inbox.plist" >/dev/null
cp "$DST/com.pixelstomotors.inbox.plist" "$HOME/Library/LaunchAgents/"
echo "自動起動:登録済み($HOME/Library/LaunchAgents/com.pixelstomotors.inbox.plist)"

cd "$HOME/r2r2r-scripts"
PATHS=""
for f in $FILES; do PATHS="$PATHS inbox/$f"; done
git add $PATHS
# この6つだけを commit する(ほかに add 済みのものがあっても混ぜない)
if ! git diff --cached --quiet -- $PATHS; then
  git commit -q -m "依頼箱の見張り係を更新" -- $PATHS
fi
echo "commit: $(git log -1 --oneline -- inbox)"

python3 "$DST/inbox_runner.py" --check
rm -f "$INBOX/止める"
exec python3 "$DST/inbox_runner.py"

start_inbox.command(ログインしたときにターミナルで開くファイル)

#!/bin/bash
# 依頼箱の見張り係を起動する(Mac にログインしたとき、ターミナルの窓で自動で開く)
cd "$HOME"
exec python3 "$HOME/r2r2r-scripts/inbox/inbox_runner.py"

com.pixelstomotors.inbox.plist(ログインしたときに動かす登録)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Label</key>
	<string>com.pixelstomotors.inbox</string>
	<key>ProgramArguments</key>
	<array>
		<string>/usr/bin/open</string>
		<string>-a</string>
		<string>Terminal</string>
		<string>/Users/shimazueiichi/r2r2r-scripts/inbox/start_inbox.command</string>
	</array>
	<key>RunAtLoad</key>
	<true/>
</dict>
</plist>

README.md(依頼箱の説明・依頼箱のフォルダに置いたもの)

# 依頼箱

Claude が書いた Claude Code あての依頼を、Mac の見張り係が自動で Claude Code に渡し、報告を書き戻す場所。

## フォルダ

| フォルダ | 中身 |
|---|---|
| 新規 | Claude が依頼を置く。見張り係が1件ずつ自動で実行する |
| 確認待ち | エイイチの確認が要る依頼。読んで良ければ「新規」へ移すと実行される |
| 実行中 | いま Claude Code が作業している依頼 |
| 済み/失敗 | 終わった依頼 |
| 結果 | Claude Code の報告(.md)と元の出力(.json) |
| _仕組み | 見張り係の元のファイル(据え付け先は Mac の `~/r2r2r-scripts/inbox/`) |

`記録.log` に、いつ何を始めて終えたかが残る。終わると Mac に通知が出る。

## 決まり

- 自動で回してよいのは `config.json` の `allowed_dirs` にある作業フォルダだけ(今は ServiceSim だけ)。ほかの場所の依頼は実行せずに「失敗」へ回す
- 実機を動かす依頼は自動にしない。関節制御・姿勢系の変更は、実装とレビューまでを自動にし、実機に流す前は「確認待ち」で止める
- `git clean`・`git add .`・強制 push・`rm -rf` などは `settings.json` で拒否してある
- Claude Code が決めるべきでないことに当たったら、手を止めて報告の「決めてほしいこと」に書く

## 起動・停止

- 起動:Mac にログインすると、ターミナルの窓が自動で開いて起動する(登録は `~/Library/LaunchAgents/com.pixelstomotors.inbox.plist`)。窓は開けたまま。見張っている間は Mac がスリープしない
- 手で起動するとき:ターミナルで `python3 ~/r2r2r-scripts/inbox/inbox_runner.py`(2つ目は起動しないので、重ねて打っても大丈夫)
- 作業の途中で Mac が止まった依頼は、次に起動したときに「失敗」へ回る(自動ではやり直さない)
- 見張り係を新しくするとき:`bash ~/r2r2r-scripts/inbox/update.sh`
- 停止:その窓で Ctrl+C
- 一時停止:このフォルダに「止める」という名前のファイルを置く(消すと再開)

## 依頼の書き方(Claude が書く)

```
---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 120
---
(依頼の本文)
```

上限時間は分。書かなければ180分。時間を過ぎたら止めて「時間切れ」として報告する。

据え付け依頼.md(Claude Code に1回だけ手で渡した依頼)

# 据え付け依頼:依頼箱の見張り係(Claude Code あて・この1回だけ手で渡す)

依頼箱は、Claude が書いた依頼を Claude Code に自動で渡し、報告を書き戻す仕組みです。
この依頼では、見張り係を Mac に据え付けて、動き始めるところまでを行ってください。

元のファイルの場所(iCloud):
`~/Library/Mobile Documents/com~apple~CloudDocs/デスクトップ/ADAPT DESIGN/じぶんの/PixelstoMotors/依頼箱/_仕組み/`

## 手順

1. 元のファイル3つ(`inbox_runner.py`・`config.json`・`settings.json`)を `~/r2r2r-scripts/inbox/` にコピーする。
   - `~/r2r2r-scripts` の git に、3つを個別に指定して add し、commit する(`git add .` と `git clean` は使わない)。
   - `.runner.lock` は commit しない(`~/r2r2r-scripts/inbox/.gitignore` に1行足して、それも個別に add する)。
2. `claude --version` を確かめる。2.1.259 より古ければ `claude update` で上げる(`--permission-prompts` を使うため)。
3. `python3 ~/r2r2r-scripts/inbox/inbox_runner.py --check` を実行し、全部「あり」になるか確かめる。
   - claude が見つからないと出たら、`which claude` の絶対パスを `config.json` の `"claude"` に書く。
4. 承認の扱い「auto」が使えるかを確かめる。`/Users/shimazueiichi/Robotics_UX/ServiceSim` で次を実行する。
   `claude -p "OKとだけ返して" --output-format json --permission-mode auto --permission-prompts none --settings ~/r2r2r-scripts/inbox/settings.json`
   - 使えない(auto が無効・選べないという内容の誤り)なら、`config.json` を次のように変えて、もう一度確かめる。
     `"permission_mode": "acceptEdits"`、`"extra_args": ["--allowedTools", "Bash,Read,Edit,Write"]`
   - 変えたら、その変更も個別に add して commit する。
5. 見張り係を、新しいターミナルの窓で起動する。
   `osascript -e 'tell application "Terminal" to do script "python3 ~/r2r2r-scripts/inbox/inbox_runner.py"'`
   - Mac が「ターミナルを操作する許可」を求めたら、エイイチに許可してもらう。
   - 起動すると、依頼箱/新規/ にある「疎通確認」の依頼を自動で拾って実行する。

## 報告

`依頼箱/結果/据え付け_20261027.md` に、次を日本語で書いてください。
- 各手順の結果(claude の版・`--check` の出力・auto が使えたか・config.json を変えたか)
- commit の番号
- 見張り係が起動したか

Assets や ServiceSim のプロジェクトは変えないでください。

この日の公開

  • 記事MD・サムネイル・図解:iCloud の PixelstoMotors/デジタルツイン学習R2R2R/記事/ と、GitHub PixelstoMotors/r2r2r-content の articles/
  • SNS の txt・json:同じ作業フォルダと、r2r2r-content の sns/
  • 公開:GitHub PixelstoMotors/p2m-site(https://pixelstomotors.com/record/claude-code-api-key-billing )
  • 見張り係のコード:Mac の ~/r2r2r-scripts/inbox/(commit 636f374・6aaacf4 と、自動起動を足した commit)。元のファイルは依頼箱の _仕組み/
  • 次に確かめること:Mac を再起動したときに見張り係が立ち上がるか。依頼箱に流す最初の本番の依頼(夜の判定の食い違いの直し)が、人の手を通らずに戻ってくるか