takt/docs/README.ja.md
2026-01-31 21:34:51 +09:00

26 KiB
Raw Permalink Blame History

TAKT

Task Agent Koordination Tool - Claude CodeとOpenAI Codex向けのマルチエージェントオーケストレーションシステム

TAKTはTAKT自身で開発されていますドッグフーディング

必要条件

  • Claude Code または Codex がインストール・設定済みであること
  • GitHub CLI (gh) — takt "#N"GitHub Issue実行を使う場合のみ必要

TAKTはClaude CodeとCodexの両方をプロバイダーとしてサポートしています。セットアップ時にプロバイダーを選択できます。

インストール

npm install -g takt

クイックスタート

# タスクを実行ワークフロー選択・worktree・PR作成を対話的に案内
takt ログイン機能を追加して

# GitHub Issueをタスクとして実行どちらも同じ
takt '#6'
takt --issue 6

# 対話モードでAIとタスク要件を詰めてから実行
takt

# パイプライン実行(非対話・スクリプト/CI向け
takt --task "バグを修正して" --auto-pr

タスク実行の流れ

takt ログイン機能を追加して を実行すると、以下の対話フローが表示されます:

1. ワークフロー選択

Select workflow:
  (↑↓ to move, Enter to select)

   default (current) (default)
    expert
    expert-cqrs
    magi
    research
    simple
    Cancel

2. 隔離クローン作成(オプション)

? Create worktree? (Y/n)

y を選ぶと git clone --shared で隔離環境を作成し、作業ディレクトリをクリーンに保てます。

3. 実行 — 選択したワークフローが複数のエージェントを連携させてタスクを完了します。

4. PR作成worktree実行後

? Create pull request? (y/N)

--auto-pr を指定している場合は確認なしで自動作成されます。

おすすめワークフロー

ワークフロー おすすめ用途
default 本格的な開発タスク。TAKT自身の開発で使用。アーキテクトセキュリティの並列レビュー付き多段階レビュー。
simple README更新や小さな修正などの軽量タスク。レビューはあるが修正ループなし。
expert / expert-cqrs Web開発プロジェクト。修正ループ付き逐次マルチエキスパートレビューexpert: アーキテクチャ、フロントエンド、セキュリティ、QA。expert-cqrs: CQRS+ES、フロントエンド、セキュリティ、QA
research 調査・リサーチ。質問せずに自律的にリサーチを実行。
magi 審議システム。3つのAIペルソナが分析・投票エヴァンゲリオン風

コマンド一覧

対話モード(デフォルト)

日常の開発で使う基本モード。ワークフロー選択、worktree作成、PR作成を対話的に確認します。

# タスクを実行
takt ログイン機能を追加して

# GitHub Issueをタスクとして実行どちらも同じ
takt '#6'
takt --issue 6

# 対話モードでAIとタスク要件を詰めてから実行
takt

# タスクを実行してPRを自動作成確認プロンプトをスキップ
takt '#6' --auto-pr

--auto-pr を指定しない場合、worktreeでの実行成功後に「PR作成する」と確認されます。

パイプラインモード(--task

--task を指定すると非対話のパイプラインモードに入ります。ブランチ作成 → ワークフロー実行 → commit & push を自動で行います。スクリプトやCI連携に適しています。

# タスクをパイプライン実行
takt --task "バグを修正"

# パイプライン実行 + PR自動作成
takt --task "バグを修正" --auto-pr

# Issue情報を紐付け
takt --task "バグを修正" --issue 99 --auto-pr

# ワークフロー・ブランチ指定
takt --task "バグを修正" -w magi -b feat/fix-bug

# リポジトリ指定PR作成時
takt --task "バグを修正" --auto-pr --repo owner/repo

# ワークフロー実行のみブランチ作成・commit・pushをスキップ
takt --task "バグを修正" --skip-git

パイプラインモードでは --auto-pr を指定しない限りPRは作成されません。

サブコマンド

コマンド 説明
takt run .takt/tasks/ の保留中タスクをすべて実行
takt watch .takt/tasks/ を監視してタスクを自動実行(常駐プロセス)
takt add AI会話で新しいタスクを追加
takt list タスクブランチ一覧(マージ・削除)
takt switch ワークフローを対話的に切り替え
takt clear エージェントの会話セッションをクリア
takt eject ビルトインのワークフロー/エージェントを~/.takt/にコピーしてカスタマイズ
takt config パーミッションモードを設定
takt --help ヘルプを表示

オプション

オプション 説明
-t, --task <text> タスク内容 — パイプライン(非対話)モードのトリガー
-i, --issue <N> GitHub Issue番号対話モードでは #N と同じ)
-w, --workflow <name> ワークフロー指定
-b, --branch <name> ブランチ名指定(省略時は自動生成)
--auto-pr PR作成対話: 確認スキップ、パイプライン: PR有効化
--skip-git ブランチ作成・commit・pushをスキップパイプラインモード、ワークフロー実行のみ
--repo <owner/repo> リポジトリ指定PR作成時

ワークフロー

TAKTはYAMLベースのワークフロー定義とルールベースルーティングを使用します。ビルトインワークフローはパッケージに埋め込まれており、~/.takt/workflows/ のユーザーワークフローが優先されます。takt eject でビルトインを~/.takt/にコピーしてカスタマイズできます。

ワークフローの例

name: default
max_iterations: 10
initial_step: plan

steps:
  - name: plan
    agent: ../agents/default/planner.md
    model: opus
    edit: false
    rules:
      - condition: 計画完了
        next: implement
    instruction_template: |
      リクエストを分析し、実装計画を作成してください。

  - name: implement
    agent: ../agents/default/coder.md
    edit: true
    permission_mode: acceptEdits
    rules:
      - condition: 実装完了
        next: review
      - condition: 進行不可
        next: ABORT
    instruction_template: |
      計画に基づいて実装してください。

  - name: review
    agent: ../agents/default/architecture-reviewer.md
    edit: false
    rules:
      - condition: 承認
        next: COMPLETE
      - condition: 修正が必要
        next: implement
    instruction_template: |
      アーキテクチャとコード品質の観点で実装をレビューしてください。

パラレルステップ

ステップ内でサブステップを並列実行し、集約条件で評価できます:

  - name: reviewers
    parallel:
      - name: arch-review
        agent: ../agents/default/architecture-reviewer.md
        rules:
          - condition: approved
          - condition: needs_fix
        instruction_template: |
          アーキテクチャとコード品質をレビューしてください。
      - name: security-review
        agent: ../agents/default/security-reviewer.md
        rules:
          - condition: approved
          - condition: needs_fix
        instruction_template: |
          セキュリティ脆弱性をレビューしてください。
    rules:
      - condition: all("approved")
        next: supervise
      - condition: any("needs_fix")
        next: fix
  • all("X"): すべてのサブステップが条件Xにマッチした場合にtrue
  • any("X"): いずれかのサブステップが条件Xにマッチした場合にtrue
  • サブステップの rules は可能な結果を定義しますが、next は省略可能(親が遷移を制御)

ルール条件の種類

種類 構文 説明
タグベース "条件テキスト" エージェントが [STEP:N] タグを出力し、インデックスでマッチ
AI判定 ai("条件テキスト") AIが条件をエージェント出力に対して評価
集約 all("X") / any("X") パラレルサブステップの結果を集約

ビルトインワークフロー

TAKTには複数のビルトインワークフローが同梱されています:

ワークフロー 説明
default フル開発ワークフロー: 計画 → 実装 → AIレビュー → 並列レビュー(アーキテクト+セキュリティ)→ スーパーバイザー承認。各レビュー段階に修正ループあり。
simple defaultの簡略版: 計画 → 実装 → アーキテクトレビュー → AIレビュー → スーパーバイザー。中間の修正ステップなし。
research リサーチワークフロー: プランナー → ディガー → スーパーバイザー。質問せずに自律的にリサーチを実行。
expert ドメインエキスパートによる逐次レビュー: アーキテクチャ、フロントエンド、セキュリティ、QAレビューと修正ループ。
expert-cqrs ドメインエキスパートによる逐次レビュー: CQRS+ES、フロントエンド、セキュリティ、QAレビューと修正ループ。
magi エヴァンゲリオンにインスパイアされた審議システム。3つのAIペルソナMELCHIOR、BALTHASAR、CASPERが分析し投票。

takt switch でワークフローを切り替えられます。

ビルトインエージェント

エージェント 説明
planner タスク分析、仕様調査、実装計画
coder 機能の実装、バグ修正
ai-antipattern-reviewer AI特有のアンチパターンレビュー存在しないAPI、誤った仮定、スコープクリープ
architecture-reviewer アーキテクチャとコード品質のレビュー、仕様準拠の検証
security-reviewer セキュリティ脆弱性の評価
supervisor 最終検証、バリデーション、承認

カスタムエージェント

.takt/agents.yamlでカスタムエージェントを定義:

agents:
  - name: my-reviewer
    prompt_file: .takt/prompts/reviewer.md
    allowed_tools: [Read, Glob, Grep]
    provider: claude             # オプション: claude または codex
    model: opus                  # Claude: opus/sonnet/haiku、Codex: gpt-5.2-codex 等

またはMarkdownファイルでエージェントプロンプトを作成:

# ~/.takt/agents/my-agents/reviewer.md

あなたはセキュリティに特化したコードレビュアーです。

## 役割
- セキュリティ脆弱性をチェック
- 入力バリデーションを検証
- 認証ロジックをレビュー

モデル選択

model フィールドワークフローステップ、エージェント設定、グローバル設定はプロバイダーClaude Code CLI / Codex SDKにそのまま渡されます。TAKTはモデルエイリアスの解決を行いません。

Claude Code

Claude Code はエイリアス(opussonnethaikuopusplandefault)およびフルモデル名(例: claude-sonnet-4-5-20250929)をサポートしています。利用可能なモデルは Claude Code ドキュメントを参照してください。

Codex

モデル文字列はCodex SDKに渡されます。未指定の場合は codex がデフォルトです。利用可能なモデルはCodexのドキュメントを参照してください。

プロジェクト構造

~/.takt/
├── config.yaml          # グローバル設定(プロバイダー、モデル、ワークフロー等)
├── workflows/           # ユーザーワークフロー定義(ビルトインを上書き)
└── agents/              # ユーザーエージェントプロンプトファイル

.takt/                   # プロジェクトレベルの設定
├── agents.yaml          # カスタムエージェント定義
├── tasks/               # 保留中のタスクファイル(.yaml, .md
├── completed/           # 完了したタスクとレポート
├── reports/             # 実行レポート(自動生成)
└── logs/                # NDJSON形式のセッションログ
    ├── latest.json      # 現在/最新セッションへのポインタ
    ├── previous.json    # 前回セッションへのポインタ
    └── {sessionId}.jsonl # ワークフロー実行ごとのNDJSONセッションログ

ビルトインリソースはnpmパッケージdist/resources/)に埋め込まれています。~/.takt/ のユーザーファイルが優先されます。

グローバル設定

デフォルトのプロバイダーとモデルを ~/.takt/config.yaml で設定:

# ~/.takt/config.yaml
language: ja
default_workflow: default
log_level: info
provider: claude         # デフォルトプロバイダー: claude または codex
model: sonnet            # デフォルトモデル(オプション)
trusted_directories:
  - /path/to/trusted/dir

# パイプライン実行設定(オプション)
# ブランチ名、コミットメッセージ、PRの本文をカスタマイズできます。
# pipeline:
#   default_branch_prefix: "takt/"
#   commit_message_template: "feat: {title} (#{issue})"
#   pr_body_template: |
#     ## Summary
#     {issue_body}
#     Closes #{issue}

パイプラインテンプレート変数:

変数 使用可能箇所 説明
{title} コミットメッセージ Issueタイトル
{issue} コミットメッセージ、PR本文 Issue番号
{issue_body} PR本文 Issue本文
{report} PR本文 ワークフロー実行レポート

モデル解決の優先順位:

  1. ワークフローステップの model(最優先)
  2. カスタムエージェントの model
  3. グローバル設定の model
  4. プロバイダーデフォルトClaude: sonnet、Codex: codex

実践的な使い方ガイド

対話ワークフロー

takt ログイン機能を追加して を実行すると、以下の流れで案内されます:

  1. ワークフロー選択 - 利用可能なワークフローから選択矢印キーで移動、ESCでキャンセル
  2. 隔離クローン作成(オプション) - git clone --shared による隔離環境でタスクを実行
  3. PR作成worktree実行後 - タスクブランチからPRを作成

--auto-pr を指定している場合、PR作成の確認はスキップされ自動で作成されます。

タスク管理

TAKTは.takt/tasks/内のタスクファイルによるバッチ処理をサポートしています。.yaml/.yml.mdの両方のファイル形式に対応しています。

takt add でタスクを追加

# AI会話でタスクの要件を詰めてからタスクを追加
takt add

takt add はAI会話を開始し、タスクの要件を詰めます。/go で確定すると、AIが会話を要約してYAMLタスクファイルを作成します。worktree/branch/workflowの設定も対話的に行えます。

タスクファイルの形式

YAML形式推奨、worktree/branch/workflowオプション対応:

# .takt/tasks/add-auth.yaml
task: "認証機能を追加する"
worktree: true                  # 隔離された共有クローンで実行
branch: "feat/add-auth"         # ブランチ名(省略時は自動生成)
workflow: "default"             # ワークフロー指定(省略時は現在のもの)

Markdown形式(シンプル、後方互換):

# .takt/tasks/add-login-feature.md

アプリケーションにログイン機能を追加する。

要件:
- ユーザー名とパスワードフィールド
- フォームバリデーション
- 失敗時のエラーハンドリング

共有クローンによる隔離実行

YAMLタスクファイルでworktreeを指定すると、各タスクをgit clone --sharedで作成した隔離クローンで実行し、メインの作業ディレクトリをクリーンに保てます:

  • worktree: true - 隣接ディレクトリ(またはworktree_dir設定で指定した場所)に共有クローンを自動作成
  • worktree: "/path/to/dir" - 指定パスに作成
  • branch: "feat/xxx" - 指定ブランチを使用(省略時はtakt/{timestamp}-{slug}で自動生成)
  • worktree省略 - カレントディレクトリで実行(デフォルト)

Note

: YAMLフィールド名は後方互換のためworktreeのままです。内部的にはgit worktreeではなくgit clone --sharedを使用しています。git worktreeの.gitファイルにはgitdir:でメインリポジトリへのパスが記載されており、Claude Codeがそれを辿ってメインリポジトリをプロジェクトルートと認識してしまうためです。共有クローンは独立した.gitディレクトリを持つため、この問題が発生しません。

クローンは使い捨てです。タスク完了後に自動的にコミット+プッシュし、クローンを削除します。ブランチが唯一の永続的な成果物です。takt listでブランチの一覧表示・マージ・削除ができます。

/run-tasks でタスクを実行

takt run
  • タスクはアルファベット順に実行されます(001-002-のようなプレフィックスで順序を制御)
  • 完了したタスクは実行レポートとともに.takt/completed/に移動されます
  • 実行中に追加された新しいタスクも動的に取得されます

/watch でタスクを監視

takt watch

ウォッチモードは.takt/tasks/をポーリングし、新しいタスクファイルが現れると自動実行します。Ctrl+Cで停止する常駐プロセスです。以下のような場合に便利です:

  • タスクファイルを生成するCI/CDパイプライン
  • 外部プロセスがタスクを追加する自動化ワークフロー
  • タスクを順次キューイングする長時間の開発セッション

/list-tasks でタスクブランチを一覧表示

takt list

takt/プレフィックスのブランチをファイル変更数とともに一覧表示します。各ブランチに対して以下の操作が可能です:

  • Try merge - mainにスカッシュマージ変更をステージングのみ、コミットなし
  • Instruct - 一時クローン経由で追加指示を与える
  • Merge & cleanup - マージしてブランチを削除
  • Delete - マージせずにブランチを削除

セッションログ

TAKTはセッションログをNDJSON.jsonl)形式で.takt/logs/に書き込みます。各レコードはアトミックに追記されるため、プロセスが途中でクラッシュしても部分的なログが保持され、tail -fでリアルタイムに追跡できます。

  • .takt/logs/latest.json - 現在(または最新の)セッションへのポインタ
  • .takt/logs/previous.json - 前回セッションへのポインタ
  • .takt/logs/{sessionId}.jsonl - ワークフロー実行ごとのNDJSONセッションログ

レコード種別: workflow_start, step_start, step_complete, workflow_complete, workflow_abort

エージェントはprevious.jsonを読み取って前回の実行コンテキストを引き継ぐことができます。セッション継続は自動的に行われます — takt "タスク"を実行するだけで前回のセッションから続行されます。

カスタムワークフローの追加

~/.takt/workflows/にYAMLファイルを追加するか、/ejectでビルトインをカスタマイズします:

# defaultワークフローを~/.takt/workflows/にコピーして編集
takt eject default
# ~/.takt/workflows/my-workflow.yaml
name: my-workflow
description: カスタムワークフロー
max_iterations: 5
initial_step: analyze

steps:
  - name: analyze
    agent: ~/.takt/agents/my-agents/analyzer.md
    edit: false
    rules:
      - condition: 分析完了
        next: implement
    instruction_template: |
      このリクエストを徹底的に分析してください。

  - name: implement
    agent: ~/.takt/agents/default/coder.md
    edit: true
    permission_mode: acceptEdits
    pass_previous_response: true
    rules:
      - condition: 完了
        next: COMPLETE
    instruction_template: |
      分析に基づいて実装してください。

Note

: {task}{previous_response}{user_inputs} は自動的にインストラクションに注入されます。テンプレート内での位置を制御したい場合のみ、明示的なプレースホルダーが必要です。

エージェントをパスで指定する

ワークフロー定義ではファイルパスを使ってエージェントを指定します:

# ワークフローファイルからの相対パス
agent: ../agents/default/coder.md

# ホームディレクトリ
agent: ~/.takt/agents/default/coder.md

# 絶対パス
agent: /path/to/custom/agent.md

ワークフロー変数

instruction_templateで使用可能な変数:

変数 説明
{task} 元のユーザーリクエスト(テンプレートになければ自動注入)
{iteration} ワークフロー全体のターン数(実行された全ステップ数)
{max_iterations} 最大イテレーション数
{step_iteration} ステップごとのイテレーション数(このステップが実行された回数)
{previous_response} 前のステップの出力(テンプレートになければ自動注入)
{user_inputs} ワークフロー中の追加ユーザー入力(テンプレートになければ自動注入)
{report_dir} レポートディレクトリパス(例: .takt/reports/20250126-143052-task-summary
{report:filename} {report_dir}/filename に展開(例: {report:00-plan.md}

ワークフローの設計

各ワークフローステップに必要な要素:

1. エージェント - システムプロンプトを含むMarkdownファイル:

agent: ../agents/default/coder.md    # エージェントプロンプトファイルのパス
agent_name: coder                    # 表示名(オプション)

2. ルール - ステップから次のステップへのルーティングを定義。インストラクションビルダーがステータス出力ルールを自動注入するため、エージェントはどのタグを出力すべきか把握できます:

rules:
  - condition: "実装完了"
    next: review
  - condition: "進行不可"
    next: ABORT

特殊な next 値: COMPLETE(成功)、ABORT(失敗)

3. ステップオプション:

オプション デフォルト 説明
edit - ステップがプロジェクトファイルを編集できるか(true/false
pass_previous_response true 前のステップの出力を{previous_response}に渡す
allowed_tools - エージェントが使用できるツール一覧Read, Glob, Grep, Edit, Write, Bash等
provider - このステップのプロバイダーを上書き(claudeまたはcodex
model - このステップのモデルを上書き
permission_mode default パーミッションモード: defaultacceptEditsbypassPermissions
report - 自動生成レポートのファイル設定name, format

API使用例

import { WorkflowEngine, loadWorkflow } from 'takt';  // npm install takt

const config = loadWorkflow('default');
if (!config) {
  throw new Error('Workflow not found');
}
const engine = new WorkflowEngine(config, process.cwd(), 'My task');

engine.on('step:complete', (step, response) => {
  console.log(`${step.name}: ${response.status}`);
});

await engine.run();

コントリビュート

詳細はCONTRIBUTING.mdを参照。

Docker サポート

他の環境でのテスト用にDocker環境が提供されています:

# Dockerイメージをビルド
docker compose build

# コンテナでテストを実行
docker compose run --rm test

# コンテナでlintを実行
docker compose run --rm lint

# ビルドのみ(テストをスキップ)
docker compose run --rm build

これにより、クリーンなNode.js 20環境でプロジェクトが正しく動作することが保証されます。

ドキュメント

ライセンス

MIT - 詳細はLICENSEをご覧ください。