babysit スキル
Cursor 付属の babysitは、PRがマージされるまで面倒を見るスキルです。
非常に有効なスキルですが、SKILL.md はとても短く14行しかありません。ゴールと薄い手順、ガードレールによって構成されています。
「この PR をマージできるまでよろしく」だけだと、次のような失敗が起きやすい。
- CI を通すためにテストを操作する、workflow を緩める、無関係なコードをいじる
- GitHub API の巨大な JSON を全部読む
- BugbotやCopilotなどの誤検知まで直そうとする
- 落ちている原因が自分の差分でないのに、手元のコードをいじり続ける
- 意図がぶつかっているコンフリクトを推測で合併する
逆に、やり方を長く羅列したスキルも問題になり得ます。優秀なモデル前提では、モデルが既に知っている手順の再説明はコンテキストを食い、肝心の指示への追従を弱めることがあります。Anthropic の Skill 作成ガイドも簡潔さを前提にしており、不要な説明はトークンコストに見合わない、と書いています。
babysit が短いのは、モデルが既にできる部分を書かず、やりがちな最悪手だけを止めているからです。以下、スキル原文の該当箇所を見ます。
CI を通すためのズル
Never change CI checks/workflows just to make failures pass,
or make unrelated code changes; if that would be required, report back instead.「CI を直して」だけだと、最短経路はテスト削除や workflow の緩和です。エージェントは通った状態をゴールと解釈しやすいので、緑にするためなら手段を選びません。手段を先に封じ、スコープ内のコード修正だけを許しています。
JSON を全部読まない
filter out resolved threads first.
Read only each comment body and the minimum location/URL needed to act on it;
do not read the entire JSON output or other unnecessary payload data.GitHub のコメント取得は、本文以外にユーザー情報やアバター URL など大きなペイロードを返します。これをそのまま読むとトークンを食い、指摘本文を見落とす原因になります。
Bugbot の指摘を検証する
Carefully validate issues reported by Bugbot and only take action on those that are valid;
explain when you disagree or are unsure.「コメントを解決して」だけだと、誤検知でも無理に直そうとします。Bugbot のような自動レビューは有用ですが、false positive は普通に混ざります。
まず base を取り込む
For merge-blocking failures that seem unrelated to this PR,
check whether the branch is behind the base branch and merge latest changes,
since another PR may have fixed them.CI が落ちたとき、実務では「この差分のせい」と決めつけず、まず base 遅れを疑うことが多いです。別 PR が直した失敗を、古い tip のまま見ているだけ、ということはよくあります。この手順がないと、関係ないコードをいじり続けやすいです。
意図が衝突したら止める
If intents conflict, abort the merge and ask for clarification.単純なコンフリクト解消はエージェントでもできます。一方で、片方は機能を足し、もう片方はその前提仕様を変えた、のような意図の衝突は推測で合わせるべきではありません。止まらずに合併すると、デグレの温床になります。
まとめ
長く書けば良いわけではありません。
モダンなLLMを利用する場合、既知の知識の羅列は避け、ガードレールを整備した方が効果的です。