What(何をするか)
Devin に完了してほしいタスクを説明してください。Example: 私のプロジェクトを Java 7 から Java 8 にアップグレードする。
How(どのように行うか)
Devin がタスクを完了する際の、やるべきこと・やってはいけないことを説明してください(例: Modal を使ってデプロイする、など)。Example: 非推奨になった Java 7 の API を特定し、Java 8 の同等の API に置き換える。コードベースを分析し、Java 8 の言語機能および API による改善の余地を特定する。
Result(結果)
Devin がタスク完了と判断できるよう、期待する結果や Devin がテストすべき振る舞いを説明してください。Example: テストスイートを実行し、すべてのテストが正常に通過することを確認する。更新された Java 8 設定を使ってプロジェクトをビルドし、アプリケーションが起動し正常に動作していることを確認する。
適切なタスクの選び方
-
明確な成功基準
- 成功を自動で検証できるタスク
- フィードバックループが組み込まれているもの(テスト、コンパイル、Lint チェック)
- 客観的な品質指標があるもの
-
適切なスコープ
- ジュニアエンジニア相当の複雑さ
- スコープの境界が明確に定義されているもの
- 追従すべきパターンがはっきりしているもの
-
反復性の高い作業
- 同様の変更を何度も適用する必要があるタスク
- 単純なスクリプト化が難しいバリエーションがあるもの
- 参考にできる既存のサンプルがあるもの
-
一般的な例
- 複数パッケージにわたるバージョンアップ
- テストされていないモジュールへのテストカバレッジの追加
- ファイルを新しいパターン/標準に合わせて変換
- 標準的な UI コンポーネントの実装
複雑なタスクは複数のセッションに分けて、よりシンプルなサブタスクに分解する
Devin に進捗の確認方法を伝える
-
テスト要件を明確にする
- Devin に特定のテストスイートを実行するよう依頼する
- どのテストがパスすべきかを定義する
- 必要に応じてテストカバレッジの指標を要求する
-
明確なチェックポイントとサブタスクを設定する
- 複雑なタスクを検証可能なサブタスクに分解し、サブタスクごとに Devin のセッションを 1 つ開始する
- 各サブタスクにおいて、成功条件を定義し、必要に応じてサブタスク内のチェックポイントも定義する
- 各チェックポイント/サブタスクの完了後に、Devin に結果を報告させる
-
Devin に、作業の確認方法を指示する
Devin が正しい方向に進めているかをどのように確認すればよいかを明確にします。例えば:
- データセットを扱う場合: 「データセットに少なくとも 500 行があり、列 X、Y、Z を含むことを検証する」
- API を変更する場合: 「エンドポイントがステータス 200 を返し、必要なフィールドをすべて含んでいることを確認する」
- UI を更新する場合: 「コンポーネントがコンソールエラーなしでレンダリングされ、デザイン仕様に一致していることを確認する」
具体的かつ明確に指示する
- タスクを完了するために必要な主要な手順を明示する
- Devin に扱わせたい特定のリポジトリ、ライブラリ、ブランチなどを指定する
