Release v0.10.0
This commit is contained in:
parent
22908d474c
commit
9ee3ecc7f9
40
CHANGELOG.md
40
CHANGELOG.md
@ -4,6 +4,46 @@ 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/).
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
||||||
|
|
||||||
|
## [0.10.0] - 2026-02-09
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- **`structural-reform` builtin piece**: Full project review and structural reform — iterative codebase restructuring with staged file splits, powered by `loop_monitors`
|
||||||
|
- **`unit-test` builtin piece**: Unit test focused piece — test analysis → test implementation → review → fix, with `loop_monitors` for cycle control
|
||||||
|
- **`test-planner` persona**: Specialized persona for analyzing codebase and planning comprehensive test strategies
|
||||||
|
- **Interactive mode variants**: Four selectable modes after piece selection — `assistant` (default: AI-guided requirement refinement), `persona` (conversation with first movement's persona), `quiet` (generate instructions without questions), `passthrough` (user input used as-is)
|
||||||
|
- **`persona_providers` config**: Per-persona provider overrides (e.g., `{ coder: 'codex' }`) — route specific personas to different providers without creating hybrid pieces
|
||||||
|
- **`task_poll_interval_ms` config**: Configurable polling interval for `takt run` to detect new tasks during execution (default: 500ms, range: 100–5000ms)
|
||||||
|
- **`interactive_mode` piece field**: Piece-level default interactive mode override (e.g., set `passthrough` for pieces that don't benefit from AI planning)
|
||||||
|
- **Task-level output prefixing**: Colored `[taskName]` prefix on all output lines during parallel `takt run` execution, preventing mid-line interleaving between concurrent tasks
|
||||||
|
- **Review policy facet**: Shared review policy (`builtins/{lang}/policies/review.md`) for consistent review criteria across pieces
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- **BREAKING:** Removed all Hybrid Codex pieces (`*-hybrid-codex`) — replaced by `persona_providers` config which achieves the same result without duplicating piece files
|
||||||
|
- Removed `tools/generate-hybrid-codex.mjs` (no longer needed with `persona_providers`)
|
||||||
|
- Improved parallel execution output: movement-level prefix now includes task context and iteration info in concurrent runs
|
||||||
|
- Codex client now detects stream hangs (10-minute idle timeout) and distinguishes timeout vs external abort in error messages
|
||||||
|
- Parallel task execution (`takt run`) now polls for newly added tasks during execution instead of only checking between task completions
|
||||||
|
- Parallel task execution no longer enforces per-task time limits (previously had a timeout)
|
||||||
|
- Issue references now routed through interactive mode (as initial input) instead of skipping interactive mode entirely
|
||||||
|
- Builtin `config.yaml` updated to document all GlobalConfig fields
|
||||||
|
- Extracted `conversationLoop.ts` for shared conversation logic across interactive mode variants
|
||||||
|
- Line editor improvements: additional key bindings and edge case fixes
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Codex processes hanging indefinitely when stream becomes idle — now aborted after 10 minutes of inactivity, releasing worker pool slots
|
||||||
|
|
||||||
|
### Internal
|
||||||
|
|
||||||
|
- New test coverage: engine-persona-providers, interactive-mode (532 lines), task-prefix-writer, workerPool expansion, pieceResolver expansion, lineEditor expansion, parallel-logger expansion, globalConfig-defaults expansion, pieceExecution-debug-prompts expansion, it-piece-loader expansion, runAllTasks-concurrency expansion, engine-parallel
|
||||||
|
- Extracted `TaskPrefixWriter` for task-level parallel output management
|
||||||
|
- Extracted `modeSelection.ts`, `passthroughMode.ts`, `personaMode.ts`, `quietMode.ts` from interactive module
|
||||||
|
- `InteractiveMode` type model added (`src/core/models/interactive-mode.ts`)
|
||||||
|
- `PieceEngine` validates `taskPrefix`/`taskColorIndex` pair consistency at construction
|
||||||
|
- Implementation notes document added (`docs/implements/retry-and-session.ja.md`)
|
||||||
|
|
||||||
## [0.9.0] - 2026-02-08
|
## [0.9.0] - 2026-02-08
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
32
README.md
32
README.md
@ -92,13 +92,25 @@ takt
|
|||||||
takt hello
|
takt hello
|
||||||
```
|
```
|
||||||
|
|
||||||
**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.
|
**Note:** `--task` option skips interactive mode and executes the task directly. Issue references (`#6`, `--issue`) are used as initial input in interactive mode.
|
||||||
|
|
||||||
**Flow:**
|
**Flow:**
|
||||||
1. Select piece
|
1. Select piece
|
||||||
2. Refine task content through conversation with AI
|
2. Select interactive mode (assistant / persona / quiet / passthrough)
|
||||||
3. Finalize task instructions with `/go` (you can also add additional instructions like `/go additional instructions`), or use `/play <task>` to execute a task immediately
|
3. Refine task content through conversation with AI
|
||||||
4. Execute (create worktree, run piece, create PR)
|
4. Finalize task instructions with `/go` (you can also add additional instructions like `/go additional instructions`), or use `/play <task>` to execute a task immediately
|
||||||
|
5. Execute (create worktree, run piece, create PR)
|
||||||
|
|
||||||
|
#### Interactive Mode Variants
|
||||||
|
|
||||||
|
| Mode | Description |
|
||||||
|
|------|-------------|
|
||||||
|
| `assistant` | Default. AI asks clarifying questions before generating task instructions. |
|
||||||
|
| `persona` | Conversation with the first movement's persona (uses its system prompt and tools). |
|
||||||
|
| `quiet` | Generates task instructions without asking questions (best-effort). |
|
||||||
|
| `passthrough` | Passes user input directly as task text without AI processing. |
|
||||||
|
|
||||||
|
Pieces can set a default mode via the `interactive_mode` field in YAML.
|
||||||
|
|
||||||
#### Execution Example
|
#### Execution Example
|
||||||
|
|
||||||
@ -451,8 +463,10 @@ TAKT includes multiple builtin pieces:
|
|||||||
| `passthrough` | Thinnest wrapper. Pass task directly to coder as-is. No review. |
|
| `passthrough` | Thinnest wrapper. Pass task directly to coder as-is. No review. |
|
||||||
| `compound-eye` | Multi-model review: sends the same instruction to Claude and Codex simultaneously, then synthesizes both responses. |
|
| `compound-eye` | Multi-model review: sends the same instruction to Claude and Codex simultaneously, then synthesizes both responses. |
|
||||||
| `review-only` | Read-only code review piece that makes no changes. |
|
| `review-only` | Read-only code review piece that makes no changes. |
|
||||||
|
| `structural-reform` | Full project review and structural reform: iterative codebase restructuring with staged file splits. |
|
||||||
|
| `unit-test` | Unit test focused piece: test analysis → test implementation → review → fix. |
|
||||||
|
|
||||||
**Hybrid Codex variants** (`*-hybrid-codex`): Each major piece has a Codex variant where the coder agent runs on Codex while reviewers use Claude. Available for: default, minimal, expert, expert-cqrs, passthrough, review-fix-minimal, coding.
|
**Per-persona provider overrides:** Use `persona_providers` in config to route specific personas to different providers (e.g., coder on Codex, reviewers on Claude) without duplicating pieces.
|
||||||
|
|
||||||
Use `takt switch` to switch pieces.
|
Use `takt switch` to switch pieces.
|
||||||
|
|
||||||
@ -475,6 +489,7 @@ Use `takt switch` to switch pieces.
|
|||||||
| **research-planner** | Research task planning and scope definition |
|
| **research-planner** | Research task planning and scope definition |
|
||||||
| **research-digger** | Deep investigation and information gathering |
|
| **research-digger** | Deep investigation and information gathering |
|
||||||
| **research-supervisor** | Research quality validation and completeness assessment |
|
| **research-supervisor** | Research quality validation and completeness assessment |
|
||||||
|
| **test-planner** | Test strategy analysis and comprehensive test planning |
|
||||||
| **pr-commenter** | Posts review findings as GitHub PR comments |
|
| **pr-commenter** | Posts review findings as GitHub PR comments |
|
||||||
|
|
||||||
## Custom Personas
|
## Custom Personas
|
||||||
@ -543,8 +558,15 @@ branch_name_strategy: romaji # Branch name generation: 'romaji' (fast) or 'ai'
|
|||||||
prevent_sleep: false # Prevent macOS idle sleep during execution (caffeinate)
|
prevent_sleep: false # Prevent macOS idle sleep during execution (caffeinate)
|
||||||
notification_sound: true # Enable/disable notification sounds
|
notification_sound: true # Enable/disable notification sounds
|
||||||
concurrency: 1 # Parallel task count for takt run (1-10, default: 1 = sequential)
|
concurrency: 1 # Parallel task count for takt run (1-10, default: 1 = sequential)
|
||||||
|
task_poll_interval_ms: 500 # Polling interval for new tasks during takt run (100-5000, default: 500)
|
||||||
interactive_preview_movements: 3 # Movement previews in interactive mode (0-10, default: 3)
|
interactive_preview_movements: 3 # Movement previews in interactive mode (0-10, default: 3)
|
||||||
|
|
||||||
|
# Per-persona provider overrides (optional)
|
||||||
|
# Route specific personas to different providers without duplicating pieces
|
||||||
|
# persona_providers:
|
||||||
|
# coder: codex # Run coder on Codex
|
||||||
|
# ai-antipattern-reviewer: claude # Keep reviewers on Claude
|
||||||
|
|
||||||
# API Key configuration (optional)
|
# API Key configuration (optional)
|
||||||
# Can be overridden by environment variables TAKT_ANTHROPIC_API_KEY / TAKT_OPENAI_API_KEY
|
# Can be overridden by environment variables TAKT_ANTHROPIC_API_KEY / TAKT_OPENAI_API_KEY
|
||||||
anthropic_api_key: sk-ant-... # For Claude (Anthropic)
|
anthropic_api_key: sk-ant-... # For Claude (Anthropic)
|
||||||
|
|||||||
@ -92,13 +92,25 @@ takt
|
|||||||
takt hello
|
takt hello
|
||||||
```
|
```
|
||||||
|
|
||||||
**注意:** Issue 参照(`#6`)や `--task` / `--issue` オプションを指定すると、対話モードをスキップして直接タスク実行されます。それ以外の入力(スペースを含む文字列を含む)はすべて対話モードに入ります。
|
**注意:** `--task` オプションを指定すると対話モードをスキップして直接タスク実行されます。Issue 参照(`#6`、`--issue`)は対話モードの初期入力として使用されます。
|
||||||
|
|
||||||
**フロー:**
|
**フロー:**
|
||||||
1. ピース選択
|
1. ピース選択
|
||||||
2. AI との会話でタスク内容を整理
|
2. 対話モード選択(assistant / persona / quiet / passthrough)
|
||||||
3. `/go` でタスク指示を確定(`/go 追加の指示` のように指示を追加することも可能)、または `/play <タスク>` で即座に実行
|
3. AI との会話でタスク内容を整理
|
||||||
4. 実行(worktree 作成、ピース実行、PR 作成)
|
4. `/go` でタスク指示を確定(`/go 追加の指示` のように指示を追加することも可能)、または `/play <タスク>` で即座に実行
|
||||||
|
5. 実行(worktree 作成、ピース実行、PR 作成)
|
||||||
|
|
||||||
|
#### 対話モードの種類
|
||||||
|
|
||||||
|
| モード | 説明 |
|
||||||
|
|--------|------|
|
||||||
|
| `assistant` | デフォルト。AI が質問を通じてタスク要件を明確にしてから指示を生成。 |
|
||||||
|
| `persona` | 最初のムーブメントのペルソナとの会話(ペルソナのシステムプロンプトとツールを使用)。 |
|
||||||
|
| `quiet` | 質問なしでタスク指示を生成(ベストエフォート)。 |
|
||||||
|
| `passthrough` | ユーザー入力をそのままタスクテキストとして使用。AI 処理なし。 |
|
||||||
|
|
||||||
|
ピースの `interactive_mode` フィールドでデフォルトモードを設定可能。
|
||||||
|
|
||||||
#### 実行例
|
#### 実行例
|
||||||
|
|
||||||
@ -451,8 +463,10 @@ TAKTには複数のビルトインピースが同梱されています:
|
|||||||
| `passthrough` | 最小構成。タスクをそのまま coder に渡す薄いラッパー。レビューなし。 |
|
| `passthrough` | 最小構成。タスクをそのまま coder に渡す薄いラッパー。レビューなし。 |
|
||||||
| `compound-eye` | マルチモデルレビュー: Claude と Codex に同じ指示を同時送信し、両方の回答を統合。 |
|
| `compound-eye` | マルチモデルレビュー: Claude と Codex に同じ指示を同時送信し、両方の回答を統合。 |
|
||||||
| `review-only` | 変更を加えない読み取り専用のコードレビューピース。 |
|
| `review-only` | 変更を加えない読み取り専用のコードレビューピース。 |
|
||||||
|
| `structural-reform` | プロジェクト全体の構造改革: 段階的なファイル分割を伴う反復的なコードベース再構成。 |
|
||||||
|
| `unit-test` | ユニットテスト重視ピース: テスト分析 → テスト実装 → レビュー → 修正。 |
|
||||||
|
|
||||||
**Hybrid Codex バリアント** (`*-hybrid-codex`): 主要ピースごとに、coder エージェントを Codex で実行しレビュアーは Claude を使うハイブリッド構成が用意されています。対象: default, minimal, expert, expert-cqrs, passthrough, review-fix-minimal, coding。
|
**ペルソナ別プロバイダー設定:** 設定ファイルの `persona_providers` で、特定のペルソナを異なるプロバイダーにルーティングできます(例: coder は Codex、レビュアーは Claude)。ピースを複製する必要はありません。
|
||||||
|
|
||||||
`takt switch` でピースを切り替えられます。
|
`takt switch` でピースを切り替えられます。
|
||||||
|
|
||||||
@ -475,6 +489,7 @@ TAKTには複数のビルトインピースが同梱されています:
|
|||||||
| **research-planner** | リサーチタスクの計画・スコープ定義 |
|
| **research-planner** | リサーチタスクの計画・スコープ定義 |
|
||||||
| **research-digger** | 深掘り調査と情報収集 |
|
| **research-digger** | 深掘り調査と情報収集 |
|
||||||
| **research-supervisor** | リサーチ品質の検証と網羅性の評価 |
|
| **research-supervisor** | リサーチ品質の検証と網羅性の評価 |
|
||||||
|
| **test-planner** | テスト戦略分析と包括的なテスト計画 |
|
||||||
| **pr-commenter** | レビュー結果を GitHub PR にコメントとして投稿 |
|
| **pr-commenter** | レビュー結果を GitHub PR にコメントとして投稿 |
|
||||||
|
|
||||||
## カスタムペルソナ
|
## カスタムペルソナ
|
||||||
@ -543,8 +558,15 @@ branch_name_strategy: romaji # ブランチ名生成: 'romaji'(高速)ま
|
|||||||
prevent_sleep: false # macOS の実行中スリープ防止(caffeinate)
|
prevent_sleep: false # macOS の実行中スリープ防止(caffeinate)
|
||||||
notification_sound: true # 通知音の有効/無効
|
notification_sound: true # 通知音の有効/無効
|
||||||
concurrency: 1 # takt run の並列タスク数(1-10、デフォルト: 1 = 逐次実行)
|
concurrency: 1 # takt run の並列タスク数(1-10、デフォルト: 1 = 逐次実行)
|
||||||
|
task_poll_interval_ms: 500 # takt run 中の新タスク検出ポーリング間隔(100-5000、デフォルト: 500)
|
||||||
interactive_preview_movements: 3 # 対話モードでのムーブメントプレビュー数(0-10、デフォルト: 3)
|
interactive_preview_movements: 3 # 対話モードでのムーブメントプレビュー数(0-10、デフォルト: 3)
|
||||||
|
|
||||||
|
# ペルソナ別プロバイダー設定(オプション)
|
||||||
|
# ピースを複製せずに特定のペルソナを異なるプロバイダーにルーティング
|
||||||
|
# persona_providers:
|
||||||
|
# coder: codex # coder を Codex で実行
|
||||||
|
# ai-antipattern-reviewer: claude # レビュアーは Claude のまま
|
||||||
|
|
||||||
# API Key 設定(オプション)
|
# API Key 設定(オプション)
|
||||||
# 環境変数 TAKT_ANTHROPIC_API_KEY / TAKT_OPENAI_API_KEY で上書き可能
|
# 環境変数 TAKT_ANTHROPIC_API_KEY / TAKT_OPENAI_API_KEY で上書き可能
|
||||||
anthropic_api_key: sk-ant-... # Claude (Anthropic) を使う場合
|
anthropic_api_key: sk-ant-... # Claude (Anthropic) を使う場合
|
||||||
|
|||||||
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "takt",
|
"name": "takt",
|
||||||
"version": "0.9.0",
|
"version": "0.10.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "takt",
|
"name": "takt",
|
||||||
"version": "0.9.0",
|
"version": "0.10.0",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@anthropic-ai/claude-agent-sdk": "^0.2.37",
|
"@anthropic-ai/claude-agent-sdk": "^0.2.37",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "takt",
|
"name": "takt",
|
||||||
"version": "0.9.0",
|
"version": "0.10.0",
|
||||||
"description": "TAKT: Task Agent Koordination Tool - AI Agent Piece Orchestration",
|
"description": "TAKT: Task Agent Koordination Tool - AI Agent Piece Orchestration",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"types": "dist/index.d.ts",
|
"types": "dist/index.d.ts",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user