Update README: clarify CLI usage and add CI/CD section
- Remove multi-word direct task execution (unintended feature) - Focus on interactive planning mode (takt/takt word) - Clarify --pipeline flag usage for CI/CD - Add CI/CD integration section with takt-action reference - Add API cost warning for CI/CD usage - Fix: Remove unnecessary quotes from takt #6 examples
This commit is contained in:
parent
34faea3eac
commit
97d2dcc5fa
116
README.md
116
README.md
@ -22,23 +22,23 @@ npm install -g takt
|
|||||||
## Quick Start
|
## Quick Start
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Run a task (prompts for workflow selection, worktree, and PR creation)
|
# Interactive planning — refine task requirements with AI, then execute
|
||||||
takt "Add a login feature"
|
|
||||||
|
|
||||||
# Run a GitHub issue as a task (both are equivalent)
|
|
||||||
takt '#6'
|
|
||||||
takt --issue 6
|
|
||||||
|
|
||||||
# Interactive mode — refine task requirements with AI, then execute
|
|
||||||
takt
|
takt
|
||||||
|
|
||||||
|
# You can also provide an initial message to start the conversation
|
||||||
|
takt hello
|
||||||
|
|
||||||
|
# Run a GitHub issue as a task (both are equivalent)
|
||||||
|
takt #6
|
||||||
|
takt --issue 6
|
||||||
|
|
||||||
# Pipeline mode (non-interactive, for scripts and CI)
|
# Pipeline mode (non-interactive, for scripts and CI)
|
||||||
takt --task "fix the auth bug" --auto-pr
|
takt --pipeline --task "fix the auth bug" --auto-pr
|
||||||
```
|
```
|
||||||
|
|
||||||
### What happens when you run a task
|
### What happens when you run a task
|
||||||
|
|
||||||
When you run `takt "Add a login feature"`, TAKT guides you through an interactive flow:
|
When you run `takt #6` (GitHub issue reference), TAKT guides you through an interactive flow:
|
||||||
|
|
||||||
**1. Workflow selection**
|
**1. Workflow selection**
|
||||||
|
|
||||||
@ -90,44 +90,47 @@ If `--auto-pr` is specified, the PR is created automatically without asking.
|
|||||||
The standard mode for everyday development. Workflow selection, worktree creation, and PR creation are handled interactively.
|
The standard mode for everyday development. Workflow selection, worktree creation, and PR creation are handled interactively.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Run a task
|
# Interactive planning — start AI conversation to refine task requirements
|
||||||
takt "Add a login feature"
|
|
||||||
|
|
||||||
# Run a GitHub issue as a task (both are equivalent)
|
|
||||||
takt '#6'
|
|
||||||
takt --issue 6
|
|
||||||
|
|
||||||
# Interactive mode — refine task requirements with AI before executing
|
|
||||||
takt
|
takt
|
||||||
|
|
||||||
# Run a task and automatically create a PR (skip the confirmation prompt)
|
# You can also provide an initial message to start the conversation
|
||||||
takt '#6' --auto-pr
|
takt hello
|
||||||
|
|
||||||
|
# Run a GitHub issue as a task (both are equivalent)
|
||||||
|
takt #6
|
||||||
|
takt --issue 6
|
||||||
|
|
||||||
|
# Automatically create a PR (skip the confirmation prompt)
|
||||||
|
takt #6 --auto-pr
|
||||||
|
|
||||||
|
# Use --task option to specify task content (alternative to GitHub issue)
|
||||||
|
takt --task "Add login feature"
|
||||||
```
|
```
|
||||||
|
|
||||||
When `--auto-pr` is not specified, you will be asked whether to create a PR after a successful worktree execution.
|
When `--auto-pr` is not specified, you will be asked whether to create a PR after a successful worktree execution.
|
||||||
|
|
||||||
### Pipeline Mode (`--task`)
|
### Pipeline Mode (`--pipeline`)
|
||||||
|
|
||||||
Specifying `--task` enters pipeline mode — fully non-interactive, suitable for scripts and CI integration. TAKT automatically creates a branch, runs the workflow, commits, and pushes.
|
Specifying `--pipeline` enters pipeline mode — fully non-interactive, suitable for scripts and CI integration. TAKT automatically creates a branch, runs the workflow, commits, and pushes.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Run a task in pipeline mode
|
# Run a task in pipeline mode
|
||||||
takt --task "fix the auth bug"
|
takt --pipeline --task "fix the auth bug"
|
||||||
|
|
||||||
# Pipeline mode + automatic PR creation
|
# Pipeline mode + automatic PR creation
|
||||||
takt --task "fix the auth bug" --auto-pr
|
takt --pipeline --task "fix the auth bug" --auto-pr
|
||||||
|
|
||||||
# Attach GitHub issue context
|
# Attach GitHub issue context
|
||||||
takt --task "fix the auth bug" --issue 99 --auto-pr
|
takt --pipeline --issue 99 --auto-pr
|
||||||
|
|
||||||
# Specify workflow and branch
|
# Specify workflow and branch
|
||||||
takt --task "fix the auth bug" -w magi -b feat/fix-auth
|
takt --pipeline --task "fix the auth bug" -w magi -b feat/fix-auth
|
||||||
|
|
||||||
# Specify repository (for PR creation)
|
# Specify repository (for PR creation)
|
||||||
takt --task "fix the auth bug" --auto-pr --repo owner/repo
|
takt --pipeline --task "fix the auth bug" --auto-pr --repo owner/repo
|
||||||
|
|
||||||
# Run workflow only — skip branch creation, commit, and push
|
# Run workflow only — skip branch creation, commit, and push
|
||||||
takt --task "fix the auth bug" --skip-git
|
takt --pipeline --task "fix the auth bug" --skip-git
|
||||||
```
|
```
|
||||||
|
|
||||||
In pipeline mode, PRs are **not** created unless `--auto-pr` is explicitly specified.
|
In pipeline mode, PRs are **not** created unless `--auto-pr` is explicitly specified.
|
||||||
@ -150,13 +153,15 @@ In pipeline mode, PRs are **not** created unless `--auto-pr` is explicitly speci
|
|||||||
|
|
||||||
| Option | Description |
|
| Option | Description |
|
||||||
|--------|-------------|
|
|--------|-------------|
|
||||||
| `-t, --task <text>` | Task content — **triggers pipeline (non-interactive) mode** |
|
| `--pipeline` | **Enable pipeline (non-interactive) mode** — required for CI/automation |
|
||||||
|
| `-t, --task <text>` | Task content (as alternative to GitHub issue) |
|
||||||
| `-i, --issue <N>` | GitHub issue number (equivalent to `#N` in interactive mode) |
|
| `-i, --issue <N>` | GitHub issue number (equivalent to `#N` in interactive mode) |
|
||||||
| `-w, --workflow <name>` | Workflow to use |
|
| `-w, --workflow <name>` | Workflow to use |
|
||||||
| `-b, --branch <name>` | Branch name (auto-generated if omitted) |
|
| `-b, --branch <name>` | Branch name (auto-generated if omitted) |
|
||||||
| `--auto-pr` | Create PR after execution (interactive: skip confirmation, pipeline: enable PR) |
|
| `--auto-pr` | Create PR after execution (interactive: skip confirmation, pipeline: enable PR) |
|
||||||
| `--skip-git` | Skip branch creation, commit, and push (pipeline mode, workflow-only) |
|
| `--skip-git` | Skip branch creation, commit, and push (pipeline mode, workflow-only) |
|
||||||
| `--repo <owner/repo>` | Repository for PR creation |
|
| `--repo <owner/repo>` | Repository for PR creation |
|
||||||
|
| `--create-worktree <yes\|no>` | Skip worktree confirmation prompt |
|
||||||
|
|
||||||
## Workflows
|
## Workflows
|
||||||
|
|
||||||
@ -374,7 +379,7 @@ trusted_directories:
|
|||||||
|
|
||||||
### Interactive Workflow
|
### Interactive Workflow
|
||||||
|
|
||||||
When running `takt "Add a feature"`, you are prompted to:
|
When running `takt` (interactive planning mode) or `takt #6` (GitHub issue), you are prompted to:
|
||||||
|
|
||||||
1. **Select a workflow** - Choose from available workflows (arrow keys, ESC to cancel)
|
1. **Select a workflow** - Choose from available workflows (arrow keys, ESC to cancel)
|
||||||
2. **Create an isolated clone** (optional) - Run the task in a `git clone --shared` for isolation
|
2. **Create an isolated clone** (optional) - Run the task in a `git clone --shared` for isolation
|
||||||
@ -605,6 +610,57 @@ await engine.run();
|
|||||||
|
|
||||||
See [CONTRIBUTING.md](./CONTRIBUTING.md) for details.
|
See [CONTRIBUTING.md](./CONTRIBUTING.md) for details.
|
||||||
|
|
||||||
|
## CI/CD Integration
|
||||||
|
|
||||||
|
### GitHub Actions
|
||||||
|
|
||||||
|
TAKT provides a GitHub Action for automated PR reviews and task execution. See [takt-action](https://github.com/nrslib/takt-action) for details.
|
||||||
|
|
||||||
|
**Example workflow** (see [.github/workflows/takt-action.yml](.github/workflows/takt-action.yml) in this repository):
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
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 }}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Cost Warning**: TAKT uses AI APIs (Claude or OpenAI) which can incur significant costs, especially in CI/CD environments where tasks run automatically. Monitor your API usage and set billing alerts.
|
||||||
|
|
||||||
|
### Other CI Systems
|
||||||
|
|
||||||
|
For non-GitHub CI systems, use pipeline mode:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Install takt
|
||||||
|
npm install -g takt
|
||||||
|
|
||||||
|
# Run in pipeline mode
|
||||||
|
takt --pipeline --task "fix bug" --auto-pr --repo owner/repo
|
||||||
|
```
|
||||||
|
|
||||||
|
Set `ANTHROPIC_API_KEY` or `OPENAI_API_KEY` environment variables for authentication.
|
||||||
|
|
||||||
## Docker Support
|
## Docker Support
|
||||||
|
|
||||||
Docker environment is provided for testing in other environments:
|
Docker environment is provided for testing in other environments:
|
||||||
|
|||||||
@ -20,23 +20,23 @@ npm install -g takt
|
|||||||
## クイックスタート
|
## クイックスタート
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# タスクを実行(ワークフロー選択・worktree・PR作成を対話的に案内)
|
|
||||||
takt ログイン機能を追加して
|
|
||||||
|
|
||||||
# GitHub Issueをタスクとして実行(どちらも同じ)
|
|
||||||
takt '#6'
|
|
||||||
takt --issue 6
|
|
||||||
|
|
||||||
# 対話モードでAIとタスク要件を詰めてから実行
|
# 対話モードでAIとタスク要件を詰めてから実行
|
||||||
takt
|
takt
|
||||||
|
|
||||||
|
# 最初のメッセージを指定して会話を開始することも可能
|
||||||
|
takt こんにちは
|
||||||
|
|
||||||
|
# GitHub Issueをタスクとして実行(どちらも同じ)
|
||||||
|
takt #6
|
||||||
|
takt --issue 6
|
||||||
|
|
||||||
# パイプライン実行(非対話・スクリプト/CI向け)
|
# パイプライン実行(非対話・スクリプト/CI向け)
|
||||||
takt --task "バグを修正して" --auto-pr
|
takt --pipeline --task "バグを修正して" --auto-pr
|
||||||
```
|
```
|
||||||
|
|
||||||
### タスク実行の流れ
|
### タスク実行の流れ
|
||||||
|
|
||||||
`takt ログイン機能を追加して` を実行すると、以下の対話フローが表示されます:
|
`takt #6` (GitHub Issue参照) を実行すると、以下の対話フローが表示されます:
|
||||||
|
|
||||||
**1. ワークフロー選択**
|
**1. ワークフロー選択**
|
||||||
|
|
||||||
@ -88,44 +88,47 @@ Select workflow:
|
|||||||
日常の開発で使う基本モード。ワークフロー選択、worktree作成、PR作成を対話的に確認します。
|
日常の開発で使う基本モード。ワークフロー選択、worktree作成、PR作成を対話的に確認します。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# タスクを実行
|
|
||||||
takt ログイン機能を追加して
|
|
||||||
|
|
||||||
# GitHub Issueをタスクとして実行(どちらも同じ)
|
|
||||||
takt '#6'
|
|
||||||
takt --issue 6
|
|
||||||
|
|
||||||
# 対話モードでAIとタスク要件を詰めてから実行
|
# 対話モードでAIとタスク要件を詰めてから実行
|
||||||
takt
|
takt
|
||||||
|
|
||||||
# タスクを実行してPRを自動作成(確認プロンプトをスキップ)
|
# 最初のメッセージを指定して会話を開始することも可能
|
||||||
takt '#6' --auto-pr
|
takt こんにちは
|
||||||
|
|
||||||
|
# GitHub Issueをタスクとして実行(どちらも同じ)
|
||||||
|
takt #6
|
||||||
|
takt --issue 6
|
||||||
|
|
||||||
|
# PR自動作成(確認プロンプトをスキップ)
|
||||||
|
takt #6 --auto-pr
|
||||||
|
|
||||||
|
# --taskオプションでタスク内容を指定(GitHub Issueの代わり)
|
||||||
|
takt --task "ログイン機能を追加"
|
||||||
```
|
```
|
||||||
|
|
||||||
`--auto-pr` を指定しない場合、worktreeでの実行成功後に「PR作成する?」と確認されます。
|
`--auto-pr` を指定しない場合、worktreeでの実行成功後に「PR作成する?」と確認されます。
|
||||||
|
|
||||||
### パイプラインモード(`--task`)
|
### パイプラインモード(`--pipeline`)
|
||||||
|
|
||||||
`--task` を指定すると非対話のパイプラインモードに入ります。ブランチ作成 → ワークフロー実行 → commit & push を自動で行います。スクリプトやCI連携に適しています。
|
`--pipeline` を指定すると非対話のパイプラインモードに入ります。ブランチ作成 → ワークフロー実行 → commit & push を自動で行います。スクリプトやCI連携に適しています。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# タスクをパイプライン実行
|
# タスクをパイプライン実行
|
||||||
takt --task "バグを修正"
|
takt --pipeline --task "バグを修正"
|
||||||
|
|
||||||
# パイプライン実行 + PR自動作成
|
# パイプライン実行 + PR自動作成
|
||||||
takt --task "バグを修正" --auto-pr
|
takt --pipeline --task "バグを修正" --auto-pr
|
||||||
|
|
||||||
# Issue情報を紐付け
|
# Issue情報を紐付け
|
||||||
takt --task "バグを修正" --issue 99 --auto-pr
|
takt --pipeline --issue 99 --auto-pr
|
||||||
|
|
||||||
# ワークフロー・ブランチ指定
|
# ワークフロー・ブランチ指定
|
||||||
takt --task "バグを修正" -w magi -b feat/fix-bug
|
takt --pipeline --task "バグを修正" -w magi -b feat/fix-bug
|
||||||
|
|
||||||
# リポジトリ指定(PR作成時)
|
# リポジトリ指定(PR作成時)
|
||||||
takt --task "バグを修正" --auto-pr --repo owner/repo
|
takt --pipeline --task "バグを修正" --auto-pr --repo owner/repo
|
||||||
|
|
||||||
# ワークフロー実行のみ(ブランチ作成・commit・pushをスキップ)
|
# ワークフロー実行のみ(ブランチ作成・commit・pushをスキップ)
|
||||||
takt --task "バグを修正" --skip-git
|
takt --pipeline --task "バグを修正" --skip-git
|
||||||
```
|
```
|
||||||
|
|
||||||
パイプラインモードでは `--auto-pr` を指定しない限りPRは作成されません。
|
パイプラインモードでは `--auto-pr` を指定しない限りPRは作成されません。
|
||||||
@ -148,13 +151,15 @@ takt --task "バグを修正" --skip-git
|
|||||||
|
|
||||||
| オプション | 説明 |
|
| オプション | 説明 |
|
||||||
|-----------|------|
|
|-----------|------|
|
||||||
| `-t, --task <text>` | タスク内容 — **パイプライン(非対話)モードのトリガー** |
|
| `--pipeline` | **パイプライン(非対話)モードを有効化** — CI/自動化に必須 |
|
||||||
|
| `-t, --task <text>` | タスク内容(GitHub Issueの代わり) |
|
||||||
| `-i, --issue <N>` | GitHub Issue番号(対話モードでは `#N` と同じ) |
|
| `-i, --issue <N>` | GitHub Issue番号(対話モードでは `#N` と同じ) |
|
||||||
| `-w, --workflow <name>` | ワークフロー指定 |
|
| `-w, --workflow <name>` | ワークフロー指定 |
|
||||||
| `-b, --branch <name>` | ブランチ名指定(省略時は自動生成) |
|
| `-b, --branch <name>` | ブランチ名指定(省略時は自動生成) |
|
||||||
| `--auto-pr` | PR作成(対話: 確認スキップ、パイプライン: PR有効化) |
|
| `--auto-pr` | PR作成(対話: 確認スキップ、パイプライン: PR有効化) |
|
||||||
| `--skip-git` | ブランチ作成・commit・pushをスキップ(パイプラインモード、ワークフロー実行のみ) |
|
| `--skip-git` | ブランチ作成・commit・pushをスキップ(パイプラインモード、ワークフロー実行のみ) |
|
||||||
| `--repo <owner/repo>` | リポジトリ指定(PR作成時) |
|
| `--repo <owner/repo>` | リポジトリ指定(PR作成時) |
|
||||||
|
| `--create-worktree <yes\|no>` | worktree確認プロンプトをスキップ |
|
||||||
|
|
||||||
## ワークフロー
|
## ワークフロー
|
||||||
|
|
||||||
@ -371,7 +376,7 @@ trusted_directories:
|
|||||||
|
|
||||||
### 対話ワークフロー
|
### 対話ワークフロー
|
||||||
|
|
||||||
`takt ログイン機能を追加して` を実行すると、以下の流れで案内されます:
|
`takt` (対話モード)または `takt #6` (GitHub Issue)を実行すると、以下の流れで案内されます:
|
||||||
|
|
||||||
1. **ワークフロー選択** - 利用可能なワークフローから選択(矢印キーで移動、ESCでキャンセル)
|
1. **ワークフロー選択** - 利用可能なワークフローから選択(矢印キーで移動、ESCでキャンセル)
|
||||||
2. **隔離クローン作成**(オプション) - `git clone --shared` による隔離環境でタスクを実行
|
2. **隔離クローン作成**(オプション) - `git clone --shared` による隔離環境でタスクを実行
|
||||||
@ -602,6 +607,57 @@ await engine.run();
|
|||||||
|
|
||||||
詳細は[CONTRIBUTING.md](../CONTRIBUTING.md)を参照。
|
詳細は[CONTRIBUTING.md](../CONTRIBUTING.md)を参照。
|
||||||
|
|
||||||
|
## CI/CD連携
|
||||||
|
|
||||||
|
### GitHub Actions
|
||||||
|
|
||||||
|
TAKTはPRレビューやタスク実行を自動化するGitHub Actionを提供しています。詳細は [takt-action](https://github.com/nrslib/takt-action) を参照してください。
|
||||||
|
|
||||||
|
**ワークフロー例** (このリポジトリの [.github/workflows/takt-action.yml](../.github/workflows/takt-action.yml) を参照):
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
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 API(ClaudeまたはOpenAI)を使用するため、特にCI/CD環境でタスクが自動実行される場合、かなりのコストが発生する可能性があります。API使用量を監視し、請求アラートを設定してください。
|
||||||
|
|
||||||
|
### その他のCIシステム
|
||||||
|
|
||||||
|
GitHub以外のCIシステムでは、パイプラインモードを使用します:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# taktをインストール
|
||||||
|
npm install -g takt
|
||||||
|
|
||||||
|
# パイプラインモードで実行
|
||||||
|
takt --pipeline --task "バグ修正" --auto-pr --repo owner/repo
|
||||||
|
```
|
||||||
|
|
||||||
|
認証には `ANTHROPIC_API_KEY` または `OPENAI_API_KEY` 環境変数を設定してください。
|
||||||
|
|
||||||
## Docker サポート
|
## Docker サポート
|
||||||
|
|
||||||
他の環境でのテスト用にDocker環境が提供されています:
|
他の環境でのテスト用にDocker環境が提供されています:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user