Fabricの「Pattern(パターン)」とは、AIに対する「役割(Role)」と「指示(Instructions)」をパッケージ化したものです。
自作のカスタムパターンを追加することで、自分専用の専門家をCLIから一瞬で呼び出せるようになります。ここでは、「Gitの差分から、規約に則ったコミットメッセージを生成する」プロンプトを例に、詳細な手順を解説します。
ステップ 1:ディレクトリ構成を理解する
Fabricのカスタムパターンは、特定のディレクトリにフォルダを作るだけで追加できます。まずはその場所を確認しましょう。
- 標準パス:
~/.config/fabric/patterns
この中に「フォルダ名 = パターン名」となるように構成します。
ステップ 2:パターンのフォルダを作成する
今回は、Gitのコミットメッセージを生成する git_commit_gen というパターンを作ります。
# パターン用のフォルダを作成
mkdir -p ~/.config/fabric/patterns/git_commit_gen
ステップ 3:system.md を作成する
Fabricのプロンプト本体は、必ず system.md という名前で作成します。
# system.md ファイルを作成
touch ~/.config/fabric/patterns/git_commit_gen/system.md
ステップ 4:プロンプト(指示書)を記述する
ここが最も重要な工程です。Fabricの標準パターンにならい、「役割」「ゴール」「出力形式」を明確に記述します。
~/.config/fabric/patterns/git_commit_gen/system.md をエディタで開き、以下の内容を記述してください。
# ROLE
あなたは経験豊富なシニアエンジニアであり、Gitのコミット規約(Conventional Commits)の達人です。
# GOAL
入力された `git diff` の内容を分析し、変更の意図を正確に反映したコミットメッセージを生成してください。
# RULES
- 形式は `type: description` としてください。
- typeは [feat, fix, docs, style, refactor, test, chore] から適切なものを選択してください。
- メッセージは日本語で、簡潔に記述してください。
- 重要な変更がある場合は、3行目以降に箇条書きで詳細を記述してください。
# OUTPUT EXAMPLE
feat: ユーザー認証機能にOAuth2を追加
- Googleアカウントでのログインに対応
- session管理用のライブラリをアップデート
ステップ 5:カスタムパターンの実行
作成したパターンは、すぐに -p オプションで呼び出すことができます。
動作確認
適当なテキストを流し込んで、指示通りに動くかテストします。
echo "ログイン画面のバリデーションバグを修正しました。" | fabric -p git_commit_gen
実戦での使い方
実際の開発ワークフローで、git diff の内容を直接流し込みます。
# 現在の差分を読み取ってコミットメッセージ案を作る
git diff | fabric -p git_commit_gen
ステップ 6:さらに精度を上げるための「手引き」
自作パターンの精度が安定しない場合は、以下の3点を system.md に追加してみてください。
1. 不必要な出力を禁止する
AIが「はい、わかりました。以下の通り生成します」といった余計な挨拶をしないよう、「出力はメッセージ本体のみとし、解説や挨拶は一切含めないでください」という一文を RULES セクションに加えます。
2. 少数の例(Few-shot)を入れる
# EXAMPLES セクションを作り、「こういう入力の時は、こういう出力を出す」という例を2〜3セット記述すると、AIは一気に賢くなります。
3. コンテキストを強化する
もし特定のプロジェクト(例:LaravelやReactなど)専用にしたい場合は、「このプロジェクトはTypeScriptとNext.jsを使用しています。型定義の変更には特に注意を払ってください」といった背景情報を書き込むと、より的確な指摘が返ってくるようになります。
便利な管理術:パターンの即時編集
自作パターンを頻繁に微調整したい場合は、エディタで直接開くためのエイリアスを .zshrc に作っておくと便利です。
# 設定例:fedit git_commit_gen と打てばVS Codeで開く
alias fedit='code ~/.config/fabric/patterns'
これで、いつでも自分の「AI専門家軍団」を拡張し、磨き上げることができるようになります。


コメント