第3回Bobサロンのセッション「- Bobをチームメンバーに! - かしこいBobの育て方」で紹介した「Bobジェクト指向」を、ご自身のリポジトリで実践するためのガイドです。
新規開発者向けドキュメントの作成を通じて、カスタム・モードとルールファイルの活用を体験できます。
なお、投稿内容は私自身の見解であり、所属組織の立場、戦略、意見を代表するものではありません。
Bobジェクト指向とは
Bobにはルールやカスタム・モードなど、出力をカスタマイズする機能が用意されています。
これらは便利な一方で、チーム開発ではメンバーそれぞれが作成したルールやコマンドの衝突、管理コストの増加が課題となりがちです。
これらの課題を解決するため、各機能に明確な役割を定義して運用する考え方を先述のセミナーで提案しました。
プログラミングでは、機能分割をする設計思想を「オブジェクト指向」と言います。
今回はBobにおいて、機能を分割をしてナレッジのファイルを設計するアプローチを取り入れています。
これを「Bob + オブジェクト指向」とした造語で「Bobジェクト指向」と名付けました。
この考え方を導入することで、出力の一貫性を保ちながら精度の向上も図ることができます。
セッション資料とリプレイ動画
4月中を目処に公開予定です。
公開され次第更新します。
本記事の対象読者
- Bobを使用している開発者
- チームでBobを活用したい方
事前準備
用意するもの
- IBM Bob
- Bobジェクト指向を実践したいプロジェクトのディレクトリ
- 既存プロジェクトやアプリケーションのGitリポジトリ等を用意します
- サンプルファイル
- 配布URL: https://github.com/mu-perori/bob-oop-sample/archive/refs/tags/v1.0.zip
- 上記よりダウンロード後、zipファイルを解凍します
サンプルファイルの内容
-
custom_modes.yaml- カスタム・モードの定義ファイル
- 今回はドキュメント生成専用モードの定義を記述しています
-
rules-doc-writer/doc-writing-guidelines.md- ドキュメント生成専用モードのルールファイル
-
rules-+カスタム・モードに定義したslugのディレクトリ内に格納することで、そのslugが付いたモードを使用した際のルールとして適用されます
-
rules/01-output.md- チャットを中心とした出力についてのルールファイル
-
rules/のディレクトリ内に格納したファイルが全体適用ルールとなります
-
commands/write-onboarding-doc.md- スラッシュ・コマンドの定義ファイル
-
commands/のディレクトリ内に格納したMarkdownファイルがコマンドとして呼び出せるようになります
-
AGENTS.md- プロジェクト概要やゴールを記述するファイル
Bobの起動
Bobを起動し、作業対象のディレクトリを開きます。
ステップ1: デフォルト設定でドキュメント生成
以下のプロンプトをBobのチャット欄に入力し、まずはデフォルト設定でドキュメントを生成してみましょう。
このアプリケーションについて新規開発者向けのオンボーディングガイドを新たに生成したいです。
このリポジトリのファイルとコードに基づいて概要、使用技術、主要機能をまとめてください。
出力ファイル名は`demo-doc01.md`にしてください。
ステップ2: ルールファイルの配置
以下のディレクトリ構成を参照し、作業対象ディレクトリにルールファイルとカスタム・モード定義ファイルを配置します。
(作業対象ディレクトリ/)
├── .bob/ # Bobの設定ファイルを格納する専用ディレクトリ
│ ├── custom_modes.yaml # カスタム・モードの定義
│ ├── rules-doc-writer/ # カスタム・モードごとのルール
│ │ └── doc-writing-guidelines.md
│ │
│ ├── rules/ # 全体適用ルール(目的別でファイル分け)
│ │ ├── 01-output.md
│ │ └── ......
│ │
│ └── commands/ # スラッシュ・コマンドの定義
│ └── write-onboarding-doc.md # コマンドごとの定義ファイル
│
├──(プロジェクトの各種ディレクトリ)
└── AGENTS.md
ステップ3: AGENTS.mdの編集
サンプルとして配布したAGENTS.mdでは、プロジェクト概要とゴールが空の状態になっています。
ご自身のディレクトリの内容に合わせて記入してください。
ここに記入した内容は、Bobがディレクトリの内容をより効率的に理解するうえで役立ちます。
ステップ4: カスタム・モードでドキュメント生成
ドキュメント生成専用のカスタム・モード「Doc writer」を使って、Bobにドキュメントを作成してもらいましょう。
先ほどの出力とコンテキストを分けるため、新しいチャットを使用する必要があります。
「新しいタスクを開始」ボタン、もしくは右上のバツボタンを押して現在のチャットを閉じてください。
チャット欄の左下にあるモード選択メニューから「Doc writer」を選び、以下のコマンドを入力します。
/write-onboarding-doc demo-doc02.md
このコマンドを入力すると、Bobは.bob/rules-doc-writerディレクトリのルールに従って、ドキュメントを生成します。
なお、このコマンドの定義ファイル(write-onboarding-doc.md)には先ほどデフォルト設定でドキュメントを生成したプロンプトと同様の指示が書かれています。
ステップ5: 出力の比較と効果の確認
先ほどのチャットや生成されたドキュメントと、今回の出力を見比べてみてください。
以下の点で違いが確認できるはずです。
- 出力の長さ
- 内容や構成
- 文体
オプション: ルールのカスタマイズ
.bob/rules-doc-writer/doc-writing-guidelines.mdを編集すると、カスタム・モードのルールを変更できます。
字数制限の変更や禁止事項の追加など、プロジェクトに合わせて更新しながらBobを育てていきましょう。
最後に
デモの実践を通して、ルールやカスタム・モードの有用性、そしてBobジェクト指向の考え方を少しでも体感いただけたら幸いです。
全体適用ルールの追加や新たなカスタム・モードの実装、コマンドやSkillsの作成など、今回触れられなかった機能の活用にもぜひ挑戦してみてください。
参考
公式ドキュメント
- 公式ドキュメントのトップページ
- 今回取り上げた機能
関連ソリューション
よりエンタープライズ向けの出力標準化ソリューションとしてIBMではALSEAを開発しています。