エージェントに同じ前提を毎回説明している、という感覚に心当たりはないでしょうか。プロジェクトのディレクトリ規約、コミットメッセージの書き方、レビューで必ず見る観点。会話を始めるたびにこれらを貼り付け直していると、本来集中したい作業の手前で時間が溶けていきます。
Antigravity v2.2.1 で組み込みの Guide スキルが入り、この繰り返しをスキルとして固定できるようになりました。ただ、ここで一度きりの便利機能として消費してしまうのか、それともチームと自分の知見を蓄積する場所として育てるのかで、半年後の効きが大きく変わってきます。
私自身、個人開発で複数のブログとアプリを並行して回しているので、エージェントに渡す前提知識は放っておくと際限なく増えていきます。Guide スキルをその場しのぎで書き捨てるたびに、似た内容を三度も四度も書き直していました。そこで運用の型を決めたところ、エージェントの初動が安定し、説明のやり直しがはっきり減りました。その型を共有します。
Guide スキルは「会話の外」に知識を逃がす仕組み
Guide スキルの本質は、会話コンテキストに毎回載せていた前提を、参照可能な外部知識として切り出すことにあります。プロンプトに直接書く方式と比べると、性質がかなり違います。
| 観点 | 毎回プロンプトに記述 | Guide スキル化 |
| 更新 | 会話ごとに手で貼り直す | 1ファイルを直せば全会話に反映 |
| 履歴 | 残らない・追えない | Git の差分で意図まで追える |
| 共有 | 個人のメモに閉じる | リポジトリ経由でチーム全員へ |
| コンテキスト消費 | 毎回トークンを食う | 必要時のみ読み込まれる |
特に効くのが履歴です。「なぜこの規約にしたのか」をスキルの変更履歴に残しておくと、半年後の自分が同じ議論を蒸し返さずに済みます。私はこの一点だけでも Git 管理に乗せる価値があると考えています。
3層に分けて、スキルを肥大化させない
最初にやりがちな失敗が、1つのスキルにすべてを詰め込むことです。規約も手順もトラブル対処も全部入りにすると、エージェントが文脈に応じて必要な箇所を選べず、かえって精度が落ちます。
私はスキルを役割で3層に分けています。
第1層: 不変の前提(foundation)
プロジェクトの普遍的な約束事を置きます。変更頻度が低く、ほぼ全タスクで参照される内容です。
.antigravity/guides/
├── foundation/
│ ├── repo-conventions.md # ディレクトリ・命名規約
│ ├── commit-style.md # コミットメッセージの型
│ └── review-checklist.md # レビュー必須観点
第2層: タスク種別ごとの手順(workflows)
「記事を1本追加する」「依存を更新する」のような、繰り返す作業の段取りです。手順そのものなので、ステップを番号で明示します。
├── workflows/
│ ├── add-article.md # 記事追加の手順
│ ├── dependency-bump.md # 依存更新と動作確認
│ └── release-checklist.md # リリース前の確認項目
第3層: 落とし穴と対処(pitfalls)
過去に踏んだ罠を、症状と対処のペアで記録します。エージェントが似た状況に入ったとき、ここを参照させると同じ失敗を繰り返しません。
└── pitfalls/
├── edge-cache-stale.md # キャッシュ起因の不整合
└── i18n-count-mismatch.md # 日英件数ずれの検出と修正
分割の目安は、1ファイル 200〜400 行です。これを超えたら、内部で扱っている関心事が複数あるサインなので、切り出しを検討します。逆に 50 行に満たないものは、関連スキルへの統合を考えます。
1つの Guide スキルの中身を設計する
ファイルの中身にも型を持たせると、エージェントが解釈しやすくなります。私が使っている構成は、目的・前提・手順・確認・落とし穴の5要素です。
# 記事を1本追加する
## 目的
content/ に日英セットの記事を追加し、件数を一致させた状態で push する。
## 前提
- 作業は /tmp の clone 上で行う
- 日本語版を正とし、英語版を後から揃える
## 手順
1. 既存スラッグと重複しないことを確認する
2. ja と en の両方の .mdx を作成する
3. 品質ゲートを通す
4. 日英の件数一致を確認してから push する
## 確認
- find で ja と en の本数が一致していること
- フロントマターの premium / level が日英で揃っていること
## 落とし穴
- en を作り忘れると言語切替で 404 になる
- ゲートと push を同じ実行にまとめると、失敗を見落とす
ポイントは、確認と落とし穴を必ず書くことです。手順だけのスキルはレシピにとどまりますが、確認と落とし穴を添えると、エージェントが自分の出力を検証する基準を持てます。私は確認セクションのないスキルは未完成とみなして、マージ前に差し戻すようにしています。
スキルが効いているかを測る
書きっぱなしで終わらせないために、効果を軽く測ります。厳密な評価ではなく、退行に気づける程度の仕組みで十分です。
代表的なタスクをいくつか固定し、スキル適用前後でエージェントの初動がどう変わるかを記録します。次のような最小限のチェックを、スキルを更新したときに回します。
#!/usr/bin/env bash
# guide-skill-smoke.sh — スキル更新後の簡易回帰チェック
set -euo pipefail
GUIDE_DIR=".antigravity/guides"
fail=0
# 1. 全 Guide ファイルに必須セクションがあるか
for f in $(find "$GUIDE_DIR" -name '*.md'); do
for section in "## 目的" "## 確認"; do
if ! grep -q "$section" "$f"; then
echo "欠落: $f に $section がありません"
fail=1
fi
done
done
# 2. 1ファイルが肥大化していないか(400行上限)
for f in $(find "$GUIDE_DIR" -name '*.md'); do
lines=$(wc -l < "$f")
if [ "$lines" -gt 400 ]; then
echo "肥大化: $f が ${lines} 行(上限400)"
fail=1
fi
done
[ "$fail" -eq 0 ] && echo "✅ Guide スキル健全" || { echo "❌ 要修正"; exit 1; }
この程度のチェックでも、「確認セクションを書き忘れたスキル」や「いつの間にか膨れ上がったスキル」を早い段階で捕まえられます。私の運用では、このスクリプトを記事追加の手順の中に組み込み、push 前に必ず回しています。
陳腐化を月次で検出する
Guide スキルの最大の敵は、内容が古くなることです。ツールのバージョンが上がり、規約が変わったのに、スキルだけ過去のまま残ると、エージェントを誤った方向へ導きます。沈黙して間違える分、何も書いていないより質が悪い状態になりかねません。
私は月に一度、最終更新日が古いスキルを洗い出しています。
# 60日以上更新されていない Guide を一覧化
find .antigravity/guides -name '*.md' -mtime +60 \
-exec echo "要レビュー: {}" \;
リストに挙がったスキルは、その月のうちに「まだ正しいか」を確認します。正しければ日付だけ更新し、ずれていれば直すか、役目を終えたものは削除します。スキルを増やすことよりも、信頼できる状態に保つことのほうが、長く運用するうえでは効いてきます。
どこから始めるか
すべてを一度に整える必要はありません。まずは、いま一番繰り返している説明を1つだけ Guide スキルに切り出してみてください。私の場合は「記事追加の手順」が最初の1本でした。これが機能する手応えを得てから、foundation と pitfalls へ広げていくと、無理なく定着します。
スキルは書いた瞬間が完成ではなく、使いながら削り、確認を足し、古くなったら直していく対象です。Dolice Labs の運用でも、結局いちばん役立っているのは、何度も手を入れて磨いた数本のスキルでした。同じように、あなたの環境でも長く効く数本が見つかることを願っています。