サイドバーのセッション名を、中身に合わせて自動で付け直す仕組み。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/ |
本体。対象セッションの選び方、リネーム条件、名前の形式、禁止事項が書いてある |
~/.claude/scheduled-tasks/ |
起動役。毎朝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 権限の追加A. 放置(現状)
毎朝7:13に自動で1回走ります。何もしなくて構いません。増えるセッションは1本/日。更新は1日1回です。
B. 20分ごとにしたい日
新しいセッションを1つ開いて、そこで次を実行します。そのセッションがループの住処になります。
/loop 20m /session-title-refresh
増えるセッションはゼロで、20分ごとに名前が整います。弱点はアプリを閉じると消えることで、再起動した日はもう一度打ちます。作業中のセッションで打つとtickが流れ込むので、専用のセッションを開いてください。
やらないほうがいいこと
起動役そのものを20分間隔にすると、実行のたびにセッションが立って1日72本になります。元記事の人が「15時間で12本たまり、整理するはずの仕組みが一覧を散らかし始めた」と書いて撤退したパターンです。片付けを自動化できない以上、実行頻度=溜まる本数だと考えてください。
lastRunAt が古いまま止まっていないか。止まっていれば次へ。次のように伝えれば止まります。
session-title-refresh のスキルとタスクを削除して、 ループが動いているセッションも閉じて
~/.claude/skills/session-title-refresh/ ~/.claude/scheduled-tasks/session-title-refresh/
settings.json に足した "CronCreate" は、他の用途にも使う権限なので消さなくて構いません。
毎朝1回の実行に対して幅が40分しかないため、今は取りこぼしています。広げれば前日1日分をまとめて拾えます。20分ループを使わない前提なら、こちらが正しい設定です。
要るなら、専用セッションを1つ開きっぱなしにする運用になります。要らなければ現状のままで完成です。
1日1本ずつ増えます。月1回まとめて片付ければ十分です。