@ronkovic/aad 0.3.9 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +332 -14
- package/package.json +6 -1
- package/src/__tests__/e2e/cleanup-e2e.test.ts +186 -0
- package/src/__tests__/e2e/dashboard-api-e2e.test.ts +87 -0
- package/src/__tests__/e2e/pipeline-e2e.test.ts +10 -68
- package/src/__tests__/e2e/resume-e2e.test.ts +9 -11
- package/src/__tests__/e2e/retry-e2e.test.ts +285 -0
- package/src/__tests__/e2e/status-e2e.test.ts +227 -0
- package/src/__tests__/e2e/tdd-pipeline-e2e.test.ts +360 -0
- package/src/__tests__/helpers/index.ts +6 -0
- package/src/__tests__/helpers/mock-claude-provider.ts +53 -0
- package/src/__tests__/helpers/mock-logger.ts +36 -0
- package/src/__tests__/helpers/wait-helpers.ts +34 -0
- package/src/__tests__/integration/pipeline.test.ts +3 -0
- package/src/modules/claude-provider/__tests__/claude-sdk-real-env.test.ts +1 -1
- package/src/modules/claude-provider/__tests__/claude-sdk.adapter.test.ts +6 -0
- package/src/modules/claude-provider/__tests__/provider-registry.test.ts +3 -0
- package/src/modules/cli/__tests__/cleanup.test.ts +73 -0
- package/src/modules/cli/__tests__/resume.test.ts +4 -0
- package/src/modules/cli/__tests__/run.test.ts +37 -0
- package/src/modules/cli/__tests__/status.test.ts +1 -0
- package/src/modules/cli/app.ts +2 -0
- package/src/modules/cli/commands/__tests__/task-dispatch-handler.test.ts +145 -0
- package/src/modules/cli/commands/cleanup.ts +26 -11
- package/src/modules/cli/commands/resume.ts +14 -8
- package/src/modules/cli/commands/run.ts +70 -8
- package/src/modules/cli/commands/task-dispatch-handler.ts +73 -3
- package/src/modules/dashboard/__tests__/api-graph.test.ts +332 -0
- package/src/modules/dashboard/__tests__/api-timeline.test.ts +461 -0
- package/src/modules/dashboard/routes/sse.ts +3 -2
- package/src/modules/dashboard/server.ts +1 -0
- package/src/modules/dashboard/services/sse-broadcaster.ts +29 -0
- package/src/modules/dashboard/ui/dashboard.html +640 -349
- package/src/modules/git-workspace/__tests__/branch-manager.test.ts +52 -0
- package/src/modules/git-workspace/__tests__/dependency-installer.test.ts +77 -0
- package/src/modules/git-workspace/__tests__/git-exec.test.ts +26 -0
- package/src/modules/git-workspace/__tests__/merge-service.test.ts +19 -0
- package/src/modules/git-workspace/__tests__/pr-manager.test.ts +80 -0
- package/src/modules/git-workspace/__tests__/template-copy.test.ts +189 -0
- package/src/modules/git-workspace/__tests__/worktree-cleanup.test.ts +29 -2
- package/src/modules/git-workspace/__tests__/worktree-manager.test.ts +64 -4
- package/src/modules/git-workspace/branch-manager.ts +24 -3
- package/src/modules/git-workspace/dependency-installer.ts +113 -0
- package/src/modules/git-workspace/git-exec.ts +3 -2
- package/src/modules/git-workspace/index.ts +10 -1
- package/src/modules/git-workspace/merge-service.ts +36 -2
- package/src/modules/git-workspace/pr-manager.ts +278 -0
- package/src/modules/git-workspace/template-copy.ts +302 -0
- package/src/modules/git-workspace/worktree-manager.ts +37 -11
- package/src/modules/planning/__tests__/planning-service.test.ts +3 -0
- package/src/modules/planning/__tests__/planning.service.test.ts +149 -0
- package/src/modules/planning/__tests__/project-detection.test.ts +7 -1
- package/src/modules/planning/planning.service.ts +16 -2
- package/src/modules/planning/project-detection.ts +4 -1
- package/src/modules/process-manager/__tests__/process-manager.test.ts +3 -0
- package/src/modules/process-manager/process-manager.ts +2 -1
- package/src/modules/task-execution/__tests__/executor.test.ts +496 -0
- package/src/modules/task-execution/__tests__/tester-verify.test.ts +4 -3
- package/src/modules/task-execution/executor.ts +163 -4
- package/src/modules/task-execution/phases/implementer-green.ts +22 -5
- package/src/modules/task-execution/phases/merge.ts +44 -2
- package/src/modules/task-execution/phases/tester-red.ts +22 -5
- package/src/modules/task-execution/phases/tester-verify.ts +22 -6
- package/src/modules/task-queue/dispatcher.ts +96 -3
- package/src/shared/__tests__/config.test.ts +30 -0
- package/src/shared/__tests__/events.test.ts +42 -16
- package/src/shared/__tests__/prerequisites.test.ts +176 -0
- package/src/shared/__tests__/shutdown-handler.test.ts +96 -0
- package/src/shared/config.ts +10 -0
- package/src/shared/events.ts +5 -0
- package/src/shared/memory-check.ts +2 -2
- package/src/shared/prerequisites.ts +190 -0
- package/src/shared/shutdown-handler.ts +12 -5
- package/src/shared/types.ts +25 -0
- package/templates/CLAUDE.md +122 -0
- package/templates/settings.json +117 -0
- package/src/modules/persistence/__tests__/.tmp-stores-test-81991/progress.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-81991/queue/completed/task-getall-2.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-81991/queue/pending/task-1.json +0 -13
- package/src/modules/persistence/__tests__/.tmp-stores-test-81991/queue/pending/task-getall-1.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-81991/queue/pending/task-status-change.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-81991/workers/worker-1.json +0 -5
- package/src/modules/persistence/__tests__/.tmp-stores-test-81991/workers/worker-2.json +0 -5
- package/src/modules/persistence/__tests__/.tmp-stores-test-82469/progress.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-82469/queue/completed/task-getall-2.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-82469/queue/pending/task-1.json +0 -13
- package/src/modules/persistence/__tests__/.tmp-stores-test-82469/queue/pending/task-getall-1.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-82469/queue/pending/task-status-change.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-82469/workers/worker-1.json +0 -5
- package/src/modules/persistence/__tests__/.tmp-stores-test-82469/workers/worker-2.json +0 -5
- package/src/modules/persistence/__tests__/.tmp-stores-test-85301/progress.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-85301/queue/completed/task-getall-2.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-85301/queue/pending/task-1.json +0 -13
- package/src/modules/persistence/__tests__/.tmp-stores-test-85301/queue/pending/task-getall-1.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-85301/queue/pending/task-status-change.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-85301/workers/worker-1.json +0 -5
- package/src/modules/persistence/__tests__/.tmp-stores-test-85301/workers/worker-2.json +0 -5
- package/src/modules/persistence/__tests__/.tmp-stores-test-85759/progress.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-85759/queue/completed/task-getall-2.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-85759/queue/pending/task-1.json +0 -13
- package/src/modules/persistence/__tests__/.tmp-stores-test-85759/queue/pending/task-getall-1.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-85759/queue/pending/task-status-change.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-85759/workers/worker-1.json +0 -5
- package/src/modules/persistence/__tests__/.tmp-stores-test-85759/workers/worker-2.json +0 -5
- package/src/modules/persistence/__tests__/.tmp-stores-test-86184/progress.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-86184/queue/completed/task-getall-2.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-86184/queue/pending/task-1.json +0 -13
- package/src/modules/persistence/__tests__/.tmp-stores-test-86184/queue/pending/task-getall-1.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-86184/queue/pending/task-status-change.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-86184/workers/worker-1.json +0 -5
- package/src/modules/persistence/__tests__/.tmp-stores-test-86184/workers/worker-2.json +0 -5
- package/src/modules/persistence/__tests__/.tmp-stores-test-88026/progress.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-88026/queue/completed/task-getall-2.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-88026/queue/pending/task-1.json +0 -13
- package/src/modules/persistence/__tests__/.tmp-stores-test-88026/queue/pending/task-getall-1.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-88026/queue/pending/task-status-change.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-88026/workers/worker-1.json +0 -5
- package/src/modules/persistence/__tests__/.tmp-stores-test-88026/workers/worker-2.json +0 -5
- package/src/modules/persistence/__tests__/.tmp-stores-test-89475/progress.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-89475/queue/completed/task-getall-2.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-89475/queue/pending/task-1.json +0 -13
- package/src/modules/persistence/__tests__/.tmp-stores-test-89475/queue/pending/task-getall-1.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-89475/queue/pending/task-status-change.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-89475/workers/worker-1.json +0 -5
- package/src/modules/persistence/__tests__/.tmp-stores-test-89475/workers/worker-2.json +0 -5
- package/src/modules/persistence/__tests__/.tmp-stores-test-89924/progress.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-89924/queue/completed/task-getall-2.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-89924/queue/pending/task-1.json +0 -13
- package/src/modules/persistence/__tests__/.tmp-stores-test-89924/queue/pending/task-getall-1.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-89924/queue/pending/task-status-change.json +0 -10
- package/src/modules/persistence/__tests__/.tmp-stores-test-89924/workers/worker-1.json +0 -5
- package/src/modules/persistence/__tests__/.tmp-stores-test-89924/workers/worker-2.json +0 -5
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# 🤖 Orchestrator System Definition
|
|
2
|
+
|
|
3
|
+
あなたは、`.aad/docs/` を「唯一の真実(SSOT)」として管理し、階層的なブランチ戦略でPRを作成する自律型Orchestratorです。
|
|
4
|
+
|
|
5
|
+
## 📂 Capability Mapping
|
|
6
|
+
- **Workflow**: `.claude/skills/aad-pipeline/SKILL.md` (master-pipeline)
|
|
7
|
+
- **Spec Decomposer**: `.claude/agents/aad-spec-decomposer.md` (大規模要件分割)
|
|
8
|
+
- **Splitter**: `.claude/agents/aad-splitter.md` (要件解析・タスク分割)
|
|
9
|
+
- **Tester**: `.claude/agents/aad-tester.md` (Go/Playwright 高度TDD実行)
|
|
10
|
+
- **Implementer**: `.claude/agents/aad-implementer.md` (実装・リファクタ)
|
|
11
|
+
- **Reviewer**: `.claude/agents/aad-reviewer.md` (コード品質・セキュリティレビュー)
|
|
12
|
+
- **Documentor**: `.claude/agents/aad-documentor.md` (ドキュメント生成・更新)
|
|
13
|
+
- **Parallel Coordinator**: `.claude/agents/aad-parallel-coordinator.md` (並列実行調整)
|
|
14
|
+
- **GitHub Manager**: `.claude/agents/aad-github-manager.md` (ブランチ・Worktree・PR管理)
|
|
15
|
+
|
|
16
|
+
## 📂 Branching Strategy
|
|
17
|
+
1. **Feature Parent Branch**: 要件ごとに `main` から作成(例: `feature/yyyy-mm-dd-title`)。
|
|
18
|
+
2. **Task Branches**: 各タスクはこの「親ブランチ」から派生し、**親ブランチに向けて**PRを作成する。
|
|
19
|
+
|
|
20
|
+
## 📏 Core Rules
|
|
21
|
+
- **TDD First**: 実装前に必ず失敗するテスト(Red)を書く。Goは「テーブル駆動テスト」を基本とする。
|
|
22
|
+
- **Isolation**: 全ての作業は `../worktrees/wt-[task-id]` 内で行う。
|
|
23
|
+
- **Documentation**: 思考過程とテスト結果を `./.aad/docs/` に逐次記録する。
|
|
24
|
+
|
|
25
|
+
## 🔒 CRITICAL: ファイル所有権の確認
|
|
26
|
+
|
|
27
|
+
**編集前に必ず確認**: どのファイルが何の責任範囲かを確認する。
|
|
28
|
+
|
|
29
|
+
責任不明な場合は `/verify-ownership <file>` を実行。
|
|
30
|
+
|
|
31
|
+
## 🎯 CRITICAL: 優先順位
|
|
32
|
+
|
|
33
|
+
**機能的な正しさを最優先**。修飾的な問題は後回し。
|
|
34
|
+
|
|
35
|
+
詳細: `.claude/rules/aad-priorities.md` を参照
|
|
36
|
+
|
|
37
|
+
### HIGH (即座に対応)
|
|
38
|
+
- テスト失敗、コンパイルエラー、ランタイムエラー
|
|
39
|
+
|
|
40
|
+
### LOW (後で対応)
|
|
41
|
+
- 全角/半角の統一、コメント体裁、空白調整
|
|
42
|
+
|
|
43
|
+
## ✅ CRITICAL: タスク完了の徹底
|
|
44
|
+
|
|
45
|
+
セッション終了前に必ず:
|
|
46
|
+
1. 未コミットの変更をコミット
|
|
47
|
+
2. 失敗したテストを記録
|
|
48
|
+
3. Worktreeをクリーンアップ
|
|
49
|
+
|
|
50
|
+
## 🛠️ スキル
|
|
51
|
+
|
|
52
|
+
- `/verify-ownership <file>` - 編集前のファイル責任確認
|
|
53
|
+
- `/implement-plan <run_id>` - 計画に基づいた実装
|
|
54
|
+
|
|
55
|
+
## 💾 Agent Memory
|
|
56
|
+
|
|
57
|
+
AADシステムは**Agent Memory**を活用し、エージェントが過去の知見を蓄積・活用します。
|
|
58
|
+
|
|
59
|
+
### メモリスコープ
|
|
60
|
+
|
|
61
|
+
- **`memory: project`**: プロジェクト全体で共有される知見(コーディング規約、アーキテクチャ決定、テストパターン等)
|
|
62
|
+
- Implementer, Reviewer, Tester, GitHub Manager, Documentorが使用
|
|
63
|
+
- **`memory: user`**: ユーザー間で共有される知見(一般的なベストプラクティス)
|
|
64
|
+
- Splitter, Spec Decomposerが使用
|
|
65
|
+
- **`memory: none`**: メモリを使用しない(単発タスク向け)
|
|
66
|
+
|
|
67
|
+
### メモリ同期
|
|
68
|
+
|
|
69
|
+
タスク完了後、worktree内の`MEMORY.md`がプロジェクトテンプレート(`.aad/templates/.claude/agent-memory/`)に自動同期されます。次回実行時、エージェントは過去の知見を参照できます。
|
|
70
|
+
|
|
71
|
+
- **有効化**: `AAD_MEMORY_SYNC_ENABLED=1`(デフォルト有効)
|
|
72
|
+
- **上限**: 各MEMORY.mdは200行まで(Claude Codeの自動挿入制限)
|
|
73
|
+
|
|
74
|
+
## 🤝 Agent Teams
|
|
75
|
+
|
|
76
|
+
AADシステムは**Agent Teams**を活用し、1つのフェーズ内で複数のClaude CLIインスタンスを並列実行します。
|
|
77
|
+
|
|
78
|
+
### チーム構成
|
|
79
|
+
|
|
80
|
+
- **Splitterフェーズ**: 3並列分析(デフォルト有効)
|
|
81
|
+
- `codebase-analyzer`: ディレクトリ構造、既存コード、技術スタック分析
|
|
82
|
+
- `requirement-analyzer`: 要件パース、ユーザーストーリー抽出、受入基準特定
|
|
83
|
+
- `dependency-mapper`: モジュール間依存、並列化ポテンシャル分析
|
|
84
|
+
- **Reviewフェーズ**: 3並列レビュー(デフォルト無効)
|
|
85
|
+
- `quality-reviewer`: コード品質、可読性、保守性
|
|
86
|
+
- `security-reviewer`: セキュリティ脆弱性、権限チェック
|
|
87
|
+
- `performance-reviewer`: パフォーマンス、リソース効率
|
|
88
|
+
|
|
89
|
+
### 重要な制約
|
|
90
|
+
|
|
91
|
+
AADはtmuxを独自管理するため、`teammateMode: "in-process"`固定です。`"tmux"`モードは使用できません。
|
|
92
|
+
|
|
93
|
+
- **設定**: `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`(settings.jsonのenvで設定)
|
|
94
|
+
- **Splitter**: `AAD_USE_TEAMS_FOR_SPLITTER=1`(デフォルト有効)
|
|
95
|
+
- **Review**: `AAD_USE_TEAMS_FOR_REVIEW=0`(デフォルト無効)
|
|
96
|
+
|
|
97
|
+
## ⚙️ 環境変数一覧
|
|
98
|
+
|
|
99
|
+
`.aad/config.sh`で以下の環境変数を設定できます:
|
|
100
|
+
|
|
101
|
+
| 変数 | デフォルト | 説明 |
|
|
102
|
+
|---|---|---|
|
|
103
|
+
| `AAD_NUM_WORKERS` | `2` | 並列ワーカー数 |
|
|
104
|
+
| `AAD_MAX_WORKERS` | `8` | 最大ワーカー数上限 |
|
|
105
|
+
| `AAD_USE_TEAMS_FOR_SPLITTER` | `1` | Splitterフェーズのチーム有効 |
|
|
106
|
+
| `AAD_USE_TEAMS_FOR_REVIEW` | `0` | Reviewフェーズのチーム有効 |
|
|
107
|
+
| `AAD_MEMORY_SYNC_ENABLED` | `1` | Agent Memory同期有効 |
|
|
108
|
+
| `AAD_ADAPTIVE_EFFORT` | `0` | タスク複雑度ベースeffort調整 |
|
|
109
|
+
| `AAD_MODEL` | *(空=CLIデフォルト)* | 全フェーズ共通モデル |
|
|
110
|
+
| `AAD_MODEL_SPLITTER` | *(空=AAD_MODEL)* | Splitterモデル |
|
|
111
|
+
| `AAD_MODEL_TESTER` | *(空=AAD_MODEL)* | Testerモデル |
|
|
112
|
+
| `AAD_MODEL_IMPLEMENTER` | *(空=AAD_MODEL)* | Implementerモデル |
|
|
113
|
+
| `AAD_MODEL_REVIEWER` | *(空=AAD_MODEL)* | Reviewerモデル |
|
|
114
|
+
| `AAD_MODEL_MERGE` | `haiku` | Merge resolverモデル |
|
|
115
|
+
| `AAD_MODEL_BRANCH_NAME` | `haiku` | ブランチ名生成モデル |
|
|
116
|
+
| `CLAUDE_TIMEOUT` | `1200` | Claude CLI呼び出しタイムアウト(秒) |
|
|
117
|
+
| `TEST_TIMEOUT` | `600` | テスト実行タイムアウト(秒) |
|
|
118
|
+
| `AAD_STALE_TASK_TIMEOUT` | `5400` | スタレタスクタイムアウト(秒) |
|
|
119
|
+
| `MAX_PHASE_RETRIES` | `2` | フェーズ毎最大リトライ回数 |
|
|
120
|
+
| `DEBUG` | `0` | デバッグログ有効 |
|
|
121
|
+
|
|
122
|
+
利用可能なモデル名: `sonnet`, `opus`, `haiku`, `claude-sonnet-4-5-20250929`, `claude-opus-4-6`, `claude-haiku-4-5-20251001`
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(go test *)",
|
|
5
|
+
"Bash(go build *)",
|
|
6
|
+
"Bash(go mod *)",
|
|
7
|
+
"Bash(npm run *)",
|
|
8
|
+
"Bash(npm test)",
|
|
9
|
+
"Bash(npx playwright *)",
|
|
10
|
+
"Bash(git status)",
|
|
11
|
+
"Bash(git diff *)",
|
|
12
|
+
"Bash(git log *)",
|
|
13
|
+
"Bash(git branch *)",
|
|
14
|
+
"Bash(git checkout -b *)",
|
|
15
|
+
"Bash(git add *)",
|
|
16
|
+
"Bash(git commit *)",
|
|
17
|
+
"Bash(git worktree *)",
|
|
18
|
+
"Bash(gh pr *)",
|
|
19
|
+
"Bash(gh issue *)",
|
|
20
|
+
"Read",
|
|
21
|
+
"Grep",
|
|
22
|
+
"Glob",
|
|
23
|
+
"Write",
|
|
24
|
+
"Edit"
|
|
25
|
+
],
|
|
26
|
+
"deny": [
|
|
27
|
+
"Bash(git push origin main)",
|
|
28
|
+
"Bash(git push origin master)",
|
|
29
|
+
"Bash(git push -f *)",
|
|
30
|
+
"Bash(git push --force *)",
|
|
31
|
+
"Bash(git reset --hard *)",
|
|
32
|
+
"Bash(rm -rf /)",
|
|
33
|
+
"Bash(rm -rf ~)",
|
|
34
|
+
"Bash(rm -rf /*)",
|
|
35
|
+
"Write(**/secrets/**)",
|
|
36
|
+
"Edit(**/secrets/**)",
|
|
37
|
+
"Bash(curl * | sh)",
|
|
38
|
+
"Bash(curl * | bash)",
|
|
39
|
+
"Bash(wget * | sh)",
|
|
40
|
+
"Read(.env)",
|
|
41
|
+
"Read(.env.*)",
|
|
42
|
+
"Read(~/.ssh/*)",
|
|
43
|
+
"Read(~/.aws/*)",
|
|
44
|
+
"Write(.env)",
|
|
45
|
+
"Write(.env.*)",
|
|
46
|
+
"Write(~/.ssh/*)",
|
|
47
|
+
"Write(~/.aws/*)",
|
|
48
|
+
"Write(.claude/settings.json)",
|
|
49
|
+
"Edit(.env)",
|
|
50
|
+
"Edit(.env.*)",
|
|
51
|
+
"Edit(~/.ssh/*)",
|
|
52
|
+
"Edit(~/.aws/*)",
|
|
53
|
+
"Edit(.claude/settings.json)"
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
"sandbox": {
|
|
57
|
+
"enabled": true,
|
|
58
|
+
"autoAllowBashIfSandboxed": true,
|
|
59
|
+
"network": {
|
|
60
|
+
"allowedDomains": ["github.com", "api.github.com", "npmjs.org", "proxy.golang.org"]
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"hooks": {
|
|
64
|
+
"PreToolUse": [
|
|
65
|
+
{
|
|
66
|
+
"matcher": "Bash",
|
|
67
|
+
"hooks": [
|
|
68
|
+
{
|
|
69
|
+
"type": "command",
|
|
70
|
+
"command": ".claude/hooks/aad-validate-command.sh",
|
|
71
|
+
"timeout": 5
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
"PostToolUse": [
|
|
77
|
+
{
|
|
78
|
+
"matcher": "Write|Edit",
|
|
79
|
+
"hooks": [
|
|
80
|
+
{
|
|
81
|
+
"type": "command",
|
|
82
|
+
"command": ".claude/hooks/aad-post-edit-verify.sh",
|
|
83
|
+
"timeout": 30
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"TeammateIdle": [
|
|
89
|
+
{
|
|
90
|
+
"matcher": "",
|
|
91
|
+
"hooks": [
|
|
92
|
+
{
|
|
93
|
+
"type": "command",
|
|
94
|
+
"command": ".claude/hooks/aad-teammate-idle.sh",
|
|
95
|
+
"timeout": 5
|
|
96
|
+
}
|
|
97
|
+
]
|
|
98
|
+
}
|
|
99
|
+
],
|
|
100
|
+
"TaskCompleted": [
|
|
101
|
+
{
|
|
102
|
+
"matcher": "",
|
|
103
|
+
"hooks": [
|
|
104
|
+
{
|
|
105
|
+
"type": "command",
|
|
106
|
+
"command": ".claude/hooks/aad-task-completed.sh",
|
|
107
|
+
"timeout": 10
|
|
108
|
+
}
|
|
109
|
+
]
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
"env": {
|
|
114
|
+
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1",
|
|
115
|
+
"AAD_USE_TEAMS_FOR_SPLITTER": "1"
|
|
116
|
+
}
|
|
117
|
+
}
|