[Fabric]コードレビュー

ツール

コードレビューは、開発の品質を支える要ですが、一方で「時間がかかる」「指摘の粒度が人によってバラバラ」といった課題も抱えています。

今回は、プロンプト管理ツールFabricを使い、ターミナルから一瞬でAIによる高度なコードレビューを実行する方法を解説します。これを導入すれば、人間がレビューする前に「明らかなバグ」や「スタイルの乱れ」を一掃できます。

AIエージェントがコードを書く時代、そのコードをチェックするのもAIの得意分野です。Fabricのreview_codeパターンを使えば、熟練のシニアエンジニアが隣にいるような感覚でレビューを受けることができます。

1. Fabricとは?

Fabricは、世界中のトップ層が作成した「磨き上げられたプロンプト(Patterns)」を、誰でも簡単に呼び出せるようにしたツールです。

  • Patterns(パターン): 「知恵の抽出」「要約」「コードレビュー」など、特定のタスクに最適化されたプロンプト集。
  • CLIネイティブ: ブラウザでChatGPTを開いてコピペする必要はありません。ターミナル上で他のツールと組み合わせて使えます。
  • 汎用性: YouTubeの文字起こし、PDF、ソースコードなど、あらゆるテキストデータをAIに流し込めます。

2. インストールと初期セットアップ

Fabricは現在、Go言語で開発されています。以下の手順であなたのPCに導入しましょう。

Step 1: インストール

ターミナルで以下のコマンドを実行します。

# Fabricのインストール
go install github.com/danielmiessler/fabric@latest

# brew
brew install fabric-ai

Macの場合はfabricとして使用する手順

# シンボリックリンクと作成
sudo ln -s $(which fabric-ai) /usr/local/bin/fabric

# .zshrc に追記
export FABRIC_CONFIG_PATH="$HOME/.config/fabric"

# 設定を反映
source ~/.zshrc

brewで導入時は似た名前が多いので注意

fabric (brew): Python製のSSHリモート実行ツール(老舗)
fabric-ai (brew): AIプロンプト管理ツール
fabric-app (brew): 先ほど話題に出た fabric.so(ナレッジ管理GUIアプリ)

Step 2: 初期セットアップ

インストールが完了したら、設定を行います。

fabric --setup

実行すると、以下の入力を求められます。

  1. APIキー: 使用したいAI(OpenAI, Anthropic, Googleなど)のAPIキーを入力します。
  2. デフォルトモデル: 優先して使いたいモデル(例:gpt-4oclaude-3.5-sonnet)を選択します。
[Fabric]Gemini APIを使う!
AIツール「Fabric」を使いこなす上で、Googleの最新モデル「Gemini」のパワーを統合することは非常に賢い選択です。特に長文の要約や動画分析において、Geminiの広大なコンテキストウィンドウは大きな武器になります。今回は、Go...

3. Fabricによるコードレビューの基本手順

Fabricの最大の特徴は、「標準入力(Pipe)」を使ってコードを流し込める点です。

ステップ1:対象のコードを準備する

例えば、以下のような少し改善の余地があるPythonコード(app.py)があるとします。

Python

def calc(a, b, op):
    if op == "add":
        return a + b
    elif op == "sub":
        return a - b
    else:
        return None

print(calc(10, 5, "add"))

ステップ2:Fabricでレビューを実行する

ターミナルで以下のコマンドを叩くだけです。

cat app.py | fabric -p review_code

ポイント: -p(pattern)オプションで、実行したいプロンプトを指定します。extract_wisdom を指定すれば、単なるレビューではなく「重要なポイント」を箇条書きで抜き出してくれます。

4. 出力されるレビュー内容の例

review_codeパターンを実行すると、通常以下のような構成で詳細なフィードバックが返ってきます。

📝 Code Review Summary

  • 全体評価: 基本的なロジックは動作しますが、拡張性とエラーハンドリングに改善の余地があります。

🔍 改善ポイント

  1. 拡張性: if-elif構造は、演算の種類が増えた際にメンテナンスが困難になります。辞書マッピングの検討を推奨します。
  2. 型ヒントの欠如: 引数 a, b, op に型ヒントを追加することで、可読性と堅牢性が向上します。
  3. エラー処理: Noneを返すのではなく、予期しない演算子が渡された場合は例外(ValueError)をスローすべきです。

💡 修正コード案

Python

from typing import Union

def calc(a: float, b: float, op: str) -> float:
    operations = {
        "add": lambda x, y: x + y,
        "sub": lambda x, y: x - y,
    }
    if op not in operations:
        raise ValueError(f"Unsupported operation: {op}")
    return operations[op](a, b)

5. 実践テクニック:Gitの変更分だけをレビューする

ファイル全体ではなく、「今自分が書き換えた部分(Diff)」だけをレビューさせたい場合、これが非常に便利です。

# 現在の変更差分をレビュー
git diff | fabric -p review_code

# 特定のコミット間の差分をレビュー
git diff main..feature-branch | fabric -p review_code

これを使えば、プルリクエストを作成する前に、自分自身の変更点に対して「セルフAIレビュー」をかけることができます。

6. 精度をさらに高めるためのコツ

Fabricでのレビュー精度をさらに引き上げるための3つのアドバイスです。

  • コンテキストを補足する:プロジェクト固有のルール(例:「テストはVitestを使うこと」「命名規則はキャメルケース」など)がある場合、それらを記載したカスタムパターンを作成しましょう。
  • 多段処理(Chaining)を活用する:fabric -p review_code | fabric -p improve_code と繋げることで、「レビュー」から「実際のコード修正」までを一気に提案させることが可能です。
  • 言語を明示する:日本語でレビュー結果が欲しい場合は、パターンの最後に --language japanese を付け加えるか、自作パターンのシステムプロンプトに「常に日本語で回答してください」と記述しておきます。

パイプラインで「多段処理」をする

一度のプロンプトですべてを完結させようとせず、役割を分担させましょう。

  1. レビュー: まず review_code で重要な情報をすべて抜き出す。
  2. 修正 その結果をさらに improve_code に渡して実際にコードを修正にする。
fabric -p review_code | fabric -p improve_code

カスタムパターン(自分専用プロンプト)を作る

Fabricの強みは、自分好みのプロンプトを追加できることです。

~/.config/fabric/patterns/ 内に新しいフォルダを作り、そこに system.md を配置してください。

  • 例: 自分がよく見るジャンルに合わせた「特定の構成(見出し、トーン)」を指示書として書いておけば、次からは -p my_style のように呼び出すだけで、あなた専用の出力形式になります。

前処理で「ノイズ」を消す

Fabricの clean_text パターンを最初に噛ませることで、AIに「綺麗なテキスト」を渡すことができ、誤解や要約ミスを減らすことができます。

まとめ:レビューを自動化し、本質的な開発に集中する

Fabricによるコードレビューは、以下の3つの価値を提供します。

  1. スピード: 待ち時間ゼロで、即座にフィードバックが得られる。
  2. 一貫性: 気分や体調に左右されず、常に同じ基準でチェックできる。
  3. 教育: AIの指摘を見ることで、自分自身のコーディングスキルの向上に繋がる。

コメント

タイトルとURLをコピーしました