0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenSpecでAIコーディングの実装・レビュー・検証を分ける —— ithyno入門

0
Posted at

この記事は、AIコーディングエージェントを実際の機能開発に使っている人向けです。

次のような問題を感じたことはないでしょうか。

  • 要件が固まる前にエージェントが実装を始める
  • 要件がチャット履歴の中に埋もれる
  • 実装したセッションが、そのまま自分の実装をレビューする
  • 複数の変更とターミナルを人間が覚えて管理する
  • プロセスは終了したが、本当に検証まで完了したのか分からない

ithynoは、OpenSpecに基づく変更を可視化し、実装・レビュー・検証をロール別のAIセッションへ割り当てるOSSです。

デスクトップアプリまたはVS Code拡張と、OpenSpec Skills・ithyno Skillsで構成されています。

VS Code内で動作するithynoのダッシュボード

まず、実装前に変更内容を決める

ithynoのワークフローはOpenSpecを土台にしています。

OpenSpecは、AIコーディングアシスタント向けの軽量な仕様駆動開発フレームワークです。

チャットの指示だけを要件にせず、実装前に「何を変更するか」をリポジトリへ記録します。

プロンプト → 実装 → 意図どおりか後から確認

ではなく、次の順序で進めます。

期待する動作を合意 → 変更を計画 → 実装 → レビュー → 検証

OpenSpecでは、現在合意されている動作と、これから行う変更を分けて管理します。

  • openspec/specs/:現在合意されているシステムの動作
  • openspec/changes/<change-id>/:提案中または実装中の変更
  • proposal.md:変更する理由と内容
  • tasks.md:実装するタスク
  • specs/:追加・変更する要件
  • design.md:必要に応じた設計上の判断
openspec/changes/<change-id>/
├── proposal.md
├── design.md
├── tasks.md
└── specs/

完了したChangeは、現在の仕様へアーカイブできます。

ithynoで表示したOpenSpecの仕様

1つのChangeをロール別に割り当てる

OpenSpecは変更内容を定義します。

ithynoは、そのChangeを別々のロールへ渡します。

OpenSpec Change
    │
    ├── code   → タスクを実装する
    ├── review → 実装と仕様を比較する
    └── verify → プロジェクトの検証を実行する

各ロールは同じChangeを読みます。

ただし、担当する判断は異なります。

code

proposal、要件、tasksを読み、要求された変更を実装します。

review

実装を続けるのではなく、差分がproposalと要件を満たしているか確認します。

verify

そのプロジェクトで利用できるテストやビルドを実行し、結果を記録します。

この分離により、実装時の思い込みをそのままレビューへ持ち込みにくくなります。

複数エージェントを指定する

ロールを分けるために、ClaudeとCodexを混在させる必要はありません。

例えば、次の構成が可能です。

  • Claude Sonnetをcode、Claude Fableをreviewへ割り当てる
  • Codex GPT-3.5-miniをcode、GPT-5.6-Terraをreviewへ割り当てる
  • AGYからClaude Sonnet 4.6をcode、Gemini 3.1 Proをreviewとして呼び出す
  • Claude Sonnetをcode、Codex GPT-5.6-Terraをreviewへ割り当てる

同じモデルを使う場合も、codeとreviewを別のセッションとして起動できます。
モデル名や利用可否は、各CLIの更新によって変わることがあります。

重要なのはベンダーの数ではありません。

役割とセッションを分離することです。

ithynoのManagerとロール別Worker

ithynoで設定する

基本的な流れは次のとおりです。

  1. 使用するAIエージェントCLIをインストールし、認証する
  2. ithynoの Settings → Prerequisites でCLIを確認する
  3. 各CLIへOpenSpec Skillsとithyno Skillsをインストールする
  4. Agents画面でManagerとWorkerを登録する
  5. Workerへcode、review、verifyのロールを割り当てる

ManagerはChange全体を進行します。

Workerは必要なステージで起動されます。

設定はプロジェクトルートのagents.yamlへ保存されます。

CLIの組み合わせや設定項目は、複数エージェントを設定してDispatchするで確認できます。

ChangeをDispatchする

ダッシュボードでChangeを作成した後、StartからDispatchできます。

ithynoは、起動したManagerターミナルへdispatchコマンドを自動入力できます。

表示されたChange IDやコマンドをコピーして、自分で貼り付けることもできます。

Manager CLIは、インストール済みのithyno dispatch Skillを呼び出します。

クライアントによって、コマンド形式が異なります。

/ithy-opsx:dispatch add-session-timeout

または次の形式です。

ithy-opsx-dispatch add-session-timeout

1つのChangeでは、ステージを順番に実行します。

proposed → code → review → verify → merge / archive

別々のChangeは、Git worktreeへ分離して並行実行できます。

OpenSpec Changeを処理しているWorker

終了コードではなく成果物で判断する

AIエージェントCLIの終了コードが0でも、要求された作業が完了しているとは限りません。

そのためithynoは、標準出力だけで成功を判断しません。

reviewとverifyは、Change内へ構造化されたreview.mdを書きます。

---
verdict: needs-rework
summary: "必須のエッジケースが未実装です。"
findings:
  - severity: high
    file: src/auth.ts
    line: 42
    message: "トークンの有効期限検証がありません。"
---

Managerはこの成果物を読みます。

passなら次のステージへ進みます。

needs-reworkなら、指摘をcode Workerへ戻します。

これにより、次の証拠がリポジトリに残ります。

仕様 → 実装差分 → レビュー結果 → 検証結果

完了したChangeを表示するithyno

ithynoが担当する範囲

ithynoはOpenSpec、Git、AIエージェントCLIを置き換えるものではありません。

  • OpenSpecが変更内容を定義する
  • AIセッションがロール別の作業を行う
  • Git branchとworktreeが実装を分離する
  • review.mdがレビューと検証の結果を残す
  • ithynoが全体を可視化して進行をつなぐ

デスクトップアプリとVS Code拡張は、どちらも同じリポジトリ内のファイルを使用します。

現在の状態と試し方

ithynoは現在alpha版です。日本語対応予定

AIエージェントCLIの引数、権限、子エージェント機能は変化が速いため、対応状況はドキュメントで更新しています。

試す場合は、次の順に進めてください。

  1. インストール
  2. シンプルなプロジェクトを開始する
  3. ロール別Workerを設定する
  4. GitHubでソースとリリースを見る

最初から複数ベンダーを用意する必要はありません。

まず1つのOpenSpec Changeを作ります。

次に、実装とレビューを別のセッションへ分けるところから始められます。

不具合や対応してほしいCLI構成があれば、GitHub Issuesへお知らせください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?