update README for v0.4.0

This commit is contained in:
nrslib 2026-02-04 04:25:04 +09:00
parent be2f892ef5
commit 7550b9ce17
2 changed files with 34 additions and 30 deletions

View File

@ -261,6 +261,8 @@ takt config
TAKT uses YAML-based workflow definitions and rule-based routing. Builtin workflows are embedded in the package, with user workflows in `~/.takt/workflows/` taking priority. Use `takt eject` to copy builtins to `~/.takt/` for customization. TAKT uses YAML-based workflow definitions and rule-based routing. Builtin workflows are embedded in the package, with user workflows in `~/.takt/workflows/` taking priority. Use `takt eject` to copy builtins to `~/.takt/` for customization.
> **Note (v0.4.0)**: Internal terminology has changed from "step" to "movement" for workflow components. User-facing workflow files remain compatible, but if you customize workflows, you may see `movements:` instead of `steps:` in YAML files. The functionality remains the same.
### Workflow Example ### Workflow Example
```yaml ```yaml
@ -366,7 +368,7 @@ Execute sub-movements in parallel within a movement and evaluate with aggregate
|------|--------|-------------| |------|--------|-------------|
| Tag-based | `"condition text"` | Agent outputs `[MOVEMENTNAME:N]` tag, matched by index | | Tag-based | `"condition text"` | Agent outputs `[MOVEMENTNAME:N]` tag, matched by index |
| AI judge | `ai("condition text")` | AI evaluates condition against agent output | | AI judge | `ai("condition text")` | AI evaluates condition against agent output |
| Aggregate | `all("X")` / `any("X")` | Aggregates parallel sub-step matched conditions | | Aggregate | `all("X")` / `any("X")` | Aggregates parallel sub-movement matched conditions |
## Builtin Workflows ## Builtin Workflows
@ -413,7 +415,7 @@ You are a code reviewer specialized in security.
## Model Selection ## Model Selection
The `model` field (in workflow steps, agent config, or global config) is passed directly to the provider (Claude Code CLI / Codex SDK). TAKT does not resolve model aliases. The `model` field (in workflow movements, agent config, or global config) is passed directly to the provider (Claude Code CLI / Codex SDK). TAKT does not resolve model aliases.
### Claude Code ### Claude Code
@ -506,7 +508,7 @@ Priority: Environment variables > `config.yaml` settings
| `{report}` | PR body | Workflow execution report | | `{report}` | PR body | Workflow execution report |
**Model Resolution Priority:** **Model Resolution Priority:**
1. Workflow step `model` (highest priority) 1. Workflow movement `model` (highest priority)
2. Custom agent `model` 2. Custom agent `model`
3. Global config `model` 3. Global config `model`
4. Provider default (Claude: sonnet, Codex: codex) 4. Provider default (Claude: sonnet, Codex: codex)
@ -630,7 +632,7 @@ Variables available in `instruction_template`:
| `{iteration}` | Workflow-wide turn count (total steps executed) | | `{iteration}` | Workflow-wide turn count (total steps executed) |
| `{max_iterations}` | Maximum iteration count | | `{max_iterations}` | Maximum iteration count |
| `{movement_iteration}` | Per-movement iteration count (times this movement has been executed) | | `{movement_iteration}` | Per-movement iteration count (times this movement has been executed) |
| `{previous_response}` | Output from previous step (auto-injected if not in template) | | `{previous_response}` | Output from previous movement (auto-injected if not in template) |
| `{user_inputs}` | Additional user inputs during workflow (auto-injected if not in template) | | `{user_inputs}` | Additional user inputs during workflow (auto-injected if not in template) |
| `{report_dir}` | Report directory path (e.g., `.takt/reports/20250126-143052-task-summary`) | | `{report_dir}` | Report directory path (e.g., `.takt/reports/20250126-143052-task-summary`) |
| `{report:filename}` | Expands to `{report_dir}/filename` (e.g., `{report:00-plan.md}`) | | `{report:filename}` | Expands to `{report_dir}/filename` (e.g., `{report:00-plan.md}`) |

View File

@ -259,14 +259,16 @@ takt config
TAKTはYAMLベースのワークフロー定義とルールベースルーティングを使用します。ビルトインワークフローはパッケージに埋め込まれており、`~/.takt/workflows/` のユーザーワークフローが優先されます。`takt eject` でビルトインを`~/.takt/`にコピーしてカスタマイズできます。 TAKTはYAMLベースのワークフロー定義とルールベースルーティングを使用します。ビルトインワークフローはパッケージに埋め込まれており、`~/.takt/workflows/` のユーザーワークフローが優先されます。`takt eject` でビルトインを`~/.takt/`にコピーしてカスタマイズできます。
> **注記 (v0.4.0)**: ワークフローコンポーネントの内部用語が "step" から "movement" に変更されました。ユーザー向けのワークフローファイルは引き続き互換性がありますが、ワークフローをカスタマイズする場合、YAMLファイルで `movements:` の代わりに `movements:` が使用されることがあります。機能は同じです。
### ワークフローの例 ### ワークフローの例
```yaml ```yaml
name: default name: default
max_iterations: 10 max_iterations: 10
initial_step: plan initial_movement: plan
steps: movements:
- name: plan - name: plan
agent: ../agents/default/planner.md agent: ../agents/default/planner.md
model: opus model: opus
@ -301,9 +303,9 @@ steps:
アーキテクチャとコード品質の観点で実装をレビューしてください。 アーキテクチャとコード品質の観点で実装をレビューしてください。
``` ```
### エージェントレスステップ ### エージェントレスムーブメント
`agent` フィールドは省略可能です。省略した場合、ステップはシステムプロンプトなしで `instruction_template` のみを使って実行されます。これはエージェントの動作カスタマイズが不要なシンプルなタスクに便利です。 `agent` フィールドは省略可能です。省略した場合、ムーブメントはシステムプロンプトなしで `instruction_template` のみを使って実行されます。これはエージェントの動作カスタマイズが不要なシンプルなタスクに便利です。
```yaml ```yaml
- name: summarize - name: summarize
@ -326,9 +328,9 @@ steps:
コード品質をレビューしてください。 コード品質をレビューしてください。
``` ```
### パラレルステップ ### パラレルムーブメント
ステップ内でサブステップを並列実行し、集約条件で評価できます: ムーブメント内でサブムーブメントを並列実行し、集約条件で評価できます:
```yaml ```yaml
- name: reviewers - name: reviewers
@ -354,9 +356,9 @@ steps:
next: fix next: fix
``` ```
- `all("X")`: すべてのサブステップが条件Xにマッチした場合にtrue - `all("X")`: すべてのサブムーブメントが条件Xにマッチした場合にtrue
- `any("X")`: いずれかのサブステップが条件Xにマッチした場合にtrue - `any("X")`: いずれかのサブムーブメントが条件Xにマッチした場合にtrue
- サブステップ`rules` は可能な結果を定義しますが、`next` は省略可能(親が遷移を制御) - サブムーブメント`rules` は可能な結果を定義しますが、`next` は省略可能(親が遷移を制御)
### ルール条件の種類 ### ルール条件の種類
@ -364,7 +366,7 @@ steps:
|------|------|------| |------|------|------|
| タグベース | `"条件テキスト"` | エージェントが `[STEP:N]` タグを出力し、インデックスでマッチ | | タグベース | `"条件テキスト"` | エージェントが `[STEP:N]` タグを出力し、インデックスでマッチ |
| AI判定 | `ai("条件テキスト")` | AIが条件をエージェント出力に対して評価 | | AI判定 | `ai("条件テキスト")` | AIが条件をエージェント出力に対して評価 |
| 集約 | `all("X")` / `any("X")` | パラレルサブステップの結果を集約 | | 集約 | `all("X")` / `any("X")` | パラレルサブムーブメントの結果を集約 |
## ビルトインワークフロー ## ビルトインワークフロー
@ -373,7 +375,7 @@ TAKTには複数のビルトインワークフローが同梱されています:
| ワークフロー | 説明 | | ワークフロー | 説明 |
|------------|------| |------------|------|
| `default` | フル開発ワークフロー: 計画 → アーキテクチャ設計 → 実装 → AI レビュー → 並列レビュー(アーキテクト+セキュリティ)→ スーパーバイザー承認。各レビュー段階に修正ループあり。 | | `default` | フル開発ワークフロー: 計画 → アーキテクチャ設計 → 実装 → AI レビュー → 並列レビュー(アーキテクト+セキュリティ)→ スーパーバイザー承認。各レビュー段階に修正ループあり。 |
| `minimal` | クイックワークフロー: 計画 → 実装 → レビュー → スーパーバイザー。高速イテレーション向けの最小ステップ。 | | `minimal` | クイックワークフロー: 計画 → 実装 → レビュー → スーパーバイザー。高速イテレーション向けの最小構成。 |
| `review-fix-minimal` | レビュー重視ワークフロー: レビュー → 修正 → スーパーバイザー。レビューフィードバックに基づく反復改善向け。 | | `review-fix-minimal` | レビュー重視ワークフロー: レビュー → 修正 → スーパーバイザー。レビューフィードバックに基づく反復改善向け。 |
| `research` | リサーチワークフロー: プランナー → ディガー → スーパーバイザー。質問せずに自律的にリサーチを実行。 | | `research` | リサーチワークフロー: プランナー → ディガー → スーパーバイザー。質問せずに自律的にリサーチを実行。 |
| `expert` | フルスタック開発ワークフロー: アーキテクチャ、フロントエンド、セキュリティ、QA レビューと修正ループ。 | | `expert` | フルスタック開発ワークフロー: アーキテクチャ、フロントエンド、セキュリティ、QA レビューと修正ループ。 |
@ -411,7 +413,7 @@ Markdown ファイルでエージェントプロンプトを作成:
## モデル選択 ## モデル選択
`model` フィールド(ワークフローステップ、エージェント設定、グローバル設定はプロバイダーClaude Code CLI / Codex SDKにそのまま渡されます。TAKTはモデルエイリアスの解決を行いません。 `model` フィールド(ワークフローのムーブメント、エージェント設定、グローバル設定はプロバイダーClaude Code CLI / Codex SDKにそのまま渡されます。TAKTはモデルエイリアスの解決を行いません。
### Claude Code ### Claude Code
@ -504,7 +506,7 @@ trusted_directories:
| `{report}` | PR本文 | ワークフロー実行レポート | | `{report}` | PR本文 | ワークフロー実行レポート |
**モデル解決の優先順位:** **モデル解決の優先順位:**
1. ワークフローステップ`model`(最優先) 1. ワークフローのムーブメント`model`(最優先)
2. カスタムエージェントの `model` 2. カスタムエージェントの `model`
3. グローバル設定の `model` 3. グローバル設定の `model`
4. プロバイダーデフォルトClaude: sonnet、Codex: codex 4. プロバイダーデフォルトClaude: sonnet、Codex: codex
@ -577,9 +579,9 @@ takt eject default
name: my-workflow name: my-workflow
description: カスタムワークフロー description: カスタムワークフロー
max_iterations: 5 max_iterations: 5
initial_step: analyze initial_movement: analyze
steps: movements:
- name: analyze - name: analyze
agent: ~/.takt/agents/my-agents/analyzer.md agent: ~/.takt/agents/my-agents/analyzer.md
edit: false edit: false
@ -625,17 +627,17 @@ agent: /path/to/custom/agent.md
| 変数 | 説明 | | 変数 | 説明 |
|------|------| |------|------|
| `{task}` | 元のユーザーリクエスト(テンプレートになければ自動注入) | | `{task}` | 元のユーザーリクエスト(テンプレートになければ自動注入) |
| `{iteration}` | ワークフロー全体のターン数(実行された全ステップ数) | | `{iteration}` | ワークフロー全体のターン数(実行された全ムーブメント数) |
| `{max_iterations}` | 最大イテレーション数 | | `{max_iterations}` | 最大イテレーション数 |
| `{step_iteration}` | ステップごとのイテレーション数(このステップが実行された回数) | | `{movement_iteration}` | ムーブメントごとのイテレーション数(このムーブメントが実行された回数) |
| `{previous_response}` | 前のステップの出力(テンプレートになければ自動注入) | | `{previous_response}` | 前のムーブメントの出力(テンプレートになければ自動注入) |
| `{user_inputs}` | ワークフロー中の追加ユーザー入力(テンプレートになければ自動注入) | | `{user_inputs}` | ワークフロー中の追加ユーザー入力(テンプレートになければ自動注入) |
| `{report_dir}` | レポートディレクトリパス(例: `.takt/reports/20250126-143052-task-summary` | | `{report_dir}` | レポートディレクトリパス(例: `.takt/reports/20250126-143052-task-summary` |
| `{report:filename}` | `{report_dir}/filename` に展開(例: `{report:00-plan.md}` | | `{report:filename}` | `{report_dir}/filename` に展開(例: `{report:00-plan.md}` |
### ワークフローの設計 ### ワークフローの設計
各ワークフローステップに必要な要素: 各ワークフローのムーブメントに必要な要素:
**1. エージェント** - システムプロンプトを含むMarkdownファイル: **1. エージェント** - システムプロンプトを含むMarkdownファイル:
@ -644,7 +646,7 @@ agent: ../agents/default/coder.md # エージェントプロンプトファ
agent_name: coder # 表示名(オプション) agent_name: coder # 表示名(オプション)
``` ```
**2. ルール** - ステップから次のステップへのルーティングを定義。インストラクションビルダーがステータス出力ルールを自動注入するため、エージェントはどのタグを出力すべきか把握できます: **2. ルール** - ムーブメントから次のムーブメントへのルーティングを定義。インストラクションビルダーがステータス出力ルールを自動注入するため、エージェントはどのタグを出力すべきか把握できます:
```yaml ```yaml
rules: rules:
@ -656,15 +658,15 @@ rules:
特殊な `next` 値: `COMPLETE`(成功)、`ABORT`(失敗) 特殊な `next` 値: `COMPLETE`(成功)、`ABORT`(失敗)
**3. ステップオプション:** **3. ムーブメントオプション:**
| オプション | デフォルト | 説明 | | オプション | デフォルト | 説明 |
|-----------|-----------|------| |-----------|-----------|------|
| `edit` | - | ステップがプロジェクトファイルを編集できるか(`true`/`false` | | `edit` | - | ムーブメントがプロジェクトファイルを編集できるか(`true`/`false` |
| `pass_previous_response` | `true` | 前のステップの出力を`{previous_response}`に渡す | | `pass_previous_response` | `true` | 前のムーブメントの出力を`{previous_response}`に渡す |
| `allowed_tools` | - | エージェントが使用できるツール一覧Read, Glob, Grep, Edit, Write, Bash等 | | `allowed_tools` | - | エージェントが使用できるツール一覧Read, Glob, Grep, Edit, Write, Bash等 |
| `provider` | - | このステップのプロバイダーを上書き(`claude`または`codex` | | `provider` | - | このムーブメントのプロバイダーを上書き(`claude`または`codex` |
| `model` | - | このステップのモデルを上書き | | `model` | - | このムーブメントのモデルを上書き |
| `permission_mode` | - | パーミッションモード: `readonly``edit``full`(プロバイダー非依存) | | `permission_mode` | - | パーミッションモード: `readonly``edit``full`(プロバイダー非依存) |
| `report` | - | 自動生成レポートのファイル設定name, format | | `report` | - | 自動生成レポートのファイル設定name, format |
@ -714,7 +716,7 @@ jobs:
issues: write issues: write
pull-requests: write pull-requests: write
steps: movements:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4