AIを使ってコードをデリバリーする方法

小賢しいプロンプトを書こうとするのはやめましょう。コンテキストをエンジニアリングすることから始めてください。

多くの人はAIを間違った方法で使っています。一文で機能を要求するのです。するとAIは、間違ったライブラリを使用し、命名規則を無視し、古いバグを再発させるようなコードを返してきます。結局、午後の時間はその修正に費やされることになります。

コンテキストのないAIは、あなたのコードベースを一度も読んだことがないジュニアデベロッパーと同じです。昨日のことはすべて忘れてしまいます。新人に一行だけのチケットを渡して、完璧なコードを期待することはないはずです。代わりにオンボーディングドキュメントを渡すでしょう。

私はリポジトリ内に「プロジェクト・メモリ・ファイル(project memory file)」を使用しています。このファイルは、AIが毎回読み込むオンボーディングドキュメントとして機能します。そこには、外部の人間にはわからないプロジェクト固有のルールが含まれています。

• 譲れないルール:URLの形式や、スラッグを本番環境と一致させる方法。 • ロジックのルール:数値をハードコードするのではなく、設定から値を導出すること。 • エッジケース:サイレントな破損を防ぐための、特定のCDN設定やファイルパス。

私が犯すすべてのミスが、このファイルの一行になります。これにより、ファイルは複利的に価値を生む資産へと変わります。同じことを繰り返さなくて済むようになるため、AIの出力品質は時間の経過とともに向上していきます。

私のワークフローは以下のステップに従っています。

  • コンテキストのブートストラップ:AIにコードからメモリ・ファイルのドラフトを作成させ、それを自分で編集します。
  • タスクの再定義:コードを書く前に、AIにゴールを要約させます。これにより、早い段階でエラーを検知できます。
  • プロンプトの改善:依頼内容のどこが曖昧かをAIに尋ねます。

AIを活用すべきタスク:

  • ボイラープレートやスキャフォールディングの作成。
  • パターンに従ったリファクタリング。
  • 未知のコードの解説。
  • リポジトリ全体に対する機械的なスキャン。
  • テストやフィクスチャの作成。

AIの使用を避けるべきタスク:

  • 新規のアーキテクチャ決定。
  • センスやプロダクトに関する判断。
  • 間違いのコストが高いもの。
  • セキュリティ上重要な設計。
  • デリバリー前の最終レビュー。

規律はシンプルです:

  • タスクの範囲を小さくする。「この機能を構築して」と言うのではなく、「この特定の変更を行って」と言います。
  • コンテキストを事前に提供する。
  • すべての出力を検証する。ビルドを実行し、diffを確認します。
  • ジュニアデベロッパーのPRのようにレビューする。人間が読んでいないコードをコミットしてはいけません。
  • 学んだ教訓をコンテキスト・ファイルにフィードバックする。

レバレッジはプロンプトにあるのではありません。あなたが維持しているコンテキストにこそ、レバレッジがあるのです。

Source: https://dev.to/faizahmedfarooqui/how-i-actually-use-ai-to-ship-code-context-engineering-over-clever-prompts-il8

Optional learning community: https://t.me/GyaanSetuAi