AI 支援型テスト駆動開発フレームワークの Tsumiki を Gemini CLI で動かせるようにしてみた
ウィスキー、シガー、パイプをこよなく愛する大栗です。
弊社クラスメソッドでは AI 支援型テスト駆動開発フレームワークである Tsumiki を公開しています。Tsumiki は Claude Code での利用を前提としています。本エントリでは Gemini CLI で動かしてみようと思います。
AI 支援型テスト駆動開発フレームワーク『Tsumiki』
Tsumiki は AI 駆動開発のためのテスト駆動開発フレームワークです。特に Claude Code を使用して効率的な開発プロセスを要件定義から設計、タスク分割、実装まで体系化して提供します。
Tsumiki は包括的開発フローをサポートするための Kairo コマンド、テストケースとコード実装を個別に行う TDD コマンド、リバースエンジニアリングを行う Rev コマンドなどがあります。
- Kairoコマンド(包括的開発フロー)
kairo-requirements
- 要件定義kairo-design
- 設計文書生成kairo-tasks
- タスク分割kairo-task-verify
- タスク内容確認kairo-implement
- 実装実行
- TDDコマンド(個別実行)
tdd-requirements
- TDD要件定義tdd-testcases
- テストケース作成tdd-red
- テスト実装(Red)tdd-green
- 最小実装(Green)tdd-refactor
- リファクタリングtdd-verify-complete
- TDD完了確認
- リバースエンジニアリングコマンド
rev-tasks
- 既存コードからタスク一覧を逆生成rev-design
- 既存コードから設計文書を逆生成rev-specs
- 既存コードからテスト仕様書を逆生成rev-requirements
- 既存コードから要件定義書を逆生成
- DIRECTコマンド(TASK 作成時に
DIRECT
と判定している場合に使用)direct-setup
- DIRECTタスクの設定作業の実行direct-verify
- DIRECTタスクで実行した設定作業の動作確認とテスト
カスタムスラッシュコマンド
Tsumiki のコマンドは Claude Code のカスタムスラッシュコマンドとして実装されています。Claude Code では Markdown ファイルで定義します。本エントリーでは Gemini CLI での実行を目指していますが、Gemini CLI のカスタムスラッシュコマンドは TOML ファイルとして定義します。
Claude Code と Gemini CLI では基本的に同等の内容を記述しますがファイルフォーマットに違いがあるので変換ができそうです。個別に変換するのは面倒だなと Web を探していたら変換ツールを作成されている方がいました。こちらの hatappo/agent-slash-sync を利用して Tsumiki のコマンドを変換できました。
やってみた
では実際に Gemini CLI で Tsumiki を動かしてドキュメントを作成してみます。今回は VS Code のターミナルで Gemini CLI を実行します。
Gemini CLI と VS Code は統合機能があります。実行しなくても問題ありませんが VS Code に Gemini CLI Companion 拡張機能をインストールするか、VS Code 上のターミナルで Gemini CLI から /ide install
コマンドを実行しておくことを推奨します。
事前にプロジェクト用のディレクトリを作成しておきます。
$ mkdir path/to/project
Tsumiki は npx コマンドでもインストールできますが、最新版を使用するために GitHub から取得します。一時的なディレクトリを作成してダウンロードします。
$ mkdir path/to/temp && cd $_
$ git clone https://github.com/classmethod/tsumiki.git
hatappo/agent-slash-sync をインストールします。
$ npm install -g agent-slash-sync
Tsumiki の .claude
ディレクトリの中身をプロジェクトの .gemini
ディレクトリへ変換して移行します。
$ agent-slash-sync -c c2g --claude-dir path/to/temp/tsumiki --gemini-dir path/to/project/.gemini
Starting Claude → Gemini conversion...
Found 21 source file(s)
Results:
[A] path/to/project/.gemini/commands/auto-debug.toml - Created
[A] path/to/project/.gemini/commands/direct-setup.toml - Created
[A] path/to/project/.gemini/commands/direct-verify.toml - Created
[A] path/to/project/.gemini/commands/kairo-design.toml - Created
[A] path/to/project/.gemini/commands/kairo-implement.toml - Created
[A] path/to/project/.gemini/commands/kairo-requirements.toml - Created
[A] path/to/project/.gemini/commands/kairo-task-verify.toml - Created
[A] path/to/project/.gemini/commands/kairo-tasks.toml - Created
[A] path/to/project/.gemini/commands/rev-design.toml - Created
[A] path/to/project/.gemini/commands/rev-requirements.toml - Created
[A] path/to/project/.gemini/commands/rev-specs.toml - Created
[A] path/to/project/.gemini/commands/rev-tasks.toml - Created
[A] path/to/project/.gemini/commands/start-server.toml - Created
[A] path/to/project/.gemini/commands/tdd-green.toml - Created
[A] path/to/project/.gemini/commands/tdd-load-context.toml - Created
[A] path/to/project/.gemini/commands/tdd-red.toml - Created
[A] path/to/project/.gemini/commands/tdd-refactor.toml - Created
[A] path/to/project/.gemini/commands/tdd-requirements.toml - Created
[A] path/to/project/.gemini/commands/tdd-testcases.toml - Created
[A] path/to/project/.gemini/commands/tdd-todo.toml - Created
[A] path/to/project/.gemini/commands/tdd-verify-complete.toml - Created
Summary:
Created: 21
✓ Conversion completed successfully!
VS Code のターミナルで Gemini CLI を実行します。バージョンは 0.1.22 を使用しています。
$ cd path/to/project
$ gemini --version
0.1.22
$ gemini
プロンプトを /kairo
まで入力すると、以下のように Kairo コマンドの候補が表示されます。
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ > /kairo │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
kairo-tasks 設計文書に基づいて実装タスクを1日単位の粒度で分割し、1ヶ月単位のフェーズ…
kairo-task-verify 作成されたタスクファイルの内容を確認し、出力フォーマット例に沿った情報が…
kairo-requirements ユーザから提供された要件の概要を分析し、EARS(Easy Approach to Requiremen…
kairo-implement 分割されたタスクを順番に、またはユーザが指定したタスクを実装します。既存…
kairo-design 承認された要件定義書に基づいて、技術設計文書を生成する。データフロー図、T…
path/to/project no sandbox (see /docs) gemini-2.5-pro (100% context left)
こんな感じで要求を書いてみます。
> /kairo-requirements
読んだ本のタイトルや感想などを記録していけるデータベースアプリ。
他のユーザーのレビューも参照できる。
mkdir の実行許可を求められます。本エントリーでは 2. Yes, allow always ...
を選びます。他のコマンドの許可も同様にします。
✦ 要件定義を作成します。まず、docs/specディレクトリを作成します。
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ? Shell mkdir -p docs/spec (`docs/spec` ディレクトリを作成します。) ← │
│ │
│ mkdir -p docs/spec │
│ │
│ Allow execution of: 'mkdir'? │
│ │
│ 1. Yes, allow once │
│ ● 2. Yes, allow always ... │
│ 3. No, suggest changes (esc) │
│ │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
⠏ Waiting for user confirmation...
VS Code と統合していると作成したドキュメントの差分を表示してくれます。
最終的に3個の要件定義ドキュメントを作成します。必要に応じて内容を修正します。
- 読書レビューアプリ 受け入れ基準 -
docs/spec/BookReviewApp-acceptance-criteria.md
- 読書レビューアプリ 要件定義書 -
docs/spec/BookReviewApp-requirements.md
- 読書レビューアプリ ユーザーストーリー -
docs/spec/BookReviewApp-user-stories.md
ユーザーストーリーであれば、このように作成されます。
この要件定義を元に /kairo-design
コマンドで設計書を作成します。
/kairo-design
最終的に 5 個の設計ドキュメントを作成します。必要に応じて内容を修正します。
- アーキテクチャ概要 -
docs/design/BookReviewApp/architecture.md
- データフロー図 -
docs/design/BookReviewApp/dataflow.md
- TypeScript型定義 -
docs/design/BookReviewApp/interfaces.ts
- DBスキーマ -
docs/design/BookReviewApp/database-schema.sql
- API仕様 -
docs/design/BookReviewApp/api-endpoints.md
データフロー図であれば、このように作成されます。
設計書を元に /kairo-tasks
コマンドでタスクに分割します。
/kairo-tasks
実装タスクの全体像とフェーズに分けたタスクを作成してくれます。
- 実装タスク全体概要 -
docs/tasks/BookReviewApp-overview.md
- Phase 1: 基盤構築と認証 -
docs/tasks/BookReviewApp-phase1.md
- Phase 2: コア機能実装 (Backend) -
docs/tasks/BookReviewApp-phase2.md
- Phase 3: UI/UX実装 (Frontend) -
docs/tasks/BookReviewApp-phase3.md
- Phase 4: 統合とテスト -
docs/tasks/BookReviewApp-phase4.md
今回は BookReviewApp-overview.md
のガントチャートの mermaid がシンタックスエラーだったので修正させます。
> BookReviewApp-overview.md が mermaid の Syntax error になっているので修正してください。
実装タスク全体概要は以下のように作成されました。
この様に Gemini CLI でも Tsumiki を動かせました。Tsumiki は分割したタスクをもとに実装も可能ですが、ここではドキュメント作成で終了します。
この後は /kairo-implement
コマンドでまとめて実装できます。ただし、TDD サイクルまたは DIRECT を手動実行することが推奨されています。必要に応じて実装方法を選択してください。
さいごに
hatappo/agent-slash-sync に助けられたおかげですんなりと Gemini CLI で動かすことができました。コマンド以外のプロンプトが以下の 2 行しか無くとも必要となる設計を行ってくれます。
読んだ本のタイトルや感想などを記録していけるデータベースアプリ。
他のユーザーのレビューも参照できる。
実際に実用的なアプリケーションを作成する場合には、より詳細な要件を伝えたり、ドキュメントを細かくレビューして修正指示を行ったりと追加の指示は必要となりますが、簡単な指示だけでも有用な叩き台を作成してくれます。
AI 駆動開発用のツールは既に多数ありますが、開発フレームワークの考え方自体は共通で利用できることも多いと思います。特にスラッシュコマンド等は一般的な機能として実装されていることも多いので、うまく変換することで Tsumiki を Claude Code 以外でも活用できるのではないかなと思います。