nrslib d92f5aa4fe Faceted Prompting テンプレート整備: ペルソナからドメイン知識を分離、Policy配置を最適化
- ペルソナテンプレート (expert/character) から「ドメイン知識」セクションを削除
- templates/reports/ → templates/output-contracts/ にリネーム
- knowledge テンプレートを追加
- Policy を Instructions の後ろに移動(recency効果で制約遵守を強化)
- Policy Reminder(上下二重配置)を廃止し、末尾の1箇所に統一
- ドキュメント (prompt-composition.ja/en) にファセット典型例と合成プロンプト例を追加
2026-02-07 21:09:42 +09:00
..
2026-02-04 11:07:41 +09:00
2026-02-05 23:37:00 +09:00
2026-02-04 11:07:41 +09:00
2026-02-04 11:07:41 +09:00

TAKT

Task Agent Koordination Tool - AIエージェントの協調手順・人の介入ポイント・記録をYAMLで定義する

TAKTは複数のAIエージェントClaude Code、CodexをYAMLで定義されたワークフローに従って実行します。各ステップで誰が実行し、何を許可し、失敗時にどうするかはピースファイルに宣言され、エージェント任せにしません。

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

メタファ

TAKTはオーケストラをイメージした音楽メタファで用語を統一しています。

  • Piece: タスク実行定義(何をどう協調させるか)
  • Movement: ピース内の1ステップ実行フローの1段階
  • Orchestration: ムーブメント間でエージェントを協調させるエンジン

なぜTAKTか

  • AIエージェントは強力だが非決定的 — TAKTはエージェントの判断を可視化し、再現可能にする
  • マルチエージェントの協調には構造が必要 — ピースが誰が何をどの順序でどの権限で行うかを定義する
  • CI/CD連携にはガードレールが必要 — パイプラインモードが非対話でエージェントを実行し、完全な監査ログを残す

TAKTとは何でないか

  • 自律型AIエンジニアではない — TAKTはエージェントを協調させるが、何を作るかは決めない。タスクを与えるのはあなたで、TAKTは実行を統制する。
  • SkillやSwarmの代替ではない — Skillは単一エージェントの知識を拡張する。Swarmはエージェントを並列化する。TAKTはエージェント間のワークフロー構造を定義する — 誰がどの順序でどのルールで実行するか。
  • デフォルトで全自動ではない — すべてのステップで人の承認を要求できる。自動化はオプトイン(パイプラインモード)であり、デフォルトではない。

必要条件

次のいずれかを選択してください。

  • プロバイダーCLIを使用: Claude Code または Codex をインストール
  • API直接利用: Anthropic API Key または OpenAI API KeyCLI不要

追加で必要なもの:

  • GitHub CLI (gh) — takt #NGitHub Issue実行を使う場合のみ必要

料金について: API Key を使用する場合、TAKT は Claude APIAnthropicまたは OpenAI API を直接呼び出します。料金体系は Claude Code や Codex を使った場合と同じです。特に CI/CD で自動実行する場合、API 使用量が増えるため、コストに注意してください。

インストール

npm install -g takt

クイックスタート

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

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

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

使い方

対話モード

AI との会話でタスク内容を詰めてから実行するモード。タスクの要件が曖昧な場合や、AI と相談しながら内容を整理したい場合に便利です。

# 対話モードを開始(引数なし)
takt

# 最初のメッセージを指定(短い単語のみ)
takt hello

注意: Issue 参照(#6)や --task / --issue オプションを指定すると、対話モードをスキップして直接タスク実行されます。それ以外の入力(スペースを含む文字列を含む)はすべて対話モードに入ります。

フロー:

  1. ピース選択
  2. AI との会話でタスク内容を整理
  3. /go でタスク指示を確定(/go 追加の指示 のように指示を追加することも可能)、または /play <タスク> で即座に実行
  4. 実行worktree 作成、ピース実行、PR 作成)

実行例

$ takt

Select piece:
   🎼 default (current)
    📁 Development/
    📁 Research/
    Cancel

対話モード - タスク内容を入力してください。コマンド: /go実行, /cancel終了

> ユーザー認証機能を追加したい

[AI が要件を確認・整理]

> /go

提案されたタスク指示:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ユーザー認証機能を実装する。

要件:
- メールアドレスとパスワードによるログイン機能
- JWT トークンを使った認証
- パスワードのハッシュ化bcrypt
- ログイン・ログアウト API エンドポイント
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

このタスク指示で進めますか? (Y/n) y

? Create worktree? (Y/n) y

[ピース実行開始...]

直接タスク実行

--task オプションを使うと、対話モードをスキップして直接実行できます。

# --task オプションでタスク内容を指定
takt --task "バグを修正"

# ピース指定
takt --task "認証機能を追加" --piece expert

# PR 自動作成
takt --task "バグを修正" --auto-pr

注意: takt "ログイン機能を追加する" のように引数として文字列を渡した場合は、対話モードの初期メッセージとして使用されます。

GitHub Issue タスク

GitHub Issue を直接タスクとして実行できます。Issue のタイトル、本文、ラベル、コメントが自動的にタスク内容として取り込まれます。

# Issue番号を指定して実行
takt #6
takt --issue 6

# Issue + ピース指定
takt #6 --piece expert

# Issue + PR自動作成
takt #6 --auto-pr

必要条件: GitHub CLI (gh) がインストールされ、認証済みであること。

タスク管理add / run / watch / list

タスクファイル(.takt/tasks/)を使ったバッチ処理。複数のタスクを積んでおいて、後でまとめて実行する使い方に便利です。

タスクを追加(takt add

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

# GitHub IssueからタスクAddIssue番号がブランチ名に反映される
takt add #28

タスクを実行(takt run

# .takt/tasks/ の保留中タスクをすべて実行
takt run

タスクを監視(takt watch

# .takt/tasks/ を監視してタスクを自動実行(常駐プロセス)
takt watch

タスクブランチを一覧表示(takt list

# タスクブランチ一覧(マージ・削除)
takt list

# 非対話モードCI/スクリプト向け)
takt list --non-interactive
takt list --non-interactive --action diff --branch takt/my-branch
takt list --non-interactive --action delete --branch takt/my-branch --yes
takt list --non-interactive --format json

パイプラインモードCI/自動化向け)

--pipeline を指定すると非対話のパイプラインモードに入ります。ブランチ作成 → ピース実行 → commit & push を自動で行います。CI/CD での自動化に適しています。

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

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

# Issue情報を紐付け
takt --pipeline --issue 99 --auto-pr

# ピース・ブランチ指定
takt --pipeline --task "バグを修正" -w magi -b feat/fix-bug

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

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

# 最小限の出力モードCI向け
takt --pipeline --task "バグを修正" --quiet

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

GitHub との統合: GitHub Actions で TAKT を使う場合は、takt-action を参照してください。PR レビューやタスク実行を自動化できます。詳細は CI/CD 連携 セクションを参照してください。

その他のコマンド

# ピースを対話的に切り替え
takt switch

# ビルトインのピース/エージェントをプロジェクト .takt/ にコピーしてカスタマイズ
takt eject

# ~/.takt/(グローバル)にコピー
takt eject --global

# エージェントの会話セッションをクリア
takt clear

# ビルトインピース・エージェントを Claude Code Skill としてデプロイ
takt export-cc

# 各ムーブメント・フェーズの組み立て済みプロンプトをプレビュー
takt prompt [piece]

# パーミッションモードを設定
takt config

# ピースカテゴリをビルトインのデフォルトにリセット
takt reset categories

おすすめピース

ピース おすすめ用途
default 本格的な開発タスク。TAKT自身の開発で使用。アーキテクトセキュリティの並列レビュー付き多段階レビュー。
minimal 簡単な修正やシンプルなタスク。基本的なレビュー付きの最小限のピース。
review-fix-minimal レビュー&修正ピース。レビューフィードバックに基づく反復的な改善に特化。
research 調査・リサーチ。質問せずに自律的にリサーチを実行。

主要なオプション

オプション 説明
--pipeline パイプライン(非対話)モードを有効化 — CI/自動化に必須
-t, --task <text> タスク内容GitHub Issueの代わり
-i, --issue <N> GitHub Issue番号対話モードでは #N と同じ)
-w, --piece <name or path> ピース名、またはピースYAMLファイルのパス
-b, --branch <name> ブランチ名指定(省略時は自動生成)
--auto-pr PR作成対話: 確認スキップ、パイプライン: PR有効化
--skip-git ブランチ作成・commit・pushをスキップパイプラインモード、ピース実行のみ
--repo <owner/repo> リポジトリ指定PR作成時
--create-worktree <yes|no> worktree確認プロンプトをスキップ
-q, --quiet 最小限の出力モード: AIの出力を抑制CI向け
--provider <name> エージェントプロバイダーを上書きclaude|codex|mock
--model <name> エージェントモデルを上書き

ピース

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

注記 (v0.4.0): ピースコンポーネントの内部用語が "step" から "movement" に変更されました。ユーザー向けのピースファイルは引き続き互換性がありますが、ピースをカスタマイズする場合、YAMLファイルで movements: の代わりに movements: が使用されることがあります。機能は同じです。

ピースの例

name: default
max_iterations: 10
initial_movement: plan

movements:
  - 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: edit
    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: |
      アーキテクチャとコード品質の観点で実装をレビューしてください。

エージェントレスムーブメント

agent フィールドは省略可能です。省略した場合、ムーブメントはシステムプロンプトなしで instruction_template のみを使って実行されます。これはエージェントの動作カスタマイズが不要なシンプルなタスクに便利です。

  - name: summarize
    # agent未指定 — instruction_templateのみを使用
    edit: false
    rules:
      - condition: 要約完了
        next: COMPLETE
    instruction_template: |
      レポートを読んで簡潔な要約を提供してください。

また、agent の値としてインラインシステムプロンプトを記述することもできます(指定されたファイルが存在しない場合):

  - name: review
    agent: "あなたはコードレビュアーです。可読性と保守性に焦点を当ててください。"
    edit: false
    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 レビュー → 並列レビュー(アーキテクト+セキュリティ)→ スーパーバイザー承認。各レビュー段階に修正ループあり。
minimal クイックピース: 計画 → 実装 → レビュー → スーパーバイザー。高速イテレーション向けの最小構成。
review-fix-minimal レビュー重視ピース: レビュー → 修正 → スーパーバイザー。レビューフィードバックに基づく反復改善向け。
research リサーチピース: プランナー → ディガー → スーパーバイザー。質問せずに自律的にリサーチを実行。
expert フルスタック開発ピース: アーキテクチャ、フロントエンド、セキュリティ、QA レビューと修正ループ。
expert-cqrs フルスタック開発ピースCQRS+ES特化: CQRS+ES、フロントエンド、セキュリティ、QA レビューと修正ループ。
magi エヴァンゲリオンにインスパイアされた審議システム。3つの AI ペルソナMELCHIOR、BALTHASAR、CASPERが分析し投票。
coding 軽量開発ピース: architect-planner → 実装 → 並列レビューAI アンチパターン+アーキテクチャ)→ 修正。スーパーバイザーなしの高速フィードバックループ。
passthrough 最小構成。タスクをそのまま coder に渡す薄いラッパー。レビューなし。
review-only 変更を加えない読み取り専用のコードレビューピース。

Hybrid Codex バリアント (*-hybrid-codex): 主要ピースごとに、coder エージェントを Codex で実行しレビュアーは Claude を使うハイブリッド構成が用意されています。対象: default, minimal, expert, expert-cqrs, passthrough, review-fix-minimal, coding。

takt switch でピースを切り替えられます。

ビルトインエージェント

エージェント 説明
planner タスク分析、仕様調査、実装計画
architect-planner タスク分析と設計計画: コード調査、不明点の解決、実装計画の作成
coder 機能の実装、バグ修正
ai-antipattern-reviewer AI特有のアンチパターンレビュー存在しないAPI、誤った仮定、スコープクリープ
architecture-reviewer アーキテクチャとコード品質のレビュー、仕様準拠の検証
qa-reviewer テストカバレッジと品質保証のレビュー
security-reviewer セキュリティ脆弱性の評価
conductor Phase 3 判定専用: レポートやレスポンスを読み取り、ステータスタグを出力
supervisor 最終検証、バリデーション、承認

カスタムエージェント

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             # グローバル設定(プロバイダー、モデル、ピース等)
├── pieces/              # ユーザーピース定義(ビルトインを上書き)
│   └── custom.yaml
└── agents/                 # ユーザーエージェントプロンプトファイル(.md
    └── my-agent.md

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

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

グローバル設定

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

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

# API Key 設定(オプション)
# 環境変数 TAKT_ANTHROPIC_API_KEY / TAKT_OPENAI_API_KEY で上書き可能
anthropic_api_key: sk-ant-...  # Claude (Anthropic) を使う場合
# openai_api_key: sk-...       # Codex (OpenAI) を使う場合

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

注意: Codex SDK は Git 管理下のディレクトリでのみ動作します。--skip-git-repo-check は Codex CLI 専用です。

API Key の設定方法:

  1. 環境変数で設定:

    export TAKT_ANTHROPIC_API_KEY=sk-ant-...  # Claude の場合
    # または
    export TAKT_OPENAI_API_KEY=sk-...         # Codex の場合
    
  2. 設定ファイルで設定: 上記の ~/.takt/config.yamlanthropic_api_key または openai_api_key を記述

優先順位: 環境変数 > config.yaml の設定

注意事項:

  • API Key を設定した場合、Claude Code や Codex のインストールは不要です。TAKT が直接 Anthropic API または OpenAI API を呼び出します。
  • セキュリティ: config.yaml に API Key を記述した場合、このファイルを Git にコミットしないよう注意してください。環境変数での設定を使うか、.gitignore~/.takt/config.yaml を追加することを検討してください。

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

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

モデル解決の優先順位:

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

詳細ガイド

タスクファイルの形式

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

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

# .takt/tasks/add-auth.yaml
task: "認証機能を追加する"
worktree: true                  # 隔離された共有クローンで実行
branch: "feat/add-auth"         # ブランチ名(省略時は自動生成)
piece: "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 でブランチの一覧表示・マージ・削除ができます。

セッションログ

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

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

レコード種別: piece_start, step_start, step_complete, piece_complete, piece_abort

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

カスタムピースの追加

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

# defaultピースを~/.takt/pieces/にコピーして編集
takt eject default
# ~/.takt/pieces/my-piece.yaml
name: my-piece
description: カスタムピース
max_iterations: 5
initial_movement: analyze

movements:
  - 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: edit
    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} 最大イテレーション数
{movement_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 - パーミッションモード: readonlyeditfull(プロバイダー非依存)
report - 自動生成レポートのファイル設定name, format

API使用例

import { PieceEngine, loadPiece } from 'takt';  // npm install takt

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

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

await engine.run();

コントリビュート

詳細はCONTRIBUTING.mdを参照。

CI/CD連携

GitHub Actions

TAKTはPRレビューやタスク実行を自動化するGitHub Actionを提供しています。詳細は takt-action を参照してください。

ピース例 (このリポジトリの .github/workflows/takt-action.yml を参照):

name: TAKT

on:
  issue_comment:
    types: [created]

jobs:
  takt:
    if: contains(github.event.comment.body, '@takt')
    runs-on: ubuntu-latest
    permissions:
      contents: write
      issues: write
      pull-requests: write

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Run TAKT
        uses: nrslib/takt-action@main
        with:
          anthropic_api_key: ${{ secrets.TAKT_ANTHROPIC_API_KEY }}
          github_token: ${{ secrets.GITHUB_TOKEN }}

コスト警告: TAKTはAI APIClaudeまたはOpenAIを使用するため、特にCI/CD環境でタスクが自動実行される場合、かなりのコストが発生する可能性があります。API使用量を監視し、請求アラートを設定してください。

その他のCIシステム

GitHub以外のCIシステムでは、パイプラインモードを使用します:

# taktをインストール
npm install -g takt

# パイプラインモードで実行
takt --pipeline --task "バグ修正" --auto-pr --repo owner/repo

認証には TAKT_ANTHROPIC_API_KEY または TAKT_OPENAI_API_KEY 環境変数を設定してくださいTAKT 独自のプレフィックス付き)。

# Claude (Anthropic) を使う場合
export TAKT_ANTHROPIC_API_KEY=sk-ant-...

# Codex (OpenAI) を使う場合
export TAKT_OPENAI_API_KEY=sk-...

ドキュメント

ライセンス

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