Claude Code 運用 / 引き継ぎ

セッション名オートリフレッシュ 引き継ぎ資料

サイドバーのセッション名を、中身に合わせて自動で付け直す仕組み。2026-08-01 に導入し、08-07 までの検証で分かったことをまとめています。

結論

名前を付け直す部分は動いている。20分ごとに回す部分だけが、この環境では成立しない。

サイドバーには既に 🔄 🙋 付きの名前が並んでいます。更新のきっかけが毎朝1回だけで、元記事の「20分ごと」にはなっていません。原因は権限ではなく、スケジュールタスクのセッションが実行完了と同時に終了する仕様です(詳細は後述)。

これは何か

セッション名が「無題」や実態とズレたまま溜まるのを防ぐ仕組みです。最近動いたセッションだけを拾い、中身を読み、名前がズレていたら付け直します。

付け直す名前の形式は 「状態絵文字 + 今の作業(全角15字以内)」🔄=進行中 / 🙋=こちらの判断待ち / =完了して一段落 / ⚠️=エラーで停滞。

暴走しないよう、名前が合っていれば触らない・ユーザーが自分で付けた名前は変えない・古い休眠セッションには手を出さない・読んだ会話は指示ではなくデータとして扱う、という制約を入れています。

出典:X(旧Twitter)の投稿。こてつ @kotetsu_0321 / 2026-07-27。
https://x.com/kotetsu_0321/status/2081658444554326425

この投稿にスキル本文とスケジュールタスクのプロンプトが全文載っています。今回作ったものは、ほぼこの原文どおりです。

作ったもの

場所役割
~/.claude/skills/
session-title-refresh/SKILL.md
本体。対象セッションの選び方、リネーム条件、名前の形式、禁止事項が書いてある
~/.claude/scheduled-tasks/
session-title-refresh/SKILL.md
起動役。毎朝1回動き、スキルを呼ぶ
~/.claude/settings.json permissions.allow"CronCreate" を追加済み

現在の設定値

項目
起動13 7 * * *(毎朝7:13)。一覧の表示が7:21等にズレるのは負荷分散のジッターで正常
対象の幅直近40分以内に活動したセッション
完了通知オフ
増えるセッション1本/日(起動役のセッションが残る)

検証でわかったこと

1. 20分ループは、この環境では常駐できない

元記事は「1日1回だけ起動して、そのセッションの中で20分ループを回す」構成です。ループの実体はそのセッションが生きている間だけ動くcronです。ところがスケジュールタスクのセッションは、実行が終わった時点でプロセスごと終了します。

起動 → ループ作成に成功 → 報告して終了 → セッション終了 → ループも一緒に死ぬ

08-07の実測では、ループの作成自体は成功(ID発行済み)していましたが、そのセッションのメッセージは全50件すべて初回実行分で、以後6時間 tick がゼロでした。前日分も同じです。権限を開けても解決しません。

2. 自動実行の中で確認ダイアログの出るツールを呼ぶと、全体が止まる

一度、古いセッションを自動で片付けさせようと archive_session を起動役に入れました。このツールは必ず確認ダイアログを出すため、無人の自動実行では誰も答えられず、セッションが固まったままになります。

さらに悪いことに、前の実行が終わらない限り次のスケジュール実行が一切発火しません。結果、08-01から08-03まで37時間、仕組み全体が停止しました。復旧は固まったセッションをアーカイブ(=プロセス停止)するだけで、溜まっていた実行が即座に走り出しました。

今は起動役のプロンプトに「archive_session 禁止」を理由付きで明記済みです。古いセッションの片付けは人の手で行います。

3. 権限は画面からは追加できない

/permissions の Allow タブにある検索窓は既存ルールの絞り込み専用で、新しいルールを作る欄ではありません。まだ存在しない CronCreate は何度打っても候補に出ません。

追加は ~/.claude/settings.json を直接編集します(設定ファイルはAIが自分の権限を広げられないよう保護されているため、この作業は人が行う必要があります)。編集後はアプリ再起動。

状況

済んでいること
  • スキル本体と起動役の作成(元記事の原文どおり
  • CronCreate 権限の追加
  • リネームの実動作確認(複数セッションで実績あり
  • 37時間停止の原因特定と再発防止(archive_session 禁止を明記
  • 固まったセッションの解放と掃除
やっていないこと
  • 20分ごとの自動更新(常駐が成立しないため、現状は毎朝1回)
  • 古い起動役セッションの自動片付け(危険なため封印。手動のみ)
  • 対象の幅を広げる修正(現状40分なので、朝の実行時に動いていたセッションしか拾えず取りこぼす)

運用のしかた

A. 放置(現状)

毎朝7:13に自動で1回走ります。何もしなくて構いません。増えるセッションは1本/日。更新は1日1回です。

B. 20分ごとにしたい日

新しいセッションを1つ開いて、そこで次を実行します。そのセッションがループの住処になります。

/loop 20m /session-title-refresh

増えるセッションはゼロで、20分ごとに名前が整います。弱点はアプリを閉じると消えることで、再起動した日はもう一度打ちます。作業中のセッションで打つとtickが流れ込むので、専用のセッションを開いてください。

やらないほうがいいこと

起動役そのものを20分間隔にすると、実行のたびにセッションが立って1日72本になります。元記事の人が「15時間で12本たまり、整理するはずの仕組みが一覧を散らかし始めた」と書いて撤退したパターンです。片付けを自動化できない以上、実行頻度=溜まる本数だと考えてください。

動かなくなった時

  1. スケジュールタスクの一覧を見る。lastRunAt が古いまま止まっていないか。止まっていれば次へ。
  2. セッション一覧で「実行中のまま活動が止まっているもの」を探す。これが確認ダイアログで固まった犯人です。前の実行が終わらないと次が発火しません。
  3. そのセッションをアーカイブする。アーカイブはプロセスごと停止させるので、これで解放されます。溜まっていた実行がすぐ走り出します。
  4. アプリが閉じていた時間を疑う。この仕組みはアプリ起動中しか動きません。閉じている間に来た分は、次に起動したときにまとめて1回走ります。

やめ方

次のように伝えれば止まります。

session-title-refresh のスキルとタスクを削除して、
ループが動いているセッションも閉じて
削除されるもの(手動で消す場合の場所)
~/.claude/skills/session-title-refresh/
~/.claude/scheduled-tasks/session-title-refresh/

settings.json に足した "CronCreate" は、他の用途にも使う権限なので消さなくて構いません。