name: takt description: >- takt CLI(タスク登録・workflow 駆動・worktree 自動生成・catalog)のコマンドリファレンス。「takt の使い方」「default と default-mini の違い」「workflow を eject したい」など takt 本体の仕様・コマンド・設定の場面で発動。issue → PR の実行は takt-issue スキルを使う。
takt — コマンドリファレンス
Note: 本文に記載のあるコマンド・設定ファイル・workflow 概要に限定し、未収録のサブコマンド挙動は保証しない。
takt は AI エージェントによるタスク実行を workflow として段階化し、worktree 単位で並走させる
CLI ツール。issue や自然文タスクを .takt/tasks.yaml に積み、step ごとに persona / policy /
instruction を切り替えながら計画 → 実装 → レビューを進める。
本 skill は CLI そのもののリファレンス。issue → PR まで通して回す手順は
takt-issue skill に任せ、こちらは「コマンドの引数」「workflow の中身」「設定ファイル」を
即引きするための参照源として位置付ける。
全体像
takt の構成要素は 4 階層に分かれる。
| 層 | 役割 | 実体 |
|---|---|---|
| workflow | step の連なりとループ制御 | ~/.bun/install/global/node_modules/takt/builtins/ja/*.yaml(builtin) / ~/.takt/workflows/*.yaml(eject 後の上書き) / .takt/workflows/*.yaml(プロジェクト) |
| step | 1 回の AI 実行単位。persona・policy・instruction・output_contract を組み合わせる | workflow YAML 内 steps: |
| facet | step に注入される素材(persona / policy / knowledge / instruction / output-contract) | builtin カタログ + .takt/facets/<type>/<name>.md で上書き |
| タスク状態 | 実行中の task 一覧と status、run ログ | .takt/tasks.yaml, .takt/runs/, .takt/clone-meta/ |
workflow 詳細(builtin の default / default-mini の step 構成・subworkflow 内訳)は
references/workflows.md、facet カタログの個別一覧は references/catalog.md を参照。
コマンドリファレンス
takt add
takt add '#28' # GitHub issue を task として登録(引用符必須)
takt add "リファクタの方針を整理" # 自然文タスクで登録
takt add # 引数省略時は対話プロンプトで task 内容を入力
実行すると以下の対話プロンプトが順に出る。
- カテゴリ選択
- workflow 選択(後述の
default/default-miniなど) - base branch 確認
[Y/n] - worktree path(Enter で auto)
- branch name(Enter で auto →
takt/<N>/<slug>) - auto-create PR
[Y/n]
登録された task は .takt/tasks.yaml に追記され、takt run で実行される。
takt run
takt run # pending な task を実行(concurrency 設定で並列化)
takt run --ignore-exceed # max_steps 超過しても継続
各 task について .takt/clone-meta/ に worktree を作成し、workflow を起動する。
進行中の status は .takt/tasks.yaml の status フィールド(running → completed /
failed / aborted)に反映される。長時間 workflow の完了検知は status を poll する。
takt run 1 コマンドで pending を並列消化する。concurrency(後述の設定ファイル節)が
1 なら逐次、2 以上ならワーカープールで最大 concurrency 件を同時実行し、ワーカーが空くたびに
次の pending を task_poll_interval_ms 間隔で取得する(runAllTasks → claimNextTasks(concurrency)
→ runWithWorkerPool)。複数 issue を並列で回すために takt run を多重起動する必要はない。
takt watch
takt watch # tasks.yaml を監視して新規 task を自動実行
takt watch --ignore-exceed
takt run の常駐版。takt add で task が増えるたびに即座に実行する。
takt list
worktree(task ブランチ)の管理コマンド。デフォルトは対話 TUI。
takt list # TUI で一覧 → 操作選択
# 非対話モード(CI / スクリプト用)
takt list --non-interactive --action diff
takt list --non-interactive --action delete --branch takt/28/refactor-foo --yes
takt list --non-interactive --action merge --branch takt/28/refactor-foo
takt list --non-interactive --action try --branch takt/28/refactor-foo
takt list --non-interactive --format json --action diff
--action |
動作 |
|---|---|
diff |
task ブランチの差分表示 |
try |
一時的に main に merge してビルド確認 |
merge |
本番 merge |
delete |
worktree とブランチ削除(--branch 必須) |
takt workflow
workflow 定義の作成・検証ユーティリティ。
takt workflow init my-flow # 雛形を .takt/workflows/my-flow.yaml に生成
takt workflow doctor # 全 workflow を検証
takt workflow doctor my-flow # 特定 workflow のみ検証
builtin workflow の中身を見るときは takt eject で取り出すか、
~/.takt/workflows/ 配下を直接読む(後述 Workflow 節参照)。
takt catalog
builtin facet の一覧を表示する。
takt catalog # 型ごとの件数サマリ
takt catalog personas # persona 一覧
takt catalog policies # policy 一覧
takt catalog knowledge # knowledge 一覧
takt catalog instructions # instruction 一覧
takt catalog output-contracts # output-contract 一覧
各 facet の中身は takt catalog では表示されない。中身を読みたい場合は次の
takt eject で取り出す。個別 facet の名前と役割は references/catalog.md を参照。
takt eject
builtin の workflow や facet をプロジェクトにコピーしてカスタマイズ可能にする。
takt eject default # workflow をコピー → .takt/workflows/
takt eject persona planner # persona facet をコピー → .takt/facets/personas/
takt eject instruction finalize-pr # instruction facet をコピー → .takt/facets/instructions/
takt eject persona planner --global # ~/.takt/ にコピー(全プロジェクト共通化)
eject 後、workflow 内で同名 facet を参照すると プロジェクト版が builtin より優先される。 編集対象は元の builtin ではなく eject 後のローカル版である点に注意。
takt prompt
step 実行前に組み立てられる prompt をプレビューする(実行はしない)。
takt prompt default # default の各 step の prompt をプレビュー
takt prompt # 現在のプロジェクト workflow をプレビュー
workflow の挙動をデバッグするときに使う。
takt export-cc / takt export-codex
workflow / persona / instruction を Claude Code skill 形式(~/.claude/)や
Codex skill 形式(~/.agents/)にエクスポートする。
takt export-cc # ~/.claude/ 配下に skill としてエクスポート
takt export-codex # ~/.agents/ 配下にエクスポート
dotfiles で skill を管理している環境では、エクスポート先がシンボリックリンクで上書き される可能性があるため利用前に注意する。
その他
takt clear # AI セッション履歴をクリア
takt reset # 設定をデフォルトに戻す
takt metrics # 分析メトリクス表示
takt purge # 古いメトリクスファイルを削除
takt repertoire # repertoire パッケージ管理
グローバルオプション
takt <task> または takt -i <N> のように サブコマンド未指定で task を直接実行 する場合に使う。
| オプション | 意味 | 注意 |
|---|---|---|
-i <N> / --issue <N> |
issue 番号で task 起動 | 対話モード扱い。worktree を作らない。現ブランチで実行する |
--pr <N> |
PR のレビューコメントを取得して修正 task を起動 | |
-w <name> / --workflow <name> |
workflow を指定 | builtin 名 or ファイルパス |
-b <name> / --branch <name> |
ブランチ名指定 | 省略時は takt/<N>/<slug> |
--auto-pr |
実行成功後に PR を作成 | |
--draft |
PR を draft で作成 | --auto-pr または config の auto_pr 必須 |
--repo <owner/repo> |
対象リポジトリ | 省略時はカレント |
--provider <name> |
agent プロバイダ上書き | claude-sdk / claude / codex / opencode / cursor / copilot / mock |
--model <name> |
model 上書き | provider 依存 |
-t <text> / --task <text> |
task 内容を文字列指定 | issue 番号の代替 |
--pipeline |
パイプラインモード(非対話・worktree なし・直接ブランチ作成) | CI 用 |
--skip-git |
branch / commit / push をスキップ | --pipeline 併用 |
-q / --quiet |
AI 出力を抑制 | CI 用 |
-c / --continue |
直前のアシスタントセッションから継続 |
-i の落とし穴: 対話モード扱いで worktree を作らない。worktree が欲しい場合は
takt add → takt run 経路を使う(takt-issue skill のデフォルト経路)。
設定ファイル
グローバル設定(~/.takt/config.yaml)
dotfiles 環境では ~/01-dev/dotfiles/config/.takt/config.yaml への symlink。
provider: claude # デフォルト agent provider
language: ja # 出力言語
並列実行(concurrency / task_poll_interval_ms)
takt run / takt watch の task 並列駆動 を制御するキー。グローバル設定(~/.takt/config.yaml)
またはプロジェクト設定(.takt/config.yaml)の どちらでも 宣言でき、解決はプロジェクト → グローバル
の順(local 優先)。
concurrency: 3 # 同時実行する task 数。1=逐次(デフォルト)、2〜10=ワーカープール並列
task_poll_interval_ms: 500 # 空きワーカーが次の pending を探す間隔(ms)。デフォルト 500、範囲 100〜5000
- デフォルトは
concurrency: 1(逐次)。2以上にするとtakt run1 コマンドが pending を 最大concurrency件まで同時実行し、終わったワーカーがtask_poll_interval_ms間隔で次を取得する - zod スキーマ上の制約:
concurrencyは整数1〜10、task_poll_interval_msは整数100〜5000。 範囲外は config ロード時に弾かれる - YAML はスネークケース(
task_poll_interval_ms)で書くが、takt 内部では camelCase (taskPollIntervalMs)に正規化される concurrency > 1のときだけ task ごとに 色分け(color index)付きの出力ラベル が付き、 どのログ行がどの task かを判別できる(逐次時は無色)- 実行中に
Ctrl+Cを送ると graceful shutdown に入り、走行中の task の完了を待ってから終了する。 ただし待ち時間は無限ではなく既定 10 秒(非対話実行は 5 秒、環境変数TAKT_SHUTDOWN_TIMEOUT_MSで上書き可)でタイムアウトする - dotfiles のグローバル設定は現状
concurrency: 3/task_poll_interval_ms: 500を宣言済み (config/.takt/config.yaml)。したがってtakt runは既定で最大 3 task 並列で走る
プロジェクト設定(.takt/config.yaml)
プロジェクト固有のオーバーライド。auto_pr / draft_pr などをここで宣言する。
draft_pr: false # auto-PR 作成時に draft にするか
Persona ごとの provider 切替(persona_providers)
persona 単位で provider / model / provider_options を上書きするブロック。グローバル設定
(~/.takt/config.yaml)またはプロジェクト設定(.takt/config.yaml)に宣言する。
persona_providers:
coder:
provider: codex
- キーは YAML 上はスネークケース(
persona_providers/provider_options)で書くが、 takt 内部では camelCase に正規化される - persona 単位で上書きできるフィールドは
provider/model/provider_options - 上の例は実装で最も動く
coderpersona(write_tests / implement / ai_fix / fix 等) を Codex に振り、Claude Code Max のトークン枠を温存する運用構成 - reviewer 系 4 persona(requirements / testing / ai-antipattern / architecture)を Codex に振るなど他構成も可能。トークン消費とレビュー品質のバランスで使い分ける
provider の解決優先順は以下(上が優先)。
- CLI flag(
--provider) persona_providers.<persona>.provider- workflow YAML の
step.provider - プロジェクト設定(
.takt/config.yamlのprovider) - グローバル設定(
~/.takt/config.yamlのprovider)
step 単位の provider: 切替(workflow YAML 側の宣言)は本 skill の範囲外。
Workflow カテゴリ overlay(~/.takt/preferences/workflow-categories.yaml)
takt add の workflow 選択 UI のカテゴリ階層を独自カスタマイズするための overlay ファイル。存在すると ~/.takt/preferences/workflow-categories.yaml の内容が builtin より先頭に挿入され、builtin 一式は builtin/ サブカテゴリにまとめられる。
workflow_categories:
"🐱オリジナル":
workflows:
- default
- default-mini
- キーは YAML 上のスネークケース
workflow_categories - 各カテゴリ直下の
workflowsに配置したい workflow 名を列挙する(重複可、builtin と同名でよい) - builtin の階層自体は
<takt インストール先>/builtins/<language>/workflow-categories.yamlで定義されており、上記 overlay とマージされる - overlay が存在しないときは builtin の階層がそのまま使われる
dotfiles は現状 overlay を持たず、builtin の 🚀 クイックスタート/ ⚡ Mini/ ほかの階層をそのまま使う。
タスク状態(.takt/tasks.yaml)
takt add で追記、takt run で消化される。
tasks:
- name: pr-127-https-github-com-... # task のスラグ
status: running # pending | running | completed | failed | aborted
workflow: default # 起動した workflow
run_slug: 20251201-143022-abc # 実行 ID(.takt/runs/<run_slug>/ に紐づく)
長時間 workflow の完了検知は status フィールドを poll する。
名前は task 説明文先頭から自動生成(記号除去、80 文字程度で truncate)。
実行ログ(.takt/runs/<run_slug>/)
step ごとの report を保存する。reports/plan.md reports/test-report.md などの
output_contract が出力される。
worktree メタ(.takt/clone-meta/)
各 task の worktree 作成メタデータ。
Workflow
builtin の workflow は 2 種類。詳細な step 構成・ループ制御・dotfiles 内のカスタマイズは
references/workflows.md に記載しているのでそちらを参照する(step 数が多く、本文に
全てを並べると読みにくくなるため分離)。
| workflow | step 数(親) | max_steps | 用途 |
|---|---|---|---|
default |
4 | 30 | テスト先行開発。plan → write_tests → draft → peer-review(draft / peer-review は subworkflow で実装・並列レビューを内包) |
default-mini |
3 | 30 | テスト省略の軽量版。plan → draft → peer-review |
両者の違いは テスト実装フェーズ(write_tests step)の有無 のみ。draft / peer-review subworkflow の中身は同一で、implement → ai-antipattern-review → fix のループと、最後に arch / ai-antipattern / supervise の並列レビューを回す。いずれも スコープ外の自動 issue 起票は持たない。
カスタム workflow を作るときは takt workflow init で雛形を起こすか、builtin を
takt eject default でコピーして手を入れる。検証は takt workflow doctor。
Catalog(facet)
step に注入される素材。型ごとの役割は以下の通り。個別の名前一覧と要約は
references/catalog.md を参照する(instruction だけで 50 件以上あり本文には収まらない)。
| 型 | 役割 | 件数(builtin) | 形式 |
|---|---|---|---|
| persona | step を実行する「役割・視点」(planner / coder / supervisor など) | 25 | YAML |
| policy | 制約・規約(coding / testing / review / ai-antipattern など) | 11 | Markdown |
| knowledge | ドメイン知識(architecture / frontend / react / e2e-testing など) | 13 | Markdown |
| instruction | step 実行時の詳細指示(plan / implement / review-arch など) | 50+ | Markdown |
| output-contract | report ファイルの出力フォーマット仕様 | 29 | Markdown |
各 step の YAML では facet を以下のように参照する。
- name: plan
persona: planner # persona 名
policy: # 複数 policy を配列で
- coding
- review
knowledge: architecture # 単一 knowledge
instruction: plan # instruction 名
output_contracts:
report:
- name: plan.md
format: plan # output-contract 名
Eject の運用
builtin facet を直接編集してはならない(次回 takt アップデートで上書きされる)。 カスタマイズしたい場合は必ず eject してからローカル版を編集する。
dotfiles 環境は現状 eject なし(builtin の default / default-mini をそのまま使用、カスタム facet も持たない)。必要になったら以下に従って eject する。
eject 先は引数 --global の有無で切り替わる。
--global |
配置先 | 用途 |
|---|---|---|
| なし(既定) | .takt/workflows/ / .takt/facets/<type>/ |
プロジェクト固有 |
| あり | ~/.takt/workflows/ / ~/.takt/facets/<type>/ |
全プロジェクト共通 |
Gotchas(落とし穴)
takt -i <N>は worktree を作らない: 対話モード固定で現ブランチで作業する。worktree が必要ならtakt add→takt run経路を使うtakt list --non-interactive --action deleteは--branch必須: 省略するとエラー終了する- 自動コミットメッセージ
takt: <slug>は書き換えない: workflow がコミットを生成する。手動 amend するとレビュー履歴とずれる - builtin facet を直接編集しない:
~/.takt/配下の builtin は次回更新で上書きされる。カスタマイズしたいときは必ずtakt ejectしてプロジェクトまたは global に降ろす ~/.takt/config.yamlの編集: dotfiles 環境では symlink 経由で実体は~/01-dev/dotfiles/config/.takt/config.yaml。実体を編集することtasks.yamlの name prefix: task 名は task 説明文先頭から自動生成(記号除去、80 文字 truncate)。並列駆動時は複数 task で同じ prefix になりがちなので、prefix で絞り込みが効く- 並列化は
concurrency設定であってtakt runの多重起動ではない: 複数 issue を並列で回したくてもtakt runを複数プロセス起動しない。concurrency: Nを立てたtakt run1 コマンドが pending をプール幅 N で消化する。多重起動すると各プロセスが別々にclaimNextTasksするため実効並列度がN × 起動数に膨らむ --pipelineと-iの混同:--pipelineは CI 用の非対話モードで worktree なし・直接ブランチ生成。対話モードの-iとは別物takt export-ccの上書き: dotfiles で~/.claude/skills/を symlink 管理している環境ではエクスポートで上書きされる可能性。実行前に dotfiles 側との競合を確認する
関連 skill
takt-issue: issue → worktree → workflow 実行 → PR 化 → クリーンアップまでの一連手順。実際に takt を回すときの主役。本 skill は takt-issue から「コマンド詳細はこちら」と参照される補助リファレンスclean-branch: takt が残したローカルブランチを PR merge 後に一括削除するときに併用cmux: takt の対話プロンプト操作を別ペインから行うときに併用(並列駆動時のレイアウト管理)