# Changelog

[English](../CHANGELOG.md)

このプロジェクトの注目すべき変更はすべてこのファイルに記録されます。

フォーマットは [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) に基づいています。

## [0.36.0] - 2026-04-15

### Added

- サブワークフロー呼び出し（`call:` ステップ）を追加: ステップに `call: <workflow-name>` を指定すると、別のワークフローをサブルーチンとして実行可能。呼び出し先ワークフローは `subworkflow: { callable: true }` 宣言が必要。`overrides:` でプロバイダ/モデルの上書きも可能。再帰呼び出し検知・最大ネスト深度 5 (#153, #624)
- システムステップ（`kind: system`）を追加: AI エージェントを介さずに実行されるステップ。`system_inputs:` でランタイムコンテキスト（タスク、ブランチ、PR、Issue、タスクキュー）をワークフロー状態にバインドし、`effects:` で副作用（`enqueue_task`, `comment_pr`, `sync_with_root`, `resolve_conflicts_with_ai`, `merge_pr`）を実行 (#586, #622)
- 決定論的 `when:` ルール条件を追加: ルールに `condition:` の代わりに `when:` を指定すると、比較演算子（`==`, `!=`, `>`, `<`, `>=`, `<=`）やブール論理（`&&`, `||`）、ワークフロー状態参照（`context.*`, `structured.*`, `effect.*`）で AI を介さずルーティング (#586, #622)
- ステップの構造化出力（`structured_output:`）を追加: `structured_output: { schema_ref: "<name>" }` でワークフロー定義の `schemas:` マップ内の JSON スキーマを参照し、エージェント出力をバリデーション・保存。他ステップから `{structured:step.field}` で参照可能 (#586, #622)
- インタラクティブモードにスラッシュコマンド補完メニューを追加: `/` 入力時にインライン補完ドロップダウンを表示。矢印キーで選択、Tab で適用、Enter で確定。コンテキストに応じて `/retry` `/replay` の表示を制御 (#580)
- Copilot プロバイダに `effort`（推論の深さ）設定を追加: `provider_options.copilot.effort` で `low` / `medium` / `high` / `xhigh` を指定可能 (#625)
- `takt workflow init <name>` コマンドを追加: ワークフローのスキャフォールドを生成。`--template minimal|faceted`、`--steps <count>`、`--description <text>`、`--global` オプション対応 (#597)
- `takt workflow doctor [targets]` コマンドを追加: ワークフロー YAML の定義を検証。ターゲット未指定時は `.takt/workflows/` 内の全ワークフローを検証。ワークフロー名またはファイルパスを指定可能 (#597)
- 画面専用 API ポリシー（`screen-api`）を追加: 画面単位の専用エンドポイント、サーバー主導のページネーション、サーバーサイド集約、スコープ付きタブ通信を強制。全 dual 系ワークフローに適用
- AI アンチパターンポリシーに早期キャッシュ戦略の禁止ルールを追加: 明示的な要求や計測なしにキャッシュレイヤー・localStorage キャッシュ・過度な memoization を導入することを REJECT

### Changed

- **BREAKING:** 旧用語 `piece` / `movement` を完全に廃止し、`workflow` / `step` に統一 (#602, #609)。ワークフロー YAML の `piece_config:` → `workflow_config:`、`movements:` → `steps:`、`initial_movement:` → `initial_step:`、`max_movements:` → `max_steps:` への移行が必須。ディレクトリも `~/.takt/pieces/` → `~/.takt/workflows/`、`.takt/pieces/` → `.takt/workflows/` に変更。レガシー環境変数（`TAKT_PIECE_*`）は引き続きマッピングされる
- 非対応プロバイダ向けの provider-specific オプション（`claude.allowed_tools`、`mcp_servers`、`team_leader.part_allowed_tools`）をサイレントドロップするよう変更。ワークフローをプロバイダ非依存に保てるように改善
- 全レビュー系インストラクションのエビデンスガイダンスを統一: `reopened` ステータスの追加、検証ターゲット・確認内容・観測結果の記録を必須化、オープン指摘事項の脱落防止ルールを追加

### Fixed

- 全 audit 系ワークフロー（7 種）で supervise ↔ review 間のデッドロックを修正。review ステップに `output_contracts` を追加し、ループモニターの閾値を 4→3 に調整、ジャッジの選択肢を 3 択（十分/進捗あり/停滞）に変更

### Internal

- `piece*` → `workflow*` のファイル名一括リネーム（84 ファイル、テスト・E2E フィクスチャ・ドキュメント含む）
- `WorkflowEngine` をリファクタリング: `WorkflowEngineSetup`、`WorkflowEngineStepCoordinator`、`WorkflowRunLoop` に責務を分離
- セッションロガーを `sessionLoggerPhaseTracker.ts`、`sessionLoggerRecordFactory.ts` に分割
- `CapabilityAwareStructuredCaller` を追加し、プロバイダの構造化出力対応可否に応じたルーティングを実装
- ルール評価を 10 段階フォールバックに拡張（`when:` 条件の評価ステージを追加）
- `workflow-state-access.ts` でテンプレート参照（`{context:*}`、`{structured:*}`、`{effect:*}`）の統一解決を実装

## [0.35.4] - 2026-04-11

### Changed

- レビューポリシーにツール出力の信頼性検証ルールを追加: ツール出力が正常に読めることを確認してから指摘すること、検索失敗だけでコード不在と断定しないことをルール化

### Fixed

- ターミナルの行数が少ない環境で選択メニューが正常に動作しない問題を修正。ビューポートベースのスクロールを追加 (#608)
- Windows で `.cmd` shim の spawn が失敗する問題を修正（Claude Headless、Cursor、Copilot プロバイダ）

### Internal

- 選択メニューを `select-menu.ts`、`select-viewport.ts` に分離し、純粋関数化とビューポートテストを追加
- ワークフロードキュメントの例で古いフィールド名を使っていた問題を修正 (#619)

## [0.35.1] - 2026-04-09

### Added

- タスク実行中に常時スピナーを表示: TTY 環境でタスク実行中にアニメーションスピナーを表示し、処理中であることを可視化
- Claude Headless の thinking ストリーム表示: ヘッドレスモードで thinking トークンをリアルタイム表示。parallel モードでは色分け表示に対応

### Changed

- SIGINT（Ctrl+C）でクローン作成中でも即座にプロセスを終了できるよう改善: `run`/`watch` コマンドで raw mode による即時検知を導入し、git サブプロセスを AbortSignal で中断可能に

### Fixed

- Codex プロバイダが Git リポジトリ外での実行を拒否する問題を修正

### Internal

- StatusLine の wrapWrite をアロー関数にリファクタリング
- StreamDisplay のハンドラーをムーブメントごとにキャッシュするよう最適化
- クローン作成関連のテスト追加・更新

## [0.35.0] - 2026-04-07

### Added

- Claude Headless プロバイダを追加: Claude CLI のヘッドレスモード（`claude --print`）をサブプロセスとして実行する新プロバイダ。`claude` プロバイダ名で利用可能 (#584)
- trace ログレベルを追加: `poll_tick`/`no_new_tasks` などの高頻度ログを抑制し、デバッグログの可読性を向上。`logging.trace: true` で有効化
- レガシー設定キーの非推奨警告: `piece_*`/`movement*` 系の旧キー使用時に deprecation warning を表示し、新しい `workflow_*`/`step*` キーへの移行を促進 (#581, #594)
- Mock プロバイダで `delayMs` と AbortSignal をサポート: SIGINT テスト等で利用可能に (#595)

### Changed

- **BREAKING:** `claude` プロバイダがヘッドレス CLI モードをデフォルトに変更。従来の SDK ベースプロバイダは `claude-sdk` として引き続き利用可能 (#584)
- クローン環境からのプッシュに relay push パターンを導入: 一時 ref 経由でプッシュすることで、チェックアウト中のブランチへの直接プッシュによるデータ損失を防止 (#592)
- PR 由来タスクのメタデータ伝搬を改善: `shouldPublishBranchToOrigin` フラグにより、ローカルプッシュ失敗時にクローンから直接 origin へプッシュするフォールバックを追加 (#592)
- dual/backend ワークフローの `max_steps` を 60 に増加

### Fixed

- `pr_body_template` が `--task` オプション実行時に無視される問題を修正 (#538)
- 既存 PR ブランチ更新時にリモートを正として worktree を作成するよう修正 (#557)
- SIGINT（Ctrl+C）が AI レスポンス待機中に正しくアボートされない問題を修正 (#595)
- mise 等のバージョン管理ツール環境下で Claude SDK サブプロセスの PATH が安定しない問題を修正 (#591)
- ジャッジムーブメントのプロバイダフォールバック解決が正しく機能しない問題を修正 (#577)
- exceeded 時のワークツリーパスが正しく解決されない問題を修正 (#575)
- PR 作成時のエラー詳細が失われる問題を修正
- non-fast-forward プッシュ拒否時にヒントメッセージを表示するよう改善

### Internal

- `.takt/config.yaml` の非推奨キーをリネーム
- レガシーワークフローキー非推奨警告の重複排除 (#594)
- `AgentSetup` から `claudeAgent`/`claudeSkill` フィールドを削除（Headless プロバイダ移行に伴い不要に）
- 型定義ファイルから冗長な JSDoc コメントを整理
- review-fix-takt-default ワークフローの max_steps を増加

## [0.34.0] - 2026-04-03

### Added

- StructuredCaller インターフェースを導入: プロバイダーのネイティブ構造化出力（Structured Output）をサポートし、ステータス判定・条件評価・タスク分解でテキストパースに代わる JSON ベースの応答抽出が可能に (#570)
- Traced Config を導入: `traced-config` パッケージによる設定値の出所追跡（環境変数・設定ファイル・デフォルト値）をサポート (#558)
- 並列ステップに `concurrency` フィールドを追加: セマフォベースの同時実行数制御が可能に
- 無効なワークフロー YAML のロード時に警告を表示するようになった（スキーマバリデーションエラーの詳細を表示） (#540)
- 計画・レビュー用ファセットを強化: planner・requirements-reviewer・supervisor のペルソナ、plan・requirements-review・supervisor-validation の出力契約、coding ポリシーを新規追加
- `takt add` コマンドで `--workflow` オプションによるワークフロー指定に対応

### Changed

- **BREAKING:** ワークフロー YAML のキーをリネーム: `steps`、`initial_step`、`max_steps`、`workflow_config` を正とし、旧キー互換は削除。`workflow` / `step` 系の名称のみを受理 (#576)
- **BREAKING:** ビルトインワークフローのディレクトリを `builtins/{lang}/workflows/` に統一。設定キーも `workflow_categories`、`enable_builtin_workflows` を正とし、旧キー互換は削除 (#571, #561)
- **BREAKING:** CLI オプションを `-w, --workflow` に統一。旧ワークフロー指定オプションは削除 (#576)
- **BREAKING:** ワークフロー YAML の `instruction_template` フィールドを削除。`instruction` フィールドを使用すること (#539)
- `takt-default` ワークフローの `max_steps` を 50 に増加（`default` は 30 のまま）
- 設定キーのエイリアス解決時に旧キーと新キーの両方が異なる値で存在する場合はエラーを発生させるよう変更

### Fixed

- Claude SDK のエラーペイロードが正しく処理されない問題を修正
- ワークフロー用語の統一: CLI ヘルプ、エラーメッセージ、ドキュメントを `workflow` / `step` 用語に更新
- ワークツリーモードで PR の Issue 解決がプロジェクト cwd から正しく行われるよう修正
- Cursor Agent のヘッドレスワークツリー実行で `--trust` フラグが渡されるよう修正
- ワークツリー環境下で `runtime.prepare` が設定されている場合にセルフホスト GitLab の `glab` CLI 認証が失敗する問題を修正 (#563)
- ワークフロープロバイダー解決の統一化

### Internal

- Zod スキーマを `schemas.ts` から `schema-base.ts`・`workflow-schemas.ts`・`config-schemas.ts` に分割
- 環境変数オーバーライドを spec ベースの宣言的定義にリファクタリング
- レガシーの `step_provider`・`step_model` フィールドを削除
- TeamLeader のパートタイムアウト処理を簡素化
- `yaml` パッケージを v2.8.3 に更新
- ドキュメント（README、CLI リファレンス、設定ガイド等）をワークフロー用語に全面更新

## [0.33.2] - 2026-03-26

### Added

- 読み取り専用の監査ワークフローを追加: `audit-architecture`, `audit-architecture-frontend`, `audit-architecture-backend`, `audit-architecture-dual`, `audit-e2e`, `audit-unit`。コードを変更せずにモジュール境界やカバレッジギャップを列挙し、Issue 作成可能なレポートを出力

### Changed

- `security-audit` ワークフローを `audit-security` にリネーム（監査ワークフロー群の命名規則を統一）
- ビルトインワークフローカテゴリを再構成: 🧪 Testing カテゴリを廃止し、監査ワークフローを 🔍 Review カテゴリに統合
- `fill-unit`, `fill-e2e` ワークフローを削除（`audit-unit`, `audit-e2e` に置き換え）

### Fixed

- GitLab セルフホスト環境で worktree（共有クローン）実行時に MR 作成が失敗するバグを修正。Git プロバイダーの `cwd` がクローンパスに正しく伝播するよう変更 (#552)

### Internal

- Git プロバイダーの `cwd` 伝播に関するテストカバレッジを追加
- 設定ドキュメントから `verbose` オプションの記載を削除し、`logging.level` による設定方法に統一 (#543)

## [0.33.1] - 2026-03-24

### Changed

- ファイナルレビューとセキュリティレビューのガードレールを強化: supervisor のファセット、セキュリティナレッジ、レビューポリシー・インストラクションを拡充

### Fixed

- GitLab セルフホスト環境で `gitlab.com` の認証がない場合にタスク完了後の MR 作成が必ず失敗するバグを修正。`glab auth status` がリモートのホスト名を指定して認証チェックするよう変更 (#545)

### Internal

- GitLab プロバイダーのテストカバレッジを拡充（セルフホスト環境の認証チェック、ホスト名ベースの CLI ステータス検証）

## [0.33.0] - 2026-03-22

### Added

- GitLab VCS プロバイダーを追加: `glab` CLI を使った Issue 取得・マージリクエスト作成・レビューコメント取得に対応。git リモート URL からの自動検出をサポートし、`vcs_provider: gitlab` による明示的な設定も可能 (#512)
- インタラクティブモード用プロバイダー設定 (`taktProviders.assistant`) を追加: workflow実行とは独立したプロバイダー/モデルをインタラクティブモードに指定可能 (#483)

### Changed

- BREAKING: workflow YAML の MCP サーバー設定をデフォルト拒否に変更。使用するには `workflowMcpServers` でトランスポート別に明示的に許可が必要 (#524)
- BREAKING: workflow YAML の Arpeggio カスタムコード（カスタムデータソース、インライン JS、外部マージファイル）をデフォルト拒否に変更。使用するには `workflowArpeggio` で明示的に許可が必要 (#521)
- BREAKING: workflow YAML の runtime prepare カスタムスクリプトをデフォルト拒否に変更（ビルトインプリセットは常に許可）。使用するには `workflowRuntimePrepare.customScripts: true` が必要 (#520)
- BREAKING: sync conflict resolver の自動ツール承認をデフォルト拒否に変更。使用するには `syncConflictResolver.autoApproveTools: true` が必要 (#522)
- team leader のタスク分解における最大ターン数を 4 → 5 に引き上げ (#511)
- supervisor ファセットを強化: 要件カバレッジのエビデンスベース検証を追加
- ペルソナファセットからクロスエージェント参照を除去し、workflow横断での再利用性を向上

### Fixed

- パイプラインモードで auto-commit の push 失敗時に PR 作成が無診断で失敗する問題を修正 (#532)
- `.takt/.gitignore` のファセットパスが実際のディレクトリ構造と不一致だった問題を修正 (#535)
- レビューworkflowの gather モードでブランチ検出が不正確だった問題を修正（完全一致を要求するよう変更） (#523)
- レビューworkflowで reject findings のフォーマットが正しく処理されない問題を修正 (#528)
- パイプラインモードでタスクブランチが PR 作成前に push されず、PR 作成が失敗する問題を修正

### Internal

- GitLab プロバイダーのテストカバレッジを追加（issue, pr, provider, utils）
- VCS プロバイダーの自動検出・ファクトリ・フォーマットのテストカバレッジを追加
- MCP サーバー・Arpeggio・runtime prepare・conflict resolver のデフォルト拒否に関するテストカバレッジを追加
- workflowローダーのテストカバレッジを大幅に拡充
- プロジェクト設定・グローバル設定のテストカバレッジを追加
- MCP サーバーヘルパー、ポリシー正規化、conflict resolver ヘルパーのリファクタリング
- ドキュメント更新（レビューworkflow名の修正、ビルトインカタログ更新）
- ビルド/lint/テスト品質ゲートの追加と E2E テスト環境の CLAUDECODE 環境変数分離
- テスト契約チェックのビルトインファセット強化（review-test, write-tests-first, testing-review）
- タスク auto-PR の E2E テストを追加

## [0.32.2] - 2026-03-17

### Added

- 到達経路（Reachability）ファセットを追加: 新しい画面・機能を追加する際に、ルーティング・メニュー・ボタン等のエントリーポイントを同時に整備することを計画・実装・レビューの各段階で検証
- 再取得ループ防止ファセットを追加: `useEffect` の依存配列に不安定な Context/Provider 関数参照を含めることで起きる無限ループを検出・防止するナレッジとポリシー
- UIライブラリ統合ファセットを追加: サードパーティ UI コンポーネント（データグリッド、日付ピッカー等）導入時のバージョン互換性・実マウント検証のナレッジとポリシー
- React ナレッジファセット (`react.md`) を新規追加: Effects の再実行制御、Context/Provider の値安定性に関する判断基準テーブル付き
- デザイン計画ポリシー (`design-planning.md`) を新規追加: デザインリファレンスが存在する場合の要素インベントリ・スコープ決定の基準
- フロントエンド専用プランフォーマット (`plan-frontend.md`) を新規追加: デザイン要素の Keep/Change 判定テーブルを含むプラン出力契約

### Changed

- フロントエンド系workflow（`frontend`, `frontend-mini`, `dual`, `dual-mini`, `dual-cqrs`, `dual-cqrs-mini`）の plan stepに `design-planning` ポリシーと `react` ナレッジを統合
- フロントエンド系workflowのプランフォーマットを `plan` から `plan-frontend` に変更
- `frontend` workflowの全step（テスト、レビュー、修正等）に `react` ナレッジを追加

### Internal

- `@openai/codex-sdk` を 0.112.0 → 0.114.0 に更新
- team leader worker pool の E2E テストを安定化

## [0.32.1] - 2026-03-14

### Fixed

- `--pr` 経由のタスクで `autoPr` が無効になっていたため origin push がスキップされる問題を修正
- PR レビューコメントの取得が `gh pr view` の `reviews.comments` に依存していたため、インラインコメントを取りこぼす問題を修正。GitHub REST API によるページネーション取得に変更 (#489)
- config のパス指定で `~` チルダ展開が効かない問題を修正（`worktree_dir`、`*_cli_path`、`analytics.events_path` 等） (#496)
- auto-commit 時に git hooks/filter がそのまま実行され、TAKT 管理下のコミットが意図しない hooks の影響を受ける問題を修正。デフォルトで無効化し、`allow_git_hooks` / `allow_git_filters` で opt-in に変更 (#503)
- インタラクティブモードで初回入力時に不要な AI 呼び出しが発生していた問題を修正 (#504)
- Cursor provider でプロンプト文字列が CLI オプションとして解釈される可能性がある問題を修正（`--` セパレータを追加） (#500)
- snapshot ファイル名にstep名がそのまま使われ、パストラバーサルが可能だった問題を修正 (#498)
- `provider_options` の優先順位で、環境変数・プロジェクト設定がstep定義より低くなっていた問題を修正（セキュリティ設定がstepで上書きされないよう変更） (#497)
- worktree パスの再利用時に、クローンベースディレクトリ外のパスが受け入れられる問題を修正 (#502)
- terraform workflowから不要な強制 full パーミッションを削除 (#507)

### Internal

- テスト系workflow・ファセットの全面整備（e2e-test → audit-e2e、unit-test → audit-unit にリネーム、ナレッジ・ポリシー追加）
- デザイン忠実度ポリシーの追加とフロントエンド系workflowへの統合
- audit-security workflowの追加
- ファセットデプロイメントのリファクタリング（templates ディレクトリの廃止、facets ディレクトリへの統合） (#505)
- `isPathInside` ユーティリティを追加し、クローン削除・worktree 再利用のパス検証を強化
- ループモニターの閾値調整とレビューポリシーの改善

## [0.32.0] - 2026-03-09

### Added

- `takt export-codex` コマンド: workflow/ファセットを Codex スキルとしてエクスポート (`~/.agents/skills/takt/`) (#475)
- `frontend` / `backend` / `backend-cqrs` workflowにテストファースト（`write_tests`）stepを追加し、レビューを2段階化（Stage 1: 構造・実装品質 → Stage 2: 安全性・品質保証）
- セキュリティナレッジにログ・マスキングセクションを追加（パスワード露出、`toString()` によるフィールド漏洩の検出基準）
- CQRS+ES ナレッジにマスタデータと CRUD の使い分けセクションを追加（6つの判断基準テーブル付き）
- `/ci` コメントで PR の CI を手動トリガーするワークフローを追加
- devcontainer で worktree クローン先の親ディレクトリが書き込み不可の場合に `.takt/worktrees/` へフォールバック
- インタラクティブモードのアシスタントが設計判断を勝手にしないようポリシーを追加

### Changed

- BREAKING: workflow YAML の `instruction_template` フィールドを削除し、`instruction` に統一 (#476)
- レビュー系workflowの命名規則を `review-{variant}` / `review-fix-{variant}` に統一
- タスク分解の REJECT 基準をナレッジからポリシーに分離
- faceted-prompting を npm パッケージ (`@anthropic-ai/faceted-prompting`) に移行し、内蔵コードを削除

### Fixed

- `takt run` の Slack 通知が当該 run で実行したタスクのみを送信するよう修正（従来は全タスクを通知していた）
- `ProviderPermissionProfilesSchema` に `copilot` が欠落していた問題を修正 (#487)
- PR fix フローで既存ブランチ存在時に `baseBranch` 検証をスキップするよう修正
- `review-fix-takt-default` の fix 後フローを `takt-default` と統一
- `write-tests-first` インストラクションからビルド検証手順を削除
- `cc-resolve` ワークフローに `actions: write` パーミッションを追加

### Internal

- SDK 依存パッケージを最新化
- `deploySkill` のコア処理を `deploySkillInternal` に抽出し、`deploySkillCodex` と共有
- clone ブランチ解決をリモートブランチ対応に拡張（`localBranchExists` / `remoteBranchExists` に分離）
- README の起動フローを整理し「タスクにつむ」を通常フローとして記載

## [0.31.0] - 2026-03-06

### Changed

- `dual` workflowを大幅強化: テストファースト（`write_tests`）step追加、`implement` を team_leader 化（FE/BE 分割）、レビューを2段階化（`reviewers_1`: arch/frontend/testing → `reviewers_2`: security/qa/requirements）
- `takt-default-team-leader` workflowを `takt-default` に統合し削除。`takt-default` の `implement` を team_leader 化
- `quality_gates` のペルソナ単位オーバーライドをサポート: `workflow_overrides.personas.<name>.qualityGates` で特定ペルソナのstepに品質ゲートを追加可能に (#472)
- Status 型を `done` / `blocked` / `error` の3値に整理し、ステータスハンドリングを厳格化。`blocked` / `error` 時は即座に ABORT するよう変更 (#477)

### Fixed

- `git check-ref-format` コマンドから不要な `--` を削除し、ブランチ名の検証が正しく動作するよう修正 (#481)
- `log_level` → `logging.level` の設定キー不整合を修正（E2E テスト全滅の原因）
- Phase 3 ステータス判定が失敗した際に Phase 1 のルール評価にフォールバックするよう修正（従来はエラーで中断していた） (#474)
- Parallel stepの Phase 3 判定失敗時も同様にフォールバック対応 (#474)
- タスクリトライ・追加指示時のワークフロー名取得元を `runInfo?.workflow` から `task.data?.workflow` に変更（worktree 内で `runInfo` が常に null になる問題を修正）

### Internal

- config 3層モデルの整理: `PersistedGlobalConfig` → `GlobalConfig` にリネーム、マイグレーション用フォールバック処理を削除、`persisted-global-config.ts` → `config-types.ts` にリネーム
- supervisor ペルソナからインラインの知識・ポリシーをファセットファイルに分離
- team leader の分解品質を改善するナレッジ（`task-decomposition.md`）とインストラクション（`dual-team-leader-implement.md`）を追加
- `~/.takt/config.yaml` テンプレートに不足していた設定項目を追加
- Provider Sandbox & Permission ガイドのドキュメントを拡充

## [0.30.0] - 2026-03-05

### Added

- トレースレポートの自動生成: workflow 実行完了時に step の遷移・フェーズ・ルール評価結果を Markdown レポートとして `.takt/runs/` に自動出力。`logging.trace: true` で全文モード、デフォルトは redacted モード (#467)
- 使用量イベントログ: プロバイダー呼び出しごとのトークン使用量を NDJSON 形式で記録。`logging.usage_events: true` で有効化 (#470)
- タスクリトライ時のworkflow再利用確認: `takt list` からリトライ・追加指示する際に、前回と同じworkflowを使うか選び直すかを選択可能に (#468)

### Changed

- BREAKING: `takt switch` コマンドを削除。workflow選択はインタラクティブモード起動時（`takt`）に毎回行う方式に変更 (#465)
- Claude プロバイダーの `allowed_tools` をビルトインworkflowの YAML 定義からエグゼキューター側に移動し、workflow YAML の簡素化と保守性を向上 (#469)
- 設定構造をリファクタリング: `globalConfig.ts` を `globalConfigCore.ts`・`globalConfigAccessors.ts`・`globalConfigResolvers.ts`・`globalConfigSerializer.ts` に分割。プロジェクトローカル設定（`.takt/config.yaml`）のフォールバック優先度を明確化 (#460)
- observability モジュールを `core/logging/` に再編成: `providerEventLogger` と `usageEventLogger` を統一的なログ基盤として整理 (#466)
- レビュアー全体に `coder-decisions.md` の参照を追加し、コーダーの設計判断を考慮したレビューで誤検知を抑制
- レビュー↔修正ループの収束を支援: レポート履歴の参照、ループモニター、修正方針のガイドラインを整備

### Fixed

- runtime 環境の `XDG_CONFIG_HOME` 上書きで `gh` CLI の認証が失敗する問題を修正。`GH_CONFIG_DIR` を元の設定から保持するよう変更
- `.takt/config.yaml` に `runtime.prepare` を記述するとエラーになる問題を修正（プロジェクトレベルでの runtime 設定を許可） (#464)
- インタラクティブモードで iteration limit 到達時にプロンプトが表示されず、exceeded 状態が保持されない問題を修正
- PR 作成失敗時のタスクステータスを `failed` から `pr_failed` に分離し、実行成功だが PR 作成のみ失敗したケースを区別可能に
- リトライ時にタスクにworkflow情報が引き継がれるよう修正
- `.gitignore` の `.takt/` ディレクトリ ignore を削除し `.takt/.gitignore` に委譲（プロジェクト設定ファイルの追跡を可能に）
- CI: push トリガーから `takt/**` を削除し二重実行を防止
- `cc-resolve` ワークフローで push 後に CI を自動トリガーするよう修正

### Internal

- deprecated config マイグレーション処理を削除
- プロジェクトローカル設定の優先度に関する統合テストを追加
- テストヘルパーとテストセットアップの改善

## [0.29.0] - 2026-03-04

### Added

- レビュー＋修正ループworkflow群を追加: `review-fix`（多角レビュー）、`frontend-review-fix`、`backend-review-fix`、`dual-review-fix`、`dual-cqrs-review-fix`、`backend-cqrs-review-fix` および対応するレビュー専用workflow群を追加。コードレビューと自動修正を反復するワークフロー
- `takt-default-review-fix` workflowを追加: TAKT 自己開発向けのレビュー＋修正ループワークフロー
- `quality_gates` のグローバル/プロジェクトレベルオーバーライドをサポート: `~/.takt/config.yaml` および `.takt/config.yaml` の `workflow_overrides.quality_gates` でビルトインworkflowの品質ゲートを上書き可能に (#384)
- タスクの `base_branch` 設定: `takt add` 時に現在のブランチを base_branch として記録し、タスク実行時にそのブランチから分岐するよう設定可能に (#455)
- プロバイダー設定の統一: `.takt/config.yaml` で `provider` ブロックに `type`/`model`/プロバイダー固有オプション（`network_access` 等）をまとめて記述可能に (#457)
- ワーカープール超過時のリキュー: タスク実行がワーカー上限を超えた場合、タスクを自動的に再キューイングするよう対応 (#366)
- `--pr` インタラクティブモードで `create_issue` アクションを除外し、`save_task` 時に PR のブランチ名を `base_branch` として自動設定
- team_leader の `decomposeTask`/`requestMoreParts`/Phase 3 ステータス判定のプロバイダーイベントをロギング: `provider-events.jsonl` に記録されるようになり、デバッグ・分析が可能に

### Fixed

- `export-cc` で `facets/` のサブディレクトリ構造（`personas/`、`policies/` 等）が出力先に再現されなかった問題を修正
- `cc-resolve` コマンドがコンフリクト解決後にマージコミットを生成するよう修正
- グローバル設定 (`~/.takt/config.yaml`) の `workflow` フィールドがワークフロー解決チェーンで無視されるバグを修正 (#458)
- Codex プロバイダーでプロバイダー優先のパーミッションモード解決が機能しない問題を修正
- レビューコメントがない PR で `--pr` を使用した際にエラーになる問題を修正
- `--auto-pr`/`--draft` オプションをパイプラインモード専用に制限（インタラクティブモードでの誤用を防止）
- team_leader のストリーミングでバウンダリの先行フラッシュによる断片化を修正
- team_leader のエラーメッセージが空文字列になるバグを修正
- `decomposeTask`/`requestMoreParts` の `maxTurns` を 2 から 4 に増加（複雑なタスク分解でタイムアウトしていた問題を緩和）
- Copilot プロバイダーのクライアント実装のバグを修正

### Internal

- E2E プロバイダー別テストをコンフィグレベル（`vitest.config.e2e.provider.ts`）で振り分けるよう変更。テストファイル内の `skip` ロジックを廃止し、JSON レポート出力を追加
- 共有ノーマライザを `configNormalizers.ts` に抽出してプロバイダー設定解析を整理
- `agent-usecases`/`schema-loader` を移動し `workflowExecution` の責務を分割
- `check:release` で全プロバイダー（claude/codex/opencode）の E2E を実行するよう変更
- CI: PR と push の重複実行を concurrency グループで抑制
- CI: feature ブランチへの push と手動実行に対応

## [0.28.1] - 2026-03-02

### Changed

- BREAKING: `expert` / `expert-mini` / `expert-cqrs` / `expert-cqrs-mini` workflowを `dual` / `dual-mini` / `dual-cqrs` / `dual-cqrs-mini` にリネーム。カスタマイズしている場合はworkflow名の更新が必要
- `default-mini` / `default-test-first-mini` workflowを `default` に統合。`default` workflowが「テスト優先モード」を内包するよう拡張
- `coding-pitfalls` ナレッジの主要項目を `coding` ポリシーに移動し、ポリシーとして実際に適用されるよう強化
- `implement` / `plan` インストラクションにセルフチェック・コーダー指針を追加

### Removed

- `passthrough` workflowを削除
- `structural-reform` workflowを削除

### Internal

- `expert-supervisor` ペルソナを `dual-supervisor` にリネーム
- ビルトインカタログに不足していた `terraform`、`takt-default` 系、`deep-research` を追加
- カテゴリ設定に `deep-research` を追加
- 全ドキュメントに `copilot` プロバイダーの説明を追加し、Claude Code 寄りの記述をプロバイダー中立に修正

## [0.28.0] - 2026-03-02

### Added

- GitHub Copilot CLI プロバイダーを追加: `copilot` プロバイダーとして GitHub Copilot CLI を利用可能に。セッション継続、パーミッション制御（readonly/edit/full）に対応。`copilotCliPath` / `TAKT_COPILOT_CLI_PATH` で CLI パスを指定、`copilotGithubToken` / `TAKT_COPILOT_GITHUB_TOKEN` で認証トークンを設定 (#425)
- `--pr` オプションを追加: PR のレビューコメントを取得してタスクとして実行。パイプラインモードとインタラクティブモードの両方で利用可能 (#421)
- `takt add --pr N` で PR のレビューコメントをタスクとして追加可能に。PR のブランチ名で worktree を自動作成し、レビュー指摘の修正タスクとしてキューイング (#426)
- `takt list` に「Pull from remote」アクションを追加: リモートの変更を worktree に取り込み、再プッシュ可能に (#395)
- プロジェクト単位の CLI パス設定: `.takt/config.yaml` で `claudeCliPath` / `cursorCliPath` / `codexCliPath` / `copilotCliPath` をプロジェクトごとに設定可能に (#413)
- インタラクティブモードのスラッシュコマンドを行末でも認識可能に（例: `タスクの内容 /go`）(#406)
- takt-default / takt-default-team-leader ビルトインworkflowを追加（TAKT 自己開発用のワークフロー定義）
- TAKT ナレッジファセット（`takt.md`）を追加: TAKT のアーキテクチャとコード規約を体系化
- ai-antipattern ポリシーに冗長な条件分岐パターン検出を追加: 同一関数を if/else で呼び分けるコードを検出し、三項演算子やスプレッド構文での統一を促す

### Fixed

- 不正な `tasks.yaml` を検出した場合、ファイルを削除せず保持してエラーメッセージで停止するよう修正 (#418)
- shallow clone リポジトリで worktree 作成が失敗する問題を修正: `--reference` 付きクローンが失敗した場合に通常クローンへフォールバック (#376, #409)
- グローバル/プロジェクト設定の `model` がモデルログに反映されない不具合を修正 (#417)
- fork PR レビュー時に `GH_REPO` を設定して正しいリポジトリの issue を参照するよう修正
- takt-review ワークフローの PR コメント投稿ステップにも `GH_REPO` を設定

### Internal

- `resolveConfigValue` の不要な `defaultValue` 引数を削除し、設定解決ロジックを簡素化 (#391)
- PRコメント `/resolve` でコンフリクト解決・レビュー指摘修正を行う GitHub Actions ワークフロー（cc-resolve）を追加
- takt-review ワークフローを `pull_request_target` に変更し、fork PR でもシークレットを利用可能に
- CI に `ready_for_review` / `reopened` トリガーを追加
- CONTRIBUTING にレビューモードの例を追加、日本語版（`CONTRIBUTING.ja.md`）を追加

## [0.28.0-alpha.1] - 2026-02-28

### Added

- GitHub Copilot CLI プロバイダーを追加: `copilot` プロバイダーとして GitHub Copilot CLI を利用可能に。セッション継続、パーミッション制御（readonly/edit/full）に対応。`copilotCliPath` / `TAKT_COPILOT_CLI_PATH` で CLI パスを指定、`copilotGithubToken` / `TAKT_COPILOT_GITHUB_TOKEN` で認証トークンを設定 (#425)
- `--pr` オプションを追加: PR のレビューコメントを取得してタスクとして実行。パイプラインモードとインタラクティブモードの両方で利用可能 (#421)
- `takt add --pr N` で PR のレビューコメントをタスクとして追加可能に。PR のブランチ名で worktree を自動作成し、レビュー指摘の修正タスクとしてキューイング (#426)
- `takt list` に「Pull from remote」アクションを追加: リモートの変更を worktree に取り込み、再プッシュ可能に (#395)
- プロジェクト単位の CLI パス設定: `.takt/config.yaml` で `claudeCliPath` / `cursorCliPath` / `codexCliPath` / `copilotCliPath` をプロジェクトごとに設定可能に (#413)
- インタラクティブモードのスラッシュコマンドを行末でも認識可能に（例: `タスクの内容 /go`）(#406)
- takt-default / takt-default-team-leader ビルトインworkflowを追加（TAKT 自己開発用のワークフロー定義）
- TAKT ナレッジファセット（`takt.md`）を追加: TAKT のアーキテクチャとコード規約を体系化
- ai-antipattern ポリシーに冗長な条件分岐パターン検出を追加: 同一関数を if/else で呼び分けるコードを検出し、三項演算子やスプレッド構文での統一を促す

### Fixed

- 不正な `tasks.yaml` を検出した場合、ファイルを削除せず保持してエラーメッセージで停止するよう修正 (#418)
- shallow clone リポジトリで worktree 作成が失敗する問題を修正: `--reference` 付きクローンが失敗した場合に通常クローンへフォールバック (#376, #409)
- グローバル/プロジェクト設定の `model` がモデルログに反映されない不具合を修正 (#417)
- fork PR レビュー時に `GH_REPO` を設定して正しいリポジトリの issue を参照するよう修正
- takt-review ワークフローの PR コメント投稿ステップにも `GH_REPO` を設定

### Internal

- `resolveConfigValue` の不要な `defaultValue` 引数を削除し、設定解決ロジックを簡素化 (#391)
- PRコメント `/resolve` でコンフリクト解決・レビュー指摘修正を行う GitHub Actions ワークフロー（cc-resolve）を追加
- takt-review ワークフローを `pull_request_target` に変更し、fork PR でもシークレットを利用可能に
- CI に `ready_for_review` / `reopened` トリガーを追加
- CONTRIBUTING にレビューモードの例を追加、日本語版（`CONTRIBUTING.ja.md`）を追加

## [0.27.0] - 2026-02-28

### Added

- Cursor Agent CLI プロバイダーを追加: `cursor-agent` CLI を介して Cursor を AI プロバイダーとして利用可能に。API キー（`TAKT_CURSOR_API_KEY` / `cursor_api_key`）または `cursor-agent login` セッションで認証、JSON 出力解析、セッション継続（`--resume`）、モデル指定（`--model`）、パーミッション制御（`full` → `--force`）に対応 (#403)
- Cursor プロバイダーの E2E テスト設定を追加（`vitest.config.e2e.cursor.ts`、`npm run test:e2e:cursor`）

### Fixed

- Phase 1 が error または blocked を返した場合に Phase 2（レポート出力）をスキップするよう修正。Phase 1 失敗時に不要なレポート生成が実行される問題を解消
- Codex 互換性のため、runtime prepare で Gradle デーモンを無効化するよう修正

### Internal

- エージェント/カスタムペルソナのドキュメントを整合

## [0.26.0] - 2026-02-27

### Added

- TeamLeader に refill threshold と動的パート追加を導入: 実行中のパートが `refill_threshold` 以下になると、リーダーが完了済みパートの結果を評価して追加パートを動的に生成。`max_parts` は同時並行数、`refill_threshold` で追加計画のタイミングを制御（最大合計 20 パートまで）
- deep-research workflowの dig stepに `team_leader` 設定を追加し、リサーチの並列実行が可能に
- TeamLeader が Phase 2（レポート出力）/ Phase 3（ステータス判定）を通常stepと同様にサポート（`applyPostExecutionPhases` の共通化）
- ParallelLogger が動的なサブstep追加に対応（`addSubStep`）し、TeamLeader の動的パート追加時にもストリーミング出力を表示
- `LineTimeSliceBuffer` を導入し、並列ストリーミング出力のバッファリングを時間スライスベースで最適化
- プロジェクト設定（`.takt/config.yaml`）で `model` 指定をサポート

### Changed

- BREAKING: カスタムエージェント定義（`~/.takt/personas/*.md`）の `provider` / `model` を解釈しない方針とし、エージェントのプロバイダー・モデルはworkflow側の解決ロジック（CLI → persona_providers → ステップ → ローカル → グローバル）に統一 (#390)
- エージェントの provider/model 解決ロジックを `resolveAgentProviderModel` に一元化し、ステップ解決と同じ優先順位チェーンを使用するよう変更 (#386)
- `step:start` イベントが `providerInfo` を含むよう変更し、表示側でのプロバイダー再解決を不要に (#390)
- `takt list` の「Sync with root」を「Merge from root」にリネーム (#394)
- インタラクティブモードの要約 AI がセッション非継承で実行されるよう修正し、会話コンテキストの汚染を防止 (#368)
- interactive policy のガイドラインを改善: ユーザーが「自分で調べて」と指示した場合と、workflowへの指示作成を区別するルールを明確化

### Fixed

- default / default-test-first-mini ワークフローの `write_tests` ステップで、テスト対象が未実装の場合にスキップして implement へ進むルールを追加（従来は ABORT になっていた）(#396)
- `takt add` の GitHub Issue タイトル抽出を改善: Markdown 見出し（h1-h3）を優先的にタイトルとして使用するよう変更（従来は先頭行がそのまま使われていた）(#368)
- quiet モードの要約 AI がセッションを引き継がない問題を修正 (#368)
- `repertoire add` の `gh api` 呼び出しにバッファサイズ上限（100MB）を設定し、大きなリポジトリでのバッファオーバーフローを防止
- E2E テストで `gh` ユーザー検索が無効な場合にローカルリポジトリへフォールバックするよう修正

### Internal

- TeamLeaderRunner をリファクタリング: 実行ロジック（`team-leader-execution.ts`）、集約（`team-leader-aggregation.ts`）、共通ユーティリティ（`team-leader-common.ts`）、ストリーミング（`team-leader-streaming.ts`）に分離
- `more-parts.json` スキーマと `loadMorePartsSchema` ローダーを追加
- AGENTS.md を更新（プロジェクト構成とガイドラインの改訂）
- テスト拡充: provider/model 解決マトリクス、TeamLeader refill threshold / worker pool / aggregation / execution、OptionsBuilder、stream-buffer、conversationLoop resume、quietMode session、createIssueFromTask、schema-loader

## [0.25.0] - 2026-02-26

### Added

- Terraform/AWS workflow: IaC 開発用の完全なworkflowとファセット一式を追加。plan → implement → 並列3レビュー（architect/QA/security）→ supervise → complete の15step構成（EN/JA）
- GitProvider 抽象化: Git/GitHub 操作を `GitProvider` インターフェースに統一し、将来の複数 Git プロバイダー対応の基盤を構築 (#375)
- プロジェクト設定で submodule の自動取得をサポート: `submodules: all` または `submodules: [path1, path2]` で指定可能に (#387)
- `takt add` で GitHub Issue 作成時にラベルをインタラクティブに選択可能に (#377, #111)
- deep-research workflowにデータ保存・レポート出力機能を追加（dig/analyze stepに Write・Bash ツール許可、supervise に research-report 出力契約）
- GitHub Discussions・Discord・X への一斉アナウンス GitHub Actions ワークフローを追加

### Changed

- default workflowをテスト先行開発構成に変更: plan の後に `write_tests` stepを追加し、テストを先に書いてから実装する流れに。並列レビューに testing-review を追加（3→4 レビュアー）。レポートファイル名をセマンティック命名に統一（`00-plan.md` → `plan.md` 等）
- sync with root をworkflowエンジン経由からプロバイダー抽象化を利用した単発エージェント呼び出しに簡素化。コンフリクト解決プロンプトをテンプレートファイル化（EN/JA 分離）

### Fixed

- lineEditor でサロゲートペア（絵文字等）のカーソル位置がずれる問題を修正。Ctrl+J による改行挿入を追加
- `--task` オプションでの直接実行時に tasks.yaml へ不要な記録がされる問題を修正
- `--task` でワークツリー作成時は tasks.yaml に記録するよう修正（`takt list` でのブランチ管理に必要）
- プロバイダー解決: 暗黙の `claude` フォールバックを廃止し、プロバイダーを解決できない場合は Fail Fast で終了するよう修正 (#386)
- プロバイダー解決: 表示用と実行用の provider/model 解決を `step:start` イベントの providerInfo に一元化し、表示されるプロバイダーと実行プロバイダーの一致を構造的に保証 (#390)
- E2E テスト config-priority の不安定性を修正 (#388)

### Internal

- GitProvider 抽象化に伴うテスト追加（github-provider, taskGit）と既存テストのインポート更新
- CLAUDE.md 更新

## [0.24.0] - 2026-02-24

### Added

- AskUserQuestion 対応: AI エージェントが実行中に対話的にユーザーへ質問可能に。単一選択・複数選択・自由入力の TTY UI を提供。workflow実行中は自動的に拒否しエージェントの自律性を維持 (#161, #369)
- `review` ビルトインworkflowを3モード自動判定に拡張: PR 番号・ブランチ名・フリーテキストから自動でレビューモード（PR/ブランチ/作業中差分）を判定し、5並列レビュー（arch/security/qa/testing/requirements）を実行
- `testing-reviewer` と `requirements-reviewer` ビルトインペルソナを追加（専門レビュー観点）
- `testing` ポリシー: インテグレーションテスト必要条件を追加（3+モジュールのデータフロー、ワークフローへの状態マージ、コールチェーンを通じたオプション伝搬）
- `gather-review` インストラクションと `review-gather` 出力契約を追加（review workflowの gather step用）
- `requirements-review` インストラクションと出力契約を追加（要件レビュー用）
- `testing-review` 出力契約を追加（テストレビュー用）
- SDK オプションに `settingSources: ['project']` を追加: CLAUDE.md の読み込みを Claude SDK に委譲し、プロジェクトレベル設定を適切に解決

### Changed

- **BREAKING:** `review-only` workflowを `review` にリネーム、`review-fix-minimal` workflowを削除 — これらのworkflow名を参照しているユーザーは `review` に更新が必要
- `write-tests-first` インストラクションに具体的なインテグレーションテスト判断基準を追加（「適宜 E2E テストを作成」から置き換え）

### Fixed

- planner ペルソナ: バグ修正の波及確認ルール（関連ファイルで同一パターンを grep）と、確認事項の判断保留禁止を追加

### Internal

- ドキュメント整備: 音楽メタファーの由来説明追加、カタログ漏れ・リンク切れ・孤立ドキュメント・イベント名・API Key 参照・eject 説明を修正、YAML 例から不要な personas セクションマップを削除、レガシー用語をコードベースの実態に合わせて修正
- 新規テストスイート: `StreamDisplay`、`ask-user-question-handler`、`workflowExecution-ask-user-question`、`review-workflow`、`opencode-client-cleanup`
- レガシー `review-only-workflow` テストと session モジュールの `loadProjectContext` を削除（CLAUDE.md 読み込みは SDK に委譲）

## [0.23.0] - 2026-02-23

### Added

- `default-test-first-mini` ビルトインworkflowを追加（テストファースト開発ワークフロー）
- `auto_fetch` グローバル設定: クローン作成前にリモートを fetch してクローンを最新に保つオプション（`default: false`）
- `base_branch` 設定（グローバル/プロジェクト）: クローン作成のベースブランチを指定（デフォルトはリモートのデフォルトブランチ）
- `model` プロジェクト設定: プロジェクトレベルでモデルを上書き（`.takt/config.yaml`）
- `concurrency` プロジェクト設定: プロジェクトごとに `takt run` の並列タスク数を設定
- パイプラインモードで `--create-worktree` をサポート（worktree ベースの実行）
- `skipTaskList` オプション: 対話モードの「実行する」アクションで `tasks.yaml` への追加をスキップ
- `takt list` でタスク名の横に GitHub Issue 番号を表示
- 失敗タスクのリトライ時、workflow選択の前に前回使用したworkflowの再利用を提案
- パイプラインモードの Slack 通知: タスク詳細、実行時間、ブランチ、PR URL を含むサマリを送信
- CI ワークフロー: PR に対して lint、test、e2e:mock チェックを自動実行 (#364)

### Changed

- Provider/Model 解決を `resolveProviderModelCandidates()` に一元化 — `AgentRunner` と `resolveStepProviderModel` で同一の解決関数を使用
- パイプライン実行を薄いオーケストレーター (`execute.ts`) + ステップ実装 (`steps.ts`) にリファクタリング
- クローンディレクトリのデフォルト名を `takt-worktree`（単数）から `takt-worktrees`（複数）に変更（レガシーディレクトリの自動マイグレーション付き）
- PR タイトルに Issue 番号プレフィックスを追加（例: `[#6] Fix the bug`）
- タスクステータスが PR 作成失敗を反映するよう改善 — 以前はworkflow実行の成功のみを追跡
- `auto-tag.yml` がマージコミットではなく PR head SHA にタグを付与（ホットフィックスの正しいコード publish のため）
- セッションリーダーが `sessions-index.json` が欠損・不正な場合に JSONL ファイルスキャンにフォールバック
- `ProjectLocalConfig` 型をキャメルケースに正規化（`auto_pr`→`autoPr`、`draft_pr`→`draftPr`）— YAML のスネークケースは維持
- `getLocalLayerValue` を switch-case から動的プロパティルックアップに簡素化

### Fixed

- `repertoire add` のパイプ stdin: readline がバッファ済み行を破棄するため複数の `confirm()` 呼び出しが失敗する問題を修正 (#334)
- `AgentRunner` での step provider 上書き優先順位: step provider がグローバル設定に誤って上書きされていた問題を修正
- プロジェクトレベルの `model` 設定が無視されていた問題 — `getLocalLayerValue` に `model` ケースが欠落していた
- PR 作成失敗がタスク失敗として適切に伝搬されるよう修正（エラーメッセージ付き）(#345)
- Claude セッション resume 候補が `sessions-index.json` 利用不可時に JSONL ファイルスキャンにフォールバック

### Internal

- CI: PR チェック用に lint、test、e2e:mock を追加（`ci.yml`）
- repertoire の e2e テストカバレッジを拡充 (#364)
- 新規テストスイート: clone、config、postExecution、session-reader、selectAndExecute-skipTaskList、taskStatusLabel、pipelineExecution
- リファクタリング: プロジェクト設定のケース正規化 (#358)、クローンマネージャー (#359)、パイプラインステップ抽出、confirm パイプリーダーシングルトン、provider 解決 (#362)

## [0.22.0] - 2026-02-22

### Added

- **Repertoire パッケージシステム** (`takt repertoire add/remove/list`): GitHub から外部 TAKT パッケージをインポート・管理 — `takt repertoire add github:{owner}/{repo}@{ref}` でパッケージを `~/.takt/repertoire/` にダウンロード。アトミックなインストール、バージョン互換チェック、ロックファイル生成、確認前のパッケージ内容サマリ表示に対応
- **@scope 参照**: workflow YAML のファセット参照で `@{owner}/{repo}/{facet-name}` 構文をサポート — インストール済み repertoire パッケージのファセットを直接参照可能（例: `persona: @nrslib/takt-fullstack/expert-coder`）
- **4層ファセット解決**: 3層（project → user → builtin）から4層（package-local → project → user → builtin）に拡張 — repertoire パッケージのworkflowは自パッケージ内のファセットを最優先で解決
- **workflow選択に repertoire カテゴリ追加**: インストール済みの repertoire パッケージがworkflow選択 UI の「repertoire」カテゴリにサブカテゴリとして自動表示
- **implement/fix インストラクションにビルドゲート追加**: `implement` と `fix` のビルトインインストラクションでテスト実行前にビルド（型チェック）の実行を必須化
- **Repertoire パッケージドキュメント追加**: repertoire パッケージシステムの包括的なドキュメントを追加（[en](./repertoire.md), [ja](./repertoire.ja.md)）

### Changed

- **BREAKING: ファセットディレクトリ構造の変更**: 全レイヤーでファセットディレクトリが `facets/` サブディレクトリ配下に移動 — `builtins/{lang}/{facetType}/` → `builtins/{lang}/facets/{facetType}/`、`~/.takt/{facetType}/` → `~/.takt/facets/{facetType}/`、`.takt/{facetType}/` → `.takt/facets/{facetType}/`。マイグレーション: カスタムファセットファイルを新しい `facets/` サブディレクトリに移動してください
- 契約文字列のハードコード散在防止ルールをコーディングポリシーとアーキテクチャレビューインストラクションに追加

### Fixed

- オーバーライドworkflowの検証が repertoire スコープを含むリゾルバー経由で実行されるよう修正
- `takt export-cc` が新しい `builtins/{lang}/facets/` ディレクトリ構造からファセットを読み込むよう修正
- `confirm()` プロンプトがパイプ経由の stdin に対応（例: `echo "y" | takt repertoire add ...`）
- イテレーション入力待ち中の `poll_tick` デバッグログ連続出力を抑制
- workflowリゾルバーの `stat()` 呼び出しでアクセス不能エントリ時にクラッシュせずエラーハンドリング

### Internal

- Repertoire テストスイート: atomic-update, repertoire-paths, file-filter, github-ref-resolver, github-spec, list, lock-file, pack-summary, package-facet-resolution, remove-reference-check, remove, takt-repertoire-config, tar-parser, takt-repertoire-schema
- `src/faceted-prompting/scope.ts` を追加（@scope 参照のパース・バリデーション・解決）
- faceted-prompting モジュールの scope-ref テストを追加
- `inputWait.ts` を追加（ワーカープールのログノイズ抑制のための入力待ち状態共有）
- workflow-selection-branches および repertoire の e2e テストを追加

## [0.21.0] - 2026-02-20

### Added

- **Slack タスク通知の拡張**: Slack Webhook 通知にリッチなタスクコンテキストとフォーマットを追加 (#316)
- **`takt list --delete-all` オプション**: タスクリストから全タスクを一括削除 (#322)
- **`--draft-pr` オプション**: `--draft-pr` フラグでドラフト PR を作成可能に (#323)
- **`--sync-with-root` オプション**: ワークツリーブランチをルートリポジトリの変更と同期 (#325)
- **ペルソナプロバイダーごとのモデル指定**: persona-provider レベルでモデルオーバーライドを指定可能に (#324)
- **Analytics のプロジェクト設定・環境変数オーバーライド対応**: Analytics 設定をプロジェクトごとに設定し、環境変数で上書き可能に
- **CI 依存パッケージヘルスチェック**: 依存パッケージの破損を検知する定期 CI チェックを追加

### Changed

- **設定システムの刷新**: `loadConfig()` による一括マージを廃止し、`resolveConfigValue()` によるキー単位解決に移行 — global < workflow < project < env の優先順位でソーストラッキングと `OptionsBuilder` のマージ方向を制御 (#324)

### Fixed

- **retry コマンドの有効範囲と案内文を修正**: 正しい範囲と案内テキストを表示するよう修正
- **retry タスクの `completed_at` クリア漏れ**: `startReExecution` で失敗タスクを running に戻す際、`completed_at` を null にリセットするよう修正（Zod バリデーションエラーを防止）
- **OpenCode の2ターン目ハング修正**: `streamAbortController.signal` をサーバー起動から除外し、`sessionId` の引き継ぎを復元することで複数ターンの会話継続を実現
- **ローマ字変換のスタックオーバーフロー防止**: 長いタスク名でのローマ字変換時にスタックオーバーフローが発生する問題を修正

## [0.20.1] - 2026-02-20

### Fixed

- `@opencode-ai/sdk` を `<1.2.7` にピン留め — v1.2.7 以降のビルド成果物で v2 exports が壊れており、`npm install -g takt` 時に `Cannot find module` エラーが発生する問題を修正 (#329)

## [0.20.0] - 2026-02-19

### Added

- **Faceted Prompting モジュール** (`src/faceted-prompting/`): ファセット合成・解決・テンプレートレンダリング・トランケーションのスタンドアロンライブラリ — TAKT 内部への依存ゼロ。プラガブルなファセットストレージのための `DataEngine` インターフェースと `FileDataEngine`、`CompositeDataEngine` 実装を含む
- **Analytics モジュール** (`src/features/analytics/`): ローカル専用のレビュー品質メトリクス収集 — イベント型（レビュー指摘、修正アクション、step結果）、日付ローテーション付き JSONL ライター、レポートパーサー、メトリクス計算
- **`takt metrics review` コマンド**: レビュー品質メトリクスを表示（再報告カウント、ラウンドトリップ率、解決イテレーション数、ルール別 REJECT カウント、反論解決率）。`--since` で時間枠を設定可能
- **`takt purge` コマンド**: 古いアナリティクスイベントファイルを削除。`--retention-days` で保持期間を設定可能
- **`takt reset config` コマンド**: グローバル設定をビルトインテンプレートにリセット（既存設定の自動バックアップ付き）
- **PR 重複防止**: 現在のブランチに既に PR が存在する場合、新規作成ではなく既存 PR へのプッシュとコメント追加で対応 (#304)
- リトライ時のstep選択で失敗箇所にカーソルを初期配置
- run-recovery と config-priority シナリオの E2E テストを追加

### Changed

- **README を大幅改訂**: 約950行から約270行に圧縮 — 詳細情報を専用ドキュメント（`docs/configuration.md`、`docs/cli-reference.md`、`docs/task-management.md`、`docs/ci-cd.md`、`docs/builtin-catalog.md`）に分離し、日本語版も作成。プロダクトコンセプトを4軸（すぐ始められる、実用的、再現可能、マルチエージェント）で再定義
- **設定システムのリファクタリング**: 設定解決を `resolveConfigValue()` と `loadConfig()` に統一し、コードベース全体に散在していた設定アクセスパターンを解消
- **`takt config` コマンド削除**: デフォルトへのリセットを行う `takt reset config` に置き換え
- ビルトイン設定テンプレートのコメントと構造を刷新
- `@anthropic-ai/claude-agent-sdk` を v0.2.47 に更新
- タスク再指示のインストラクトモードプロンプトを改善

### Fixed

- ビルトインworkflowのファイル参照が相対パスではなく絶対パスを使用していた問題を修正 (#304)
- 複数ファイルにまたがる未使用 import・変数を削除

### Internal

- `loadConfig`、`resolveConfigValue`、workflow設定解決、設定優先順位パスの統一
- config-priority と run-recovery シナリオの E2E テストを追加
- PR 作成フローテスト用の `postExecution.test.ts` を追加
- 未使用 import・変数のクリーンアップ

## [0.19.0] - 2026-02-18

### Added

- 失敗タスク専用のリトライモードを追加 — 失敗コンテキスト（エラー詳細、失敗step、最終メッセージ）、実行セッションデータ、workflow構成をシステムプロンプトに注入する対話ループ
- 完了/失敗タスクの再指示用に専用 instruct システムプロンプトを追加 — タスク名・内容・ブランチ変更・リトライノートを汎用の対話プロンプトではなく直接プロンプトに注入
- `takt list` からの直接再実行 — "execute" アクションで既存ワークツリー内で即座にタスクを実行（pending への再キューだけでなく）
- `startReExecution` によるアトミックなタスクステータス遷移 — completed/failed から直接 running に遷移し、requeue → claim のレースコンディションを回避
- タスク実行時のワークツリー再利用 — 既存のクローンディレクトリがディスク上に残っていればそのまま再利用（ブランチ名生成やクローン作成をスキップ）
- 対話モードおよびサマリーシステムプロンプトにタスク履歴を注入 — completed/failed/interrupted タスクのサマリーをコンテキストとして提供
- 対話モードおよび instruct システムプロンプトに前回実行の参照機能 — ログとレポートを参照可能に
- `findRunForTask` / `getRunPaths` ヘルパー — タスク内容による実行セッションの自動検索
- `isStaleRunningTask` プロセスヘルパーを TaskLifecycleService から抽出し再利用可能に

### Changed

- interactive モジュール分割: `interactive.ts` を `interactive-summary.ts`、`runSelector.ts`、`runSessionReader.ts`、`selectorUtils.ts` にリファクタリング
- `requeueTask` が汎用の `allowedStatuses` パラメータを受け取るように変更（`failed` のみだった制約を解除）
- `takt list` の instruct/retry アクションがプロジェクトルートではなくワークツリーパスを使用して対話と実行データの参照を行うように変更
- `save_task` アクションはタスクを再キュー（後で実行用に保存）、`execute` アクションは即座に実行

### Internal

- `DebugConfig` をモデル・スキーマ・グローバル設定から削除 — verbose モードのみに簡素化
- stdin シミュレーションテストヘルパー（`stdinSimulator.ts`）を追加し、E2E 対話ループテストを実現
- リトライモード、対話ルーティング、実行セッション注入の包括的な E2E テストを追加
- `check:release` npm スクリプトを追加（リリース前検証用）

## [0.18.2] - 2026-02-18

### Added

- グローバル設定に `codex_cli_path` オプションと `TAKT_CODEX_CLI_PATH` 環境変数を追加 — Codex SDK が使用する CLI バイナリのパスを上書き可能に (#292)
  - 厳密なバリデーション付き: 絶対パス、ファイル存在確認、実行権限、制御文字の禁止
  - 優先順位: `TAKT_CODEX_CLI_PATH` 環境変数 > config.yaml の `codex_cli_path` > SDK 同梱バイナリ

## [0.18.1] - 2026-02-18

### Added

- セキュリティナレッジにマルチテナントデータ分離セクションと認可・リゾルバー整合性のコード例を追加
- コーディングポリシーに「プロジェクトスクリプト優先」ルールを追加 — npm スクリプトが存在するのに直接ツール呼び出し（例: `npx vitest`）を検出

## [0.18.0] - 2026-02-17

### Added

- `deep-research` workflowを追加 — 計画→深掘り→分析→統括の4ステップで多角的なリサーチを行うワークフロー
- プロジェクトレベルの `.takt/` ファセット（workflows, personas, policies, knowledge, instructions, output-contracts）をバージョン管理可能に (#286)
- リサーチ系ファセットを新規追加（research ポリシー、ナレッジ、比較分析ナレッジ、専用ペルソナ・インストラクション）

### Changed

- `research` workflowをリファクタリング — ペルソナに埋め込まれていたルール・知識をポリシー・ナレッジ・インストラクションに分離し、ファセット設計に準拠
- 既存workflow（expert, expert-cqrs, backend, backend-cqrs, frontend）に knowledge/policy 参照を追加

### Fixed

- `.takt/.gitignore` テンプレート（dotgitignore）のパスが `.takt/` プレフィックス付きで記述されていたため、ファセットディレクトリが追跡されないバグを修正

### Internal

- ナレッジファセットのスタイルガイド（KNOWLEDGE_STYLE_GUIDE.md）を作成
- dotgitignore パターンの回帰テストを追加

## [0.17.3] - 2026-02-16

### Added

- ビルトインの AI アンチパターンポリシーとフロントエンドナレッジに API クライアント生成の一貫性ルールを追加 — 生成ツール（Orval 等）が存在するプロジェクトでの手書きクライアント混在を検出

### Fixed

- タスクストアのロック解放時に EPERM クラッシュが発生する問題を修正 — ファイルベースロックからインメモリガードに置き換え

### Internal

- e2e テストの vitest 設定を共通化し、forceExit オプション追加でゾンビワーカーを防止

## [0.17.2] - 2026-02-15

### Added

- `expert-mini`、`expert-cqrs-mini` workflowを追加 — Expert workflowの軽量版として、plan → implement → 並列レビュー（AI アンチパターン＋スーパーバイザー）→ 修正のワークフローを提供
- workflowカテゴリの「⚡ Mini」「🔧 エキスパート」に新workflowを追加

### Fixed

- パーミッションモード未解決時にエラーをスローしていた問題を修正 — `readonly` にフォールバックするように変更

## [0.17.1] - 2026-02-15

### Changed

- `.takt/.gitignore` テンプレートをホワイトリスト方式に変更 — デフォルトで全ファイルを無視し、`config.yaml` のみを追跡対象に。新しいファイルが追加されても ignore 漏れが発生しない

## [0.17.0] - 2026-02-15

### Added

- **mini workflowシリーズ**: `default-mini`、`frontend-mini`、`backend-mini`、`backend-cqrs-mini` を追加 — `coding`/`minimal` の後継として、並列レビュー（AI アンチパターン＋スーパーバイザー）付きの軽量開発workflowを提供
- workflowカテゴリに「⚡ Mini」カテゴリを追加
- `supervisor-validation` 出力契約を追加 — 要件充足チェックテーブル（Requirements Fulfillment Check）で要件ごとにコード根拠を提示する形式
- `getJudgmentReportFiles()`: `use_judge` フラグにより Phase 3 ステータス判定の対象レポートをフィルタリング可能に
- Output contract に finding_id トラッキングを追加（new/persists/resolved セクションによる指摘の追跡）

### Changed

- **BREAKING: `coding` workflowと `minimal` workflowを削除** — mini workflowシリーズに置き換え。`coding` → `default-mini`、`minimal` → `default-mini` への移行を推奨
- **BREAKING: Output contract を item 形式に統一** — `use_judge`（boolean）と `format`（string）フィールドを必須化し、`OutputContractLabelPath`（label:path 形式）を廃止
- ランタイム環境ディレクトリを `.runtime` から `.takt/.runtime` に移動
- スーパーバイザーの要件充足検証を強化: 要件を個別に抽出し、コード（file:line）に対して1件ずつ検証する方式に変更 — 「おおむね完了」は APPROVE の根拠にならない

### Fixed

- クローン/worktree ディレクトリの削除にリトライ機構を追加（`maxRetries: 3`, `retryDelay: 200`）— ファイルロックによる一時的な削除失敗を軽減

### Internal

- `review-summary` 出力契約を削除（`supervisor-validation` に統合）
- 全ビルトインworkflow、e2e フィクスチャ、テストを output contract の新形式に更新

## [0.16.0] - 2026-02-15

### Added

- **プロバイダー別パーミッションプロファイル（`provider_profiles`）**: グローバル設定（`~/.takt/config.yaml`）およびプロジェクト設定（`.takt/config.yaml`）でプロバイダーごとのデフォルトパーミッションモードとstep単位のオーバーライドを定義可能に — 5段階の優先順位解決（project override → global override → project default → global default → `required_permission_mode` 下限補正）

### Changed

- **BREAKING: `permission_mode` → `required_permission_mode`**: stepの `permission_mode` フィールドを `required_permission_mode` にリネーム — 下限（フロア）として機能し、実際のパーミッションモードは `provider_profiles` で解決される設計に変更。旧 `permission_mode` は `z.never()` で拒否されるため後方互換性なし
- ビルトイン `config.yaml` テンプレートを全面リライト: コメント整理、`provider_profiles` の説明と使用例を追加、OpenCode 関連設定の追加

### Internal

- プロバイダープロファイル関連のテスト追加（global-provider-profiles, project-provider-profiles, permission-profile-resolution, options-builder）
- 並行実行テストに不足していた `loadProjectConfig` モックを追加

## [0.15.0] - 2026-02-15

### Added

- **ランタイム環境プリセット**: `workflow_config.runtime.prepare` およびグローバル設定の `runtime.prepare` で、workflow実行前に環境準備スクリプトを自動実行可能に — ビルトインプリセット（`gradle`, `node`）で依存解決・キャッシュ設定を `.runtime/` ディレクトリに隔離
- **ループモニターの judge インストラクション**: `loop_monitors` の judge 設定で `instruction` フィールドをサポート — ループ判定の指示をインストラクションファセットとして外部化し、ビルトインworkflow（expert, expert-cqrs）に適用

### Internal

- ランタイム環境関連のテスト追加（runtime-environment, globalConfig-defaults, models, provider-options-workflow-parser）
- provider e2e テスト追加（runtime-config-provider）

## [0.14.0] - 2026-02-14

### Added

- **`takt list` インストラクトモード (#267)**: 既存ブランチに対して追加指示を行えるインストラクトモードを追加 — 会話ループで要件を詳細化してからworkflow実行が可能に
- **`takt list` 完了タスクアクション (#271)**: 完了タスクに対する diff 表示・ブランチ操作（マージ、削除）を追加
- **Claude サンドボックス設定**: `provider_options.claude.sandbox` でサンドボックスの除外コマンド（`excluded_commands`）やサンドボックス無効化（`allow_unsandboxed_commands`）を設定可能に
- **`provider_options` のグローバル/プロジェクト設定**: `provider_options` を `~/.takt/config.yaml`（グローバル）および `.takt/config.yaml`（プロジェクト）で設定可能に — workflowレベル設定の最低優先フォールバックとして機能

### Changed

- **provider/model の解決ロジックを AgentRunner に集約**: provider 解決でプロジェクト設定をカスタムエージェント設定より優先するよう修正。ステップレベルの `stepModel` / `stepProvider` による上書きを追加
- **ポストエクスキューションの共通化**: インタラクティブモードとインストラクトモードで post-execution フロー（auto-commit, push, PR 作成）を `postExecution.ts` に共通化
- **スコープ縮小防止策をインストラクションに追加**: plan, ai-review, supervise のインストラクションに要件の取りこぼし検出を追加 — plan では要件ごとの「変更要/不要」判定と根拠提示を必須化、supervise では計画レポートの鵜呑み禁止

### Fixed

- インタラクティブモードの選択肢が非同期実行時に表示されてしまうバグを修正 (#266)
- OpenCode のパラレル実行時にセッション ID を引き継げない問題を修正 — サーバーをシングルトン化し並列実行時の競合を解消
- OpenCode SDK サーバー起動タイムアウトを 30 秒から 60 秒に延長

### Internal

- タスク管理の大規模リファクタリング: `TaskRunner` の責務を `TaskLifecycleService`、`TaskDeletionService`、`TaskQueryService` に分離
- `taskActions.ts` を機能別に分割: `taskBranchLifecycleActions.ts`、`taskDiffActions.ts`、`taskInstructionActions.ts`、`taskDeleteActions.ts`
- `postExecution.ts`、`taskResultHandler.ts`、`instructMode.ts`、`taskActionTarget.ts` を新規追加
- workflow選択ロジックを `workflowSelection/index.ts` に集約（`selectAndExecute.ts` から抽出）
- テスト追加: instructMode, listNonInteractive-completedActions, listTasksInteractiveStatusActions, option-resolution-order, taskInstructionActions, selectAndExecute-autoPr 等を新規・拡充
- E2E テストに Claude Code サンドボックス対応オプション（`dangerouslyDisableSandbox`）を追加
- `OPENCODE_CONFIG_CONTENT` を `.gitignore` に追加

## [0.13.0] - 2026-02-13

### Added

- **Team Leader step**: step内でチームリーダーエージェントがタスクを動的にサブタスク（Part）へ分解し、複数のパートエージェントを並列実行する新しいstepタイプ — `team_leader` 設定（persona, maxParts, timeoutMs, partPersona, partEdit, partPermissionMode）をサポート (#244)
- **構造化出力（Structured Output）**: エージェント呼び出しに JSON Schema ベースの構造化出力を導入 — タスク分解（decomposition）、ルール評価（evaluation）、ステータス判定（judgment）の3つのスキーマを `builtins/schemas/` に追加。Claude / Codex 両プロバイダーで対応 (#257)
- **`provider_options` workflowレベル設定**: workflow全体（`workflow_config.provider_options`）および個別stepにプロバイダー固有オプション（`codex.network_access`、`opencode.network_access`）を設定可能に — 全ビルトインworkflowに Codex/OpenCode のネットワークアクセスを有効化
- **`backend` ビルトインworkflow**: バックエンド開発特化のworkflowを新規追加 — バックエンド、セキュリティ、QA の並列専門家レビュー対応
- **`backend-cqrs` ビルトインworkflow**: CQRS+ES 特化のバックエンド開発workflowを新規追加 — CQRS+ES、セキュリティ、QA の並列専門家レビュー対応
- **AbortSignal によるパートタイムアウト**: Team Leader のパート実行にタイムアウト制御と親シグナル連動の AbortSignal を追加
- **エージェントユースケース層**: `agent-usecases.ts` にエージェント呼び出しのユースケース（`decomposeTask`, `executeAgent`, `evaluateRules`）を集約し、構造化出力の注入を一元管理

### Changed

- **BREAKING: パブリック API の整理**: `src/index.ts` の公開 API を大幅に絞り込み — 内部実装の詳細（セッション管理、Claude/Codex クライアント詳細、ユーティリティ関数等）を非公開化し、安定した最小限の API サーフェスに (#257)
- **Phase 3 判定ロジックの刷新**: `JudgmentDetector` / `FallbackStrategy` を廃止し、構造化出力ベースの `status-judgment-phase.ts` に統合。判定の安定性と保守性を向上 (#257)
- **Report フェーズのリトライ改善**: Report Phase（Phase 2）が失敗した場合、新規セッションで自動リトライするよう改善 (#245)
- **Ctrl+C シャットダウンの統一**: `sigintHandler.ts` を廃止し、`ShutdownManager` に統合 — グレースフルシャットダウン → タイムアウト → 強制終了の3段階制御を全プロバイダーで共通化 (#237)
- **スコープ外削除の防止ガードレール**: coder ペルソナにタスク指示書の範囲外の削除・構造変更を禁止するルールを追加。planner ペルソナにスコープ規律と参照資料の優先順位を追加
- フロントエンドナレッジにデザイントークンとテーマスコープのガイダンスを追加
- アーキテクチャナレッジの改善（en/ja 両対応）

### Fixed

- clone 時に既存ブランチの checkout が失敗する問題を修正 — `git clone --shared` で `--branch` を渡してからリモートを削除するよう変更
- Issue 参照付きブランチ名から `#` を除去（`takt/#N/slug` → `takt/N/slug`）
- OpenCode の report フェーズで deprecated ツール依存を解消し、permission 中心の制御へ移行 (#246)
- 不要な export を排除し、パブリック API の整合性を確保

### Internal

- Team Leader 関連のテスト追加（engine-team-leader, team-leader-schema-loader, task-decomposer）
- 構造化出力関連のテスト追加（parseStructuredOutput, claude-executor-structured-output, codex-structured-output, provider-structured-output, structured-output E2E）
- ShutdownManager のユニットテスト追加
- AbortSignal のユニットテスト追加（abort-signal, claude-executor-abort-signal, claude-provider-abort-signal）
- Report Phase リトライのユニットテスト追加（report-phase-retry）
- パブリック API エクスポートのユニットテスト追加（public-api-exports）
- provider_options 関連のテスト追加（provider-options-workflow-parser, models, opencode-types）
- E2E テストの大幅拡充: cycle-detection, model-override, multi-step-sequential, pipeline-local-repo, report-file-output, run-sigint-graceful, session-log, structured-output, task-status-persistence
- E2E テストヘルパーのリファクタリング（共通 setup 関数の抽出）
- `judgment/` ディレクトリ（JudgmentDetector, FallbackStrategy）を削除
- `ruleIndex.ts` ユーティリティを追加（1-based → 0-based インデックス変換）

## [0.12.1] - 2026-02-11

### Fixed

- セッションが見つからない場合に無言で新規セッションに進む問題を修正 — セッション未検出時に info メッセージを表示するように改善

### Internal

- OpenCode プロバイダーの report フェーズを deny に設定（Phase 2 での不要な書き込みを防止）
- プロジェクト初期化時の `tasks/` ディレクトリコピーをスキップ（TASK-FORMAT が不要になったため）
- ストリーム診断ユーティリティ (`streamDiagnostics.ts`) を追加

## [0.12.0] - 2026-02-11

### Added

- **OpenCode プロバイダー**: 第3のプロバイダーとして OpenCode をネイティブサポート — `@opencode-ai/sdk/v2` による SDK 統合、権限マッピング（readonly/edit/full → reject/once/always）、SSE ストリーム処理、リトライ機構（最大3回）、10分タイムアウトによるハング検出 (#236, #238)
- **Arpeggio step**: データ駆動バッチ処理の新stepタイプ — CSV データソースからバッチ分割、テンプレート展開（`{line:N}`, `{col:N:name}`, `{batch_index}`）、並行 LLM 呼び出し（Semaphore 制御）、concat/custom マージ戦略をサポート (#200)
- **`frontend` ビルトインworkflow**: フロントエンド開発特化のworkflowを新規追加 — React/Next.js 向けの knowledge 注入、coding/testing ポリシー適用、並列アーキテクチャレビュー対応
- **Slack Webhook 通知**: workflow実行完了時に Slack へ自動通知 — `TAKT_NOTIFY_WEBHOOK` 環境変数で設定、10秒タイムアウト、失敗時も他処理をブロックしない (#234)
- **セッション選択 UI**: インタラクティブモード開始時に Claude Code の過去セッションから再開可能なセッションを選択可能に — 最新10セッションの一覧表示、初期入力・最終応答プレビュー付き (#180)
- **プロバイダーイベントログ**: Claude/Codex/OpenCode の実行中イベントを NDJSON 形式でファイル出力 — `.takt/logs/{sessionId}-provider-events.jsonl` に記録、長大テキストの自動圧縮 (#236)
- **プロバイダー・モデル名の出力表示**: 各step実行時に使用中のプロバイダーとモデル名をコンソールに表示

### Changed

- **`takt add` の刷新**: Issue 選択時にタスクへの自動追加、インタラクティブモードの廃止、Issue 作成時のタスク積み込み確認 (#193, #194)
- **`max_iteration` → `max_steps` 統一**: イテレーション上限の用語を統一し、無限実行指定として `ostinato` を追加 (#212)
- **`previous_response` 注入仕様の改善**: 長さ制御と Source Path 常時注入を実装 (#207)
- **タスク管理の改善**: `.takt/tasks/` を長文タスク仕様の置き場所として再定義、`completeTask()` で completed レコードを `tasks.yaml` から削除 (#201, #204)
- **レビュー出力の改善**: レビュー出力を最新化し、過去レポートは履歴ログへ分離 (#209)
- **ビルトインworkflow簡素化**: 全ビルトインworkflowのトップレベル宣言をさらに整理

### Fixed

- **Report Phase blocked 時の動作修正**: Report Phase（Phase 2）で blocked 状態の際に新規セッションでリトライするよう修正 (#163)
- **OpenCode のハング・終了判定の修正**: プロンプトのエコー抑制、question の抑制、ハング問題の修正、終了判定の誤りを修正 (#238)
- **OpenCode の権限・ツール設定の修正**: edit 実行時の権限とツール配線を修正
- **Worktree へのタスク指示書コピー**: Worktree 実行時にタスク指示書が正しくコピーされるよう修正
- lint エラーの修正（merge/resolveTask/confirm）

### Internal

- OpenCode プロバイダーの包括的なテスト追加（client-cleanup, config, provider, stream-handler, types）
- Arpeggio の包括的なテスト追加（csv, data-source-factory, merge, schema, template, engine-arpeggio）
- E2E テストの大幅な拡充: cli-catalog, cli-clear, cli-config, cli-export-cc, cli-help, cli-prompt, cli-reset-categories, cli-switch, error-handling, workflow-error-handling, provider-error, quiet-mode, run-multiple-tasks, task-content-file (#192, #198)
- `providerEventLogger.ts`, `providerModel.ts`, `slackWebhook.ts`, `session-reader.ts`, `sessionSelector.ts`, `provider-resolution.ts`, `run-paths.ts` の新規追加
- `ArpeggioRunner.ts` の新規追加（データ駆動バッチ処理エンジン）
- AI Judge をプロバイダーシステム経由に変更（Codex/OpenCode 対応）
- テスト追加・拡充: report-phase-blocked, phase-runner-report-history, judgment-fallback, workflowExecution-session-loading, globalConfig-defaults, session-reader, sessionSelector, slackWebhook, providerEventLogger, provider-model, interactive, run-paths, engine-test-helpers

## [0.11.1] - 2026-02-10

### Fixed

- AI Judge がプロバイダーシステムを経由するよう修正 — `callAiJudge` を Claude 固定実装からプロバイダー経由（`runAgent`）に変更し、Codex プロバイダーでも AI 判定が正しく動作するように
- 実行指示が長大化する問題を緩和 — implement/fix 系stepで `pass_previous_response: false` を設定し、Report Directory 内のレポートを一次情報として優先する指示に変更（en/ja 両対応）

### Internal

- stable release 時に npm の `next` dist-tag を `latest` と自動同期するよう CI ワークフローを改善（リトライ付き）

## [0.11.0] - 2026-02-10

### Added

- **`e2e-test` ビルトインworkflow**: E2Eテスト特化のworkflowを新規追加 — E2E分析 → E2E実装 → レビュー → 修正のフロー（VitestベースのE2Eテスト向け）
- **`error` ステータス**: プロバイダーエラーを `blocked` から分離し、エラー状態を明確に区別可能に。Codex にリトライ機構を追加
- **タスク YAML 一元管理**: タスクファイルの管理を `tasks.yaml` に統合。`TaskRecordSchema` による構造化されたタスクライフサイクル管理（pending/running/completed/failed）
- **タスク指示書ドキュメント**: タスク指示書の構造と目的を明文化 (#174)
- **レビューポリシー**: 共通レビューポリシーファセット（`builtins/{lang}/policies/review.md`）を追加
- **SIGINT グレースフルシャットダウンの E2E テスト**: 並列実行中の Ctrl+C 動作を検証する E2E テストを追加

### Changed

- **ビルトインworkflow簡素化**: 全ビルトインworkflowからトップレベルの `policies`/`personas`/`knowledge`/`instructions`/`report_formats` 宣言を削除し、名前ベースの暗黙的解決に移行。workflow YAML がよりシンプルに
- **workflowカテゴリ仕様更新**: カテゴリの設定・表示ロジックを改善。グローバル設定でのカテゴリ管理を強化 (#184)
- **`takt list` の優先度・参照改善**: ブランチ解決のパフォーマンス最適化。ベースコミットキャッシュの導入 (#186, #195, #196)
- **Ctrl+C シグナルハンドリング改善**: 並列実行中の SIGINT 処理を安定化
- **ループ防止ポリシー強化**: エージェントの無限ループを防止するためのポリシーを強化

### Fixed

- オリジナル指示の差分処理が正しく動作しない問題を修正 (#181)
- タスク指示書のゴールが不適切にスコープ拡張される問題を修正 — ゴールを常に実装・実行に固定

### Internal

- タスク管理コードの大規模リファクタリング: `parser.ts` を廃止し `store.ts`/`mapper.ts`/`schema.ts`/`naming.ts` に分離。`branchGitResolver.ts`/`branchBaseCandidateResolver.ts`/`branchBaseRefCache.ts`/`branchEntryPointResolver.ts` でブランチ解決を細分化
- テストの大幅な拡充・リファクタリング: aggregate-evaluator, blocked-handler, branchGitResolver-performance, branchList-regression, buildListItems-performance, error-utils, escape, facet-resolution, getFilesChanged, global-categories, instruction-context, instruction-helpers, judgment-strategies, listTasksInteractivePendingLabel, loop-detector, naming, reportDir, resetCategories, rule-evaluator, rule-utils, slug, state-manager, workflow-switching, task-schema, text, transitions, watchTasks 等を新規追加
- Codex クライアントのリファクタリング
- workflowパーサーのファセット解決ロジック改善

## [0.10.0] - 2026-02-09

### Added

- **`structural-reform` ビルトインworkflow**: プロジェクト全体のレビューと構造改革 — `loop_monitors` を活用した反復的なコードベース再構成（段階的なファイル分割）ワークフロー
- **`unit-test` ビルトインworkflow**: ユニットテスト特化のworkflow — テスト分析 → テスト実装 → レビュー → 修正のフロー。`loop_monitors` によるサイクル制御付き
- **`test-planner` ペルソナ**: コードベースを解析し、包括的なテスト戦略を立案する専用ペルソナ
- **インタラクティブモードのバリアント**: workflow選択後に4種のモードから選択可能 — `assistant`（デフォルト: AI 支援による要件整理）、`persona`（最初のstepのペルソナとの会話）、`quiet`（質問なしで指示書を生成）、`passthrough`（ユーザー入力をそのまま使用）
- **`persona_providers` 設定**: ペルソナごとのプロバイダーオーバーライド（例: `{ coder: 'codex' }`）— ハイブリッドworkflowを作成せずに特定ペルソナを別プロバイダーへルーティング可能
- **`task_poll_interval_ms` 設定**: `takt run` が実行中に新規タスクを検出するポーリング間隔を設定可能（デフォルト: 500ms、範囲: 100〜5000ms）
- **`interactive_mode` workflowフィールド**: workflowレベルのデフォルトインタラクティブモードを上書き可能（例: AI 計画が不要なworkflowに `passthrough` を設定）
- **タスクレベル出力プレフィックス**: `takt run` の並列実行時、全出力行に色付きの `[taskName]` プレフィックスを付与し、並行タスク間の行途中混在を防止
- **レビューポリシーファセット**: workflow間でレビュー基準を統一する共通レビューポリシー（`builtins/{lang}/policies/review.md`）

### Changed

- **BREAKING:** ハイブリッド Codex workflow（`*-hybrid-codex`）を全廃 — `persona_providers` 設定で同等の機能を実現できるため、workflowファイルの重複が不要に
- `tools/generate-hybrid-codex.mjs` を削除（`persona_providers` により不要）
- 並列実行時の出力改善: stepレベルプレフィックスに並行実行時のタスクコンテキストとイテレーション情報を追加
- Codex クライアントがストリームのハングを検出するように（10分間アイドルタイムアウト）。タイムアウト vs 外部中断をエラーメッセージで区別
- 並列タスク実行（`takt run`）がタスク完了間のみではなく実行中にも新規追加タスクをポーリングするよう変更
- 並列タスク実行でタスクごとの時間制限を廃止（従来はタイムアウトあり）
- Issue 参照がインタラクティブモードをスキップせず、最初の入力としてインタラクティブモードを経由するよう変更
- ビルトイン `config.yaml` を更新し、GlobalConfig の全フィールドをドキュメント化
- インタラクティブモードのバリアント間で会話ロジックを共有する `conversationLoop.ts` を抽出
- ラインエディタの改善: キーバインドの追加とエッジケースの修正

### Fixed

- ストリームがアイドル状態になった際に Codex プロセスが無期限にハングする問題を修正 — 10分間アクティビティがない場合に中断し、ワーカープールのスロットを解放

### Internal

- 新規テスト追加: engine-persona-providers, interactive-mode（532行）, task-prefix-writer, workerPool 拡充, workflowResolver 拡充, lineEditor 拡充, parallel-logger 拡充, globalConfig-defaults 拡充, workflowExecution-debug-prompts 拡充, it-workflow-loader 拡充, runAllTasks-concurrency 拡充, engine-parallel
- 並列出力管理のための `TaskPrefixWriter` を抽出
- `modeSelection.ts`, `passthroughMode.ts`, `personaMode.ts`, `quietMode.ts` をインタラクティブモジュールから抽出
- `InteractiveMode` 型モデルを追加（`src/core/models/interactive-mode.ts`）
- `WorkflowEngine` が構築時に `taskPrefix`/`taskColorIndex` ペアの整合性を検証するよう変更
- 実装メモを追加（`docs/implements/retry-and-session.ja.md`）

## [0.9.0] - 2026-02-08

### Added

- **`takt catalog` コマンド**: 各レイヤー（builtin/user/project）にわたって利用可能なファセット（personas, policies, knowledge, instructions, output-contracts）を一覧表示
- **`compound-eye` ビルトインworkflow**: マルチモデルレビュー — 同一の指示を Claude と Codex に同時送信し、両者の回答を統合
- **並列タスク実行**: `takt run` がワーカープールによる並行タスク実行をサポート（`concurrency` 設定で制御、デフォルト: 1）
- **インタラクティブモードのリッチなラインエディタ**: Shift+Enter で複数行入力、カーソル移動（矢印キー、Home/End）、Option+Arrow で単語単位移動、Ctrl+A/E/K/U/W 編集、ブラケットペーストモード対応
- **インタラクティブモードでのstepプレビュー**: workflowのstep構造（ペルソナ＋インストラクション）を AI プランナーに注入してタスク分析を改善（`interactive_preview_steps` 設定、デフォルト: 3）
- **MCP サーバー設定**: stepごとの MCP（Model Context Protocol）サーバー設定。stdio/SSE/HTTP トランスポートをサポート
- **ファセット単位の eject**: `takt eject persona coder` — ファセットをタイプと名前で個別にエジェクトしてカスタマイズ可能に
- **3層ファセット解決**: ペルソナ、ポリシー、その他のファセットを project → user → builtin の順で解決（名前ベースの参照をサポート）
- **`pr-commenter` ペルソナ**: レビュー所見を GitHub PR コメントとして投稿する専用ペルソナ
- **`notification_sound` 設定**: 通知音の有効/無効を設定可能（デフォルト: true）
- **プロンプトログビューア**: デバッグ時のプロンプトと回答のペアを可視化する `tools/prompt-log-viewer.html`
- auto-PR のベースブランチをブランチ作成前の現在のブランチに設定するよう変更

### Changed

- プランナーとアーキテクト・プランナーを統合: 設計知識をナレッジファセットに抽出・統合。default/coding workflowからアーキテクトstepを削除（plan → implement への直接遷移に変更）
- インタラクティブモードを readline からローモードのラインエディタに置き換え（カーソル管理、行間移動、Kitty キーボードプロトコル）
- インタラクティブモードの `save_task` を `takt add` の worktree セットアップフローに統合
- caffeinate に `-d` フラグを追加してディスプレイスリープ中の App Nap によるプロセスフリーズを防止
- Issue 参照がインタラクティブモードをスキップせず、最初の入力としてインタラクティブモードを経由するよう変更（従来は直接実行）
- SDK 更新: `@anthropic-ai/claude-agent-sdk` v0.2.34 → v0.2.37
- インタラクティブセッションのスコアリングプロンプトにworkflow構造情報を追加

### Internal

- ファセット解決ロジックのための `resource-resolver.ts` を抽出（`workflowParser.ts` から分離）
- `parallelExecution.ts`（ワーカープール）、`resolveTask.ts`（タスク解決）、`sigintHandler.ts`（共通 SIGINT ハンドラ）を抽出
- `session-key.ts` によるセッションキー生成の統一
- 新規 `lineEditor.ts`（ローモードターミナル入力、エスケープシーケンス解析、カーソル管理）
- 大幅なテスト追加: catalog, facet-resolution, eject-facet, lineEditor, formatStepPreviews, models, debug, strip-ansi, workerPool, runAllTasks-concurrency, session-key, interactive（大規模拡充）, cli-routing-issue-resolve, parallel-logger, engine-parallel-failure, StreamDisplay, getCurrentBranch, globalConfig-defaults, workflowExecution-debug-prompts, selectAndExecute-autoPr, it-notification-sound, it-workflow-loader, permission-mode（拡充）

## [0.8.0] - 2026-02-08

alpha.1 の内容を正式リリース。機能変更なし。

## [0.8.0-alpha.1] - 2026-02-07

### Added

- **Faceted Prompting アーキテクチャ**: プロンプト構成要素を独立ファイルとして管理し、workflow間で自由に組み合わせ可能に
  - `personas/` — エージェントの役割・専門性を定義するペルソナプロンプト
  - `policies/` — コーディング規約・品質基準・禁止事項を定義するポリシー
  - `knowledge/` — ドメイン知識・アーキテクチャ情報を定義するナレッジ
  - `instructions/` — step固有の手順を定義するインストラクション
  - `output-contracts/` — レポート出力フォーマットを定義するアウトプットコントラクト
  - workflowYAMLのセクションマップ（`personas:`, `policies:`, `knowledge:`）でキーとファイルパスを対応付け、stepからキーで参照
- **Output Contracts と Quality Gates**: レポート出力の構造化定義と品質基準の AI ディレクティブ
  - `output_contracts` フィールドでレポート定義（`report` フィールドを置き換え）
  - `quality_gates` フィールドでstep完了要件の AI ディレクティブを指定
- **Knowledge システム**: ドメイン知識をペルソナから分離し、workflowレベルで管理・注入
  - workflowYAMLの `knowledge:` セクションマップでナレッジファイルを定義
  - stepの `knowledge:` フィールドでキー参照して注入
- **Faceted Prompting ドキュメント**: 設計思想と実践ガイドを `docs/faceted-prompting.md`（en/ja）に追加
- **Hybrid Codex workflow生成ツール**: `tools/generate-hybrid-codex.mjs` で Claude workflowから Codex バリアントを自動生成
- 失敗タスクの再投入機能: `takt list` から失敗タスクブランチを選択して再実行可能に (#110)
- ブランチ名生成戦略を設定可能に（`branch_name_strategy` 設定）
- auto-PR 機能の追加と PR 作成ロジックの共通化 (#98)
- Issue 参照時にもworkflow選択を実施 (#97)
- ステップ（step）にいてのスリープ機能

### Changed

- **BREAKING:** `resources/global/` ディレクトリを `builtins/` にリネーム
  - `resources/global/{lang}/` → `builtins/{lang}/`
  - package.json の `files` フィールドを `resources/` → `builtins/` に変更
- **BREAKING:** `agent` フィールドを `persona` にリネーム
  - workflowYAMLの `agent:` → `persona:`、`agent_name:` → `persona_name:`
  - 内部型: `agentPath` → `personaPath`、`agentDisplayName` → `personaDisplayName`、`agentSessions` → `personaSessions`
  - ディレクトリ: `agents/` → `personas/`（グローバル・プロジェクト・ビルトイン全て）
- **BREAKING:** `report` フィールドを `output_contracts` に変更
  - 従来の `report: 00-plan.md` / `report: [{Scope: ...}]` / `report: {name, order, format}` 形式を `output_contracts: {report: [...]}` 形式に統一
- **BREAKING:** `stances` → `policies`、`report_formats` → `output_contracts` にリネーム
- 全ビルトインworkflowを Faceted Prompting アーキテクチャに移行（旧エージェントプロンプト内のドメイン知識をナレッジに分離）
- SDK 更新: `@anthropic-ai/claude-agent-sdk` v0.2.19 → v0.2.34、`@openai/codex-sdk` v0.91.0 → v0.98.0
- stepに `policy` / `knowledge` フィールドを追加（セクションマップのキーで参照）
- 対話モードのスコアリングにポリシーベースの評価を追加
- README を刷新: agent → persona、セクションマップの説明追加、制御・管理の分類を明記
- ビルトインスキル（SKILL.md）をFaceted Prompting対応に刷新

### Fixed

- レポートディレクトリパスの解決バグを修正
- PR の Issue 番号リンクが正しく設定されない問題を修正
- `stageAndCommit` で gitignored ファイルがコミットされる問題を修正（`git add -f .takt/reports/` を削除）

### Internal

- ビルトインリソースの大規模再構成: 旧 `agents/` ディレクトリ構造（`default/`, `expert/`, `expert-cqrs/`, `magi/`, `research/`, `templates/`）を廃止し、フラットな `personas/`, `policies/`, `knowledge/`, `instructions/`, `output-contracts/` 構造に移行
- Faceted Prompting のスタイルガイドとテンプレートを追加（`builtins/ja/` に `PERSONA_STYLE_GUIDE.md`, `POLICY_STYLE_GUIDE.md`, `INSTRUCTION_STYLE_GUIDE.md`, `OUTPUT_CONTRACT_STYLE_GUIDE.md` 等）
- `workflowParser.ts` にポリシー・ナレッジ・インストラクションの解決ロジックを追加
- テスト追加: knowledge, policy-persona, deploySkill, StreamDisplay, globalConfig-defaults, sleep, task, taskExecution, taskRetryActions, addTask, saveTaskFile, parallel-logger, summarize 拡充
- `InstructionBuilder` にポリシー・ナレッジコンテンツの注入を追加
- `taskRetryActions.ts` を追加（失敗タスクの再投入ロジック）
- `sleep.ts` ユーティリティを追加
- 旧プロンプトファイル（`interactive-summary.md`, `interactive-system.md`）を削除
- 旧エージェントテンプレート（`templates/coder.md`, `templates/planner.md` 等）を削除

## [0.7.1] - 2026-02-06

### Fixed

- Ctrl+C がworkflow実行中に効かない問題を修正: SIGINT ハンドラで `interruptAllQueries()` を呼び出してアクティブな SDK クエリを停止するように修正
- Ctrl+C 後に EPIPE クラッシュが発生する問題を修正: SDK が停止済みの子プロセスの stdin に書き込む際の EPIPE エラーを二重防御で抑制（`uncaughtException` ハンドラ + `Promise.resolve().catch()`）
- セレクトメニューの `onKeypress` ハンドラで例外が発生した際にターミナルの raw mode がリークする問題を修正

### Internal

- SIGINT ハンドラと EPIPE 抑制の統合テストを追加（`it-sigint-interrupt.test.ts`）
- セレクトメニューのキー入力安全性テストを追加（`select-rawmode-safety.test.ts`）

## [0.7.0] - 2026-02-06

### Added

- Hybrid Codex workflow: 全主要workflow（default, minimal, expert, expert-cqrs, passthrough, review-fix-minimal, coding）の Codex バリアントを追加
  - coder エージェントを Codex プロバイダーで実行するハイブリッド構成
  - en/ja 両対応
- `passthrough` workflow: タスクをそのまま coder に渡す最小構成workflow
- `takt export-cc` コマンド: ビルトインworkflow・エージェントを Claude Code Skill としてデプロイ
- `takt list` に delete アクション追加、non-interactive モード分離
- AI 相談アクション: `takt add` / インタラクティブモードで GitHub Issue 作成・タスクファイル保存が可能に
- サイクル検出: ai_review ↔ ai_fix 間の無限ループを検出する `CycleDetector` を追加 (#102)
  - 修正不要時の裁定ステップ（`ai_no_fix`）を default workflowに追加
- CI: skipped な TAKT Action ランを週次で自動削除するワークフローを追加
- workflowカテゴリに Hybrid Codex サブカテゴリを追加（en/ja）

### Changed

- カテゴリ設定を簡素化: `default-categories.yaml` を `workflow-categories.yaml` に統合し、ユーザーディレクトリへの自動コピー方式に変更
- workflow選択UIのサブカテゴリナビゲーションを修正（再帰的な階層表示が正しく動作するように）
- Claude Code Skill を Agent Team ベースに刷新
- `console.log` を `info()` に統一（list コマンド）

### Fixed

- Hybrid Codex workflowの description に含まれるコロンが YAML パースエラーを起こす問題を修正
- サブカテゴリ選択時に `selectWorkflowFromCategoryTree` に不正な引数が渡される問題を修正

### Internal

- `list` コマンドのリファクタリング: `listNonInteractive.ts`, `taskDeleteActions.ts` を分離
- `cycle-detector.ts` を追加、`WorkflowEngine` にサイクル検出を統合
- ワークフローカテゴリローダーのリファクタリング（`workflowCategories.ts`, `workflowSelection/index.ts`）
- テスト追加: cycle-detector, engine-loop-monitors, workflow-selection, listNonInteractive, taskDeleteActions, createIssue, saveTaskFile

## [0.6.0] - 2026-02-05

RC1/RC2 の内容を正式リリース。機能変更なし。

## [0.6.0-rc1] - 2026-02-05

### Fixed

- ai_review ↔ ai_fix 間の無限ループを修正: ai_fix が「修正不要」と判断した場合に plan へ戻ってフルパイプラインが再起動する問題を解消
  - `ai_no_fix` 調停ステップを追加（architecture-reviewer が ai_review vs ai_fix の対立を判定）
  - ai_fix の「修正不要」ルートを `plan` → `ai_no_fix` に変更
  - 対象workflow: default, expert, expert-cqrs（en/ja）

### Changed

- default workflowの並列レビュアーを security-review → qa-review に変更（TAKT 開発向けに最適化）
- qa-reviewer エージェントを `expert/` から `default/` に移動し、テストカバレッジ重視の内容に書き直し
- ai_review instruction にイテレーション認識を追加（初回は網羅的レビュー、2回目以降は修正確認を優先）

### Internal

- auto-tag ワークフローを release/ ブランチからのマージのみに制限し、publish ジョブを統合（GITHUB_TOKEN 制約による連鎖トリガー不発を解消）
- postversion フック削除（release ブランチフローと競合するため）
- テスト更新: security-reviewer → qa-reviewer の変更に対応

## [0.6.0-rc] - 2026-02-05

### Added

- `coding` ビルトインworkflow: 設計→実装→並列レビュー→修正の軽量開発workflow（plan/supervise を省略した高速フィードバックループ）
- `conductor` エージェント: Phase 3 判定専用エージェント。レポートやレスポンスを読んで判定タグを出力する
- Phase 3 判定のフォールバック戦略: AutoSelect → ReportBased → ResponseBased → AgentConsult の4段階フォールバックで判定精度を向上 (`src/core/workflow/judgment/`)
- セッション状態管理: タスク実行結果（成功/エラー/中断）を保存し、次回インタラクティブモード起動時に前回の結果を表示 (#89)
- TAKT メタ情報（workflow構造、進行状況）をエージェントに引き渡す仕組み
- `/play` コマンド: インタラクティブモードでタスクを即座に実行
- E2Eテスト基盤: mock/provider 両対応のテストインフラ、10種のE2Eテストスペック、テストヘルパー（isolated-env, takt-runner, test-repo）
- レビューエージェントに「論理的に到達不可能な防御コード」の検出ルールを追加

### Changed

- Phase 3 判定ロジックをセッション再開方式から conductor エージェント＋フォールバック戦略に変更（判定の安定性向上）
- CLI ルーティングを `executeDefaultAction()` として関数化し、スラッシュコマンドのフォールバックから再利用可能に (#32)
- `/` や `#` で始まる入力をコマンド/Issue 未検出時にタスク指示として受け入れるよう変更 (#32)
- `isDirectTask()` を簡素化: Issue 参照のみ直接実行、それ以外はすべてインタラクティブモードへ
- 全ビルトインworkflowから `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` にworkflowメタ情報（構造、反復回数）の注入を追加
- テスト追加: judgment-detector, judgment-fallback, sessionState, workflowResolver, cli-slash-hash, e2e-helpers

## [0.5.1] - 2026-02-04

### Fixed

- Windows 環境でのファイルパス処理と文字エンコーディングの問題を修正 (#90, #91)
  - Windows 向けの `.git` 検出を改善
  - Codex 向けに `.git` の必須チェックを追加（未検出時はエラー）
  - 文字エンコーディングの問題を修正
- Codex のブランチ名サマリー処理のバグを修正

### Internal

- テストのメモリリークとハング問題を解消
  - `WorkflowEngine` と `TaskWatcher` にクリーンアップハンドラを追加
  - テストの安定性向上のため vitest をシングルスレッド実行に変更

## [0.5.0] - 2026-02-04

### Changed

- **BREAKING:** コードベース全体で `workflow` / `step` 用語へ統一
  - 全 CLI コマンド、設定ファイル、ドキュメントで `workflow` 用語を使用
  - `workflow_categories` を設定ファイルで使用
  - `enable_builtin_workflows` を設定ファイルで使用
  - `~/.takt/workflows/` をユーザーワークフローディレクトリとして使用
  - `.takt/workflows/` をプロジェクトワークフローディレクトリとして使用
  - 旧実装名ベースのファイル名・型を `workflow` / `step` 系へ統一
  - 全ドキュメントを更新（README.md, CLAUDE.md, docs/*）

### Internal

- ディレクトリ構造を全面リファクタリング:
  - `src/core/workflow/` をコア実装の配置先に統一
  - `src/features/workflowSelection/` を選択機能の配置先に統一
- ファイル名変更:
  - `workflow-types.ts` へ統一
  - `workflowExecution.ts` へ統一
  - `workflowLoader.ts` へ統一
  - `workflowParser.ts` へ統一
  - `workflowResolver.ts` へ統一
  - `workflowCategories.ts` へ統一
  - `switchWorkflow.ts` へ統一
- 全テストファイルを新用語に対応（194ファイル変更、約3,400行の追加・削除）
- リソースディレクトリを更新:
  - `resources/global/*/workflows/*.yaml` を新用語で更新
  - 全プロンプトファイル（`*.md`）を更新
  - 設定ファイル（`config.yaml`, `default-categories.yaml`）を更新

## [0.4.1] - 2026-02-04

### Fixed

- 前のステップのレスポンスが後続ステップに誤ってバインドされるワークフロー実行バグを修正
  - ステップ実行器、`ParallelRunner`、`state-manager` を修正してステップ間のレスポンスを適切に分離
  - インタラクティブサマリープロンプトを更新してレスポンスの漏えいを防止

## [0.4.0] - 2026-02-04

### Added

- プロンプトの外部化: 内部プロンプトをすべてバージョン管理可能・翻訳可能なファイルに移行（`src/shared/prompts/en/`, `src/shared/prompts/ja/`）
- i18n ラベルシステム: UI ラベルを別ファイルに抽出（`labels_en.yaml`, `labels_ja.yaml`）し `src/shared/i18n/` モジュールを追加
- プロンプトプレビュー機能（`src/features/prompt/preview.ts`）
- ワークフローのフェーズ認識を改善するためのフェーズシステムをエージェントに注入
- 新しいデバッグログビューア（`tools/debug-log-viewer.html`）によるデバッグ機能の強化
- 包括的なテストカバレッジ:
  - i18n システムテスト（`i18n.test.ts`）
  - プロンプトシステムテスト（`prompts.test.ts`）
  - セッション管理テスト（`session.test.ts`）
  - Worktree 統合テスト（`it-worktree-delete.test.ts`, `it-worktree-sessions.test.ts`）

### Changed

- **BREAKING:** 内部用語を現行の workflow / step 系名称へ統一
- **BREAKING:** 不要な後方互換コードを削除
- **BREAKING:** インタラクティブプロンプトオーバーライド機能を無効化
- ワークフローリソースディレクトリを現行の `resources/global/*/workflows/` に統一
- 可読性・保守性向上のためプロンプトを再構成
- 会話フローからタスク要件の不要なサマリー化を削除
- ワークフロー実行中の不要なレポート出力を抑制

### Fixed

- worktree 操作に関する `takt worktree` バグを修正

### Internal

- `src/shared/prompts/index.ts` にプロンプト管理を抽出（言語認識ファイルロード）
- `src/shared/i18n/index.ts` でラベル管理を一元化
- `tools/jsonl-viewer.html` に機能を追加
- 162ファイルにわたる大規模リファクタリング（約5,800行追加、約2,900行削除）

## [0.3.9] - 2026-02-03

### Added

- ワークフローカテゴリ化のサポート (#85)
  - `resources/global/{lang}/default-categories.yaml` にデフォルトカテゴリ設定を追加
  - `~/.takt/config.yaml` の `workflow_categories` でユーザー定義カテゴリを設定可能に
  - 無制限の深さでネストしたカテゴリをサポート
  - ワークフロー選択 UI でカテゴリベースのフィルタリングに対応
  - `show_others_category` と `others_category_name` の設定オプションを追加
  - `builtin_workflows_enabled` と `disabled_builtins` でビルトインワークフローのフィルタリングに対応
- エージェントなしのステップ実行: `agent` フィールドをオプションに (#71)
  - `instruction_template` のみでステップを実行可能（システムプロンプトなし）
  - インラインシステムプロンプトをサポート（ファイルが存在しない場合は agent 文字列をプロンプトとして使用）
- `takt add #N` がブランチ名に Issue 番号を自動反映 (#78)
  - Issue 番号をブランチ名に埋め込み（例: `takt/issue-28-...`）

### Changed

- **BREAKING:** パーミッションモード値をプロバイダー非依存形式に統一 (#87)
  - 新しい値: `readonly`, `edit`, `full`（`default`, `acceptEdits`, `bypassPermissions` を置き換え）
  - TAKT がプロバイダー固有のフラグに変換（Claude: default/acceptEdits/bypassPermissions、Codex: read-only/workspace-write/danger-full-access）
  - 全ビルトインワークフローを新しい値に更新
- ワークフロー名の変更:
  - `simple` ワークフローを `minimal` と `review-fix-minimal` に置き換え
  - 読み取り専用コードレビュー向けに `review-only` ワークフローを追加
- エージェントプロンプトを更新: レガシー対応禁止ルールを追加（後方互換ハックの禁止）
- ドキュメントの更新:
  - README.md と docs/README.ja.md を v0.3.8+ の機能で更新
  - CLAUDE.md をアーキテクチャの詳細と実装メモで大幅に拡充

### Internal

- カテゴリ管理のための `src/infra/config/loaders/workflowCategories.ts` を作成
- ワークフロー選択 UI のための `src/features/workflowSelection/index.ts` を作成
- カテゴリ表示サポートのため `src/shared/prompt/select.ts` を拡張
- ワークフローカテゴリの包括的なテストを追加（`workflow-categories.test.ts`, `workflow-category-config.test.ts`）

## [0.3.8] - 2026-02-02

### Added

- ワークフロー/設定ファイルパスを指定する CLI オプションを追加: `--workflow <path>` と `--config <path>` (#81)
- CI フレンドリーなクワイエットモードによる最小限のログ出力 (#70)
- ワークフロー実行テスト用のモックシナリオサポート
- 包括的な統合テスト（7テストファイル、約3000行のテストカバレッジ）

### Changed

- ルール評価の改善: `detectRuleIndex` が最初のマッチではなく最後のマッチを使用するよう変更 (#25)
- `ai_fix` ステップを大幅に改善:
  - リトライ試行回数を表示する `{step_iteration}` カウンターを追加
  - 明示的な修正手順を定義（Read → Grep → Edit → Test → Report）
  - coder エージェントがレビュアーのフィードバックを仮定より優先するよう変更
- README とドキュメントを更新: CLI 使用法と CI/CD の例を明確化

### Fixed

- ワークフローのロード優先順位を修正（ユーザーワークフローがビルトインより優先されるよう変更）
- テストの安定性を改善（不安定なテストをスキップ、ai_fix テストを更新）
- Slack 通知設定を修正

### Internal

- インストラクションビルダーをリファクタリング: コンテキスト組み立てとステータスルールロジックを抽出 (#44)
- DRY な git コミット操作のために `src/infra/task/git.ts` を導入
- `getErrorMessage()` によるエラーハンドリングの統一
- コードベース全体で `projectCwd` を必須化
- 非推奨の `sacrificeMode` を削除
- 一貫性のため 35 ファイルを更新（`console.log` → `blankLine()` 等）

## [0.3.7] - 2026-02-01

### Added

- パイプライン/非インタラクティブモード実行のための `--pipeline` フラグを追加 (#28)
- パイプラインモードで `--task` と `--issue` オプションの両方を使用可能に

### Changed

- ログファイルの命名を base36 から人間が読める `YYYYMMDD-HHmmss-random` 形式に変更 (#28)
- `--task` オプションの説明を更新: GitHub Issue の代替であることを明確化

## [0.3.6] - 2026-01-31

### Fixed

- `ai_review` ワークフローステップに `pass_previous_request` 設定が正しく含まれていない問題を修正

## [0.3.5] - 2026-01-31

### Added

- worktree の確認プロンプトをスキップする `--create-worktree <yes|no>` オプションを追加

### Fixed

- 各種 CI/CD の改善と修正 (#66, #67, #68, #69)

## [0.3.4] - 2026-01-31

### Added

- 変更なしのコードレビュー向けレビューオンリーワークフローを追加 (#60)
- 各種バグ修正と改善 (#14, #23, #35, #38, #45, #50, #51, #52, #59)

## [0.3.3] - 2026-01-31

### Fixed

- `takt add #N` がIssue内容をAI要約に通してしまい、タスク内容が壊れる問題を修正 (#46)
  - Issue参照時は `resolveIssueTask` の結果をそのままタスクとして使用するように変更

## [0.3.1] - 2026-01-31

### Added

- インタラクティブタスク計画モード: `takt`（引数なし）が実行前に AI との会話でタスク要件を整理 (#47, #5)
  - takt 再起動をまたいだセッション継続
  - コードベース調査のための読み取り専用ツール（Read, Glob, Grep, Bash, WebSearch, WebFetch）
  - 会話中のコード変更を防止するプランニング専用システムプロンプト
  - 確認して実行する `/go`、終了する `/cancel`
- レビュアー/スーパーバイザーのエージェントテンプレートに Boy Scout Rule の徹底を追加

### Changed

- CLI をスラッシュコマンド（`takt /run-tasks`）からサブコマンド（`takt run`）に移行 (#47)
- `/help` と `/refresh-builtin` コマンドを削除、`eject` を簡素化
- SDK オプションビルダーが定義済みの値のみを含むよう変更（ハング防止）

### Fixed

- `model: undefined` などの undefined オプションをキーとして渡した際に Claude Agent SDK がハングする問題を修正

## [0.3.0] - 2026-01-30

### Added

- ルールベースのワークフロー遷移と5段階フォールバック評価 (#30)
  - タグベースの条件: エージェントが出力する `[STEP:N]` タグをインデックスでマッチング
  - `ai()` 条件: エージェント出力に対してフリーテキストの条件を AI が評価 (#9)
  - 並列ステップ結果を集約する `all()`/`any()` 条件 (#20)
  - 5段階の評価順序: aggregate → Phase 3 tag → Phase 1 tag → AI judge → AI fallback
- 3フェーズのステップ実行モデル (#33)
  - Phase 1: メイン作業（コーディング、レビュー等）
  - Phase 2: レポート出力（`step.report` が定義されている場合）
  - Phase 3: ステータス判定（タグベースのルールが存在する場合）
  - コンテキスト継続のためフェーズをまたいでセッションを再開
- `Promise.all()` による並列サブステップの同時実行 (#20)
- GitHub Issue 統合: Issue 番号でタスクを実行・追加（例: `takt #6`）(#10, #34)
- リアルタイムストリーミング書き込みによる NDJSON セッションログ (#27, #36)
- ビルトインリソースを npm パッケージに内包し、カスタマイズ用の `/eject` コマンドを追加 (#4, #40)
- ステップごとのファイル編集制御のための `edit` プロパティ
- ルールマッチング方法の可視化とログ記録
- YAML の `report.format` からレポート出力を自動生成
- ビルトインワークフローでの並列レビューと仕様適合チェックをサポート (#31)
- WorkflowEngine モックの統合テスト (#17, #41)

### Changed

- レポートフォーマットを自動生成に統一: レポートの手動 `order`/`instruction_template` を削除
- `gitdiff` レポートタイプを削除し、フォーマットベースのレポートに移行

### Fixed

- レポートディレクトリに `.takt/reports/` プレフィックスが正しく含まれるよう修正 (#37, #42)
- eject.ts の未使用インポートを削除 (#43)

## [0.2.3] - 2026-01-29

### Added

- ブランチ管理のための `/list-tasks` コマンドを追加（マージ試行、マージ＆クリーンアップ、削除）

### Changed

- Claude Code SDK がメインリポジトリに遡らないよう、分離実行を `git worktree` から `git clone --shared` に移行
- クローンのライフサイクル変更: タスク完了後の自動削除を廃止。クリーンアップには `/list-tasks` を使用
- `worktree.ts` を `clone.ts` と `branchReview.ts` に分割
- SDK の遡りを防ぐためクローンから origin リモートを削除
- 全ワークフローのレポートステップに Write パーミッションを付与
- `git clone --shared` を `--reference --dissociate` に変更

### Fixed

- バージョンをハードコードの `0.1.0` ではなく `package.json` から読み込むよう修正 (#3)

## [0.2.2] - 2026-01-29

### Added

- タスクブランチへの指示実行のための `/review` インストラクトアクションを追加
- ブランチ名用の英語スラッグへの AI によるタスク名サマリー化
- Worktree のセッション継承
- 実行ルールのメタデータ（git コミット禁止、cd 禁止）

### Changed

- ステータス出力ルールのヘッダーを自動生成
- インストラクションに worktree の変更コンテキストを自動包含
- マージ試行をスカッシュマージに変更
- `expert-review` を `expert-cqrs` に改名、共通レビュアーを `expert/` に統合

### Fixed

- 異常終了時にタスクが誤って `completed` に遷移する問題を修正

## [0.2.1] - 2026-01-28

### Added

- 言語設定（`ja`/`en`）を追加
- `/add-task` での複数行入力をサポート
- `/review-tasks` コマンドを追加
- 数値入力から矢印キーによるカーソルベースのメニュー選択に変更
- `answer` ステータス、`autoCommit`、`permission_mode`、詳細ログオプションを追加

### Fixed

- 複数の worktree 関連バグを修正（ディレクトリ解決、セッション処理、作成フロー）
- ESC キーでワークフロー/タスク選択をキャンセル可能に

## [0.2.0] - 2026-01-27

### Added

- `.takt/tasks/` からのタスクをファイルシステムポーリングで自動実行する `/watch` コマンドを追加
- ビルトインリソース更新のための `/refresh-builtin` コマンドを追加
- インタラクティブなタスク作成のための `/add-task` コマンドを追加
- デフォルトワークフローを強化

## [0.1.7] - 2026-01-27

### Added

- ワークフロー検証のためのスキーマパーミッションサポートを追加

## [0.1.6] - 2026-01-27

### Added

- テスト用のモック実行モードを追加

### Changed

- `-r` オプションを省略、デフォルトを会話継続モードに変更

## [0.1.5] - 2026-01-27

### Added

- 合計実行時間の出力を追加

### Fixed

- ワークフローが実行中に意図せず停止する問題を修正

## [0.1.4] - 2026-01-27

### Changed

- ワークフロープロンプトを強化
- 遷移プロンプトをワークフロー定義に統合

## [0.1.3] - 2026-01-26

### Fixed

- イテレーションが停滞する問題を修正

## [0.1.2] - 2026-01-26

### Added

- Codex プロバイダーのサポートを追加
- ステップ/エージェントごとのモデル選択
- パーミッションモード設定
- 分離タスク実行のための Worktree サポート
- プロジェクト `.gitignore` の初期化

### Changed

- エージェントプロンプトを改善

## [0.1.1] - 2026-01-25

### Added

- npm 公開のための GitHub Actions ワークフローを追加

### Changed

- インタラクティブモードを削除、CLI を簡素化
