claude-code-conductor 0.6.4__tar.gz → 0.7.1__tar.gz
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.
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/CLAUDE.md +1 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/agents/code-reviewer.md +10 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/agents/developer.md +10 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/agents/project-setup.md +18 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/agents/security-reviewer.md +10 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/agents/systematic-debugger.md +10 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/agents/tester.md +10 -0
- claude_code_conductor-0.7.1/.claude/docs/settings.json.md +492 -0
- claude_code_conductor-0.7.1/.claude/hooks/permission_handler.py +154 -0
- claude_code_conductor-0.7.1/.claude/hooks/restore_session.py +75 -0
- claude_code_conductor-0.7.1/.claude/hooks/subagent_log.py +212 -0
- claude_code_conductor-0.7.1/.claude/permission_rules.json +14 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/settings.json +28 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/settings.local.json +33 -1
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/skills/setup/SKILL.md +4 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.gitignore +6 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/CHANGELOG.md +26 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/PKG-INFO +1 -1
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/hatch_build.py +2 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/src/c3/__init__.py +1 -1
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/src/c3/_excludes.py +2 -0
- claude_code_conductor-0.7.1/tests/hooks/test_permission_handler.py +725 -0
- claude_code_conductor-0.7.1/tests/hooks/test_restore_session.py +401 -0
- claude_code_conductor-0.7.1/tests/hooks/test_subagent_log.py +900 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/agents/architect.md +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/agents/doc-writer.md +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/agents/interviewer.md +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/agents/planner.md +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/agents/tdd-develop.md +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/docs/parallel-orchestra-manifest.md +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/hooks/clear_file_history.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/hooks/enable_sandbox.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/hooks/pre_compact.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/hooks/pre_tool.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/hooks/session_utils.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/hooks/statusline.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/hooks/stop.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/hooks/validate_skill_change.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/hooks/worktree_guard.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/memory/.gitkeep +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/rules/code-review-checklist.md +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/rules/promoted/index.md +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/rules/security-review-checklist.md +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/skills/code-review/SKILL.md +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/skills/dev-workflow/SKILL.md +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/skills/develop/SKILL.md +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/skills/doc/SKILL.md +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/skills/extract-lib/SKILL.md +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/skills/init-session/SKILL.md +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/skills/mcp-config/SKILL.md +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/skills/pattern-status/SKILL.md +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/skills/promote-pattern/SKILL.md +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/skills/report-timestamp/SKILL.md +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/skills/report-timestamp/scripts/get_timestamp.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/skills/start/SKILL.md +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/skills/wave-execution/SKILL.md +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/skills/worktree-tdd-workflow/SKILL.md +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/LICENSE +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/README.md +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/pyproject.toml +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/src/c3/__main__.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/src/c3/cli.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/src/c3/cli_doctor.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/src/c3/cli_init.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/src/c3/cli_list.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/src/c3/cli_po.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/src/c3/cli_update.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/src/c3/paths.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/src/c3/po/__init__.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/src/c3/po/manifest.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/src/c3/po/run.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/src/parallel_orchestra/__init__.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/src/parallel_orchestra/_exceptions.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/src/parallel_orchestra/cli.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/src/parallel_orchestra/manifest.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/src/parallel_orchestra/report.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/src/parallel_orchestra/runner.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/__init__.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/conftest.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/hooks/__init__.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/hooks/test_clear_file_history.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/hooks/test_enable_sandbox.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/hooks/test_session_utils.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/hooks/test_statusline.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/hooks/test_statusline_template_sync.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/parallel_orchestra/__init__.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/parallel_orchestra/conftest.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/parallel_orchestra/test_cli.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/parallel_orchestra/test_manifest.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/parallel_orchestra/test_report.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/parallel_orchestra/test_retry_backoff.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/parallel_orchestra/test_review_fixes.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/parallel_orchestra/test_review_fixes2.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/parallel_orchestra/test_review_fixes3.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/parallel_orchestra/test_review_fixes4.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/parallel_orchestra/test_review_fixes5.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/parallel_orchestra/test_runner_t7.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/parallel_orchestra/test_runner_v04_fix.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/parallel_orchestra/test_runner_v04_m1.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/parallel_orchestra/test_runner_v04_m2.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_clear_file_history.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_cli_init.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_cli_list.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_cli_po.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_cli_po_tempfile.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_docstring_consistency.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_enable_sandbox.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_excludes.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_manifest_fixes.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_manifest_yaml_escape.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_paths.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_po_manifest.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_po_run.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_po_waves.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_pre_compact.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_pre_tool_hook.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_precompact_additional.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_precompact_toctou_fixes.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_session_utils_additional.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_statusline.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_stop_additional.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_stop_hook.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_stop_precompact_fixes.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_sync_template_clear_file_history.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_sync_template_stop.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_sync_validate_skill.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_template_pre_tool_hook.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_validate_skill_change.py +0 -0
- {claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/tests/test_worktree_guard.py +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: code-reviewer
|
|
3
3
|
model: sonnet
|
|
4
|
+
memory: project
|
|
4
5
|
description: コード品質レビュー担当。品質・保守性・パフォーマンスをレビューし code-review-report を出力する。ソース編集不可。
|
|
5
6
|
tools:
|
|
6
7
|
- Read
|
|
@@ -15,6 +16,15 @@ tools:
|
|
|
15
16
|
## Core Mandate
|
|
16
17
|
コードの品質・保守性・パフォーマンスをレビューし、改善提案を code-review-report として出力する。
|
|
17
18
|
|
|
19
|
+
## Memory
|
|
20
|
+
- 起動時に `.claude/agent-memory/code-reviewer/MEMORY.md` がシステムプロンプトに自動注入される(フロントマター `memory: project` による)。注入された内容を踏まえてレビューすること。
|
|
21
|
+
- 作業終了時、次回以降のレビューに役立つ知見があれば MEMORY.md に追記する。記録対象は以下に限定する:
|
|
22
|
+
- 再現価値のあるレビュー観点・指摘パターン
|
|
23
|
+
- **許容例外**: ユーザーが指摘を許容した観点と理由(次回レビューでの再指摘を防ぐ)
|
|
24
|
+
- 本プロジェクト特有のコーディング規約・トレードオフ判断
|
|
25
|
+
- 雑記録・一回性の進捗ログは記録しない。MEMORY.md は 200 行以内を保ち、超える場合は価値の低いエントリから削除する。
|
|
26
|
+
- 形式は箇条書き 1 行 + 必要なら次行にインデントで補足。許容例外は `[許容例外]` プレフィックスを付けて理由を併記する。
|
|
27
|
+
|
|
18
28
|
## Key Scope
|
|
19
29
|
|
|
20
30
|
✅ 担当すること:
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: developer
|
|
3
3
|
model: sonnet
|
|
4
|
+
memory: project
|
|
4
5
|
description: 実装・デバッグ担当。plan-report に基づき実装し tester が検証できる状態にする。
|
|
5
6
|
tools:
|
|
6
7
|
- Read
|
|
@@ -18,6 +19,15 @@ tools:
|
|
|
18
19
|
## Core Mandate
|
|
19
20
|
plan-report に基づき実装・デバッグ・リファクタリングを行い、tester が検証できる状態にする。
|
|
20
21
|
|
|
22
|
+
## Memory
|
|
23
|
+
- 起動時に `.claude/agent-memory/developer/MEMORY.md` がシステムプロンプトに自動注入される(フロントマター `memory: project` による)。注入された内容を踏まえて作業すること。
|
|
24
|
+
- 作業終了時、次回以降の作業に役立つ知見があれば MEMORY.md に追記する。記録対象は以下に限定する:
|
|
25
|
+
- 再現価値のある実装・リファクタリングのパターン
|
|
26
|
+
- 同じハマり方を繰り返さないための注意点(言語・ライブラリ・ツール特有の落とし穴)
|
|
27
|
+
- 本プロジェクト特有の制約・許容例外(理由とセットで)
|
|
28
|
+
- 雑記録・一回性の進捗ログは記録しない。MEMORY.md は 200 行以内を保ち、超える場合は価値の低いエントリから削除する。
|
|
29
|
+
- 形式は箇条書き 1 行 + 必要なら次行にインデントで補足。日付や ID は不要(コンテンツ自身が自己説明的であること)。
|
|
30
|
+
|
|
21
31
|
## Key Scope
|
|
22
32
|
|
|
23
33
|
✅ 担当すること:
|
|
@@ -46,7 +46,25 @@ Glob で `.claude/rules/coding-standards.md` と `.claude/rules/project-conventi
|
|
|
46
46
|
|
|
47
47
|
**Step 3: `.claude/rules/coding-standards.md` を生成**
|
|
48
48
|
|
|
49
|
+
言語に応じた `paths` を YAML フロントマターに設定し、関係するファイルを編集している時だけこのルールが適用されるようにする。
|
|
50
|
+
|
|
51
|
+
言語 → 拡張子の対応例(複数言語の場合は全て列挙する):
|
|
52
|
+
- Python → `**/*.py`
|
|
53
|
+
- TypeScript → `**/*.ts`, `**/*.tsx`
|
|
54
|
+
- JavaScript → `**/*.js`, `**/*.jsx`, `**/*.mjs`, `**/*.cjs`
|
|
55
|
+
- TypeScript + JavaScript → 上記すべて
|
|
56
|
+
- Go → `**/*.go`
|
|
57
|
+
- Java → `**/*.java`
|
|
58
|
+
- Kotlin → `**/*.kt`, `**/*.kts`
|
|
59
|
+
- C# → `**/*.cs`
|
|
60
|
+
- Rust → `**/*.rs`
|
|
61
|
+
- Ruby → `**/*.rb`
|
|
62
|
+
|
|
49
63
|
```markdown
|
|
64
|
+
---
|
|
65
|
+
paths:
|
|
66
|
+
- "**/*.{拡張子}"
|
|
67
|
+
---
|
|
50
68
|
# Coding Standards: {スタック名}
|
|
51
69
|
<!-- /agent-project-setup により生成。言語・フレームワークのバージョンアップ時に更新する。-->
|
|
52
70
|
最終更新: YYYY-MM-DD
|
{claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/agents/security-reviewer.md
RENAMED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: security-reviewer
|
|
3
3
|
model: sonnet
|
|
4
|
+
memory: project
|
|
4
5
|
description: セキュリティ診断担当。脆弱性を診断し security-review-report を出力する。ソース編集不可。
|
|
5
6
|
tools:
|
|
6
7
|
- Read
|
|
@@ -15,6 +16,15 @@ tools:
|
|
|
15
16
|
## Core Mandate
|
|
16
17
|
SQLインジェクション・XSS・認証認可・秘密情報漏洩などの脆弱性を診断し、security-review-report を出力する。
|
|
17
18
|
|
|
19
|
+
## Memory
|
|
20
|
+
- 起動時に `.claude/agent-memory/security-reviewer/MEMORY.md` がシステムプロンプトに自動注入される(フロントマター `memory: project` による)。注入された内容を踏まえて診断すること。
|
|
21
|
+
- 作業終了時、次回以降の診断に役立つ知見があれば MEMORY.md に追記する。記録対象は以下に限定する:
|
|
22
|
+
- 再現価値のある脆弱性パターン・診断観点
|
|
23
|
+
- **許容例外**: ユーザーが指摘を許容したリスク・脅威モデル外と判断した観点と理由(次回診断での再指摘を防ぐ)
|
|
24
|
+
- 本プロジェクト特有の脅威モデル・信頼境界・許容されている設計(理由とセットで)
|
|
25
|
+
- 雑記録・一回性の進捗ログは記録しない。MEMORY.md は 200 行以内を保ち、超える場合は価値の低いエントリから削除する。
|
|
26
|
+
- 形式は箇条書き 1 行 + 必要なら次行にインデントで補足。許容例外は `[許容例外]` プレフィックスを付けて理由を併記する。
|
|
27
|
+
|
|
18
28
|
## Key Scope
|
|
19
29
|
|
|
20
30
|
✅ 担当すること:
|
{claude_code_conductor-0.6.4 → claude_code_conductor-0.7.1}/.claude/agents/systematic-debugger.md
RENAMED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: systematic-debugger
|
|
3
3
|
model: sonnet
|
|
4
|
+
memory: project
|
|
4
5
|
description: デバッグ調査担当。developer が行き詰まった際に根本原因調査とパターン分析を行い debug-analysis-report を出力する。コードの修正は行わない。
|
|
5
6
|
tools:
|
|
6
7
|
- Read
|
|
@@ -17,6 +18,15 @@ tools:
|
|
|
17
18
|
developer が詰まった問題の根本原因を調査し、debug-analysis-report を出力する。
|
|
18
19
|
コードの修正は行わない。調査と分析のみ担当する。
|
|
19
20
|
|
|
21
|
+
## Memory
|
|
22
|
+
- 起動時に `.claude/agent-memory/systematic-debugger/MEMORY.md` がシステムプロンプトに自動注入される(フロントマター `memory: project` による)。注入された内容を踏まえて調査すること。
|
|
23
|
+
- 作業終了時、次回以降の調査に役立つ知見があれば MEMORY.md に追記する。記録対象は以下に限定する:
|
|
24
|
+
- **過去の根本原因パターン**: 「症状 → 原因」のペア(同じ症状を再調査せずに済む)
|
|
25
|
+
- **有効だった調査経路**: 短時間で原因到達できた Grep / コマンド・差分の見方
|
|
26
|
+
- 本プロジェクト特有の落とし穴(環境・設定・依存関係に起因する繰り返し問題)
|
|
27
|
+
- 雑記録・一回性の進捗ログは記録しない。MEMORY.md は 200 行以内を保ち、超える場合は価値の低いエントリから削除する。
|
|
28
|
+
- 形式は箇条書き 1 行 + 必要なら次行にインデントで補足。「症状 → 原因」のペアは矢印で明示する。
|
|
29
|
+
|
|
20
30
|
## Key Scope
|
|
21
31
|
|
|
22
32
|
✅ 担当すること:
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: tester
|
|
3
3
|
model: sonnet
|
|
4
|
+
memory: project
|
|
4
5
|
description: テスト設計・実行担当。テスト仕様の設計・実行・test-report を出力する。ソース編集不可。
|
|
5
6
|
tools:
|
|
6
7
|
- Read
|
|
@@ -16,6 +17,15 @@ tools:
|
|
|
16
17
|
## Core Mandate
|
|
17
18
|
テスト仕様の設計・テストコード作成・テスト実行を行い、品質状況を test-report として出力する。
|
|
18
19
|
|
|
20
|
+
## Memory
|
|
21
|
+
- 起動時に `.claude/agent-memory/tester/MEMORY.md` がシステムプロンプトに自動注入される(フロントマター `memory: project` による)。注入された内容を踏まえて作業すること。
|
|
22
|
+
- 作業終了時、次回以降の作業に役立つ知見があれば MEMORY.md に追記する。記録対象は以下に限定する:
|
|
23
|
+
- 再現価値のあるテスト設計パターン(Red の書き方・テスト分割の粒度・モック戦略)
|
|
24
|
+
- 本プロジェクト特有のテスト落とし穴(環境依存・並行実行・フレーク要因)
|
|
25
|
+
- テスト実行コマンド・前提条件などプロジェクト特有の情報
|
|
26
|
+
- 雑記録・一回性の進捗ログは記録しない。MEMORY.md は 200 行以内を保ち、超える場合は価値の低いエントリから削除する。
|
|
27
|
+
- 形式は箇条書き 1 行 + 必要なら次行にインデントで補足。日付や ID は不要(コンテンツ自身が自己説明的であること)。
|
|
28
|
+
|
|
19
29
|
## Key Scope
|
|
20
30
|
|
|
21
31
|
✅ 担当すること:
|
|
@@ -0,0 +1,492 @@
|
|
|
1
|
+
# settings.json リファレンス
|
|
2
|
+
|
|
3
|
+
Claude Code の設定ファイル。プロジェクトルートの `.claude/settings.json` に配置する。
|
|
4
|
+
ユーザーローカルの上書きは `.claude/settings.local.json`(`.gitignore` 推奨)。
|
|
5
|
+
|
|
6
|
+
> 設定の優先順位: `settings.local.json` > `settings.json` > グローバル設定(`~/.claude/settings.json`)
|
|
7
|
+
> ただし `hooks` セクションは `settings.local.json` が `settings.json` を**完全に上書き**する(マージしない)。
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## `permissions`
|
|
12
|
+
|
|
13
|
+
ツール呼び出しの許可・拒否ルールを定義する。
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"permissions": {
|
|
18
|
+
"allow": [
|
|
19
|
+
"Bash(git status*)",
|
|
20
|
+
"Read(**)",
|
|
21
|
+
"Write(.claude/reports/**)"
|
|
22
|
+
],
|
|
23
|
+
"deny": [
|
|
24
|
+
"Read(.env)",
|
|
25
|
+
"Read(**/.env)"
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### パターン書式
|
|
32
|
+
|
|
33
|
+
| 書式 | 説明 |
|
|
34
|
+
|---|---|
|
|
35
|
+
| `ToolName` | 引数なしでツールを許可 |
|
|
36
|
+
| `ToolName(pattern)` | 引数が `pattern` にマッチする場合のみ許可 |
|
|
37
|
+
| `ToolName(domain:example.com)` | WebFetch の場合はドメイン指定も使える |
|
|
38
|
+
| `**` | パス境界を越えるワイルドカード |
|
|
39
|
+
| `*` | パス境界内のワイルドカード(`/` を越えない) |
|
|
40
|
+
|
|
41
|
+
> `promoted-*` のように境界以外に `*` を置くとバリデーションエラーになる。
|
|
42
|
+
|
|
43
|
+
### 利用できるツール名
|
|
44
|
+
|
|
45
|
+
`Bash` / `Read` / `Write` / `Edit` / `Glob` / `Grep` / `WebFetch` / `WebSearch` / `Agent` / `Skill` / `TodoWrite` / `NotebookEdit` など。
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## `sandbox`
|
|
50
|
+
|
|
51
|
+
Claude Code のサンドボックス(プロセス分離)を設定する。
|
|
52
|
+
|
|
53
|
+
```json
|
|
54
|
+
{
|
|
55
|
+
"sandbox": {
|
|
56
|
+
"enabled": true,
|
|
57
|
+
"autoAllowBashIfSandboxed": true,
|
|
58
|
+
"allowUnsandboxedCommands": false,
|
|
59
|
+
"excludedCommands": [],
|
|
60
|
+
"network": {
|
|
61
|
+
"allowUnixSockets": [],
|
|
62
|
+
"allowAllUnixSockets": false,
|
|
63
|
+
"allowLocalBinding": false,
|
|
64
|
+
"allowedDomains": []
|
|
65
|
+
},
|
|
66
|
+
"enableWeakerNestedSandbox": true
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
| キー | 型 | 説明 |
|
|
72
|
+
|---|---|---|
|
|
73
|
+
| `enabled` | boolean | サンドボックスを有効にする |
|
|
74
|
+
| `autoAllowBashIfSandboxed` | boolean | サンドボックス有効時に Bash を自動許可する |
|
|
75
|
+
| `allowUnsandboxedCommands` | boolean | サンドボックス外でのコマンド実行を許可する |
|
|
76
|
+
| `excludedCommands` | string[] | サンドボックスから除外するコマンドのリスト |
|
|
77
|
+
| `network.allowUnixSockets` | string[] | 許可する Unix ソケットのパス一覧 |
|
|
78
|
+
| `network.allowAllUnixSockets` | boolean | 全 Unix ソケットを許可する |
|
|
79
|
+
| `network.allowLocalBinding` | boolean | ローカルポートへのバインドを許可する |
|
|
80
|
+
| `network.allowedDomains` | string[] | 許可するネットワークドメイン一覧 |
|
|
81
|
+
| `enableWeakerNestedSandbox` | boolean | ネストされたサブエージェントに緩いサンドボックスを適用する |
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## `hooks`
|
|
86
|
+
|
|
87
|
+
Claude Code のイベントに対してフックを登録する。マッチした全フックは並列実行され、同一コマンドは自動で重複排除される。
|
|
88
|
+
|
|
89
|
+
```json
|
|
90
|
+
{
|
|
91
|
+
"hooks": {
|
|
92
|
+
"PreToolUse": [
|
|
93
|
+
{
|
|
94
|
+
"matcher": "Bash",
|
|
95
|
+
"hooks": [
|
|
96
|
+
{
|
|
97
|
+
"type": "command",
|
|
98
|
+
"command": "python \"$CLAUDE_PROJECT_DIR/.claude/hooks/pre_tool.py\"",
|
|
99
|
+
"if": "Bash(git *)",
|
|
100
|
+
"timeout": 30
|
|
101
|
+
}
|
|
102
|
+
]
|
|
103
|
+
}
|
|
104
|
+
]
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
> `disableAllHooks: true` をトップレベルに設定すると全フックを無効化できる。
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
### イベント一覧
|
|
114
|
+
|
|
115
|
+
| イベント | タイミング | ブロック可否 |
|
|
116
|
+
|---|---|---|
|
|
117
|
+
| `SessionStart` | セッション開始・再開時 | 不可 |
|
|
118
|
+
| `Setup` | `--init-only` / `--init` / `--maintenance` 起動時 | 不可 |
|
|
119
|
+
| `UserPromptSubmit` | プロンプト送信時(Claude 処理前) | 可(exit 2) |
|
|
120
|
+
| `UserPromptExpansion` | スキル/コマンドの展開時(Claude 処理前) | 可(exit 2) |
|
|
121
|
+
| `PreToolUse` | ツール実行の直前 | 可(exit 2 または JSON) |
|
|
122
|
+
| `PermissionRequest` | 許可ダイアログが表示される時 | 可(JSON で allow/deny) |
|
|
123
|
+
| `PermissionDenied` | auto モードがツールを拒否した時 | — |
|
|
124
|
+
| `PostToolUse` | ツール実行の直後(成功) | 可(JSON `decision: "block"`) |
|
|
125
|
+
| `PostToolUseFailure` | ツール実行の直後(失敗) | — |
|
|
126
|
+
| `PostToolBatch` | 並列ツール呼び出しバッチ完了後 | 可(JSON `decision: "block"`) |
|
|
127
|
+
| `Stop` | Claude が応答を完了した時 | 可(JSON `decision: "block"`) |
|
|
128
|
+
| `StopFailure` | API エラーでターン終了時 | 不可(出力・終了コードは無視) |
|
|
129
|
+
| `SubagentStart` | サブエージェントが実行を開始した時 | 不可 |
|
|
130
|
+
| `SubagentStop` | サブエージェントが完了した時 | 不可 |
|
|
131
|
+
| `TaskCreated` | `TaskCreate` でタスク作成時 | — |
|
|
132
|
+
| `TaskCompleted` | タスクが完了マークされた時 | — |
|
|
133
|
+
| `TeammateIdle` | agent team の teammate が idle になる時 | — |
|
|
134
|
+
| `InstructionsLoaded` | CLAUDE.md / `rules/*.md` がロードされた時 | — |
|
|
135
|
+
| `ConfigChange` | 設定ファイルが変更された時 | 可(exit 2 または JSON) |
|
|
136
|
+
| `CwdChanged` | 作業ディレクトリが変更された時(`cd` 等) | — |
|
|
137
|
+
| `FileChanged` | 監視ファイルがディスク上で変更された時 | — |
|
|
138
|
+
| `WorktreeCreate` | worktree が作成される時(デフォルト git 動作を置換) | — |
|
|
139
|
+
| `WorktreeRemove` | worktree が削除される時 | — |
|
|
140
|
+
| `PreCompact` | コンテキスト圧縮の直前 | 不可 |
|
|
141
|
+
| `PostCompact` | コンテキスト圧縮完了後 | — |
|
|
142
|
+
| `Notification` | 通知が発生した時 | 不可 |
|
|
143
|
+
| `Elicitation` | MCP サーバーがユーザー入力を要求した時 | — |
|
|
144
|
+
| `ElicitationResult` | MCP 引き出し応答が返される前 | — |
|
|
145
|
+
| `SessionEnd` | セッション終了時 | — |
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
### イベント別 matcher の対応
|
|
150
|
+
|
|
151
|
+
| イベント | matcher がフィルタリングするもの | 値の例 |
|
|
152
|
+
|---|---|---|
|
|
153
|
+
| `PreToolUse` / `PostToolUse` / `PostToolUseFailure` / `PermissionRequest` / `PermissionDenied` | ツール名 | `Bash`, `Edit\|Write`, `mcp__github__.*` |
|
|
154
|
+
| `SessionStart` | 開始方法 | `startup`, `resume`, `clear`, `compact` |
|
|
155
|
+
| `Setup` | CLI フラグ | `init`, `maintenance` |
|
|
156
|
+
| `SessionEnd` | 終了理由 | `clear`, `resume`, `logout`, `prompt_input_exit`, `other` |
|
|
157
|
+
| `Notification` | 通知タイプ | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog` |
|
|
158
|
+
| `SubagentStart` / `SubagentStop` | エージェント型名 | `general-purpose`, `Explore`, カスタム名 |
|
|
159
|
+
| `PreCompact` / `PostCompact` | 圧縮のトリガー | `manual`, `auto` |
|
|
160
|
+
| `ConfigChange` | 設定ソース | `user_settings`, `project_settings`, `local_settings`, `policy_settings`, `skills` |
|
|
161
|
+
| `StopFailure` | エラータイプ | `rate_limit`, `authentication_failed`, `billing_error`, `server_error` |
|
|
162
|
+
| `InstructionsLoaded` | ロード理由 | `session_start`, `nested_traversal`, `path_glob_match`, `include`, `compact` |
|
|
163
|
+
| `FileChanged` | リテラルファイル名(パイプ区切り) | `.envrc\|.env` |
|
|
164
|
+
| `Elicitation` / `ElicitationResult` | MCP サーバー名 | 設定したサーバー名 |
|
|
165
|
+
| `UserPromptExpansion` | コマンド/スキル名 | スキル名 |
|
|
166
|
+
| `UserPromptSubmit`, `PostToolBatch`, `Stop`, `TeammateIdle`, `TaskCreated`, `TaskCompleted`, `WorktreeCreate`, `WorktreeRemove`, `CwdChanged` | 非対応 | 常に全発生で発火 |
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
### フックグループ構造
|
|
171
|
+
|
|
172
|
+
```json
|
|
173
|
+
{
|
|
174
|
+
"matcher": "Edit|Write",
|
|
175
|
+
"hooks": [
|
|
176
|
+
{
|
|
177
|
+
"type": "command",
|
|
178
|
+
"command": "スクリプトパス",
|
|
179
|
+
"if": "Edit(*.ts)",
|
|
180
|
+
"timeout": 60
|
|
181
|
+
}
|
|
182
|
+
]
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
| キー | 説明 |
|
|
187
|
+
|---|---|
|
|
188
|
+
| `matcher` | グループレベルのフィルタ。空文字列は全てにマッチ |
|
|
189
|
+
| `hooks[].type` | フックの種類(下記参照) |
|
|
190
|
+
| `hooks[].if` | フックレベルの追加フィルタ。許可ルール構文(`Bash(git *)`、`Edit(*.ts)` 等)。ツールイベントのみ有効 |
|
|
191
|
+
| `hooks[].timeout` | タイムアウト秒数。デフォルト 600秒(10分) |
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
### hook の type 一覧
|
|
196
|
+
|
|
197
|
+
#### `command`(標準)
|
|
198
|
+
|
|
199
|
+
シェルコマンドを実行する。最も一般的。
|
|
200
|
+
|
|
201
|
+
```json
|
|
202
|
+
{ "type": "command", "command": "python script.py" }
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
#### `http`
|
|
206
|
+
|
|
207
|
+
イベントデータを HTTP エンドポイントに POST する。
|
|
208
|
+
|
|
209
|
+
```json
|
|
210
|
+
{
|
|
211
|
+
"type": "http",
|
|
212
|
+
"url": "http://localhost:8080/hooks",
|
|
213
|
+
"headers": { "Authorization": "Bearer $MY_TOKEN" },
|
|
214
|
+
"allowedEnvVars": ["MY_TOKEN"]
|
|
215
|
+
}
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
- `headers` の値は `$VAR` 形式の環境変数補間をサポート(`allowedEnvVars` に列挙したもののみ)
|
|
219
|
+
- レスポンスボディで command フックと同じ JSON 形式で結果を返す
|
|
220
|
+
|
|
221
|
+
#### `prompt`(LLM 評価)
|
|
222
|
+
|
|
223
|
+
シングルターン LLM 呼び出しで判断を行う。デフォルトモデル: Haiku。
|
|
224
|
+
|
|
225
|
+
```json
|
|
226
|
+
{ "type": "prompt", "prompt": "Check if all tasks are complete...", "model": "sonnet" }
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
- `"ok": true` → 続行
|
|
230
|
+
- `"ok": false` + `"reason": "..."` → イベントに応じてブロックまたはフィードバック
|
|
231
|
+
|
|
232
|
+
#### `mcp_tool`
|
|
233
|
+
|
|
234
|
+
接続済み MCP サーバーのツールを呼び出す。
|
|
235
|
+
|
|
236
|
+
#### `agent`(実験的)
|
|
237
|
+
|
|
238
|
+
マルチターン・ツールアクセス付きの検証。デフォルトタイムアウト 60秒、最大 50 ターン。
|
|
239
|
+
|
|
240
|
+
```json
|
|
241
|
+
{ "type": "agent", "prompt": "Verify all tests pass...", "timeout": 120 }
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
### 終了コードによる動作
|
|
247
|
+
|
|
248
|
+
| 終了コード | 動作 |
|
|
249
|
+
|---|---|
|
|
250
|
+
| `0` | 続行。`UserPromptSubmit` / `UserPromptExpansion` / `SessionStart` は stdout を Claude のコンテキストに注入 |
|
|
251
|
+
| `2` | アクションをブロック。stderr の内容が Claude へのフィードバックになる。ブロック不可イベントでは stderr をユーザーに表示し続行 |
|
|
252
|
+
| その他 | 続行。トランスクリプトに `<hook name> hook error` 通知 + stderr 1行目を表示 |
|
|
253
|
+
|
|
254
|
+
> **注意**: exit 2 と JSON 出力を混在させないこと。Claude Code は exit 2 時に JSON を無視する。
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
### 構造化 JSON 出力(exit 0 + stdout)
|
|
259
|
+
|
|
260
|
+
より細かい制御が必要な場合、exit 0 で stdout に JSON を出力する。
|
|
261
|
+
|
|
262
|
+
#### `PreToolUse` の決定制御
|
|
263
|
+
|
|
264
|
+
```json
|
|
265
|
+
{
|
|
266
|
+
"hookSpecificOutput": {
|
|
267
|
+
"hookEventName": "PreToolUse",
|
|
268
|
+
"permissionDecision": "deny",
|
|
269
|
+
"permissionDecisionReason": "Use rg instead of grep"
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
| `permissionDecision` | 動作 |
|
|
275
|
+
|---|---|
|
|
276
|
+
| `"allow"` | インタラクティブ許可プロンプトをスキップ(deny ルールより優先されない) |
|
|
277
|
+
| `"deny"` | ツール呼び出しをキャンセル。`permissionDecisionReason` が Claude へのフィードバック |
|
|
278
|
+
| `"ask"` | 通常通りユーザーに許可プロンプトを表示 |
|
|
279
|
+
| `"defer"` | `-p` 非インタラクティブモードでのみ有効。プロセスを終了しツール呼び出しを保留 |
|
|
280
|
+
|
|
281
|
+
#### `PostToolUse` / `Stop` / `PostToolBatch` のブロック
|
|
282
|
+
|
|
283
|
+
```json
|
|
284
|
+
{ "decision": "block", "reason": "Tests are failing" }
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
#### `PermissionRequest` の決定制御
|
|
288
|
+
|
|
289
|
+
```json
|
|
290
|
+
{
|
|
291
|
+
"hookSpecificOutput": {
|
|
292
|
+
"hookEventName": "PermissionRequest",
|
|
293
|
+
"decision": {
|
|
294
|
+
"behavior": "allow",
|
|
295
|
+
"updatedPermissions": [
|
|
296
|
+
{ "type": "setMode", "mode": "acceptEdits", "destination": "session" }
|
|
297
|
+
]
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
#### `UserPromptSubmit` へのコンテキスト注入
|
|
304
|
+
|
|
305
|
+
```json
|
|
306
|
+
{ "additionalContext": "現在のブランチ: feature/auth" }
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
#### `PermissionDenied` でリトライ許可
|
|
310
|
+
|
|
311
|
+
```json
|
|
312
|
+
{ "retry": true }
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
### 環境変数
|
|
318
|
+
|
|
319
|
+
フックスクリプト内で使える環境変数:
|
|
320
|
+
|
|
321
|
+
| 変数 | 内容 |
|
|
322
|
+
|---|---|
|
|
323
|
+
| `$CLAUDE_PROJECT_DIR` | プロジェクトのルートディレクトリの絶対パス |
|
|
324
|
+
| `$CLAUDE_ENV_FILE` | このファイルに書いた内容が各 Bash コマンド実行前にプリアンブルとして実行される(`direnv` 等との連携に使う) |
|
|
325
|
+
|
|
326
|
+
イベントデータ(ツール名・入力 JSON 等)は **stdin を通じて JSON として渡される**。`jq` 等で解析する。
|
|
327
|
+
|
|
328
|
+
```bash
|
|
329
|
+
INPUT=$(cat)
|
|
330
|
+
FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // empty')
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
### hook の配置場所によるスコープ
|
|
336
|
+
|
|
337
|
+
| 場所 | スコープ | 共有 |
|
|
338
|
+
|---|---|---|
|
|
339
|
+
| `~/.claude/settings.json` | 全プロジェクト | なし(マシンローカル) |
|
|
340
|
+
| `.claude/settings.json` | このプロジェクトのみ | git 管理可能 |
|
|
341
|
+
| `.claude/settings.local.json` | このプロジェクトのみ | `.gitignore` 推奨 |
|
|
342
|
+
| skills / agents のフロントマター `hooks:` | スキル/エージェントがアクティブな間のみ | コンポーネントファイルで定義 |
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
## `statusLine`
|
|
347
|
+
|
|
348
|
+
Claude Code のステータスバーに表示するカスタム情報を定義する。
|
|
349
|
+
|
|
350
|
+
```json
|
|
351
|
+
{
|
|
352
|
+
"statusLine": {
|
|
353
|
+
"type": "command",
|
|
354
|
+
"command": "python \"$CLAUDE_PROJECT_DIR/.claude/hooks/statusline.py\""
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
| キー | 型 | 説明 |
|
|
360
|
+
|---|---|---|
|
|
361
|
+
| `type` | string | `"command"` のみ(現時点) |
|
|
362
|
+
| `command` | string | 実行するコマンド。stdout の1行目がステータスバーに表示される |
|
|
363
|
+
|
|
364
|
+
---
|
|
365
|
+
|
|
366
|
+
## `model`
|
|
367
|
+
|
|
368
|
+
デフォルトで使用するモデルを上書きする。
|
|
369
|
+
|
|
370
|
+
```json
|
|
371
|
+
{
|
|
372
|
+
"model": "claude-opus-4-7"
|
|
373
|
+
}
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
有効なモデル ID 例: `claude-sonnet-4-6` / `claude-opus-4-7` / `claude-haiku-4-5-20251001`
|
|
377
|
+
|
|
378
|
+
---
|
|
379
|
+
|
|
380
|
+
## `env`
|
|
381
|
+
|
|
382
|
+
Claude Code セッション全体で使う環境変数を設定する。
|
|
383
|
+
|
|
384
|
+
```json
|
|
385
|
+
{
|
|
386
|
+
"env": {
|
|
387
|
+
"MY_VAR": "value",
|
|
388
|
+
"DEBUG": "1"
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
---
|
|
394
|
+
|
|
395
|
+
## `outputStyle`
|
|
396
|
+
|
|
397
|
+
Claude のシステムプロンプト全体を差し替える出力スタイルを指定する。
|
|
398
|
+
|
|
399
|
+
```json
|
|
400
|
+
{
|
|
401
|
+
"outputStyle": "Explanatory"
|
|
402
|
+
}
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
| 値 | 説明 |
|
|
406
|
+
|---|---|
|
|
407
|
+
| `"Default"` | ソフトウェアエンジニアリング向けデフォルト |
|
|
408
|
+
| `"Explanatory"` | 教育的インサイト付き(実装選択肢・パターン解説を追加) |
|
|
409
|
+
| `"Learning"` | 協調学習モード。一部コードを `TODO(human)` マーカーに置き換えてユーザーに実装を促す |
|
|
410
|
+
| カスタム名 | `.claude/output-styles/<name>.md` または `~/.claude/output-styles/<name>.md` のファイル名 |
|
|
411
|
+
|
|
412
|
+
- 変更は次のセッション開始時に有効になる
|
|
413
|
+
- `/config` → Output style からも変更できる(`settings.local.json` に保存される)
|
|
414
|
+
- CLAUDE.md・rules/・`--append-system-prompt` とは異なり、**システムプロンプト本体を置換**する
|
|
415
|
+
|
|
416
|
+
---
|
|
417
|
+
|
|
418
|
+
## `includeCoAuthoredBy`
|
|
419
|
+
|
|
420
|
+
git コミットの `Co-Authored-By` トレーラーに Claude の情報を含めるかを制御する。
|
|
421
|
+
|
|
422
|
+
```json
|
|
423
|
+
{
|
|
424
|
+
"includeCoAuthoredBy": true
|
|
425
|
+
}
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
デフォルト: `true`
|
|
429
|
+
|
|
430
|
+
---
|
|
431
|
+
|
|
432
|
+
## `apiKeyHelper`
|
|
433
|
+
|
|
434
|
+
API キーを取得するカスタムコマンドを指定する。`ANTHROPIC_API_KEY` 環境変数の代わりに使う。
|
|
435
|
+
|
|
436
|
+
```json
|
|
437
|
+
{
|
|
438
|
+
"apiKeyHelper": "cat ~/.secrets/anthropic_key"
|
|
439
|
+
}
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
---
|
|
443
|
+
|
|
444
|
+
## `cleanupPeriodDays`
|
|
445
|
+
|
|
446
|
+
ログファイルを自動削除するまでの日数。
|
|
447
|
+
|
|
448
|
+
```json
|
|
449
|
+
{
|
|
450
|
+
"cleanupPeriodDays": 30
|
|
451
|
+
}
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
---
|
|
455
|
+
|
|
456
|
+
## `mcpServers`
|
|
457
|
+
|
|
458
|
+
MCP(Model Context Protocol)サーバーを登録する。登録されたサーバーのツールが Claude から利用できるようになる。
|
|
459
|
+
|
|
460
|
+
```json
|
|
461
|
+
{
|
|
462
|
+
"mcpServers": {
|
|
463
|
+
"my-server": {
|
|
464
|
+
"type": "stdio",
|
|
465
|
+
"command": "node",
|
|
466
|
+
"args": ["path/to/server.js"],
|
|
467
|
+
"env": {
|
|
468
|
+
"API_KEY": "..."
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
```
|
|
474
|
+
|
|
475
|
+
| キー | 型 | 説明 |
|
|
476
|
+
|---|---|---|
|
|
477
|
+
| `type` | string | `"stdio"` / `"sse"` / `"http"` |
|
|
478
|
+
| `command` | string | サーバーを起動するコマンド(stdio の場合) |
|
|
479
|
+
| `args` | string[] | コマンドの引数 |
|
|
480
|
+
| `env` | object | サーバープロセスに渡す環境変数 |
|
|
481
|
+
| `url` | string | サーバーの URL(sse / http の場合) |
|
|
482
|
+
|
|
483
|
+
---
|
|
484
|
+
|
|
485
|
+
## C3 での使い分け
|
|
486
|
+
|
|
487
|
+
| ファイル | 用途 |
|
|
488
|
+
|---|---|
|
|
489
|
+
| `.claude/settings.json` | プロジェクト共通設定。git 管理する |
|
|
490
|
+
| `.claude/settings.local.json` | 開発者個人の設定(追加 `allow` 等)。`.gitignore` に追加して git 管理しない |
|
|
491
|
+
|
|
492
|
+
> `hooks` を `settings.local.json` に書くと `settings.json` の `hooks` が**完全に無効化**される。フックは `settings.json` のみに書くこと。
|