[#320] move-allowed-tools-claude (#469)

* takt: move-allowed-tools-claude

* fix: E2Eフィクスチャの allowed_tools を provider_options.claude に移行

PR #469 で allowed_tools がムーブメント直下から provider_options.claude.allowed_tools に
移動されたが、E2Eフィクスチャとインラインピース定義が旧形式のままだった。
This commit is contained in:
nrs 2026-03-05 11:27:48 +09:00 committed by GitHub
parent 2ce51affd1
commit 2f268f6d43
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
95 changed files with 5195 additions and 3847 deletions

View File

@ -30,6 +30,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -60,6 +62,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -94,6 +98,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -117,6 +123,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -157,6 +165,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -182,6 +192,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -211,6 +223,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -241,6 +255,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -26,6 +26,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -53,6 +55,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -75,6 +79,8 @@ movements:
knowledge: knowledge:
- cqrs-es - cqrs-es
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -95,6 +101,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -116,6 +124,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -148,6 +158,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -170,6 +182,8 @@ movements:
edit: false edit: false
persona: dual-supervisor persona: dual-supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -202,6 +216,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -13,6 +13,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -40,6 +42,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -62,6 +66,8 @@ movements:
knowledge: knowledge:
- cqrs-es - cqrs-es
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -82,6 +88,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -103,6 +111,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -128,6 +138,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -29,6 +29,8 @@ movements:
- backend - backend
- cqrs-es - cqrs-es
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -58,6 +60,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -91,6 +95,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -119,6 +125,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -141,6 +149,8 @@ movements:
edit: false edit: false
persona: architecture-reviewer persona: architecture-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -160,6 +170,8 @@ movements:
knowledge: knowledge:
- cqrs-es - cqrs-es
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -179,6 +191,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -199,6 +213,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -229,6 +245,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -250,6 +268,8 @@ movements:
edit: false edit: false
persona: dual-supervisor persona: dual-supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -281,6 +301,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -29,6 +29,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -58,6 +60,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -92,6 +96,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -114,6 +120,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -153,6 +161,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -177,6 +187,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -205,6 +217,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -234,6 +248,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -26,6 +26,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -53,6 +55,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -73,6 +77,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -94,6 +100,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -125,6 +133,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -147,6 +157,8 @@ movements:
edit: false edit: false
persona: dual-supervisor persona: dual-supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -178,6 +190,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -13,6 +13,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -40,6 +42,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -60,6 +64,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -81,6 +87,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -106,6 +114,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -28,6 +28,8 @@ movements:
knowledge: knowledge:
- backend - backend
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -56,6 +58,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -89,6 +93,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -116,6 +122,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -138,6 +146,8 @@ movements:
edit: false edit: false
persona: architecture-reviewer persona: architecture-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -157,6 +167,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -176,6 +188,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -196,6 +210,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -225,6 +241,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -246,6 +264,8 @@ movements:
edit: false edit: false
persona: dual-supervisor persona: dual-supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -276,6 +296,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -17,6 +17,8 @@ movements:
provider: claude provider: claude
session: refresh session: refresh
knowledge: architecture knowledge: architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -56,6 +58,8 @@ movements:
provider: codex provider: codex
session: refresh session: refresh
knowledge: architecture knowledge: architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -95,6 +99,8 @@ movements:
- name: synthesize - name: synthesize
edit: false edit: false
persona: supervisor persona: supervisor
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -14,6 +14,8 @@ movements:
policy: research policy: research
knowledge: research knowledge: research
instruction: research-plan instruction: research-plan
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -43,6 +45,8 @@ movements:
- Grep - Grep
- WebSearch - WebSearch
- WebFetch - WebFetch
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Write - Write
@ -62,6 +66,8 @@ movements:
knowledge: research knowledge: research
instruction: research-analyze instruction: research-analyze
edit: true edit: true
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Write - Write
@ -79,6 +85,8 @@ movements:
policy: research policy: research
knowledge: research knowledge: research
instruction: research-supervise instruction: research-supervise
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -50,6 +50,8 @@ movements:
edit: false edit: false
persona: planner persona: planner
knowledge: architecture knowledge: architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -81,6 +83,8 @@ movements:
- testing - testing
knowledge: knowledge:
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -118,6 +122,8 @@ movements:
session: refresh session: refresh
knowledge: knowledge:
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -152,6 +158,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -177,6 +185,8 @@ movements:
session: refresh session: refresh
knowledge: knowledge:
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -203,6 +213,8 @@ movements:
persona: architecture-reviewer persona: architecture-reviewer
policy: review policy: review
knowledge: architecture knowledge: architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -221,6 +233,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -252,6 +266,8 @@ movements:
- testing - testing
knowledge: knowledge:
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -31,6 +31,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -62,6 +64,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -96,6 +100,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -120,6 +126,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -161,6 +169,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -187,6 +197,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -217,6 +229,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -248,6 +262,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -26,6 +26,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -54,6 +56,8 @@ movements:
- architecture - architecture
- frontend - frontend
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -76,6 +80,8 @@ movements:
knowledge: knowledge:
- cqrs-es - cqrs-es
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -96,6 +102,8 @@ movements:
persona: frontend-reviewer persona: frontend-reviewer
policy: review policy: review
knowledge: frontend knowledge: frontend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -116,6 +124,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -137,6 +147,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -170,6 +182,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -192,6 +206,8 @@ movements:
edit: false edit: false
persona: dual-supervisor persona: dual-supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -225,6 +241,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -13,6 +13,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -41,6 +43,8 @@ movements:
- architecture - architecture
- frontend - frontend
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -63,6 +67,8 @@ movements:
knowledge: knowledge:
- cqrs-es - cqrs-es
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -83,6 +89,8 @@ movements:
persona: frontend-reviewer persona: frontend-reviewer
policy: review policy: review
knowledge: frontend knowledge: frontend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -103,6 +111,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -124,6 +134,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -149,6 +161,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -42,6 +42,8 @@ movements:
- backend - backend
- cqrs-es - cqrs-es
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -72,6 +74,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -105,6 +109,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -134,6 +140,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -156,6 +164,8 @@ movements:
edit: false edit: false
persona: architecture-reviewer persona: architecture-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -175,6 +185,8 @@ movements:
knowledge: knowledge:
- cqrs-es - cqrs-es
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -194,6 +206,8 @@ movements:
persona: frontend-reviewer persona: frontend-reviewer
policy: review policy: review
knowledge: frontend knowledge: frontend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -213,6 +227,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -233,6 +249,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -264,6 +282,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -285,6 +305,8 @@ movements:
edit: false edit: false
persona: dual-supervisor persona: dual-supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -317,6 +339,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -30,6 +30,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -60,6 +62,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -94,6 +98,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -117,6 +123,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -157,6 +165,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -182,6 +192,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -211,6 +223,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -241,6 +255,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -26,6 +26,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -54,6 +56,8 @@ movements:
- architecture - architecture
- frontend - frontend
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -74,6 +78,8 @@ movements:
persona: frontend-reviewer persona: frontend-reviewer
policy: review policy: review
knowledge: frontend knowledge: frontend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -94,6 +100,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -115,6 +123,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -147,6 +157,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -169,6 +181,8 @@ movements:
edit: false edit: false
persona: dual-supervisor persona: dual-supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -201,6 +215,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -13,6 +13,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -41,6 +43,8 @@ movements:
- architecture - architecture
- frontend - frontend
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -61,6 +65,8 @@ movements:
persona: frontend-reviewer persona: frontend-reviewer
policy: review policy: review
knowledge: frontend knowledge: frontend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -81,6 +87,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -102,6 +110,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -127,6 +137,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -41,6 +41,8 @@ movements:
- frontend - frontend
- backend - backend
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -70,6 +72,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -103,6 +107,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -131,6 +137,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -153,6 +161,8 @@ movements:
edit: false edit: false
persona: architecture-reviewer persona: architecture-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -172,6 +182,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -191,6 +203,8 @@ movements:
persona: frontend-reviewer persona: frontend-reviewer
policy: review policy: review
knowledge: frontend knowledge: frontend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -210,6 +224,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -230,6 +246,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -260,6 +278,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -281,6 +301,8 @@ movements:
edit: false edit: false
persona: dual-supervisor persona: dual-supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -312,6 +334,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -41,6 +41,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -74,6 +76,8 @@ movements:
knowledge: knowledge:
- backend - backend
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -108,6 +112,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -134,6 +140,8 @@ movements:
knowledge: knowledge:
- backend - backend
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -157,6 +165,8 @@ movements:
edit: false edit: false
persona: architecture-reviewer persona: architecture-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -173,6 +183,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -199,6 +211,8 @@ movements:
knowledge: knowledge:
- backend - backend
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -220,6 +234,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -29,6 +29,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -58,6 +60,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -92,6 +96,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -114,6 +120,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -153,6 +161,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -177,6 +187,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -205,6 +217,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -234,6 +248,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -26,6 +26,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -53,6 +55,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- frontend - frontend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -73,6 +77,8 @@ movements:
persona: frontend-reviewer persona: frontend-reviewer
policy: review policy: review
knowledge: frontend knowledge: frontend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -93,6 +99,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -114,6 +122,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -145,6 +155,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -167,6 +179,8 @@ movements:
edit: false edit: false
persona: dual-supervisor persona: dual-supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -198,6 +212,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -13,6 +13,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -40,6 +42,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- frontend - frontend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -60,6 +64,8 @@ movements:
persona: frontend-reviewer persona: frontend-reviewer
policy: review policy: review
knowledge: frontend knowledge: frontend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -80,6 +86,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -101,6 +109,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -126,6 +136,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -28,6 +28,8 @@ movements:
knowledge: knowledge:
- frontend - frontend
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -56,6 +58,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -89,6 +93,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -116,6 +122,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -138,6 +146,8 @@ movements:
edit: false edit: false
persona: architecture-reviewer persona: architecture-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -157,6 +167,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- frontend - frontend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -176,6 +188,8 @@ movements:
persona: frontend-reviewer persona: frontend-reviewer
policy: review policy: review
knowledge: frontend knowledge: frontend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -195,6 +209,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -215,6 +231,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -244,6 +262,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -265,6 +285,8 @@ movements:
edit: false edit: false
persona: dual-supervisor persona: dual-supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -295,6 +317,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -2,6 +2,13 @@ name: magi
description: MAGI Deliberation System - Analyze from 3 perspectives and decide by majority description: MAGI Deliberation System - Analyze from 3 perspectives and decide by majority
piece_config: piece_config:
provider_options: provider_options:
claude:
allowed_tools:
- Read
- Glob
- Grep
- WebSearch
- WebFetch
codex: codex:
network_access: true network_access: true
opencode: opencode:
@ -11,12 +18,6 @@ initial_movement: melchior
movements: movements:
- name: melchior - name: melchior
persona: melchior persona: melchior
allowed_tools:
- Read
- Glob
- Grep
- WebSearch
- WebFetch
instruction_template: | instruction_template: |
# MAGI System Initiated # MAGI System Initiated
@ -47,12 +48,6 @@ movements:
next: balthasar next: balthasar
- name: balthasar - name: balthasar
persona: balthasar persona: balthasar
allowed_tools:
- Read
- Glob
- Grep
- WebSearch
- WebFetch
instruction_template: | instruction_template: |
# MAGI System Continuing # MAGI System Continuing
@ -87,12 +82,6 @@ movements:
next: casper next: casper
- name: casper - name: casper
persona: casper persona: casper
allowed_tools:
- Read
- Glob
- Grep
- WebSearch
- WebFetch
instruction_template: | instruction_template: |
# MAGI System Final Deliberation # MAGI System Final Deliberation

View File

@ -2,6 +2,13 @@ name: research
description: Research piece - autonomously executes research without asking questions description: Research piece - autonomously executes research without asking questions
piece_config: piece_config:
provider_options: provider_options:
claude:
allowed_tools:
- Read
- Glob
- Grep
- WebSearch
- WebFetch
codex: codex:
network_access: true network_access: true
opencode: opencode:
@ -14,12 +21,6 @@ movements:
policy: research policy: research
knowledge: research knowledge: research
instruction: research-plan instruction: research-plan
allowed_tools:
- Read
- Glob
- Grep
- WebSearch
- WebFetch
rules: rules:
- condition: Planning is complete - condition: Planning is complete
next: dig next: dig
@ -30,12 +31,6 @@ movements:
policy: research policy: research
knowledge: research knowledge: research
instruction: research-dig instruction: research-dig
allowed_tools:
- Read
- Glob
- Grep
- WebSearch
- WebFetch
rules: rules:
- condition: Research is complete - condition: Research is complete
next: supervise next: supervise
@ -46,12 +41,6 @@ movements:
policy: research policy: research
knowledge: research knowledge: research
instruction: research-supervise instruction: research-supervise
allowed_tools:
- Read
- Glob
- Grep
- WebSearch
- WebFetch
rules: rules:
- condition: Research results adequately answer the original request - condition: Research results adequately answer the original request
next: COMPLETE next: COMPLETE

View File

@ -26,6 +26,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -55,6 +57,8 @@ movements:
persona: architecture-reviewer persona: architecture-reviewer
policy: review policy: review
knowledge: architecture knowledge: architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -76,6 +80,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -98,6 +104,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -120,6 +128,8 @@ movements:
policy: policy:
- review - review
- testing - testing
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -140,6 +150,8 @@ movements:
edit: false edit: false
persona: requirements-reviewer persona: requirements-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -171,6 +183,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- security - security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -193,6 +207,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -223,6 +239,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- security - security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -13,6 +13,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -42,6 +44,8 @@ movements:
persona: architecture-reviewer persona: architecture-reviewer
policy: review policy: review
knowledge: architecture knowledge: architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -63,6 +67,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -85,6 +91,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -107,6 +115,8 @@ movements:
policy: policy:
- review - review
- testing - testing
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -127,6 +137,8 @@ movements:
edit: false edit: false
persona: requirements-reviewer persona: requirements-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -153,6 +165,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -26,6 +26,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -57,6 +59,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- takt - takt
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -78,6 +82,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -100,6 +106,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -122,6 +130,8 @@ movements:
policy: policy:
- review - review
- testing - testing
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -142,6 +152,8 @@ movements:
edit: false edit: false
persona: requirements-reviewer persona: requirements-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -174,6 +186,8 @@ movements:
- takt - takt
- architecture - architecture
- security - security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -196,6 +210,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -50,6 +50,8 @@ movements:
edit: false edit: false
persona: planner persona: planner
knowledge: architecture knowledge: architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -82,6 +84,8 @@ movements:
knowledge: knowledge:
- takt - takt
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -120,6 +124,8 @@ movements:
knowledge: knowledge:
- takt - takt
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -168,6 +174,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -194,6 +202,8 @@ movements:
knowledge: knowledge:
- takt - takt
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -217,6 +227,8 @@ movements:
edit: false edit: false
persona: architecture-reviewer persona: architecture-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -236,6 +248,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- takt - takt
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -256,6 +270,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -277,6 +293,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -298,6 +316,8 @@ movements:
policy: policy:
- review - review
- testing - testing
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -317,6 +337,8 @@ movements:
edit: false edit: false
persona: requirements-reviewer persona: requirements-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -346,6 +368,8 @@ movements:
knowledge: knowledge:
- takt - takt
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -367,6 +391,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -50,6 +50,8 @@ movements:
edit: false edit: false
persona: planner persona: planner
knowledge: architecture knowledge: architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -82,6 +84,8 @@ movements:
knowledge: knowledge:
- takt - takt
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -120,6 +124,8 @@ movements:
knowledge: knowledge:
- takt - takt
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -154,6 +160,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -180,6 +188,8 @@ movements:
knowledge: knowledge:
- takt - takt
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -203,6 +213,8 @@ movements:
edit: false edit: false
persona: architecture-reviewer persona: architecture-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -222,6 +234,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- takt - takt
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -242,6 +256,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -263,6 +279,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -284,6 +302,8 @@ movements:
policy: policy:
- review - review
- testing - testing
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -303,6 +323,8 @@ movements:
edit: false edit: false
persona: requirements-reviewer persona: requirements-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -332,6 +354,8 @@ movements:
knowledge: knowledge:
- takt - takt
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -353,6 +377,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -13,6 +13,8 @@ movements:
edit: false edit: false
persona: planner persona: planner
knowledge: terraform-aws knowledge: terraform-aws
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -38,6 +40,8 @@ movements:
policy: policy:
- terraform - terraform
knowledge: terraform-aws knowledge: terraform-aws
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -77,6 +81,8 @@ movements:
- review - review
- terraform - terraform
knowledge: terraform-aws knowledge: terraform-aws
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -98,6 +104,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -122,6 +130,8 @@ movements:
persona: supervisor persona: supervisor
policy: review policy: review
knowledge: terraform-aws knowledge: terraform-aws
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -156,6 +166,8 @@ movements:
policy: policy:
- terraform - terraform
knowledge: terraform-aws knowledge: terraform-aws
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -176,6 +188,8 @@ movements:
policy: policy:
- terraform - terraform
knowledge: terraform-aws knowledge: terraform-aws
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -200,6 +214,8 @@ movements:
policy: policy:
- terraform - terraform
knowledge: terraform-aws knowledge: terraform-aws
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -225,6 +241,8 @@ movements:
policy: policy:
- terraform - terraform
knowledge: terraform-aws knowledge: terraform-aws
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -41,6 +41,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -74,6 +76,8 @@ movements:
knowledge: knowledge:
- backend - backend
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -108,6 +112,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -134,6 +140,8 @@ movements:
knowledge: knowledge:
- backend - backend
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -157,6 +165,8 @@ movements:
edit: false edit: false
persona: architecture-reviewer persona: architecture-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -173,6 +183,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -199,6 +211,8 @@ movements:
knowledge: knowledge:
- backend - backend
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -220,6 +234,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -30,6 +30,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -60,6 +62,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -94,6 +98,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -117,6 +123,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -157,6 +165,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -182,6 +192,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -211,6 +223,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -241,6 +255,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -26,6 +26,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -53,6 +55,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -75,6 +79,8 @@ movements:
knowledge: knowledge:
- cqrs-es - cqrs-es
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -95,6 +101,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -116,6 +124,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -148,6 +158,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -170,6 +182,8 @@ movements:
edit: false edit: false
persona: dual-supervisor persona: dual-supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -202,6 +216,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -13,6 +13,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -40,6 +42,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -62,6 +66,8 @@ movements:
knowledge: knowledge:
- cqrs-es - cqrs-es
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -82,6 +88,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -103,6 +111,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -128,6 +138,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -29,6 +29,8 @@ movements:
- backend - backend
- cqrs-es - cqrs-es
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -58,6 +60,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -91,6 +95,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -119,6 +125,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -141,6 +149,8 @@ movements:
edit: false edit: false
persona: architecture-reviewer persona: architecture-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -160,6 +170,8 @@ movements:
knowledge: knowledge:
- cqrs-es - cqrs-es
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -179,6 +191,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -199,6 +213,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -229,6 +245,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -250,6 +268,8 @@ movements:
edit: false edit: false
persona: dual-supervisor persona: dual-supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -281,6 +301,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -29,6 +29,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -58,6 +60,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -92,6 +96,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -114,6 +120,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -153,6 +161,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -177,6 +187,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -205,6 +217,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -234,6 +248,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -26,6 +26,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -53,6 +55,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -73,6 +77,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -94,6 +100,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -125,6 +133,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -147,6 +157,8 @@ movements:
edit: false edit: false
persona: dual-supervisor persona: dual-supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -178,6 +190,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -13,6 +13,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -40,6 +42,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -60,6 +64,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -81,6 +87,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -106,6 +114,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -28,6 +28,8 @@ movements:
knowledge: knowledge:
- backend - backend
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -56,6 +58,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -89,6 +93,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -116,6 +122,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -138,6 +146,8 @@ movements:
edit: false edit: false
persona: architecture-reviewer persona: architecture-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -157,6 +167,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -176,6 +188,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -196,6 +210,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -225,6 +241,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -246,6 +264,8 @@ movements:
edit: false edit: false
persona: dual-supervisor persona: dual-supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -276,6 +296,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -16,6 +16,8 @@ movements:
persona: coder persona: coder
provider: claude provider: claude
knowledge: architecture knowledge: architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -54,6 +56,8 @@ movements:
persona: coder persona: coder
provider: codex provider: codex
knowledge: architecture knowledge: architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -93,6 +97,8 @@ movements:
- name: synthesize - name: synthesize
edit: false edit: false
persona: supervisor persona: supervisor
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -14,6 +14,8 @@ movements:
policy: research policy: research
knowledge: research knowledge: research
instruction: research-plan instruction: research-plan
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -43,6 +45,8 @@ movements:
- Grep - Grep
- WebSearch - WebSearch
- WebFetch - WebFetch
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Write - Write
@ -62,6 +66,8 @@ movements:
knowledge: research knowledge: research
instruction: research-analyze instruction: research-analyze
edit: true edit: true
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Write - Write
@ -79,6 +85,8 @@ movements:
policy: research policy: research
knowledge: research knowledge: research
instruction: research-supervise instruction: research-supervise
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -50,6 +50,8 @@ movements:
edit: false edit: false
persona: planner persona: planner
knowledge: architecture knowledge: architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -81,6 +83,8 @@ movements:
- testing - testing
knowledge: knowledge:
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -118,6 +122,8 @@ movements:
session: refresh session: refresh
knowledge: knowledge:
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -152,6 +158,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -177,6 +185,8 @@ movements:
session: refresh session: refresh
knowledge: knowledge:
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -203,6 +213,8 @@ movements:
persona: architecture-reviewer persona: architecture-reviewer
policy: review policy: review
knowledge: architecture knowledge: architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -221,6 +233,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -252,6 +266,8 @@ movements:
- testing - testing
knowledge: knowledge:
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -31,6 +31,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -62,6 +64,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -96,6 +100,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -120,6 +126,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -161,6 +169,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -187,6 +197,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -217,6 +229,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -248,6 +262,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -26,6 +26,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -54,6 +56,8 @@ movements:
- architecture - architecture
- frontend - frontend
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -76,6 +80,8 @@ movements:
knowledge: knowledge:
- cqrs-es - cqrs-es
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -96,6 +102,8 @@ movements:
persona: frontend-reviewer persona: frontend-reviewer
policy: review policy: review
knowledge: frontend knowledge: frontend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -116,6 +124,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -137,6 +147,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -170,6 +182,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -192,6 +206,8 @@ movements:
edit: false edit: false
persona: dual-supervisor persona: dual-supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -225,6 +241,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -13,6 +13,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -41,6 +43,8 @@ movements:
- architecture - architecture
- frontend - frontend
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -63,6 +67,8 @@ movements:
knowledge: knowledge:
- cqrs-es - cqrs-es
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -83,6 +89,8 @@ movements:
persona: frontend-reviewer persona: frontend-reviewer
policy: review policy: review
knowledge: frontend knowledge: frontend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -103,6 +111,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -124,6 +134,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -149,6 +161,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -42,6 +42,8 @@ movements:
- backend - backend
- cqrs-es - cqrs-es
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -72,6 +74,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -105,6 +109,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -134,6 +140,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -156,6 +164,8 @@ movements:
edit: false edit: false
persona: architecture-reviewer persona: architecture-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -175,6 +185,8 @@ movements:
knowledge: knowledge:
- cqrs-es - cqrs-es
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -194,6 +206,8 @@ movements:
persona: frontend-reviewer persona: frontend-reviewer
policy: review policy: review
knowledge: frontend knowledge: frontend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -213,6 +227,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -233,6 +249,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -264,6 +282,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -285,6 +305,8 @@ movements:
edit: false edit: false
persona: dual-supervisor persona: dual-supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -317,6 +339,8 @@ movements:
- cqrs-es - cqrs-es
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -30,6 +30,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -60,6 +62,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -94,6 +98,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -117,6 +123,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -157,6 +165,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -182,6 +192,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -211,6 +223,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -241,6 +255,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -26,6 +26,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -54,6 +56,8 @@ movements:
- architecture - architecture
- frontend - frontend
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -74,6 +78,8 @@ movements:
persona: frontend-reviewer persona: frontend-reviewer
policy: review policy: review
knowledge: frontend knowledge: frontend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -94,6 +100,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -115,6 +123,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -147,6 +157,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -169,6 +181,8 @@ movements:
edit: false edit: false
persona: dual-supervisor persona: dual-supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -201,6 +215,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -13,6 +13,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -41,6 +43,8 @@ movements:
- architecture - architecture
- frontend - frontend
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -61,6 +65,8 @@ movements:
persona: frontend-reviewer persona: frontend-reviewer
policy: review policy: review
knowledge: frontend knowledge: frontend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -81,6 +87,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -102,6 +110,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -127,6 +137,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -41,6 +41,8 @@ movements:
- frontend - frontend
- backend - backend
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -70,6 +72,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -103,6 +107,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -131,6 +137,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -153,6 +161,8 @@ movements:
edit: false edit: false
persona: architecture-reviewer persona: architecture-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -172,6 +182,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -191,6 +203,8 @@ movements:
persona: frontend-reviewer persona: frontend-reviewer
policy: review policy: review
knowledge: frontend knowledge: frontend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -210,6 +224,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -230,6 +246,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -260,6 +278,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -281,6 +301,8 @@ movements:
edit: false edit: false
persona: dual-supervisor persona: dual-supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -312,6 +334,8 @@ movements:
- backend - backend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -41,6 +41,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -74,6 +76,8 @@ movements:
knowledge: knowledge:
- backend - backend
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -108,6 +112,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -134,6 +140,8 @@ movements:
knowledge: knowledge:
- backend - backend
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -157,6 +165,8 @@ movements:
edit: false edit: false
persona: architecture-reviewer persona: architecture-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -173,6 +183,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -199,6 +211,8 @@ movements:
knowledge: knowledge:
- backend - backend
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -220,6 +234,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -29,6 +29,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -58,6 +60,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -92,6 +96,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -114,6 +120,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -153,6 +161,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -177,6 +187,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -205,6 +217,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -234,6 +248,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -26,6 +26,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -53,6 +55,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- frontend - frontend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -73,6 +77,8 @@ movements:
persona: frontend-reviewer persona: frontend-reviewer
policy: review policy: review
knowledge: frontend knowledge: frontend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -93,6 +99,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -114,6 +122,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -145,6 +155,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -167,6 +179,8 @@ movements:
edit: false edit: false
persona: dual-supervisor persona: dual-supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -198,6 +212,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -13,6 +13,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -40,6 +42,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- frontend - frontend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -60,6 +64,8 @@ movements:
persona: frontend-reviewer persona: frontend-reviewer
policy: review policy: review
knowledge: frontend knowledge: frontend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -80,6 +86,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -101,6 +109,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -126,6 +136,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -28,6 +28,8 @@ movements:
knowledge: knowledge:
- frontend - frontend
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -56,6 +58,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -89,6 +93,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -116,6 +122,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -138,6 +146,8 @@ movements:
edit: false edit: false
persona: architecture-reviewer persona: architecture-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -157,6 +167,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- frontend - frontend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -176,6 +188,8 @@ movements:
persona: frontend-reviewer persona: frontend-reviewer
policy: review policy: review
knowledge: frontend knowledge: frontend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -195,6 +209,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -215,6 +231,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -244,6 +262,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -265,6 +285,8 @@ movements:
edit: false edit: false
persona: dual-supervisor persona: dual-supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -295,6 +317,8 @@ movements:
- frontend - frontend
- security - security
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -2,6 +2,13 @@ name: magi
description: MAGI合議システム - 3つの観点から分析し多数決で判定 description: MAGI合議システム - 3つの観点から分析し多数決で判定
piece_config: piece_config:
provider_options: provider_options:
claude:
allowed_tools:
- Read
- Glob
- Grep
- WebSearch
- WebFetch
codex: codex:
network_access: true network_access: true
opencode: opencode:
@ -11,12 +18,6 @@ initial_movement: melchior
movements: movements:
- name: melchior - name: melchior
persona: melchior persona: melchior
allowed_tools:
- Read
- Glob
- Grep
- WebSearch
- WebFetch
instruction_template: | instruction_template: |
# MAGI System 起動 # MAGI System 起動
@ -47,12 +48,6 @@ movements:
next: balthasar next: balthasar
- name: balthasar - name: balthasar
persona: balthasar persona: balthasar
allowed_tools:
- Read
- Glob
- Grep
- WebSearch
- WebFetch
instruction_template: | instruction_template: |
# MAGI System 継続 # MAGI System 継続
@ -87,12 +82,6 @@ movements:
next: casper next: casper
- name: casper - name: casper
persona: casper persona: casper
allowed_tools:
- Read
- Glob
- Grep
- WebSearch
- WebFetch
instruction_template: | instruction_template: |
# MAGI System 最終審議 # MAGI System 最終審議

View File

@ -2,6 +2,13 @@ name: research
description: 調査ピース - 質問せずに自律的に調査を実行 description: 調査ピース - 質問せずに自律的に調査を実行
piece_config: piece_config:
provider_options: provider_options:
claude:
allowed_tools:
- Read
- Glob
- Grep
- WebSearch
- WebFetch
codex: codex:
network_access: true network_access: true
opencode: opencode:
@ -14,12 +21,6 @@ movements:
policy: research policy: research
knowledge: research knowledge: research
instruction: research-plan instruction: research-plan
allowed_tools:
- Read
- Glob
- Grep
- WebSearch
- WebFetch
rules: rules:
- condition: 計画が完了した - condition: 計画が完了した
next: dig next: dig
@ -30,12 +31,6 @@ movements:
policy: research policy: research
knowledge: research knowledge: research
instruction: research-dig instruction: research-dig
allowed_tools:
- Read
- Glob
- Grep
- WebSearch
- WebFetch
rules: rules:
- condition: 調査が完了した - condition: 調査が完了した
next: supervise next: supervise
@ -46,12 +41,6 @@ movements:
policy: research policy: research
knowledge: research knowledge: research
instruction: research-supervise instruction: research-supervise
allowed_tools:
- Read
- Glob
- Grep
- WebSearch
- WebFetch
rules: rules:
- condition: 調査結果が元の依頼に対して十分である - condition: 調査結果が元の依頼に対して十分である
next: COMPLETE next: COMPLETE

View File

@ -26,6 +26,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -55,6 +57,8 @@ movements:
persona: architecture-reviewer persona: architecture-reviewer
policy: review policy: review
knowledge: architecture knowledge: architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -76,6 +80,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -98,6 +104,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -120,6 +128,8 @@ movements:
policy: policy:
- review - review
- testing - testing
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -140,6 +150,8 @@ movements:
edit: false edit: false
persona: requirements-reviewer persona: requirements-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -171,6 +183,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- security - security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -193,6 +207,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -223,6 +239,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- security - security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -13,6 +13,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -42,6 +44,8 @@ movements:
persona: architecture-reviewer persona: architecture-reviewer
policy: review policy: review
knowledge: architecture knowledge: architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -63,6 +67,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -85,6 +91,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -107,6 +115,8 @@ movements:
policy: policy:
- review - review
- testing - testing
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -127,6 +137,8 @@ movements:
edit: false edit: false
persona: requirements-reviewer persona: requirements-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -153,6 +165,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -26,6 +26,8 @@ movements:
- name: gather - name: gather
edit: false edit: false
persona: planner persona: planner
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -57,6 +59,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- takt - takt
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -78,6 +82,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -100,6 +106,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -122,6 +130,8 @@ movements:
policy: policy:
- review - review
- testing - testing
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -142,6 +152,8 @@ movements:
edit: false edit: false
persona: requirements-reviewer persona: requirements-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -174,6 +186,8 @@ movements:
- takt - takt
- architecture - architecture
- security - security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -196,6 +210,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -50,6 +50,8 @@ movements:
edit: false edit: false
persona: planner persona: planner
knowledge: architecture knowledge: architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -82,6 +84,8 @@ movements:
knowledge: knowledge:
- takt - takt
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -120,6 +124,8 @@ movements:
knowledge: knowledge:
- takt - takt
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -168,6 +174,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -194,6 +202,8 @@ movements:
knowledge: knowledge:
- takt - takt
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -217,6 +227,8 @@ movements:
edit: false edit: false
persona: architecture-reviewer persona: architecture-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -236,6 +248,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- takt - takt
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -256,6 +270,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -277,6 +293,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -298,6 +316,8 @@ movements:
policy: policy:
- review - review
- testing - testing
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -317,6 +337,8 @@ movements:
edit: false edit: false
persona: requirements-reviewer persona: requirements-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -346,6 +368,8 @@ movements:
knowledge: knowledge:
- takt - takt
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -367,6 +391,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -50,6 +50,8 @@ movements:
edit: false edit: false
persona: planner persona: planner
knowledge: architecture knowledge: architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -82,6 +84,8 @@ movements:
knowledge: knowledge:
- takt - takt
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -120,6 +124,8 @@ movements:
knowledge: knowledge:
- takt - takt
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -154,6 +160,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -180,6 +188,8 @@ movements:
knowledge: knowledge:
- takt - takt
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -203,6 +213,8 @@ movements:
edit: false edit: false
persona: architecture-reviewer persona: architecture-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -222,6 +234,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- takt - takt
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -242,6 +256,8 @@ movements:
persona: security-reviewer persona: security-reviewer
policy: review policy: review
knowledge: security knowledge: security
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -263,6 +279,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -284,6 +302,8 @@ movements:
policy: policy:
- review - review
- testing - testing
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -303,6 +323,8 @@ movements:
edit: false edit: false
persona: requirements-reviewer persona: requirements-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -332,6 +354,8 @@ movements:
knowledge: knowledge:
- takt - takt
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -353,6 +377,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -13,6 +13,8 @@ movements:
edit: false edit: false
persona: planner persona: planner
knowledge: terraform-aws knowledge: terraform-aws
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -38,6 +40,8 @@ movements:
policy: policy:
- terraform - terraform
knowledge: terraform-aws knowledge: terraform-aws
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -77,6 +81,8 @@ movements:
- review - review
- terraform - terraform
knowledge: terraform-aws knowledge: terraform-aws
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -98,6 +104,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -122,6 +130,8 @@ movements:
persona: supervisor persona: supervisor
policy: review policy: review
knowledge: terraform-aws knowledge: terraform-aws
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -156,6 +166,8 @@ movements:
policy: policy:
- terraform - terraform
knowledge: terraform-aws knowledge: terraform-aws
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -176,6 +188,8 @@ movements:
policy: policy:
- terraform - terraform
knowledge: terraform-aws knowledge: terraform-aws
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -200,6 +214,8 @@ movements:
policy: policy:
- terraform - terraform
knowledge: terraform-aws knowledge: terraform-aws
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -225,6 +241,8 @@ movements:
policy: policy:
- terraform - terraform
knowledge: terraform-aws knowledge: terraform-aws
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -41,6 +41,8 @@ movements:
knowledge: knowledge:
- architecture - architecture
- backend - backend
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -74,6 +76,8 @@ movements:
knowledge: knowledge:
- backend - backend
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -108,6 +112,8 @@ movements:
policy: policy:
- review - review
- ai-antipattern - ai-antipattern
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -134,6 +140,8 @@ movements:
knowledge: knowledge:
- backend - backend
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -157,6 +165,8 @@ movements:
edit: false edit: false
persona: architecture-reviewer persona: architecture-reviewer
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -173,6 +183,8 @@ movements:
policy: policy:
- review - review
- qa - qa
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -199,6 +211,8 @@ movements:
knowledge: knowledge:
- backend - backend
- architecture - architecture
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -220,6 +234,8 @@ movements:
edit: false edit: false
persona: supervisor persona: supervisor
policy: review policy: review
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -11,6 +11,8 @@ movements:
- name: execute - name: execute
edit: true edit: true
persona: ../agents/test-coder.md persona: ../agents/test-coder.md
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Write - Write

View File

@ -11,6 +11,8 @@ movements:
- name: execute - name: execute
edit: true edit: true
persona: ../agents/test-reporter.md persona: ../agents/test-reporter.md
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Write - Write

View File

@ -11,6 +11,8 @@ movements:
- name: execute - name: execute
edit: true edit: true
persona: ../agents/test-coder.md persona: ../agents/test-coder.md
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Write - Write

View File

@ -25,6 +25,8 @@ describe('E2E: Codex permission mode readonly/full', () => {
'movements:', 'movements:',
' - name: write_check', ' - name: write_check',
' agent: codex', ' agent: codex',
' provider_options:',
' claude:',
' allowed_tools:', ' allowed_tools:',
' - Bash', ' - Bash',
' required_permission_mode: readonly', ' required_permission_mode: readonly',

View File

@ -32,6 +32,8 @@ function writeMinimalPiece(piecePath: string): void {
' - name: execute', ' - name: execute',
' edit: true', ' edit: true',
' persona: ../agents/test-coder.md', ' persona: ../agents/test-coder.md',
' provider_options:',
' claude:',
' allowed_tools:', ' allowed_tools:',
' - Read', ' - Read',
' - Write', ' - Write',

View File

@ -78,6 +78,8 @@ describe('E2E: runtime.prepare with provider', () => {
' - name: execute', ' - name: execute',
' edit: false', ' edit: false',
' persona: ../fixtures/agents/test-coder.md', ' persona: ../fixtures/agents/test-coder.md',
' provider_options:',
' claude:',
' allowed_tools:', ' allowed_tools:',
' - Read', ' - Read',
' - Bash', ' - Bash',

View File

@ -7,6 +7,7 @@ describe('denormalizeProviderOptions', () => {
codex: { networkAccess: true }, codex: { networkAccess: true },
opencode: { networkAccess: false }, opencode: { networkAccess: false },
claude: { claude: {
allowedTools: ['Read', 'Edit'],
sandbox: { sandbox: {
allowUnsandboxedCommands: true, allowUnsandboxedCommands: true,
excludedCommands: ['npm test'], excludedCommands: ['npm test'],
@ -18,6 +19,7 @@ describe('denormalizeProviderOptions', () => {
codex: { network_access: true }, codex: { network_access: true },
opencode: { network_access: false }, opencode: { network_access: false },
claude: { claude: {
allowed_tools: ['Read', 'Edit'],
sandbox: { sandbox: {
allow_unsandboxed_commands: true, allow_unsandboxed_commands: true,
excluded_commands: ['npm test'], excluded_commands: ['npm test'],
@ -33,4 +35,14 @@ describe('denormalizeProviderOptions', () => {
expect(result).toBeUndefined(); expect(result).toBeUndefined();
}); });
it('should persist claude allowedTools even when sandbox is omitted', () => {
const result = denormalizeProviderOptions({
claude: { allowedTools: ['Read', 'Bash'] },
});
expect(result).toEqual({
claude: { allowed_tools: ['Read', 'Bash'] },
});
});
}); });

View File

@ -133,4 +133,38 @@ describe('PieceEngine provider_options resolution', () => {
codex: { networkAccess: true }, codex: { networkAccess: true },
}); });
}); });
it('should propagate merged claude allowedTools to runAgent options.allowedTools', async () => {
const movement = makeMovement('implement', {
providerOptions: {
claude: { allowedTools: ['Read', 'Edit', 'Bash'] },
},
rules: [makeRule('done', 'COMPLETE')],
});
const config: PieceConfig = {
name: 'provider-options-allowed-tools',
movements: [movement],
initialMovement: 'implement',
maxMovements: 1,
};
mockRunAgentSequence([
makeResponse({ persona: movement.persona, content: 'done' }),
]);
mockDetectMatchedRuleSequence([{ index: 0, method: 'phase1_tag' }]);
engine = new PieceEngine(config, tmpDir, 'test task', {
projectCwd: tmpDir,
provider: 'claude',
providerOptions: {
claude: { allowedTools: ['Read', 'Glob'] },
},
});
await engine.run();
const options = vi.mocked(runAgent).mock.calls[0]?.[2];
expect(options?.allowedTools).toEqual(['Read', 'Edit', 'Bash']);
});
}); });

View File

@ -529,6 +529,8 @@ movements:
playwright: playwright:
command: npx command: npx
args: ["-y", "@anthropic-ai/mcp-server-playwright"] args: ["-y", "@anthropic-ai/mcp-server-playwright"]
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Bash - Bash

View File

@ -8,6 +8,7 @@ import {
StatusSchema, StatusSchema,
PermissionModeSchema, PermissionModeSchema,
PieceConfigRawSchema, PieceConfigRawSchema,
PieceMovementRawSchema,
McpServerConfigSchema, McpServerConfigSchema,
CustomAgentConfigSchema, CustomAgentConfigSchema,
GlobalConfigSchema, GlobalConfigSchema,
@ -69,7 +70,11 @@ describe('PieceConfigRawSchema', () => {
{ {
name: 'step1', name: 'step1',
persona: 'coder', persona: 'coder',
provider_options: {
claude: {
allowed_tools: ['Read', 'Grep'], allowed_tools: ['Read', 'Grep'],
},
},
instruction: '{task}', instruction: '{task}',
rules: [ rules: [
{ condition: 'Task completed', next: 'COMPLETE' }, { condition: 'Task completed', next: 'COMPLETE' },
@ -81,7 +86,11 @@ describe('PieceConfigRawSchema', () => {
const result = PieceConfigRawSchema.parse(config); const result = PieceConfigRawSchema.parse(config);
expect(result.name).toBe('test-piece'); expect(result.name).toBe('test-piece');
expect(result.movements).toHaveLength(1); expect(result.movements).toHaveLength(1);
expect(result.movements![0]?.allowed_tools).toEqual(['Read', 'Grep']); expect(result.movements![0]?.provider_options).toEqual({
claude: {
allowed_tools: ['Read', 'Grep'],
},
});
expect(result.max_movements).toBe(10); expect(result.max_movements).toBe(10);
}); });
@ -92,7 +101,11 @@ describe('PieceConfigRawSchema', () => {
{ {
name: 'implement', name: 'implement',
persona: 'coder', persona: 'coder',
provider_options: {
claude: {
allowed_tools: ['Read', 'Edit', 'Write', 'Bash'], allowed_tools: ['Read', 'Edit', 'Write', 'Bash'],
},
},
required_permission_mode: 'edit', required_permission_mode: 'edit',
instruction: '{task}', instruction: '{task}',
rules: [ rules: [
@ -340,7 +353,11 @@ describe('PieceConfigRawSchema', () => {
args: ['-y', '@anthropic-ai/mcp-server-playwright'], args: ['-y', '@anthropic-ai/mcp-server-playwright'],
}, },
}, },
provider_options: {
claude: {
allowed_tools: ['mcp__playwright__*'], allowed_tools: ['mcp__playwright__*'],
},
},
instruction: '{task}', instruction: '{task}',
}, },
], ],
@ -462,6 +479,18 @@ describe('PieceConfigRawSchema', () => {
expect(() => PieceConfigRawSchema.parse(config)).toThrow(); expect(() => PieceConfigRawSchema.parse(config)).toThrow();
}); });
it('should reject movement-level allowed_tools', () => {
const movement = {
name: 'step1',
persona: 'coder',
allowed_tools: ['Read'],
instruction: '{task}',
};
const result = PieceMovementRawSchema.safeParse(movement);
expect(result.success).toBe(false);
});
}); });
describe('McpServerConfigSchema', () => { describe('McpServerConfigSchema', () => {

View File

@ -263,6 +263,34 @@ describe('option resolution order', () => {
); );
}); });
it('should use custom agent allowedTools when run options do not provide allowedTools', async () => {
loadProjectConfigMock.mockReturnValue({ provider: 'claude' });
loadCustomAgentsMock.mockReturnValue(new Map([
['custom', { name: 'custom', prompt: 'agent prompt', allowedTools: ['Read', 'Grep'] }],
]));
await runAgent('custom', 'task', { cwd: '/repo' });
expect(providerCallMock).toHaveBeenLastCalledWith(
'task',
expect.objectContaining({ allowedTools: ['Read', 'Grep'] }),
);
});
it('should prioritize run options allowedTools over custom agent allowedTools', async () => {
loadProjectConfigMock.mockReturnValue({ provider: 'claude' });
loadCustomAgentsMock.mockReturnValue(new Map([
['custom', { name: 'custom', prompt: 'agent prompt', allowedTools: ['Read', 'Grep'] }],
]));
await runAgent('custom', 'task', { cwd: '/repo', allowedTools: ['Write'] });
expect(providerCallMock).toHaveBeenLastCalledWith(
'task',
expect.objectContaining({ allowedTools: ['Write'] }),
);
});
it('should resolve permission mode after provider resolution using provider profiles', async () => { it('should resolve permission mode after provider resolution using provider profiles', async () => {
loadProjectConfigMock.mockReturnValue({}); loadProjectConfigMock.mockReturnValue({});
loadGlobalConfigMock.mockReturnValue({ loadGlobalConfigMock.mockReturnValue({

View File

@ -89,14 +89,17 @@ describe('OptionsBuilder.buildBaseOptions', () => {
const step = createMovement({ const step = createMovement({
providerOptions: { providerOptions: {
codex: { networkAccess: false }, codex: { networkAccess: false },
claude: { sandbox: { excludedCommands: ['./gradlew'] } }, claude: {
sandbox: { excludedCommands: ['./gradlew'] },
allowedTools: ['Read', 'Edit', 'Bash'],
},
}, },
}); });
const builder = createBuilder(step, { const builder = createBuilder(step, {
providerOptionsSource: 'project', providerOptionsSource: 'project',
providerOptions: { providerOptions: {
codex: { networkAccess: true }, codex: { networkAccess: true },
claude: { sandbox: { allowUnsandboxedCommands: true } }, claude: { sandbox: { allowUnsandboxedCommands: true }, allowedTools: ['Read', 'Glob'] },
opencode: { networkAccess: true }, opencode: { networkAccess: true },
}, },
}); });
@ -111,6 +114,7 @@ describe('OptionsBuilder.buildBaseOptions', () => {
excludedCommands: ['./gradlew'], excludedCommands: ['./gradlew'],
allowUnsandboxedCommands: true, allowUnsandboxedCommands: true,
}, },
allowedTools: ['Read', 'Edit', 'Bash'],
}, },
}); });
}); });
@ -227,3 +231,43 @@ describe('OptionsBuilder.buildResumeOptions', () => {
expect(options.sessionId).toBe('session-123'); expect(options.sessionId).toBe('session-123');
}); });
}); });
describe('OptionsBuilder.buildAgentOptions', () => {
it('uses merged providerOptions.claude.allowedTools when movement.allowedTools is absent', () => {
// Given
const step = createMovement({
providerOptions: {
claude: { allowedTools: ['Read', 'Edit', 'Bash'] },
},
});
const builder = createBuilder(step, {
providerOptions: {
claude: { allowedTools: ['Read', 'Glob'] },
},
});
// When
const options = builder.buildAgentOptions(step);
// Then
expect(options.allowedTools).toEqual(['Read', 'Edit', 'Bash']);
});
it('removes Write when output contracts exist and edit is not enabled', () => {
// Given
const step = createMovement({
outputContracts: [{ name: 'report.md', format: 'markdown', useJudge: true }],
providerOptions: {
claude: { allowedTools: ['Read', 'Write', 'Bash'] },
},
edit: false,
});
const builder = createBuilder(step);
// When
const options = builder.buildAgentOptions(step);
// Then
expect(options.allowedTools).toEqual(['Read', 'Bash']);
});
});

View File

@ -37,7 +37,11 @@ describe('ParallelSubMovementRawSchema', () => {
name: 'full-sub-step', name: 'full-sub-step',
persona: '~/.takt/agents/default/coder.md', persona: '~/.takt/agents/default/coder.md',
persona_name: 'Coder', persona_name: 'Coder',
provider_options: {
claude: {
allowed_tools: ['Read', 'Grep'], allowed_tools: ['Read', 'Grep'],
},
},
model: 'haiku', model: 'haiku',
edit: false, edit: false,
instruction_template: 'Do work', instruction_template: 'Do work',
@ -49,7 +53,7 @@ describe('ParallelSubMovementRawSchema', () => {
expect(result.success).toBe(true); expect(result.success).toBe(true);
if (result.success) { if (result.success) {
expect(result.data.persona_name).toBe('Coder'); expect(result.data.persona_name).toBe('Coder');
expect(result.data.allowed_tools).toEqual(['Read', 'Grep']); expect(result.data.provider_options?.claude?.allowed_tools).toEqual(['Read', 'Grep']);
expect(result.data.edit).toBe(false); expect(result.data.edit).toBe(false);
} }
}); });
@ -100,6 +104,17 @@ describe('ParallelSubMovementRawSchema', () => {
expect(result.data.rules).toHaveLength(2); expect(result.data.rules).toHaveLength(2);
} }
}); });
it('should reject movement-level allowed_tools on sub-movement', () => {
const raw = {
name: 'invalid-sub-step',
allowed_tools: ['Read'],
instruction_template: 'Review',
};
const result = ParallelSubMovementRawSchema.safeParse(raw);
expect(result.success).toBe(false);
});
}); });
describe('PieceMovementRawSchema with parallel', () => { describe('PieceMovementRawSchema with parallel', () => {

View File

@ -181,6 +181,8 @@ movements:
description: Planning description: Planning
persona: Plan the task persona: Plan the task
instruction: "Create a plan for {task}" instruction: "Create a plan for {task}"
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob
@ -192,6 +194,8 @@ movements:
persona: Implement the code persona: Implement the code
instruction: "Implement according to plan" instruction: "Implement according to plan"
edit: true edit: true
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Edit - Edit
@ -658,6 +662,8 @@ movements:
persona: You are a planner. persona: You are a planner.
persona_name: Planner persona_name: Planner
instruction: "Plan the task" instruction: "Plan the task"
provider_options:
claude:
allowed_tools: allowed_tools:
- Read - Read
- Glob - Glob

View File

@ -93,6 +93,46 @@ describe('normalizePieceConfig provider_options', () => {
}); });
}); });
it('claude allowed_tools を piece-level で設定し movement で上書きできる', () => {
const raw = {
name: 'claude-allowed-tools',
piece_config: {
provider_options: {
claude: {
allowed_tools: ['Read', 'Glob'],
},
},
},
movements: [
{
name: 'inherit',
instruction: '{task}',
},
{
name: 'override',
provider_options: {
claude: {
allowed_tools: ['Read', 'Edit', 'Bash'],
},
},
instruction: '{task}',
},
],
};
const config = normalizePieceConfig(raw, process.cwd());
expect(config.providerOptions).toEqual({
claude: { allowedTools: ['Read', 'Glob'] },
});
expect(config.movements[0]?.providerOptions).toEqual({
claude: { allowedTools: ['Read', 'Glob'] },
});
expect(config.movements[1]?.providerOptions).toEqual({
claude: { allowedTools: ['Read', 'Edit', 'Bash'] },
});
});
it('piece-level runtime.prepare を正規化し重複を除去する', () => { it('piece-level runtime.prepare を正規化し重複を除去する', () => {
const raw = { const raw = {
name: 'runtime-prepare', name: 'runtime-prepare',
@ -306,20 +346,27 @@ describe('normalizePieceConfig provider_options', () => {
describe('mergeProviderOptions', () => { describe('mergeProviderOptions', () => {
it('複数層を正しくマージする(後の層が優先)', () => { it('複数層を正しくマージする(後の層が優先)', () => {
const global = { const global = {
claude: { sandbox: { allowUnsandboxedCommands: false, excludedCommands: ['./gradlew'] } }, claude: {
sandbox: { allowUnsandboxedCommands: false, excludedCommands: ['./gradlew'] },
allowedTools: ['Read'],
},
codex: { networkAccess: true }, codex: { networkAccess: true },
}; };
const local = { const local = {
claude: { sandbox: { allowUnsandboxedCommands: true } }, claude: { sandbox: { allowUnsandboxedCommands: true } },
}; };
const step = { const step = {
claude: { allowedTools: ['Read', 'Edit'] },
codex: { networkAccess: false }, codex: { networkAccess: false },
}; };
const result = mergeProviderOptions(global, local, step); const result = mergeProviderOptions(global, local, step);
expect(result).toEqual({ expect(result).toEqual({
claude: { sandbox: { allowUnsandboxedCommands: true, excludedCommands: ['./gradlew'] } }, claude: {
sandbox: { allowUnsandboxedCommands: true, excludedCommands: ['./gradlew'] },
allowedTools: ['Read', 'Edit'],
},
codex: { networkAccess: false }, codex: { networkAccess: false },
}); });
}); });

View File

@ -63,18 +63,20 @@ describe('detectEditPieces', () => {
expect(detectEditPieces([])).toEqual([]); expect(detectEditPieces([])).toEqual([]);
}); });
it('should return empty array when piece has edit: false, no allowed_tools, and no required_permission_mode', () => { it('should return empty array when piece has edit: false, no provider_options.claude.allowed_tools, and no required_permission_mode', () => {
const pieces = [ const pieces = [
{ name: 'simple.yaml', content: 'movements:\n - name: run\n edit: false\n' }, { name: 'simple.yaml', content: 'movements:\n - name: run\n edit: false\n' },
]; ];
expect(detectEditPieces(pieces)).toEqual([]); expect(detectEditPieces(pieces)).toEqual([]);
}); });
it('should detect piece with edit: true and collect allowed_tools', () => { it('should detect piece with edit: true and collect provider_options.claude.allowed_tools', () => {
const content = ` const content = `
movements: movements:
- name: implement - name: implement
edit: true edit: true
provider_options:
claude:
allowed_tools: [Bash, Write, Edit] allowed_tools: [Bash, Write, Edit]
`.trim(); `.trim();
const result = detectEditPieces([{ name: 'coder.yaml', content }]); const result = detectEditPieces([{ name: 'coder.yaml', content }]);
@ -84,14 +86,18 @@ movements:
expect(result[0]!.allowedTools).toHaveLength(3); expect(result[0]!.allowedTools).toHaveLength(3);
}); });
it('should merge allowed_tools from multiple edit movements', () => { it('should merge provider_options.claude.allowed_tools from multiple edit movements', () => {
const content = ` const content = `
movements: movements:
- name: implement - name: implement
edit: true edit: true
provider_options:
claude:
allowed_tools: [Bash, Write] allowed_tools: [Bash, Write]
- name: fix - name: fix
edit: true edit: true
provider_options:
claude:
allowed_tools: [Edit, Bash] allowed_tools: [Edit, Bash]
`.trim(); `.trim();
const result = detectEditPieces([{ name: 'coder.yaml', content }]); const result = detectEditPieces([{ name: 'coder.yaml', content }]);
@ -100,7 +106,7 @@ movements:
expect(result[0]!.allowedTools).toHaveLength(3); expect(result[0]!.allowedTools).toHaveLength(3);
}); });
it('should detect piece with edit: true and no allowed_tools', () => { it('should detect piece with edit: true and no provider_options.claude.allowed_tools', () => {
const content = ` const content = `
movements: movements:
- name: implement - name: implement
@ -133,7 +139,7 @@ movements:
const pieces = [ const pieces = [
{ {
name: 'coder.yaml', name: 'coder.yaml',
content: 'movements:\n - name: impl\n edit: true\n allowed_tools: [Write]\n', content: 'movements:\n - name: impl\n edit: true\n provider_options:\n claude:\n allowed_tools: [Write]\n',
}, },
{ {
name: 'reviewer.yaml', name: 'reviewer.yaml',
@ -141,7 +147,7 @@ movements:
}, },
{ {
name: 'fixer.yaml', name: 'fixer.yaml',
content: 'movements:\n - name: fix\n edit: true\n allowed_tools: [Edit]\n', content: 'movements:\n - name: fix\n edit: true\n provider_options:\n claude:\n allowed_tools: [Edit]\n',
}, },
]; ];
const result = detectEditPieces(pieces); const result = detectEditPieces(pieces);
@ -150,7 +156,7 @@ movements:
}); });
it('should set hasEdit: true for pieces with edit: true', () => { it('should set hasEdit: true for pieces with edit: true', () => {
const content = 'movements:\n - name: impl\n edit: true\n allowed_tools: [Write]\n'; const content = 'movements:\n - name: impl\n edit: true\n provider_options:\n claude:\n allowed_tools: [Write]\n';
const result = detectEditPieces([{ name: 'coder.yaml', content }]); const result = detectEditPieces([{ name: 'coder.yaml', content }]);
expect(result).toHaveLength(1); expect(result).toHaveLength(1);
expect(result[0]!.hasEdit).toBe(true); expect(result[0]!.hasEdit).toBe(true);
@ -176,6 +182,8 @@ movements:
movements: movements:
- name: implement - name: implement
edit: true edit: true
provider_options:
claude:
allowed_tools: [Write, Edit] allowed_tools: [Write, Edit]
- name: plan - name: plan
required_permission_mode: bypassPermissions required_permission_mode: bypassPermissions
@ -200,16 +208,18 @@ movements:
expect(result[0]!.requiredPermissionModes).toEqual(['bypassPermissions']); expect(result[0]!.requiredPermissionModes).toEqual(['bypassPermissions']);
}); });
it('should return empty array when piece has edit: false, empty allowed_tools, and no required_permission_mode', () => { it('should return empty array when piece has edit: false, empty provider_options.claude.allowed_tools, and no required_permission_mode', () => {
const content = 'movements:\n - name: review\n edit: false\n'; const content = 'movements:\n - name: review\n edit: false\n';
expect(detectEditPieces([{ name: 'reviewer.yaml', content }])).toEqual([]); expect(detectEditPieces([{ name: 'reviewer.yaml', content }])).toEqual([]);
}); });
it('should detect piece with edit: false and non-empty allowed_tools', () => { it('should detect piece with edit: false and non-empty provider_options.claude.allowed_tools', () => {
const content = ` const content = `
movements: movements:
- name: run - name: run
edit: false edit: false
provider_options:
claude:
allowed_tools: [Bash] allowed_tools: [Bash]
`.trim(); `.trim();
const result = detectEditPieces([{ name: 'runner.yaml', content }]); const result = detectEditPieces([{ name: 'runner.yaml', content }]);
@ -220,11 +230,33 @@ movements:
expect(result[0]!.requiredPermissionModes).toEqual([]); expect(result[0]!.requiredPermissionModes).toEqual([]);
}); });
it('should exclude piece with edit: false and empty allowed_tools', () => { it('should detect piece using piece_config provider_options.claude.allowed_tools when movement does not define tools', () => {
const content = `
piece_config:
provider_options:
claude:
allowed_tools: [Read, Grep]
movements:
- name: plan
edit: false
- name: supervise
edit: true
`.trim();
const result = detectEditPieces([{ name: 'piece-level.yaml', content }]);
expect(result).toHaveLength(1);
expect(result[0]!.name).toBe('piece-level.yaml');
expect(result[0]!.hasEdit).toBe(true);
expect(result[0]!.allowedTools).toEqual(expect.arrayContaining(['Read', 'Grep']));
expect(result[0]!.allowedTools).toHaveLength(2);
});
it('should exclude piece with edit: false and empty provider_options.claude.allowed_tools', () => {
const content = ` const content = `
movements: movements:
- name: run - name: run
edit: false edit: false
provider_options:
claude:
allowed_tools: [] allowed_tools: []
`.trim(); `.trim();
expect(detectEditPieces([{ name: 'runner.yaml', content }])).toEqual([]); expect(detectEditPieces([{ name: 'runner.yaml', content }])).toEqual([]);
@ -250,7 +282,7 @@ movements:
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
describe('formatEditPieceWarnings', () => { describe('formatEditPieceWarnings', () => {
it('should format edit:true warning without allowed_tools', () => { it('should format edit:true warning without provider_options.claude.allowed_tools', () => {
const warnings = formatEditPieceWarnings({ const warnings = formatEditPieceWarnings({
name: 'piece.yaml', name: 'piece.yaml',
hasEdit: true, hasEdit: true,
@ -260,27 +292,27 @@ describe('formatEditPieceWarnings', () => {
expect(warnings).toEqual(['\n ⚠ piece.yaml: edit: true']); expect(warnings).toEqual(['\n ⚠ piece.yaml: edit: true']);
}); });
it('should format edit:true warning with allowed_tools appended inline', () => { it('should format edit:true warning with provider_options.claude.allowed_tools appended inline', () => {
const warnings = formatEditPieceWarnings({ const warnings = formatEditPieceWarnings({
name: 'piece.yaml', name: 'piece.yaml',
hasEdit: true, hasEdit: true,
allowedTools: ['Bash', 'Edit'], allowedTools: ['Bash', 'Edit'],
requiredPermissionModes: [], requiredPermissionModes: [],
}); });
expect(warnings).toEqual(['\n ⚠ piece.yaml: edit: true, allowed_tools: [Bash, Edit]']); expect(warnings).toEqual(['\n ⚠ piece.yaml: edit: true, provider_options.claude.allowed_tools: [Bash, Edit]']);
}); });
it('should format allowed_tools-only warning when edit:false', () => { it('should format provider_options.claude.allowed_tools-only warning when edit:false', () => {
const warnings = formatEditPieceWarnings({ const warnings = formatEditPieceWarnings({
name: 'runner.yaml', name: 'runner.yaml',
hasEdit: false, hasEdit: false,
allowedTools: ['Bash'], allowedTools: ['Bash'],
requiredPermissionModes: [], requiredPermissionModes: [],
}); });
expect(warnings).toEqual(['\n ⚠ runner.yaml: allowed_tools: [Bash]']); expect(warnings).toEqual(['\n ⚠ runner.yaml: provider_options.claude.allowed_tools: [Bash]']);
}); });
it('should return empty array when edit:false and no allowed_tools and no required_permission_mode', () => { it('should return empty array when edit:false and no provider_options.claude.allowed_tools and no required_permission_mode', () => {
const warnings = formatEditPieceWarnings({ const warnings = formatEditPieceWarnings({
name: 'review.yaml', name: 'review.yaml',
hasEdit: false, hasEdit: false,
@ -300,7 +332,7 @@ describe('formatEditPieceWarnings', () => {
expect(warnings).toEqual(['\n ⚠ planner.yaml: required_permission_mode: bypassPermissions']); expect(warnings).toEqual(['\n ⚠ planner.yaml: required_permission_mode: bypassPermissions']);
}); });
it('should combine allowed_tools and required_permission_mode warnings when edit:false', () => { it('should combine provider_options.claude.allowed_tools and required_permission_mode warnings when edit:false', () => {
const warnings = formatEditPieceWarnings({ const warnings = formatEditPieceWarnings({
name: 'combo.yaml', name: 'combo.yaml',
hasEdit: false, hasEdit: false,
@ -308,7 +340,7 @@ describe('formatEditPieceWarnings', () => {
requiredPermissionModes: ['bypassPermissions'], requiredPermissionModes: ['bypassPermissions'],
}); });
expect(warnings).toEqual([ expect(warnings).toEqual([
'\n ⚠ combo.yaml: allowed_tools: [Bash]', '\n ⚠ combo.yaml: provider_options.claude.allowed_tools: [Bash]',
'\n ⚠ combo.yaml: required_permission_mode: bypassPermissions', '\n ⚠ combo.yaml: required_permission_mode: bypassPermissions',
]); ]);
}); });

View File

@ -5,7 +5,7 @@
* - Piece YAML files (EN/JA) load and pass schema validation * - Piece YAML files (EN/JA) load and pass schema validation
* - Piece structure: gather -> reviewers (parallel 5) -> supervise -> COMPLETE * - Piece structure: gather -> reviewers (parallel 5) -> supervise -> COMPLETE
* - All movements have edit: false * - All movements have edit: false
* - All 5 reviewers have Bash in allowed_tools * - All 5 reviewers have Bash in provider_options.claude.allowed_tools
* - Routing rules for gather and reviewers * - Routing rules for gather and reviewers
*/ */
@ -112,10 +112,10 @@ describe('review piece (EN)', () => {
} }
}); });
it('should have Bash in allowed_tools for all 5 reviewers', () => { it('should have Bash in provider_options.claude.allowed_tools for all 5 reviewers', () => {
const reviewers = raw.movements.find((s: { name: string }) => s.name === 'reviewers'); const reviewers = raw.movements.find((s: { name: string }) => s.name === 'reviewers');
for (const sub of reviewers.parallel) { for (const sub of reviewers.parallel) {
expect(sub.allowed_tools).toContain('Bash'); expect(sub.provider_options?.claude?.allowed_tools).toContain('Bash');
} }
}); });
@ -169,10 +169,10 @@ describe('review piece (JA)', () => {
} }
}); });
it('should have Bash in allowed_tools for all 5 reviewers', () => { it('should have Bash in provider_options.claude.allowed_tools for all 5 reviewers', () => {
const reviewers = raw.movements.find((s: { name: string }) => s.name === 'reviewers'); const reviewers = raw.movements.find((s: { name: string }) => s.name === 'reviewers');
for (const sub of reviewers.parallel) { for (const sub of reviewers.parallel) {
expect(sub.allowed_tools).toContain('Bash'); expect(sub.provider_options?.claude?.allowed_tools).toContain('Bash');
} }
}); });

View File

@ -0,0 +1,38 @@
import { describe, expect, it } from 'vitest';
import type { PartDefinition, PieceMovement } from '../core/models/types.js';
import { createPartMovement } from '../core/piece/engine/team-leader-common.js';
describe('createPartMovement', () => {
it('uses step.providerOptions.claude.allowedTools when part_allowed_tools is omitted', () => {
// Given
const step: PieceMovement = {
name: 'implement',
persona: 'coder',
personaDisplayName: 'Coder',
instructionTemplate: 'do work',
passPreviousResponse: false,
providerOptions: {
claude: {
allowedTools: ['Read', 'Edit', 'Bash'],
},
},
teamLeader: {
persona: 'leader',
maxParts: 3,
refillThreshold: 0,
timeoutMs: 600000,
},
};
const part: PartDefinition = {
id: 'part-1',
title: 'API',
instruction: 'implement api',
};
// When
const partMovement = createPartMovement(step, part);
// Then
expect(partMovement.providerOptions?.claude?.allowedTools).toEqual(['Read', 'Edit', 'Bash']);
});
});

View File

@ -101,7 +101,6 @@ export class AgentRunner {
options: RunAgentOptions, options: RunAgentOptions,
localConfig: ReturnType<typeof loadProjectConfig>, localConfig: ReturnType<typeof loadProjectConfig>,
globalConfig: ReturnType<typeof loadGlobalConfig>, globalConfig: ReturnType<typeof loadGlobalConfig>,
agentConfig?: CustomAgentConfig,
): ProviderCallOptions { ): ProviderCallOptions {
const permissionMode = AgentRunner.resolvePermissionMode( const permissionMode = AgentRunner.resolvePermissionMode(
resolvedProvider, resolvedProvider,
@ -114,7 +113,7 @@ export class AgentRunner {
cwd: options.cwd, cwd: options.cwd,
abortSignal: options.abortSignal, abortSignal: options.abortSignal,
sessionId: options.sessionId, sessionId: options.sessionId,
allowedTools: options.allowedTools ?? agentConfig?.allowedTools, allowedTools: options.allowedTools,
mcpServers: options.mcpServers, mcpServers: options.mcpServers,
maxTurns: options.maxTurns, maxTurns: options.maxTurns,
model: resolvedModel, model: resolvedModel,
@ -174,13 +173,17 @@ export class AgentRunner {
claudeSkill: agentConfig.claudeSkill, claudeSkill: agentConfig.claudeSkill,
}); });
const customOptions: RunAgentOptions = {
...options,
allowedTools: options.allowedTools ?? agentConfig.allowedTools,
};
return agent.call(task, AgentRunner.buildCallOptions( return agent.call(task, AgentRunner.buildCallOptions(
resolved.model, resolved.model,
providerType, providerType,
options, customOptions,
resolved.localConfig, resolved.localConfig,
resolved.globalConfig, resolved.globalConfig,
agentConfig,
)); ));
} }

View File

@ -107,6 +107,7 @@ export interface ClaudeSandboxSettings {
/** Claude provider-specific options */ /** Claude provider-specific options */
export interface ClaudeProviderOptions { export interface ClaudeProviderOptions {
allowedTools?: string[];
sandbox?: ClaudeSandboxSettings; sandbox?: ClaudeSandboxSettings;
} }
@ -128,8 +129,6 @@ export interface PieceMovement {
session?: 'continue' | 'refresh'; session?: 'continue' | 'refresh';
/** Display name for the persona (shown in output). Falls back to persona basename if not specified */ /** Display name for the persona (shown in output). Falls back to persona basename if not specified */
personaDisplayName: string; personaDisplayName: string;
/** Allowed tools for this movement (optional, passed to agent execution) */
allowedTools?: string[];
/** MCP servers configuration for this movement */ /** MCP servers configuration for this movement */
mcpServers?: Record<string, McpServerConfig>; mcpServers?: Record<string, McpServerConfig>;
/** Resolved absolute path to persona prompt file (set by loader) */ /** Resolved absolute path to persona prompt file (set by loader) */

View File

@ -74,6 +74,7 @@ export const MovementProviderOptionsSchema = z.object({
network_access: z.boolean().optional(), network_access: z.boolean().optional(),
}).optional(), }).optional(),
claude: z.object({ claude: z.object({
allowed_tools: z.array(z.string()).optional(),
sandbox: ClaudeSandboxSchema, sandbox: ClaudeSandboxSchema,
}).optional(), }).optional(),
}).optional(); }).optional();
@ -303,7 +304,7 @@ export const ParallelSubMovementRawSchema = z.object({
policy: z.union([z.string(), z.array(z.string())]).optional(), policy: z.union([z.string(), z.array(z.string())]).optional(),
/** Knowledge reference(s) — key name(s) from piece-level knowledge map */ /** Knowledge reference(s) — key name(s) from piece-level knowledge map */
knowledge: z.union([z.string(), z.array(z.string())]).optional(), knowledge: z.union([z.string(), z.array(z.string())]).optional(),
allowed_tools: z.array(z.string()).optional(), allowed_tools: z.never().optional(),
mcp_servers: McpServersSchema, mcp_servers: McpServersSchema,
provider: ProviderReferenceSchema.optional(), provider: ProviderReferenceSchema.optional(),
model: z.string().optional(), model: z.string().optional(),
@ -336,7 +337,7 @@ export const PieceMovementRawSchema = z.object({
policy: z.union([z.string(), z.array(z.string())]).optional(), policy: z.union([z.string(), z.array(z.string())]).optional(),
/** Knowledge reference(s) — key name(s) from piece-level knowledge map */ /** Knowledge reference(s) — key name(s) from piece-level knowledge map */
knowledge: z.union([z.string(), z.array(z.string())]).optional(), knowledge: z.union([z.string(), z.array(z.string())]).optional(),
allowed_tools: z.array(z.string()).optional(), allowed_tools: z.never().optional(),
mcp_servers: McpServersSchema, mcp_servers: McpServersSchema,
provider: ProviderReferenceSchema.optional(), provider: ProviderReferenceSchema.optional(),
model: z.string().optional(), model: z.string().optional(),

View File

@ -19,9 +19,12 @@ function mergeProviderOptions(
if (layer.opencode) { if (layer.opencode) {
result.opencode = { ...result.opencode, ...layer.opencode }; result.opencode = { ...result.opencode, ...layer.opencode };
} }
if (layer.claude?.sandbox) { if (layer.claude?.sandbox || layer.claude?.allowedTools) {
result.claude = { result.claude = {
sandbox: { ...result.claude?.sandbox, ...layer.claude.sandbox }, sandbox: layer.claude.sandbox
? { ...result.claude?.sandbox, ...layer.claude.sandbox }
: result.claude?.sandbox,
allowedTools: layer.claude.allowedTools ?? result.claude?.allowedTools,
}; };
} }
} }
@ -64,7 +67,7 @@ export class OptionsBuilder {
} }
/** Build common RunAgentOptions shared by all phases */ /** Build common RunAgentOptions shared by all phases */
buildBaseOptions(step: PieceMovement): RunAgentOptions { buildBaseOptions(step: PieceMovement, mergedProviderOptions?: MovementProviderOptions): RunAgentOptions {
const movements = this.getPieceMovements(); const movements = this.getPieceMovements();
const currentIndex = movements.findIndex((m) => m.name === step.name); const currentIndex = movements.findIndex((m) => m.name === step.name);
const currentPosition = currentIndex >= 0 ? `${currentIndex + 1}/${movements.length}` : '?/?'; const currentPosition = currentIndex >= 0 ? `${currentIndex + 1}/${movements.length}` : '?/?';
@ -83,7 +86,7 @@ export class OptionsBuilder {
requiredPermissionMode: step.requiredPermissionMode, requiredPermissionMode: step.requiredPermissionMode,
providerProfiles: this.engineOptions.providerProfiles, providerProfiles: this.engineOptions.providerProfiles,
}, },
providerOptions: resolveMovementProviderOptions( providerOptions: mergedProviderOptions ?? resolveMovementProviderOptions(
this.engineOptions.providerOptionsSource, this.engineOptions.providerOptionsSource,
this.engineOptions.providerOptions, this.engineOptions.providerOptions,
step.providerOptions, step.providerOptions,
@ -105,19 +108,26 @@ export class OptionsBuilder {
/** Build RunAgentOptions for Phase 1 (main execution) */ /** Build RunAgentOptions for Phase 1 (main execution) */
buildAgentOptions(step: PieceMovement): RunAgentOptions { buildAgentOptions(step: PieceMovement): RunAgentOptions {
const mergedProviderOptions = resolveMovementProviderOptions(
this.engineOptions.providerOptionsSource,
this.engineOptions.providerOptions,
step.providerOptions,
);
// Phase 1: exclude Write from allowedTools when movement has output contracts AND edit is NOT enabled // Phase 1: exclude Write from allowedTools when movement has output contracts AND edit is NOT enabled
// (If edit is enabled, Write is needed for code implementation even if output contracts exist) // (If edit is enabled, Write is needed for code implementation even if output contracts exist)
// Note: edit defaults to undefined, so check !== true to catch both false and undefined // Note: edit defaults to undefined, so check !== true to catch both false and undefined
const hasOutputContracts = step.outputContracts && step.outputContracts.length > 0; const hasOutputContracts = step.outputContracts && step.outputContracts.length > 0;
const resolvedAllowedTools = mergedProviderOptions?.claude?.allowedTools;
const allowedTools = hasOutputContracts && step.edit !== true const allowedTools = hasOutputContracts && step.edit !== true
? step.allowedTools?.filter((t) => t !== 'Write') ? resolvedAllowedTools?.filter((t) => t !== 'Write')
: step.allowedTools; : resolvedAllowedTools;
// Skip session resume when cwd !== projectCwd (worktree execution) to avoid cross-directory contamination // Skip session resume when cwd !== projectCwd (worktree execution) to avoid cross-directory contamination
const shouldResumeSession = step.session !== 'refresh' && this.getCwd() === this.getProjectCwd(); const shouldResumeSession = step.session !== 'refresh' && this.getCwd() === this.getProjectCwd();
return { return {
...this.buildBaseOptions(step), ...this.buildBaseOptions(step, mergedProviderOptions),
sessionId: shouldResumeSession ? this.getSessionId(buildSessionKey(step)) : undefined, sessionId: shouldResumeSession ? this.getSessionId(buildSessionKey(step)) : undefined,
allowedTools, allowedTools,
mcpServers: step.mcpServers, mcpServers: step.mcpServers,

View File

@ -518,13 +518,17 @@ export class PieceEngine extends EventEmitter {
personaPath: monitor.judge.personaPath, personaPath: monitor.judge.personaPath,
personaDisplayName: 'loop-judge', personaDisplayName: 'loop-judge',
edit: false, edit: false,
providerOptions: {
claude: {
allowedTools: ['Read', 'Glob', 'Grep'],
},
},
instructionTemplate: processedTemplate, instructionTemplate: processedTemplate,
rules: monitor.judge.rules.map((r) => ({ rules: monitor.judge.rules.map((r) => ({
condition: r.condition, condition: r.condition,
next: r.next, next: r.next,
})), })),
passPreviousResponse: true, passPreviousResponse: true,
allowedTools: ['Read', 'Glob', 'Grep'],
}; };
log.info('Running loop monitor judge', { log.info('Running loop monitor judge', {

View File

@ -21,6 +21,17 @@ export function createPartMovement(step: PieceMovement, part: PartDefinition): P
throw new Error(`Movement "${step.name}" has no teamLeader configuration`); throw new Error(`Movement "${step.name}" has no teamLeader configuration`);
} }
const partAllowedTools = step.teamLeader.partAllowedTools ?? step.providerOptions?.claude?.allowedTools;
const partProviderOptions = partAllowedTools
? {
...step.providerOptions,
claude: {
...step.providerOptions?.claude,
allowedTools: partAllowedTools,
},
}
: step.providerOptions;
return { return {
name: `${step.name}.${part.id}`, name: `${step.name}.${part.id}`,
description: part.title, description: part.title,
@ -28,7 +39,7 @@ export function createPartMovement(step: PieceMovement, part: PartDefinition): P
personaPath: step.teamLeader.partPersonaPath ?? step.personaPath, personaPath: step.teamLeader.partPersonaPath ?? step.personaPath,
personaDisplayName: `${step.name}:${part.id}`, personaDisplayName: `${step.name}:${part.id}`,
session: 'refresh', session: 'refresh',
allowedTools: step.teamLeader.partAllowedTools ?? step.allowedTools, providerOptions: partProviderOptions,
mcpServers: step.mcpServers, mcpServers: step.mcpServers,
provider: step.provider, provider: step.provider,
model: step.model, model: step.model,

View File

@ -41,7 +41,7 @@ export function summarizeFacetsByType(facetRelativePaths: string[]): string {
* *
* A movement is considered permission-relevant when any of: * A movement is considered permission-relevant when any of:
* - `edit: true` is set * - `edit: true` is set
* - `allowed_tools` has at least one entry * - `provider_options.claude.allowed_tools` has at least one entry
* - `required_permission_mode` is set * - `required_permission_mode` is set
* *
* @param pieceYamls - Pre-read YAML content pairs. Invalid YAML is skipped (debug-logged). * @param pieceYamls - Pre-read YAML content pairs. Invalid YAML is skipped (debug-logged).
@ -49,7 +49,16 @@ export function summarizeFacetsByType(facetRelativePaths: string[]): string {
export function detectEditPieces(pieceYamls: Array<{ name: string; content: string }>): EditPieceInfo[] { export function detectEditPieces(pieceYamls: Array<{ name: string; content: string }>): EditPieceInfo[] {
const result: EditPieceInfo[] = []; const result: EditPieceInfo[] = [];
for (const { name, content } of pieceYamls) { for (const { name, content } of pieceYamls) {
let raw: { movements?: { edit?: boolean; allowed_tools?: string[]; required_permission_mode?: string }[] } | null; let raw: {
piece_config?: {
provider_options?: { claude?: { allowed_tools?: string[] } };
};
movements?: {
edit?: boolean;
provider_options?: { claude?: { allowed_tools?: string[] } };
required_permission_mode?: string;
}[];
} | null;
try { try {
raw = parseYaml(content) as typeof raw; raw = parseYaml(content) as typeof raw;
} catch (e) { } catch (e) {
@ -57,15 +66,19 @@ export function detectEditPieces(pieceYamls: Array<{ name: string; content: stri
continue; continue;
} }
const movements = raw?.movements ?? []; const movements = raw?.movements ?? [];
const pieceAllowedTools = raw?.piece_config?.provider_options?.claude?.allowed_tools;
const resolveAllowedTools = (movement: typeof movements[number]): string[] =>
movement.provider_options?.claude?.allowed_tools ?? pieceAllowedTools ?? [];
const hasEditMovement = movements.some(m => m.edit === true); const hasEditMovement = movements.some(m => m.edit === true);
const hasToolMovements = movements.some(m => (m.allowed_tools?.length ?? 0) > 0); const hasToolMovements = movements.some(m => resolveAllowedTools(m).length > 0);
const hasPermissionMovements = movements.some(m => m.required_permission_mode != null); const hasPermissionMovements = movements.some(m => m.required_permission_mode != null);
if (!hasEditMovement && !hasToolMovements && !hasPermissionMovements) continue; if (!hasEditMovement && !hasToolMovements && !hasPermissionMovements) continue;
const allTools = new Set<string>(); const allTools = new Set<string>();
for (const m of movements) { for (const m of movements) {
if (m.allowed_tools) { for (const t of resolveAllowedTools(m)) {
for (const t of m.allowed_tools) allTools.add(t); allTools.add(t);
} }
} }
const requiredPermissionModes: string[] = []; const requiredPermissionModes: string[] = [];
@ -89,15 +102,17 @@ export function detectEditPieces(pieceYamls: Array<{ name: string; content: stri
/** /**
* Format warning lines for a single permission-relevant piece. * Format warning lines for a single permission-relevant piece.
* Returns one line per warning (edit, allowed_tools, required_permission_mode). * Returns one line per warning (edit, provider_options.claude.allowed_tools, required_permission_mode).
*/ */
export function formatEditPieceWarnings(ep: EditPieceInfo): string[] { export function formatEditPieceWarnings(ep: EditPieceInfo): string[] {
const warnings: string[] = []; const warnings: string[] = [];
if (ep.hasEdit) { if (ep.hasEdit) {
const toolStr = ep.allowedTools.length > 0 ? `, allowed_tools: [${ep.allowedTools.join(', ')}]` : ''; const toolStr = ep.allowedTools.length > 0
? `, provider_options.claude.allowed_tools: [${ep.allowedTools.join(', ')}]`
: '';
warnings.push(`\n ⚠ ${ep.name}: edit: true${toolStr}`); warnings.push(`\n ⚠ ${ep.name}: edit: true${toolStr}`);
} else if (ep.allowedTools.length > 0) { } else if (ep.allowedTools.length > 0) {
warnings.push(`\n ⚠ ${ep.name}: allowed_tools: [${ep.allowedTools.join(', ')}]`); warnings.push(`\n ⚠ ${ep.name}: provider_options.claude.allowed_tools: [${ep.allowedTools.join(', ')}]`);
} }
for (const mode of ep.requiredPermissionModes) { for (const mode of ep.requiredPermissionModes) {
warnings.push(`\n ⚠ ${ep.name}: required_permission_mode: ${mode}`); warnings.push(`\n ⚠ ${ep.name}: required_permission_mode: ${mode}`);

View File

@ -142,16 +142,23 @@ export function denormalizeProviderOptions(
if (providerOptions.opencode?.networkAccess !== undefined) { if (providerOptions.opencode?.networkAccess !== undefined) {
raw.opencode = { network_access: providerOptions.opencode.networkAccess }; raw.opencode = { network_access: providerOptions.opencode.networkAccess };
} }
if (providerOptions.claude?.sandbox) { if (providerOptions.claude) {
const claude: Record<string, unknown> = {};
if (providerOptions.claude.allowedTools !== undefined) {
claude.allowed_tools = providerOptions.claude.allowedTools;
}
const sandbox: Record<string, unknown> = {}; const sandbox: Record<string, unknown> = {};
if (providerOptions.claude.sandbox.allowUnsandboxedCommands !== undefined) { if (providerOptions.claude.sandbox?.allowUnsandboxedCommands !== undefined) {
sandbox.allow_unsandboxed_commands = providerOptions.claude.sandbox.allowUnsandboxedCommands; sandbox.allow_unsandboxed_commands = providerOptions.claude.sandbox.allowUnsandboxedCommands;
} }
if (providerOptions.claude.sandbox.excludedCommands !== undefined) { if (providerOptions.claude.sandbox?.excludedCommands !== undefined) {
sandbox.excluded_commands = providerOptions.claude.sandbox.excludedCommands; sandbox.excluded_commands = providerOptions.claude.sandbox.excludedCommands;
} }
if (Object.keys(sandbox).length > 0) { if (Object.keys(sandbox).length > 0) {
raw.claude = { sandbox }; claude.sandbox = sandbox;
}
if (Object.keys(claude).length > 0) {
raw.claude = claude;
} }
} }

View File

@ -267,7 +267,6 @@ function normalizeStepFromRaw(
session: step.session, session: step.session,
personaDisplayName: displayName || (personaSpec ? extractPersonaDisplayName(personaSpec) : step.name), personaDisplayName: displayName || (personaSpec ? extractPersonaDisplayName(personaSpec) : step.name),
personaPath, personaPath,
allowedTools: step.allowed_tools,
mcpServers: step.mcp_servers, mcpServers: step.mcp_servers,
provider: normalizedProvider.provider ?? inheritedProvider, provider: normalizedProvider.provider ?? inheritedProvider,
model: normalizedProvider.model ?? (normalizedProvider.providerSpecified ? undefined : inheritedModel), model: normalizedProvider.model ?? (normalizedProvider.providerSpecified ? undefined : inheritedModel),

View File

@ -230,7 +230,7 @@ function buildMovementPreviews(piece: PieceConfig, maxCount: number): MovementPr
personaDisplayName: movement.personaDisplayName, personaDisplayName: movement.personaDisplayName,
personaContent: readMovementPersona(movement), personaContent: readMovementPersona(movement),
instructionContent: movement.instructionTemplate, instructionContent: movement.instructionTemplate,
allowedTools: movement.allowedTools ?? [], allowedTools: movement.providerOptions?.claude?.allowedTools ?? [],
canEdit: movement.edit === true, canEdit: movement.edit === true,
}); });
@ -321,7 +321,7 @@ function buildFirstMovementInfo(piece: PieceConfig): FirstMovementInfo | undefin
return { return {
personaContent: readMovementPersona(movement), personaContent: readMovementPersona(movement),
personaDisplayName: movement.personaDisplayName, personaDisplayName: movement.personaDisplayName,
allowedTools: movement.allowedTools ?? [], allowedTools: movement.providerOptions?.claude?.allowedTools ?? [],
}; };
} }

View File

@ -8,6 +8,7 @@ type RawProviderOptions = {
network_access?: boolean; network_access?: boolean;
}; };
claude?: { claude?: {
allowed_tools?: string[];
sandbox?: { sandbox?: {
allow_unsandboxed_commands?: boolean; allow_unsandboxed_commands?: boolean;
excluded_commands?: string[]; excluded_commands?: string[];
@ -31,18 +32,23 @@ export function normalizeProviderOptions(
if (options.opencode?.network_access !== undefined) { if (options.opencode?.network_access !== undefined) {
result.opencode = { networkAccess: options.opencode.network_access }; result.opencode = { networkAccess: options.opencode.network_access };
} }
if (options.claude?.sandbox) { if (options.claude?.allowed_tools !== undefined || options.claude?.sandbox) {
result.claude = { const claude: NonNullable<MovementProviderOptions['claude']> = {};
sandbox: { if (options.claude.allowed_tools !== undefined) {
claude.allowedTools = options.claude.allowed_tools;
}
if (options.claude.sandbox) {
claude.sandbox = {
...(options.claude.sandbox.allow_unsandboxed_commands !== undefined ...(options.claude.sandbox.allow_unsandboxed_commands !== undefined
? { allowUnsandboxedCommands: options.claude.sandbox.allow_unsandboxed_commands } ? { allowUnsandboxedCommands: options.claude.sandbox.allow_unsandboxed_commands }
: {}), : {}),
...(options.claude.sandbox.excluded_commands !== undefined ...(options.claude.sandbox.excluded_commands !== undefined
? { excludedCommands: options.claude.sandbox.excluded_commands } ? { excludedCommands: options.claude.sandbox.excluded_commands }
: {}), : {}),
},
}; };
} }
result.claude = claude;
}
return Object.keys(result).length > 0 ? result : undefined; return Object.keys(result).length > 0 ? result : undefined;
} }
@ -60,9 +66,15 @@ export function mergeProviderOptions(
if (layer.opencode) { if (layer.opencode) {
result.opencode = { ...result.opencode, ...layer.opencode }; result.opencode = { ...result.opencode, ...layer.opencode };
} }
if (layer.claude?.sandbox) { if (layer.claude) {
result.claude = { result.claude = {
sandbox: { ...result.claude?.sandbox, ...layer.claude.sandbox }, ...result.claude,
...(layer.claude.allowedTools !== undefined
? { allowedTools: layer.claude.allowedTools }
: {}),
...(layer.claude.sandbox
? { sandbox: { ...result.claude?.sandbox, ...layer.claude.sandbox } }
: {}),
}; };
} }
} }