Skip to main content
手動でのセットアップが面倒ですか?このページのリンクを Devin のセッションに貼り付けて、すべてセットアップするよう指示してください。
1

マイグレーションチェックリストスキルを作成する

リポジトリスキルとは、任意のリポジトリ内の .agents/skills/<your-skill>/ にコミットする Markdown ファイルのことです。Devin は、接続されているすべてのリポジトリに存在するすべてのスキルを把握しており、手動でトリガーすることも、関連する状況を検知したときに自動的にトリガーさせることもできます。このスキルは、PR を作成または更新する前にデータベースマイグレーションをどのようにレビューすべきかを Devin に正確に指示し、通常のコードレビューでは見逃されがちなミスも検知できるようにします。.agents/skills/migration-checklist/migration-checklist.md をあなたのリポジトリにコミットしてください。
このファイルをコミットすると、Devin はそれを利用可能なスキルとして認識します。このリポジトリ内のマイグレーションファイルをセッションが扱うたびに、Devin が自動的にそのチェックリストを起動できますし、必要なときに任意のタイミングで手動実行することもできます。
2

実際のマイグレーションでスキルトリガーを確認する

Devin がマイグレーションファイルを追加・変更するタスクに取り組むときは、diff を読み取り、マイグレーションチェックリストスキルに該当すると判断し、PR を開く前にチェックリストに従います。実際の流れは次のとおりです。
  1. diff をスキャンする — Devin は db/migrate/ に新しいファイルがあることに気づき、マイグレーションチェックリストスキルを有効化します
  2. 破壊的な操作を検知する — マイグレーションで legacy_email カラムを削除しています。Devin は PR コメントを追加します:
    remove_column :users, :legacy_email は破壊的な操作です。 確認結果: マイグレーションには、削除前に値を user_archives にコピーするデータバックアップ手順が含まれています。
  3. 不足しているインデックスを追加する — マイグレーションは invoices テーブルに account_id を追加しますが、インデックスがありません。Devin はマイグレーションファイルに add_index :invoices, :account_id を追記します
  4. ロールバックを実行する — Devin はテストデータベースに対して bin/rails db:migrate:rollback STEP=1 を実行します。問題なく完了します
  5. スキーマを再生成する — Devin は bin/rails db:schema:dump を実行し、db/schema.rb に diff があることを検出して、更新されたファイルをコミットに含めます
  6. モデルテストを実行する — すべてのモデルテストが成功します。Devin は各チェックの要約付きで PR を作成します
PR の説明文には、どのチェックが通り、Devin が何を修正したかを示すチェックリストが含まれるため、レビュアーはマイグレーション作業の手順ではなくビジネスロジックに集中できます。
3

スキルを自分のORMやスタック向けにカスタマイズする

上のチェックリストは Rails を対象にしていますが、同じ構成は任意の ORM で利用できます。Devin に、あなたのスタック向けにこのスキルを書き換えるよう指示してください:
4

チェックリストを継続的に拡張する

移行インシデントが起きるたびに、チェックリストではカバーしきれていない抜けが明らかになります。そのたびにルールを1つ追加しましょう — skill ファイルに1行コミットするだけです。以下は、実際のインシデント後にチームがよく追加しているルールの例です。
スキルファイルはリポジトリ内にあるため、これらのルールはコードレビューの対象となり、何をチェックするかをチーム全体で合意でき、常に移行ツールと同期した状態を保てます。