Release v0.16.0

This commit is contained in:
nrslib 2026-02-15 07:10:44 +09:00
parent ef97834fc9
commit def5f27309
7 changed files with 53 additions and 18 deletions

View File

@ -4,6 +4,22 @@ 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.16.0] - 2026-02-15
### Added
- **プロバイダー別パーミッションプロファイル(`provider_profiles`**: グローバル設定(`~/.takt/config.yaml`)およびプロジェクト設定(`.takt/config.yaml`)でプロバイダーごとのデフォルトパーミッションモードとムーブメント単位のオーバーライドを定義可能に — 5段階の優先順位解決project override → global override → project default → global default → `required_permission_mode` 下限補正)
### Changed
- **BREAKING: `permission_mode` → `required_permission_mode`**: ムーブメントの `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 ## [0.15.0] - 2026-02-15
### Added ### Added

View File

@ -229,7 +229,7 @@ steps:
provider: codex # claude|codex (optional) provider: codex # claude|codex (optional)
model: opus # Model name (optional) model: opus # Model name (optional)
edit: true # Whether step can edit files edit: true # Whether step can edit files
permission_mode: acceptEdits # Tool permission mode (optional) required_permission_mode: edit # Required minimum permission mode (optional)
instruction_template: | instruction_template: |
Custom instructions for this step. Custom instructions for this step.
{task}, {previous_response} are auto-injected if not present as placeholders. {task}, {previous_response} are auto-injected if not present as placeholders.
@ -500,10 +500,9 @@ Debug logs are written to `.takt/logs/debug.log` (ndjson format). Log levels: `d
- Claude supports aliases: `opus`, `sonnet`, `haiku` - Claude supports aliases: `opus`, `sonnet`, `haiku`
- Codex defaults to `codex` if model not specified - Codex defaults to `codex` if model not specified
**Permission modes (v0.3.8+: provider-independent values):** **Permission modes (provider-independent values):**
- `readonly`: Read-only access, no file modifications (Claude: `default`, Codex: `read-only`) - `readonly`: Read-only access, no file modifications (Claude: `default`, Codex: `read-only`)
- `edit`: Allow file edits with confirmation (Claude: `acceptEdits`, Codex: `workspace-write`) - `edit`: Allow file edits with confirmation (Claude: `acceptEdits`, Codex: `workspace-write`)
- `full`: Bypass all permission checks (Claude: `bypassPermissions`, Codex: `danger-full-access`) - `full`: Bypass all permission checks (Claude: `bypassPermissions`, Codex: `danger-full-access`)
- Specified at step level (`permission_mode` field) or global config - Resolved via `provider_profiles` (global/project config) with `required_permission_mode` as minimum floor
- **v0.3.8+:** Permission mode values are unified across providers; TAKT translates to provider-specific flags - Movement-level `required_permission_mode` sets the minimum; `provider_profiles` defaults/overrides can raise it
- Legacy values (`default`, `acceptEdits`, `bypassPermissions`) are **no longer supported**

View File

@ -366,7 +366,7 @@ movements:
policy: coding policy: coding
knowledge: architecture knowledge: architecture
edit: true edit: true
permission_mode: edit required_permission_mode: edit
rules: rules:
- condition: Implementation complete - condition: Implementation complete
next: review next: review
@ -590,6 +590,16 @@ interactive_preview_movements: 3 # Movement previews in interactive mode (0-10,
# coder: codex # Run coder on Codex # coder: codex # Run coder on Codex
# ai-antipattern-reviewer: claude # Keep reviewers on Claude # ai-antipattern-reviewer: claude # Keep reviewers on Claude
# Provider-specific permission profiles (optional)
# Priority: project override → global override → project default → global default → required_permission_mode (floor)
# provider_profiles:
# codex:
# default_permission_mode: full
# movement_permission_overrides:
# ai_review: readonly
# claude:
# default_permission_mode: edit
# API Key configuration (optional) # API Key configuration (optional)
# Can be overridden by environment variables TAKT_ANTHROPIC_API_KEY / TAKT_OPENAI_API_KEY / TAKT_OPENCODE_API_KEY # Can be overridden by environment variables TAKT_ANTHROPIC_API_KEY / TAKT_OPENAI_API_KEY / TAKT_OPENCODE_API_KEY
anthropic_api_key: sk-ant-... # For Claude (Anthropic) anthropic_api_key: sk-ant-... # For Claude (Anthropic)
@ -739,7 +749,7 @@ movements:
- name: implement - name: implement
persona: coder persona: coder
edit: true edit: true
permission_mode: edit required_permission_mode: edit
pass_previous_response: true pass_previous_response: true
rules: rules:
- condition: Complete - condition: Complete
@ -808,7 +818,7 @@ Special `next` values: `COMPLETE` (success), `ABORT` (failure)
| `allowed_tools` | - | List of tools agent can use (Read, Glob, Grep, Edit, Write, Bash, etc.) | | `allowed_tools` | - | List of tools agent can use (Read, Glob, Grep, Edit, Write, Bash, etc.) |
| `provider` | - | Override provider for this movement (`claude`, `codex`, or `opencode`) | | `provider` | - | Override provider for this movement (`claude`, `codex`, or `opencode`) |
| `model` | - | Override model for this movement | | `model` | - | Override model for this movement |
| `permission_mode` | - | Permission mode: `readonly`, `edit`, `full` (provider-independent) | | `required_permission_mode` | - | Required minimum permission mode: `readonly`, `edit`, `full` (acts as floor; actual mode resolved via `provider_profiles`) |
| `provider_options` | - | Provider-specific options (e.g. `codex.network_access`, `opencode.network_access`) | | `provider_options` | - | Provider-specific options (e.g. `codex.network_access`, `opencode.network_access`) |
| `output_contracts` | - | Output contract definitions for report files | | `output_contracts` | - | Output contract definitions for report files |
| `quality_gates` | - | AI directives for movement completion requirements | | `quality_gates` | - | AI directives for movement completion requirements |

View File

@ -366,7 +366,7 @@ movements:
policy: coding policy: coding
knowledge: architecture knowledge: architecture
edit: true edit: true
permission_mode: edit required_permission_mode: edit
rules: rules:
- condition: 実装完了 - condition: 実装完了
next: review next: review
@ -590,6 +590,16 @@ interactive_preview_movements: 3 # 対話モードでのムーブメントプ
# coder: codex # coder を Codex で実行 # coder: codex # coder を Codex で実行
# ai-antipattern-reviewer: claude # レビュアーは Claude のまま # ai-antipattern-reviewer: claude # レビュアーは Claude のまま
# プロバイダー別パーミッションプロファイル(オプション)
# 優先順: project override → global override → project default → global default → required_permission_mode下限
# provider_profiles:
# codex:
# default_permission_mode: full
# movement_permission_overrides:
# ai_review: readonly
# claude:
# default_permission_mode: edit
# API Key 設定(オプション) # API Key 設定(オプション)
# 環境変数 TAKT_ANTHROPIC_API_KEY / TAKT_OPENAI_API_KEY / TAKT_OPENCODE_API_KEY で上書き可能 # 環境変数 TAKT_ANTHROPIC_API_KEY / TAKT_OPENAI_API_KEY / TAKT_OPENCODE_API_KEY で上書き可能
anthropic_api_key: sk-ant-... # Claude (Anthropic) を使う場合 anthropic_api_key: sk-ant-... # Claude (Anthropic) を使う場合
@ -739,7 +749,7 @@ movements:
- name: implement - name: implement
persona: coder persona: coder
edit: true edit: true
permission_mode: edit required_permission_mode: edit
pass_previous_response: true pass_previous_response: true
rules: rules:
- condition: 完了 - condition: 完了
@ -808,7 +818,7 @@ rules:
| `allowed_tools` | - | エージェントが使用できるツール一覧Read, Glob, Grep, Edit, Write, Bash等 | | `allowed_tools` | - | エージェントが使用できるツール一覧Read, Glob, Grep, Edit, Write, Bash等 |
| `provider` | - | このムーブメントのプロバイダーを上書き(`claude``codex`、または`opencode` | | `provider` | - | このムーブメントのプロバイダーを上書き(`claude``codex`、または`opencode` |
| `model` | - | このムーブメントのモデルを上書き | | `model` | - | このムーブメントのモデルを上書き |
| `permission_mode` | - | パーミッションモード: `readonly``edit``full`プロバイダー非依存 | | `required_permission_mode` | - | 必要最小パーミッションモード: `readonly``edit``full`下限として機能; 実際のモードは `provider_profiles` で解決 |
| `provider_options` | - | プロバイダー固有オプション(例: `codex.network_access``opencode.network_access` | | `provider_options` | - | プロバイダー固有オプション(例: `codex.network_access``opencode.network_access` |
| `output_contracts` | - | レポートファイルの出力契約定義 | | `output_contracts` | - | レポートファイルの出力契約定義 |
| `quality_gates` | - | ムーブメント完了要件のAIディレクティブ | | `quality_gates` | - | ムーブメント完了要件のAIディレクティブ |

View File

@ -161,7 +161,7 @@ report:
| `allowed_tools` | - | List of tools the agent can use (Read, Glob, Grep, Edit, Write, Bash, etc.) | | `allowed_tools` | - | List of tools the agent can use (Read, Glob, Grep, Edit, Write, Bash, etc.) |
| `provider` | - | Override provider for this step (`claude` or `codex`) | | `provider` | - | Override provider for this step (`claude` or `codex`) |
| `model` | - | Override model for this step | | `model` | - | Override model for this step |
| `permission_mode` | `default` | Permission mode: `default`, `acceptEdits`, or `bypassPermissions` | | `required_permission_mode` | - | Required minimum permission mode: `readonly`, `edit`, or `full` (provider-independent) |
| `report` | - | Report file configuration (name, format) for auto-generated reports | | `report` | - | Report file configuration (name, format) for auto-generated reports |
## Examples ## Examples
@ -176,7 +176,7 @@ steps:
- name: implement - name: implement
agent: ../agents/default/coder.md agent: ../agents/default/coder.md
edit: true edit: true
permission_mode: acceptEdits required_permission_mode: edit
allowed_tools: [Read, Glob, Grep, Edit, Write, Bash, WebSearch, WebFetch] allowed_tools: [Read, Glob, Grep, Edit, Write, Bash, WebSearch, WebFetch]
rules: rules:
- condition: Implementation complete - condition: Implementation complete
@ -197,7 +197,7 @@ steps:
- name: implement - name: implement
agent: ../agents/default/coder.md agent: ../agents/default/coder.md
edit: true edit: true
permission_mode: acceptEdits required_permission_mode: edit
allowed_tools: [Read, Glob, Grep, Edit, Write, Bash, WebSearch, WebFetch] allowed_tools: [Read, Glob, Grep, Edit, Write, Bash, WebSearch, WebFetch]
rules: rules:
- condition: Implementation complete - condition: Implementation complete
@ -238,7 +238,7 @@ steps:
agent: ../agents/default/coder.md agent: ../agents/default/coder.md
edit: true edit: true
pass_previous_response: true pass_previous_response: true
permission_mode: acceptEdits required_permission_mode: edit
allowed_tools: [Read, Glob, Grep, Edit, Write, Bash, WebSearch, WebFetch] allowed_tools: [Read, Glob, Grep, Edit, Write, Bash, WebSearch, WebFetch]
rules: rules:
- condition: Implementation complete - condition: Implementation complete

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{ {
"name": "takt", "name": "takt",
"version": "0.15.0", "version": "0.16.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "takt", "name": "takt",
"version": "0.15.0", "version": "0.16.0",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@anthropic-ai/claude-agent-sdk": "^0.2.37", "@anthropic-ai/claude-agent-sdk": "^0.2.37",

View File

@ -1,6 +1,6 @@
{ {
"name": "takt", "name": "takt",
"version": "0.15.0", "version": "0.16.0",
"description": "TAKT: TAKT Agent Koordination Topology - AI Agent Piece Orchestration", "description": "TAKT: TAKT Agent Koordination Topology - AI Agent Piece Orchestration",
"main": "dist/index.js", "main": "dist/index.js",
"types": "dist/index.d.ts", "types": "dist/index.d.ts",