NanoClaw のアップデートで RTK が pnpm test を素通りしてた話
TL;DR — RTK の rewrite は
pnpm run buildを圧縮するがpnpm test(実体はvitest run)は素通り。加えて/update-nanoclawが/update-skillsを同一コンテキストで自動呼び出ししていた。SKILL.md を2行変えて解決。
NanoClaw の大型アップデート来ましたね。かなり中身が変わっていてローカルでのマージにものすごく時間がかかりました。最終的には、
「もう俺の作ったスキルさえ無事なら後はどうでもいいから全部上書きしちゃって!」
と雑な投げ方をしてアップデートをしてもらいました。
無事(一部無事じゃなかったけど git のログから復旧した)終わったんだけど、後日再度 /update-nanoclaw を実行した時の話です。
/update-nanoclaw を実行したら5時間制限の40%くらいを1回で使い切ってしまった。なにこれ、と思って Claude さんに調べてもらった。
以前 RTK を入れた記事を書いたとき、「効果はこれからに期待」と書いたんだけど、うまく行かなかったようで…
以下は、Claude さんに解説してもらった文章です。
RTK の仕組みをおさらい
RTK は Claude Code の PreToolUse hook として動く。Bash ツールが呼ばれるたびに rtk hook claude が起動し、rtk rewrite "<コマンド>" でコマンドを書き換えられるか確認する。
- 書き換えできる(exit 3)→
rtk <subcommand>が代わりに実行され、出力が圧縮される - 書き換えできない(exit 1)→ 元のコマンドがそのまま実行される(RTK はノータッチ)
何が素通りしていたか
rtk rewrite "pnpm run build"
# → rtk pnpm run build(exit 3: 書き換え成功)
rtk rewrite "pnpm test"
# → (何も出力なし、exit 1: 書き換えなし)
pnpm run build は圧縮される。でも pnpm test は exit 1 で素通り。