takt/docs/cli-reference.ja.md
nrs 61f0be34b5
Merge pull request #394 from nrslib/rename-sync-with-root
Rename 'Sync with root' to 'Merge from root'
2026-02-26 11:20:38 +09:00

334 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CLI リファレンス
[English](./cli-reference.md)
このドキュメントは TAKT CLI の全コマンドとオプションの完全なリファレンスです。
## グローバルオプション
| オプション | 説明 |
|-----------|------|
| `--pipeline` | pipeline非インタラクティブモードを有効化 -- CI/自動化に必要 |
| `-t, --task <text>` | タスク内容GitHub Issue の代替) |
| `-i, --issue <N>` | GitHub Issue 番号(インタラクティブモードでの `#N` と同等) |
| `-w, --piece <name or path>` | Piece 名または piece YAML ファイルのパス |
| `-b, --branch <name>` | ブランチ名を指定(省略時は自動生成) |
| `--auto-pr` | PR を作成(インタラクティブ: 確認スキップ、pipeline: PR 有効化) |
| `--draft-pr` | PR をドラフトとして作成 |
| `--skip-git` | ブランチ作成、コミット、プッシュをスキップpipeline モード、piece のみ実行) |
| `--repo <owner/repo>` | リポジトリを指定PR 作成用) |
| `--create-worktree <yes\|no>` | worktree 確認プロンプトをスキップ |
| `-q, --quiet` | 最小出力モード: AI 出力を抑制CI 向け) |
| `--provider <name>` | エージェント provider を上書きclaude\|codex\|opencode\|mock |
| `--model <name>` | エージェントモデルを上書き |
| `--config <path>` | グローバル設定ファイルのパス(デフォルト: `~/.takt/config.yaml` |
## インタラクティブモード
AI との会話を通じてタスク内容を精緻化してから実行するモードです。タスクの要件が曖昧な場合や、AI と相談しながら内容を詰めたい場合に便利です。
```bash
# インタラクティブモードを開始(引数なし)
takt
# 初期メッセージを指定(短い単語のみ)
takt hello
```
**注意:** `--task` オプションを指定するとインタラクティブモードをスキップして直接実行します。Issue 参照(`#6``--issue`)はインタラクティブモードの初期入力として使用されます。
### フロー
1. Piece を選択
2. インタラクティブモードを選択assistant / persona / quiet / passthrough
3. AI との会話でタスク内容を精緻化
4. `/go` でタスク指示を確定(`/go 追加の指示` のように追記も可能)、または `/play <task>` でタスクを即座に実行
5. 実行worktree 作成、piece 実行、PR 作成)
### インタラクティブモードの種類
| モード | 説明 |
|--------|------|
| `assistant` | デフォルト。AI がタスク指示を生成する前に明確化のための質問を行う。 |
| `persona` | 最初の movement の persona と会話(そのシステムプロンプトとツールを使用)。 |
| `quiet` | 質問なしでタスク指示を生成(ベストエフォート)。 |
| `passthrough` | AI 処理なしでユーザー入力をそのままタスクテキストとして使用。 |
Piece は YAML の `interactive_mode` フィールドでデフォルトモードを設定できます。
### 実行例
```
$ takt
Select piece:
> default (current)
Development/
Research/
Cancel
Interactive mode - Enter task content. Commands: /go (execute), /cancel (exit)
> I want to add user authentication feature
[AI が要件を確認・整理]
> /go
Proposed task instructions:
---
Implement user authentication feature.
Requirements:
- Login with email address and password
- JWT token-based authentication
- Password hashing (bcrypt)
- Login/logout API endpoints
---
Proceed with these task instructions? (Y/n) y
? Create worktree? (Y/n) y
[Piece の実行を開始...]
```
## 直接タスク実行
`--task` オプションを使用して、インタラクティブモードをスキップして直接実行できます。
```bash
# --task オプションでタスク内容を指定
takt --task "Fix bug"
# piece を指定
takt --task "Add authentication" --piece expert
# PR を自動作成
takt --task "Fix bug" --auto-pr
```
**注意:** 引数として文字列を渡す場合(例: `takt "Add login feature"`)は、初期メッセージとしてインタラクティブモードに入ります。
## GitHub Issue タスク
GitHub Issue を直接タスクとして実行できます。Issue のタイトル、本文、ラベル、コメントがタスク内容として自動的に取り込まれます。
```bash
# Issue 番号を指定して実行
takt #6
takt --issue 6
# Issue + piece 指定
takt #6 --piece expert
# Issue + PR 自動作成
takt #6 --auto-pr
```
**要件:** [GitHub CLI](https://cli.github.com/)`gh`)がインストールされ、認証済みである必要があります。
## タスク管理コマンド
`.takt/tasks.yaml``.takt/tasks/{slug}/` 配下のタスクディレクトリを使ったバッチ処理です。複数のタスクを蓄積し、後でまとめて実行するのに便利です。
### takt add
AI との会話でタスク要件を精緻化し、`.takt/tasks.yaml` にタスクを追加します。
```bash
# AI との会話でタスク要件を精緻化し、タスクを追加
takt add
# GitHub Issue からタスクを追加Issue 番号がブランチ名に反映される)
takt add #28
```
### takt run
`.takt/tasks.yaml` のすべての pending タスクを実行します。
```bash
# .takt/tasks.yaml の pending タスクをすべて実行
takt run
```
### takt watch
`.takt/tasks.yaml` を監視し、タスクが追加されると自動実行する常駐プロセスです。
```bash
# .takt/tasks.yaml を監視してタスクを自動実行(常駐プロセス)
takt watch
```
### takt list
タスクブランチの一覧表示と操作(マージ、削除、ルートとの同期など)を行います。
```bash
# タスクブランチの一覧表示(マージ/削除)
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
```
インタラクティブモードでは **Merge from root** を選択でき、ルートリポジトリの HEAD をワークツリーブランチにマージします。コンフリクト発生時は AI が自動解決を試みます。
### タスクディレクトリワークフロー(作成 / 実行 / 確認)
1. `takt add` を実行し、`.takt/tasks.yaml` に pending レコードが作成されたことを確認。
2. 生成された `.takt/tasks/{slug}/order.md` を開き、必要に応じて詳細な仕様や参考資料を追記。
3. `takt run`(または `takt watch`)を実行して `tasks.yaml` の pending タスクを実行。
4. `task_dir` と同じ slug の `.takt/runs/{slug}/reports/` で出力を確認。
## Pipeline モード
`--pipeline` を指定すると、非インタラクティブな pipeline モードが有効になります。ブランチの作成、piece の実行、コミットとプッシュを自動的に行います。CI/CD 自動化に適しています。
```bash
# pipeline モードでタスクを実行
takt --pipeline --task "Fix bug"
# pipeline 実行 + PR 自動作成
takt --pipeline --task "Fix bug" --auto-pr
# Issue 情報をリンク
takt --pipeline --issue 99 --auto-pr
# piece とブランチを指定
takt --pipeline --task "Fix bug" -w magi -b feat/fix-bug
# リポジトリを指定PR 作成用)
takt --pipeline --task "Fix bug" --auto-pr --repo owner/repo
# piece のみ実行(ブランチ作成、コミット、プッシュをスキップ)
takt --pipeline --task "Fix bug" --skip-git
# 最小出力モードCI 向け)
takt --pipeline --task "Fix bug" --quiet
```
Pipeline モードでは、`--auto-pr` を指定しない限り PR は作成されません。
**GitHub 連携:** GitHub Actions で TAKT を使用する場合は [takt-action](https://github.com/nrslib/takt-action) を参照してください。PR レビューやタスク実行を自動化できます。
## ユーティリティコマンド
### takt switch
アクティブな piece をインタラクティブに切り替えます。
```bash
takt switch
```
### takt eject
ビルトインの piece/persona をローカルディレクトリにコピーしてカスタマイズします。
```bash
# ビルトインの piece/persona をプロジェクト .takt/ にコピー
takt eject
# ~/.takt/(グローバル)にコピー
takt eject --global
# 特定のファセットをカスタマイズ用にエジェクト
takt eject persona coder
takt eject instruction plan --global
```
### takt clear
エージェントの会話セッションをクリア(状態のリセット)します。
```bash
takt clear
```
### takt export-cc
ビルトインの piece/persona を Claude Code Skill としてデプロイします。
```bash
takt export-cc
```
### takt catalog
レイヤー間で利用可能なファセットの一覧を表示します。
```bash
takt catalog
takt catalog personas
```
### takt prompt
各 movement とフェーズの組み立て済みプロンプトをプレビューします。
```bash
takt prompt [piece]
```
### takt reset
設定をデフォルトにリセットします。
```bash
# グローバル設定をビルトインテンプレートにリセット(バックアップ付き)
takt reset config
# Piece カテゴリをビルトインのデフォルトにリセット
takt reset categories
```
### takt metrics
アナリティクスメトリクスを表示します。
```bash
# レビュー品質メトリクスを表示(デフォルト: 直近30日
takt metrics review
# 時間枠を指定
takt metrics review --since 7d
```
### takt repertoire
Repertoire パッケージGitHub 上の外部 TAKT パッケージ)を管理します。
```bash
# GitHub からパッケージをインストール
takt repertoire add github:{owner}/{repo}@{ref}
# デフォルトブランチからインストール
takt repertoire add github:{owner}/{repo}
# インストール済みパッケージを一覧表示
takt repertoire list
# パッケージを削除
takt repertoire remove @{owner}/{repo}
```
インストールされたパッケージは `~/.takt/repertoire/` に保存され、ピース選択やファセット解決で利用可能になります。
### takt purge
古いアナリティクスイベントファイルを削除します。
```bash
# 30日以上前のファイルを削除デフォルト
takt purge
# 保持期間を指定
takt purge --retention-days 14
```