diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a28249..6b68243 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,35 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). +## [0.6.0-rc] - 2026-02-05 + +### Added + +- `coding` ビルトインピース: 設計→実装→並列レビュー→修正の軽量開発ピース(plan/supervise を省略した高速フィードバックループ) +- `conductor` エージェント: Phase 3 判定専用エージェント。レポートやレスポンスを読んで判定タグを出力する +- Phase 3 判定のフォールバック戦略: AutoSelect → ReportBased → ResponseBased → AgentConsult の4段階フォールバックで判定精度を向上 (`src/core/piece/judgment/`) +- セッション状態管理: タスク実行結果(成功/エラー/中断)を保存し、次回インタラクティブモード起動時に前回の結果を表示 (#89) +- TAKT メタ情報(ピース構造、進行状況)をエージェントに引き渡す仕組み +- `/play` コマンド: インタラクティブモードでタスクを即座に実行 +- E2Eテスト基盤: mock/provider 両対応のテストインフラ、10種のE2Eテストスペック、テストヘルパー(isolated-env, takt-runner, test-repo) +- レビューエージェントに「論理的に到達不可能な防御コード」の検出ルールを追加 + +### Changed + +- Phase 3 判定ロジックをセッション再開方式から conductor エージェント+フォールバック戦略に変更(判定の安定性向上) +- CLI ルーティングを `executeDefaultAction()` として関数化し、スラッシュコマンドのフォールバックから再利用可能に (#32) +- `/` や `#` で始まる入力をコマンド/Issue 未検出時にタスク指示として受け入れるよう変更 (#32) +- `isDirectTask()` を簡素化: Issue 参照のみ直接実行、それ以外はすべてインタラクティブモードへ +- 全ビルトインピースから `pass_previous_response: true` を削除(デフォルト動作のため不要) + +### Internal + +- E2Eテスト設定ファイル追加(vitest.config.e2e.ts, vitest.config.e2e.mock.ts, vitest.config.e2e.provider.ts) +- `rule-utils.ts` に `getReportFiles()`, `hasOnlyOneBranch()`, `getAutoSelectedTag()` を追加 +- `StatusJudgmentBuilder` にレポートコンテンツ・レスポンスベースの判定指示生成を追加 +- `InstructionBuilder` にピースメタ情報(構造、反復回数)の注入を追加 +- テスト追加: judgment-detector, judgment-fallback, sessionState, pieceResolver, cli-slash-hash, e2e-helpers + ## [0.5.1] - 2026-02-04 ### Fixed diff --git a/README.md b/README.md index d59711d..93a2580 100644 --- a/README.md +++ b/README.md @@ -78,12 +78,12 @@ takt takt hello ``` -**Note:** If you specify a string with spaces, Issue reference (`#6`), or `--task` / `--issue` options, interactive mode will be skipped and the task will be executed directly. +**Note:** Issue references (`#6`) and `--task` / `--issue` options skip interactive mode and execute the task directly. All other inputs (including text with spaces) enter interactive mode for requirement refinement. **Flow:** 1. Select piece 2. Refine task content through conversation with AI -3. Finalize task instructions with `/go` (you can also add additional instructions like `/go additional instructions`) +3. Finalize task instructions with `/go` (you can also add additional instructions like `/go additional instructions`), or use `/play ` to execute a task immediately 4. Execute (create worktree, run piece, create PR) #### Execution Example @@ -125,22 +125,21 @@ Proceed with these task instructions? (Y/n) y ### Direct Task Execution -When task content is clear, you can skip interactive mode and execute directly. +Use the `--task` option to skip interactive mode and execute directly. ```bash -# Specify task content directly (string with spaces) -takt "Add login feature" - # Specify task content with --task option takt --task "Fix bug" # Specify piece -takt "Add authentication" --piece expert +takt --task "Add authentication" --piece expert # Auto-create PR -takt "Fix bug" --auto-pr +takt --task "Fix bug" --auto-pr ``` +**Note:** Passing a string as an argument (e.g., `takt "Add login feature"`) enters interactive mode with it as the initial message. + ### GitHub Issue Tasks You can execute GitHub Issues directly as tasks. Issue title, body, labels, and comments are automatically incorporated as task content. diff --git a/docs/README.ja.md b/docs/README.ja.md index 7e49641..7556fa5 100644 --- a/docs/README.ja.md +++ b/docs/README.ja.md @@ -74,12 +74,12 @@ takt takt hello ``` -**注意:** スペースを含む文字列や Issue 参照(`#6`)、`--task` / `--issue` オプションを指定すると、対話モードをスキップして直接タスク実行されます。 +**注意:** Issue 参照(`#6`)や `--task` / `--issue` オプションを指定すると、対話モードをスキップして直接タスク実行されます。それ以外の入力(スペースを含む文字列を含む)はすべて対話モードに入ります。 **フロー:** 1. ピース選択 2. AI との会話でタスク内容を整理 -3. `/go` でタスク指示を確定(`/go 追加の指示` のように指示を追加することも可能) +3. `/go` でタスク指示を確定(`/go 追加の指示` のように指示を追加することも可能)、または `/play <タスク>` で即座に実行 4. 実行(worktree 作成、ピース実行、PR 作成) #### 実行例 @@ -121,22 +121,21 @@ Select piece: ### 直接タスク実行 -タスク内容が明確な場合は、対話モードをスキップして直接実行できます。 +`--task` オプションを使うと、対話モードをスキップして直接実行できます。 ```bash -# タスク内容を直接指定(スペースを含む文字列) -takt "ログイン機能を追加する" - # --task オプションでタスク内容を指定 takt --task "バグを修正" # ピース指定 -takt "認証機能を追加" --piece expert +takt --task "認証機能を追加" --piece expert # PR 自動作成 -takt "バグを修正" --auto-pr +takt --task "バグを修正" --auto-pr ``` +**注意:** `takt "ログイン機能を追加する"` のように引数として文字列を渡した場合は、対話モードの初期メッセージとして使用されます。 + ### GitHub Issue タスク GitHub Issue を直接タスクとして実行できます。Issue のタイトル、本文、ラベル、コメントが自動的にタスク内容として取り込まれます。 diff --git a/package-lock.json b/package-lock.json index cf03479..2188762 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "takt", - "version": "0.5.1", + "version": "0.6.0-rc", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "takt", - "version": "0.5.1", + "version": "0.6.0-rc", "license": "MIT", "dependencies": { "@anthropic-ai/claude-agent-sdk": "^0.2.19", diff --git a/package.json b/package.json index 5df0be7..08e88b8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "takt", - "version": "0.5.1", + "version": "0.6.0-rc", "description": "TAKT: Task Agent Koordination Tool - AI Agent Piece Orchestration", "main": "dist/index.js", "types": "dist/index.d.ts",