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/).
## [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
### Added

View File

@ -229,7 +229,7 @@ steps:
provider: codex # claude|codex (optional)
model: opus # Model name (optional)
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: |
Custom instructions for this step.
{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`
- 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`)
- `edit`: Allow file edits with confirmation (Claude: `acceptEdits`, Codex: `workspace-write`)
- `full`: Bypass all permission checks (Claude: `bypassPermissions`, Codex: `danger-full-access`)
- Specified at step level (`permission_mode` field) or global config
- **v0.3.8+:** Permission mode values are unified across providers; TAKT translates to provider-specific flags
- Legacy values (`default`, `acceptEdits`, `bypassPermissions`) are **no longer supported**
- Resolved via `provider_profiles` (global/project config) with `required_permission_mode` as minimum floor
- Movement-level `required_permission_mode` sets the minimum; `provider_profiles` defaults/overrides can raise it

View File

@ -366,7 +366,7 @@ movements:
policy: coding
knowledge: architecture
edit: true
permission_mode: edit
required_permission_mode: edit
rules:
- condition: Implementation complete
next: review
@ -590,6 +590,16 @@ interactive_preview_movements: 3 # Movement previews in interactive mode (0-10,
# coder: codex # Run coder on Codex
# 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)
# 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)
@ -739,7 +749,7 @@ movements:
- name: implement
persona: coder
edit: true
permission_mode: edit
required_permission_mode: edit
pass_previous_response: true
rules:
- 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.) |
| `provider` | - | Override provider for this movement (`claude`, `codex`, or `opencode`) |
| `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`) |
| `output_contracts` | - | Output contract definitions for report files |
| `quality_gates` | - | AI directives for movement completion requirements |

View File

@ -366,7 +366,7 @@ movements:
policy: coding
knowledge: architecture
edit: true
permission_mode: edit
required_permission_mode: edit
rules:
- condition: 実装完了
next: review
@ -590,6 +590,16 @@ interactive_preview_movements: 3 # 対話モードでのムーブメントプ
# coder: codex # coder を Codex で実行
# 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 設定(オプション)
# 環境変数 TAKT_ANTHROPIC_API_KEY / TAKT_OPENAI_API_KEY / TAKT_OPENCODE_API_KEY で上書き可能
anthropic_api_key: sk-ant-... # Claude (Anthropic) を使う場合
@ -739,7 +749,7 @@ movements:
- name: implement
persona: coder
edit: true
permission_mode: edit
required_permission_mode: edit
pass_previous_response: true
rules:
- condition: 完了
@ -808,7 +818,7 @@ rules:
| `allowed_tools` | - | エージェントが使用できるツール一覧Read, Glob, Grep, Edit, Write, Bash等 |
| `provider` | - | このムーブメントのプロバイダーを上書き(`claude``codex`、または`opencode` |
| `model` | - | このムーブメントのモデルを上書き |
| `permission_mode` | - | パーミッションモード: `readonly``edit``full`プロバイダー非依存 |
| `required_permission_mode` | - | 必要最小パーミッションモード: `readonly``edit``full`下限として機能; 実際のモードは `provider_profiles` で解決 |
| `provider_options` | - | プロバイダー固有オプション(例: `codex.network_access``opencode.network_access` |
| `output_contracts` | - | レポートファイルの出力契約定義 |
| `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.) |
| `provider` | - | Override provider for this step (`claude` or `codex`) |
| `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 |
## Examples
@ -176,7 +176,7 @@ steps:
- name: implement
agent: ../agents/default/coder.md
edit: true
permission_mode: acceptEdits
required_permission_mode: edit
allowed_tools: [Read, Glob, Grep, Edit, Write, Bash, WebSearch, WebFetch]
rules:
- condition: Implementation complete
@ -197,7 +197,7 @@ steps:
- name: implement
agent: ../agents/default/coder.md
edit: true
permission_mode: acceptEdits
required_permission_mode: edit
allowed_tools: [Read, Glob, Grep, Edit, Write, Bash, WebSearch, WebFetch]
rules:
- condition: Implementation complete
@ -238,7 +238,7 @@ steps:
agent: ../agents/default/coder.md
edit: true
pass_previous_response: true
permission_mode: acceptEdits
required_permission_mode: edit
allowed_tools: [Read, Glob, Grep, Edit, Write, Bash, WebSearch, WebFetch]
rules:
- condition: Implementation complete

4
package-lock.json generated
View File

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

View File

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