はじめに
最近、私には悩みがあります。
作業中にめちゃくちゃサボっちゃうんです。
まぁ昔からですが、なんか輪をかけてやる気出ないんですよね。
必死こいて勉強してもAIに勝てないし。
へそ曲げるわけじゃなんですが、現状やりたいと思ってできないことがAIのせいでほぼないですし……。
やる気出ないですよ。
だから勉強するぞと意気込んで VS Code を開いたはずなのに、気づいたら YouTube を見たりする。
意志が弱すぎる。
そこで考えました。
これはAIのせいなんだからAIには俺を見張る義務があるのではないか? と。
だからAIにデバイスの操作権を渡して、サボっていたらYouTubeごと強制終了してもらおうと。
ということで作ったのが今回の Claude Code / Codex Skill、
です。
日本語名はサボり警察です。
まんまですね。
ママではない(笑)
サボり警察とは?
一言で言うと、「お前いま本当に作業してる?」をAIが定期的に調べて、有罪判定が続いたら娯楽をプロセスごと消し去るスキルです。
流れはこんな感じです。
- 今日やる作業を決める
- YouTube、Steam、Twitchなど「サボってたら落としていいもの」を指定する
- 作業中の証拠を定期的に集める
- Claude Code / Codex自身に「こいつ今サボってる?」と判定させる
- 1回目はウインドウ出して警告
- 2回連続で有罪なら確認なしでプロセスをkillする
最後治安が悪いですが、強制執行力がないと意味がないんですよ。
「YouTubeを終了しますか?」 [はい] [いいえ]
なんて聞かれて「いいえ」を押さない人間なら、そもそもこんなものを作っていませんからね。
なのでサボり警察には拒否権を与えませんでした。
しかもこいつ警告時とプロセスキルした時のメッセージで罵倒してきます。
「機械学習の学ぶ時間にYoutubeの再生リストを育ててどうする」とか言ってきて震えましたね。
おまけにプロセスキル時には任意で音声を再生する機能があるので、私は「ああゴミカスぅぅぅぅぅ!! 〇ねええええええ!!!!」の某音声を使用してます。
なぜAIに判定させるのか
最初はもっと単純に、「10分間コード差分が動いてなきゃYouTubeを落とす」みたいな仕組みでもいいかなと思っていました。
でもこれ実際は全然使えません。
コードを書いていない時間なんて大量にあります。
例えば、こんなんですね。
- 公式ドキュメントを読む
- GitHub Issueを調べる
- 技術動画を見る
- Claude Codeに設計を相談する
- Codexにエラーの原因を聞く
- 実装方針を考える
このへんは全部ちゃんとした作業です。
逆にVS Codeを開いてコードを1行変更しただけで、そのあと30分YouTubeを見ていたら、それはたぶんサボっています。
つまり必要なのは、「PCを操作しているか」ではなく「目的に向かって作業しているか」 の判定です。
ここ、人間がルールベースで作るとめちゃくちゃ大変なんですが、我々にはLLMがあります。
なので判定部分はだいたいAIに投げることにしました。
私を堕落させた責任は取るべきなので。
AIは何を見て「サボり」を判断するのか
サボり警察は一定間隔で、作業中の証拠を集めます。
例えばこんなものです。
- git diff
- 未コミットの変更
- 最近のコミット
- 現在開いているウィンドウ
- Claude Codeへの質問
- Codexへの質問
- VS Codeで最近開いたファイル
- ファイルを保存した履歴
- 直前まで何をしていたか
だから 「今日の作業テーマはこれです。この期間のこいつは作業していましたか?」 とClaudeまたはCodex自身に聞きます。
ここがちょっと面白いところです。
例えば今日のテーマが、「Kubernetesについて勉強する」だったとします。
その状態でYouTubeを見ていても、「KubernetesのPod終了処理についての解説動画」なら普通にセーフになる可能性があります。
一方で、「猫がきゅうりに驚く動画」をずっと見ていて、Git差分もなく、質問履歴もなく、VS Codeも触っていない。
これはかなり苦しい。
有罪です。
つまりYouTubeそのものは禁止していません。
サボってYouTubeを見ることを禁止しています。
色んな所から状況証拠引っ張って判断する仕組みを作っているわけです。
まぁこの辺は後で詳しく。
1回目は警告、2回目は執行
とはいえLLM判定なので、いきなりプロセスをkillするのは怖いです。
そこで一応、二段階にしました。
最初のサボり判定では警告だけ出します。
画面にポップアップが出て、設定していれば音声も鳴ります。
そして次の判定でもまだ連続でサボっていたら執行です。
登録されている対象プロセスを、そのままkillします。
確認画面はありません。
ブラウザでYouTubeを見ていた場合、タブだけ器用に閉じるわけではなく、対象になったブラウザプロセス単位で落とします。
他のタブ? 知りません。
サボった人間に人権はありません。
……という思想で作っていますが、普通に作業中のタブも巻き込む可能性があるので、実際に使う場合は気をつけてください。
いや、使わない方がいいのでは?
「コードを書いてないからアウト」にはしない
作っていて一番こだわったのがここでした。
従来のサボり検知ツールというと以下のような感じです。(知らないけどね)
「マウスが○分動かなかった」
「ファイル更新がなかった」
「Git差分がなかった」
みたいな判定しかなかったんじゃないでしょうか?
なのでサボり警察では、Claude CodeやCodexの会話履歴も見ます。
例えば10分間コードが変わっていなくても、
「このSIGTERMの処理ってどういう流れ?」
「なぜPID 1だとシグナル処理が変わる?」
「この設計ならどっちがいい?」
みたいな質問をずっとしていたならこいつは今勉強してるなと判断できます。
VS Codeで資料を読んでいた形跡も同様です。
Vs Code の操作履歴を見てくれます。
逆にVS Codeは開いていても以下のような感じならアウト。
Git差分なし。
資料閲覧なし。
AIへの質問なし。
そしてYouTube。
このように証拠を積み上げてAIに裁判させています。
直前の行動も覚えさせる
もう一つ工夫があって、AIはさぼり判定するたびに 「ユーザーはいま何をしていたと思う?」 ということを考えて答えを出します。
例えば、以下のような奴ですね。
「RLSについてClaudeに質問しながら実装している」
「公式ドキュメントを読んでいる」
「YouTubeを見ており作業痕跡なし」
これを直近数回分、次の判定にも渡します。
なので単発の状態だけではなく文脈も多少見ることができます。
ここはLLMを使うメリットがかなり出ました。
状況を全部渡して、お前が考えてくれで済みます。
休憩はどうするの?
ここまで読むと、「じゃあ休憩できないじゃん」と思うかもしれません。
その通りです。
基本は休憩の忖度をしません。
監視中なのに、「今日はいっぱい頑張ってるし、このYouTubeは休憩かな……」などとAIが勝手に優しくなり始めると警察として終わってしまいます。
息抜きに犯罪許す警察おる?
ただ一応救済手段もあって、休むなら監視を止めることができます。
既定ではVS Codeなどのエディタを閉じると、その作業セッション自体が終わったと判断して監視も終了します。
ただし、「12時台は昼休みなので自由」「25分作業したら5分休憩していい」「公式カンファレンス動画は許可」のようなルールは自然言語で設定できます。
判断の際に参照してくれるわけです。
お偉い人間の言葉には警察も忖度するってワケ。
SkillにしてClaude Code / Codexから起動する
使い方は割と簡単です。
slack-off-police をSkillとして入れて、対象のプロジェクトで 「勉強サボったら止めて」 みたいにClaude CodeやCodexへ話しかけます。
すると最初だけ以下の確認をします。
- どのディレクトリを監視する?
- 何を勉強・開発する?
- 何分ごとに判定する?
- 何をサボり対象にする?
- どんな休憩ルールにする?
例えば、こんな聞き方です。
作業テーマ:
Kubernetesの勉強
判定間隔:
10分
サボっていたら落としていいもの:
YouTube, Steam
例外:
12時台は昼休みなので自由
これに回答すれば設定がプロジェクトに保存されるので、次からは同じ設定で起動できます。
判定するAIも別途APIを組み込んでいるわけではなく、Claude Codeから起動したなら claude、Codexからなら codex のCLIをバックエンドとして呼びます。
CLI操作スキルも最初のリポジトリに入ってるんでご自由にどうぞ。
作ってみての感想
作り始めたときは完全にネタでした。
でも今は 「これAIの使い方として妙に面白いな」 となってます。
今回の用途はしょうもないですが、曖昧な状態判定をAIにやらせて、実際の制御は普通のプログラムに任せるという設計自体は、割といろんなところで使えそうです。
注意
最後に大事なことを書いておきます。
これはネタ実装です。
しかも普通にプロセスをkillします。
2回連続でサボり判定されたら確認なしです。
未保存のものが消える可能性もありますし、Chromeを対象にすればYouTube以外のタブも巻き込む可能性があります。
長時間常用するものとして作っているわけでもありません。
使う場合は自己責任でお願いします。
それと、現在はWindows専用です。
おわりに
人類はまた一歩、AI様に監視していただく理想社会に近づいた。