claude-code-conductor 2.17.0__tar.gz → 2.18.0__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-2.18.0/.claude/deletions.txt +39 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/docs/config-policy.md +26 -3
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/CHANGELOG.md +63 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/PKG-INFO +1 -1
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/hatch_build.py +1 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/src/c3/__init__.py +1 -1
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/src/c3/_excludes.py +1 -0
- claude_code_conductor-2.18.0/src/c3/cli_update.py +520 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_cli_init.py +2 -2
- claude_code_conductor-2.18.0/tests/test_cli_update_deletions.py +538 -0
- claude_code_conductor-2.17.0/src/c3/cli_update.py +0 -159
- claude_code_conductor-2.17.0/tests/test_cli_update.py +0 -41
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/CLAUDE.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/agents/architect.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/agents/code-reviewer.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/agents/developer.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/agents/doc-writer.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/agents/interviewer.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/agents/planner.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/agents/project-setup.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/agents/security-reviewer.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/agents/systematic-debugger.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/agents/tester.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/agents/wt_developer.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/agents/wt_systematic-debugger.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/agents/wt_tester.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/docs/parallel-agents-setup.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/docs/platform-adapters.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/docs/settings.json.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/hooks/_hook_utils.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/hooks/check_agent_invocation.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/hooks/consolidate_memory.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/hooks/permission_handler.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/hooks/permission_handler_toast.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/hooks/planner_check.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/hooks/post_tool.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/hooks/pre_compact.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/hooks/pre_tool.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/hooks/recall_inject.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/hooks/restore_session.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/hooks/schema.sql +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/hooks/select_tier.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/hooks/session_start.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/hooks/session_stop.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/hooks/session_utils.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/hooks/statusline.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/hooks/stop.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/hooks/worktree_guard.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/memory/.gitkeep +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/permission_rules.json +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/rules/promoted/index.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/settings.json +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/codex-review/SKILL.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/dev-workflow/SKILL.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/dev-workflow/references/code-review-checklist.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/dev-workflow/references/plan-design-guidelines.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/dev-workflow/references/security-review-checklist.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/dev-workflow/scripts/record_review_decision.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/dev-workflow/scripts/record_tier_outcome.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/dev-workflow/scripts/review_hint_inject.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/develop/SKILL.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/doc/SKILL.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/extract-lib/SKILL.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/init-session/SKILL.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/mcp-config/SKILL.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/parallel-agents/SKILL.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/pattern-status/SKILL.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/promote-pattern/SKILL.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/recall/SKILL.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/report-timestamp/SKILL.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/report-timestamp/scripts/get_timestamp.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/review-phase/SKILL.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/setup/SKILL.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/setup/reference.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/setup/templates/coding-standards-template.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/setup/templates/project-conventions-template.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/skills/start/SKILL.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.claude/state/.gitkeep +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/.gitignore +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/LICENSE +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/LICENSES/chroma-hnswlib-LICENSE +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/LICENSES/chroma-hnswlib-NOTICE +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/LICENSES/fastembed-LICENSE +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/LICENSES/fastembed-NOTICE +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/LICENSES/onnxruntime-LICENSE +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/LICENSES/paraphrase-multilingual-MiniLM-L12-v2-LICENSE +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/README.md +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/pyproject.toml +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/src/c3/__main__.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/src/c3/_terminal.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/src/c3/adapters.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/src/c3/cli.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/src/c3/cli_ask.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/src/c3/cli_doctor.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/src/c3/cli_init.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/src/c3/cli_list.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/src/c3/cli_plan.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/src/c3/cli_recall.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/src/c3/cli_tier.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/src/c3/db.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/src/c3/embedding.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/src/c3/mcp_server.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/src/c3/paths.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/src/c3/plan_validator.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/src/c3/platforms.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/src/c3/question.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/src/c3/recall_chunker.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/src/c3/recall_index.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/__init__.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/conftest.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/__init__.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_check_agent_invocation.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_consolidate_memory.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_hook_utils.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_permission_handler.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_permission_handler_toast.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_pip_reinstall_reminder.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_planner_check.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_planner_check_dev.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_post_tool.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_pre_tool.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_recall_inject.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_record_review_decision.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_record_tier_outcome.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_restore_session.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_review_hint_inject.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_select_tier.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_select_tier_escalation.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_session_start.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_session_stop.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_session_utils.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_settings_local_absolute_paths.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_similarity_boost.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_statusline.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_statusline_template_sync.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_sync_check.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/hooks/test_template_guard.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/skills/__init__.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/skills/_skill_helpers.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/skills/test_dev_workflow_no_task_type.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/skills/test_init_session_no_task_type.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/skills/test_planner_lightweight.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/skills/test_recall_skill.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/skills/test_session_backlog_reconciliation.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/skills/test_setup_templates.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/skills/test_start_skill_bugfix_flow.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/skills/test_start_skill_new_flow.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/skills/test_start_skill_security_audit_phase.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_adapters.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_cli_ask.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_cli_entry.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_cli_list.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_cli_plan.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_cli_recall.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_cli_tier.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_db.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_docstring_consistency.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_embedding.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_excludes.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_mcp_server_elicit.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_paths.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_plan_validator.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_pre_compact.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_pre_tool_hook.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_precompact_additional.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_precompact_toctou_fixes.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_recall_chunker.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_recall_index.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_references_migration.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_session_utils_additional.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_skill_no_builtin_conflict.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_statusline.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_stop_additional.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_stop_hook.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_stop_precompact_fixes.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_sync_template_stop.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_template_pre_tool_hook.py +0 -0
- {claude_code_conductor-2.17.0 → claude_code_conductor-2.18.0}/tests/test_worktree_guard.py +0 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# C3 c3 update 削除リスト
|
|
2
|
+
# このファイルに記載されたパスは `c3 update` 実行時に
|
|
3
|
+
# 利用先の .claude/ から削除候補として扱われる。
|
|
4
|
+
#
|
|
5
|
+
# 仕様:
|
|
6
|
+
# - 1 行 1 パス、.claude/ 相対表記
|
|
7
|
+
# - # で始まる行はコメント、空行はスキップ
|
|
8
|
+
# - 絶対パス / ../ を含むパス / シンボリックリンク は無視
|
|
9
|
+
# - ディレクトリは削除しない(ファイルのみ)
|
|
10
|
+
#
|
|
11
|
+
# 詳細は .claude/docs/config-policy.md §3 #13 と §7 落とし穴 5 を参照。
|
|
12
|
+
|
|
13
|
+
# ---- v2.1.0: tdd-develop / worktree-tdd-workflow 廃止 ----
|
|
14
|
+
agents/tdd-develop.md
|
|
15
|
+
skills/worktree-tdd-workflow/SKILL.md
|
|
16
|
+
|
|
17
|
+
# ---- v2.11.0: summarize-memory 廃止 ----
|
|
18
|
+
agents/summarize-memory.md
|
|
19
|
+
skills/summarize-memory/SKILL.md
|
|
20
|
+
|
|
21
|
+
# ---- v2.12.0: タクソノミー棚卸(hooks/ → skills/dev-workflow/scripts/ へ移動) ----
|
|
22
|
+
hooks/record_review_decision.py
|
|
23
|
+
hooks/record_tier_outcome.py
|
|
24
|
+
hooks/review_hint_inject.py
|
|
25
|
+
hooks/subagent_log.py
|
|
26
|
+
|
|
27
|
+
# ---- (v2.x): task-routing skill 廃止 ----
|
|
28
|
+
skills/task-routing/SKILL.md
|
|
29
|
+
|
|
30
|
+
# ---- v2.15.1: /code-review skill を /review-phase にリネーム ----
|
|
31
|
+
skills/code-review/SKILL.md
|
|
32
|
+
|
|
33
|
+
# ---- 短期 revert(一時配布された可能性あり) ----
|
|
34
|
+
skills/phase-a-requirements/SKILL.md
|
|
35
|
+
skills/phase-b-architecture/SKILL.md
|
|
36
|
+
skills/phase-c-plan/SKILL.md
|
|
37
|
+
skills/phase-d-implement/SKILL.md
|
|
38
|
+
skills/phase-debug/SKILL.md
|
|
39
|
+
skills/phase-e-review/SKILL.md
|
|
@@ -104,7 +104,7 @@ hatch_build.py _excludes.py の重複定義(ビルド
|
|
|
104
104
|
|
|
105
105
|
---
|
|
106
106
|
|
|
107
|
-
## 3. 配布判断マトリクス(
|
|
107
|
+
## 3. 配布判断マトリクス(13 カテゴリ)
|
|
108
108
|
|
|
109
109
|
`_excludes.py` の `EXCLUDE_PATTERNS` / `KEEP_PATTERNS` を実装照合した結果。
|
|
110
110
|
各カテゴリに配布有無・c3 update の更新有無・理由を明示する。
|
|
@@ -123,6 +123,7 @@ hatch_build.py _excludes.py の重複定義(ビルド
|
|
|
123
123
|
| 10 | `.claude/settings.local.json` | × | — | 個人 override・秘匿情報。`_excludes.py` でも除外、`.gitignore` でも除外、c3 update も触らない |
|
|
124
124
|
| 11 | `.claude/reports/*` / `memory/*` / `agent-memory/*` / `state/*` / `tmp/*` / `worktrees/*` / `logs/*` | × (`.gitkeep` のみ ○) | — | 実行時生成領域。空ディレクトリのみ `KEEP_PATTERNS` の `.gitkeep` で配布。データ本体は除外 |
|
|
125
125
|
| 12 | `.dev/*` / `/CLAUDE.md` / `/AGENTS.md` / `/.codex/` / `/.cursor/` / `/.agents/` | × | — | 配布元専用または adapter 生成物。wheel には構造的に含まれない(`src/c3/_template/.claude/` 配下のみ同梱)が、配布元 `.gitignore` で commit 混入も防ぐ |
|
|
126
|
+
| 13 | `.claude/deletions.txt` | ○ | ○ | `c3 update` が読み込み、利用先 `.claude/` から該当ファイルを削除候補として扱う。配布元の `.claude/deletions.txt` に追記したエントリは次回 pip install → `c3 update` で利用先に伝播。`KEEP_PATTERNS` で明示配布。`c3 update` 自体は本ファイルを削除しない(§7 落とし穴 5 参照) |
|
|
126
127
|
|
|
127
128
|
> **注意 (カテゴリ #6)**: `taxonomy.md` は `_excludes.py` の EXCLUDE 対象だが、`.gitignore` では tracked 状態(GitHub に公開済み)。
|
|
128
129
|
> **wheel には含まれない**点に注意。gitignore と wheel 配布は別レイヤーであり、
|
|
@@ -268,7 +269,29 @@ c3 update が上書きすると利用先で `/promote-pattern` が追記した
|
|
|
268
269
|
**対処**: `promoted/` への変更は `c3 update` に委ねず、手動または `/promote-pattern` skill で管理する。
|
|
269
270
|
C3 side で `promoted/` の雛形を更新した場合は、リリースノートで手動マージ手順を案内する。
|
|
270
271
|
|
|
271
|
-
### 落とし穴 4: `
|
|
272
|
+
### 落とし穴 4: `deletions.txt` 自身は削除されない・絶対パスは無視される
|
|
273
|
+
|
|
274
|
+
**症状**: `deletions.txt` が利用先に残り続ける / 絶対パスを書いたのに削除されない / `..` 含みパスが効かない。
|
|
275
|
+
|
|
276
|
+
**原因**:
|
|
277
|
+
- `deletions.txt` は **`c3 update` が読み取るための指示書** であり、削除対象として
|
|
278
|
+
`deletions.txt` 自身を含めても無視される(自分自身を削除すると次回 update で
|
|
279
|
+
ブートストラップが効かなくなるため)
|
|
280
|
+
- セーフガードにより以下は **silent ではなく warning を出して無視** される:
|
|
281
|
+
- 絶対パス(先頭 `/`、`~`、Windows ドライブレター `C:`)
|
|
282
|
+
- `..` または `.` を含むパス
|
|
283
|
+
- `.claude/` プレフィックス(`.claude/agents/x.md` は不可、`agents/x.md` と書く)
|
|
284
|
+
- シンボリックリンク経由のパス
|
|
285
|
+
- ディレクトリ(ファイルのみサポート)
|
|
286
|
+
- `\` (バックスラッシュ)を含むパス
|
|
287
|
+
|
|
288
|
+
**対処**:
|
|
289
|
+
- 削除候補に書くパスは「.claude/ からの相対 POSIX パス」のみ(例: `agents/foo.md`)
|
|
290
|
+
- ディレクトリを丸ごと削除したい場合は、配下のファイルを 1 つずつ列挙
|
|
291
|
+
- `c3 update --dry-run` で warning が出ていないか確認
|
|
292
|
+
- `deletions.txt` 自身を更新したい場合は通常の `c3 update` の add/update ロジックが処理する
|
|
293
|
+
|
|
294
|
+
### 落とし穴 5: `permission_rules.json` は `settings.json.permissions.deny` を覆せない(要検証)
|
|
272
295
|
|
|
273
296
|
**現状**: `permission_handler.py` の実装を読む限り、`PermissionRequest` hook は
|
|
274
297
|
Claude Code 側で `deny` 判定が出た後に発火するため、`permission_rules.json` の `auto_allow` で
|
|
@@ -304,5 +327,5 @@ Claude Code 側で `deny` 判定が出た後に発火するため、`permission_
|
|
|
304
327
|
|
|
305
328
|
- `permission_rules.json` の `auto_allow` が `settings.json.permissions.deny` を覆せるか検証
|
|
306
329
|
- `~/.claude/settings.json` のグローバル設定と `.claude/settings.json` の同キー競合時のマージ範囲確認
|
|
307
|
-
-
|
|
330
|
+
- ~~`c3 update` の削除検出(`deletions.txt` 方式、v2.18.0 予定)~~ → v2.18.0 で実装
|
|
308
331
|
- `c3 update` 時の Breaking changes 警告(v2.19.0 予定)
|
|
@@ -1,5 +1,68 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v2.18.0 (2026-05-24)
|
|
4
|
+
|
|
5
|
+
**基盤整備リリース第 2 弾**: `c3 update` の削除検出を `deletions.txt` 方式で導入する。
|
|
6
|
+
v2.0.0 以来の `c3_update_no_delete_detection` defect(リリースで廃止した
|
|
7
|
+
skill / hook / agent が利用先に残り続ける問題)を構造的に解消する。
|
|
8
|
+
|
|
9
|
+
### 追加
|
|
10
|
+
|
|
11
|
+
- **`.claude/deletions.txt`**(新規): 利用先で削除すべきファイルパス一覧。
|
|
12
|
+
1 行 1 パス、`#` でコメント、`.claude/` 相対 POSIX パス。v2.1.0 / v2.11.0 /
|
|
13
|
+
v2.12.0 / v2.15.1 までの過去廃止 16 ファイルを初期エントリとして同梱。
|
|
14
|
+
- **`c3 update` の自動削除機能**: `_template/.claude/deletions.txt` を読み、
|
|
15
|
+
利用先の該当ファイルを削除候補として扱う。`--dry-run` で予告のみ、通常実行は
|
|
16
|
+
確認プロンプト `y/N`、`--yes` / `-y` フラグでプロンプトスキップ可。
|
|
17
|
+
- **`--yes` / `-y` フラグ**(新規): 削除確認プロンプトをスキップする。
|
|
18
|
+
**CI / 自動化ワークフロー専用**。対話環境での常用は推奨しない。
|
|
19
|
+
`--dry-run` と同時指定しても効果なし。
|
|
20
|
+
- **13 段セーフガード**: 削除対象パスに対する 13 種類の事前検査
|
|
21
|
+
- 文字列レベル: 空パス / 絶対パス / `~` / バックスラッシュ / Windows ドライブレター /
|
|
22
|
+
`.claude/` プレフィックス禁止 / ANSI エスケープシーケンス検出(ECMA-48 §5.4 全網羅)
|
|
23
|
+
- 構造レベル: `..` `.` 含み / null byte / `Path.is_symlink()` でシンボリックリンク拒否 /
|
|
24
|
+
`Path.resolve()` で `.claude/` 配下確認 / `Path.is_dir()` でディレクトリ拒否 /
|
|
25
|
+
`deletions.txt` 自身の自己削除拒否(Windows NTFS case-insensitive 対応)
|
|
26
|
+
- **新規テスト 35 件**: `tests/test_cli_update_deletions.py` に A: ユニット 14 件 /
|
|
27
|
+
B: 結合 8 件 / C: 攻撃 10 件 / D: CLI 4 件 = 計 36 件(既存 DEPRECATED_PATHS
|
|
28
|
+
テスト 3 件削除 → 純増 32 件)
|
|
29
|
+
|
|
30
|
+
### 撤去
|
|
31
|
+
|
|
32
|
+
- **`cli_update.py` の `DEPRECATED_PATHS` 定数 + `_warn_deprecated_paths()`
|
|
33
|
+
関数**: v2.15.1 で導入した「stderr 警告のみ・削除しない」方式を完全撤去し、
|
|
34
|
+
`deletions.txt` 方式に一元化。
|
|
35
|
+
|
|
36
|
+
### ドキュメント
|
|
37
|
+
|
|
38
|
+
- **`.claude/docs/config-policy.md`**:
|
|
39
|
+
- §3 配布判断マトリクス 12 → 13 カテゴリ(`deletions.txt` 追加)
|
|
40
|
+
- §7「既知の落とし穴」5 項目目「`deletions.txt` 自身は削除されない・
|
|
41
|
+
絶対パスは無視される」追加
|
|
42
|
+
- §8 残課題から「v2.18.0 予定」を完了化
|
|
43
|
+
|
|
44
|
+
### セキュリティ
|
|
45
|
+
|
|
46
|
+
- パストラバーサル / 絶対パス / Home (`~`) / Windows ドライブレター /
|
|
47
|
+
バックスラッシュ / `.claude/` プレフィックス / 親遡り / シンボリックリンク経由 /
|
|
48
|
+
ディレクトリ削除 / Windows case-insensitive バイパス / ANSI CSI シーケンス /
|
|
49
|
+
null byte / `deletions.txt` 自身 — 計 12 種の攻撃面を構造的に防御
|
|
50
|
+
- Round 1 + Round 2 + Round 3 で計 17 件のレビュー指摘(CR 10 + SR 7)全件対応
|
|
51
|
+
|
|
52
|
+
### 次リリース予告
|
|
53
|
+
|
|
54
|
+
- **v2.19.0**(予定): Breaking changes 警告 + バージョン checkpoint。
|
|
55
|
+
`c3 update` 実行時に前回バージョンとの diff から breaking changes 一覧を表示する。
|
|
56
|
+
|
|
57
|
+
### 影響
|
|
58
|
+
|
|
59
|
+
- **既存利用先**: `c3 update` 実行時に過去廃止 16 ファイルの削除候補が表示される。
|
|
60
|
+
デフォルトは確認プロンプト(`N`)のため、誤削除事故は発生しない。
|
|
61
|
+
- **CI / 自動化環境**: `--yes` フラグを明示しない限り従来通り(プロンプトで止まる)。
|
|
62
|
+
- **既存テスト**: 944 → 979 PASS(純増 35 件)、API 互換性完全維持。
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
3
66
|
## v2.17.0 (2026-05-24)
|
|
4
67
|
|
|
5
68
|
**基盤整備リリース第 1 弾**: 設定階層と配布判断ルールを canonical 化する。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: claude-code-conductor
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.18.0
|
|
4
4
|
Summary: Multi-agent orchestration framework for Claude Code with Codex/Cursor adapters (C3)
|
|
5
5
|
Project-URL: Homepage, https://github.com/satoh-y-0323/claude-code-conductor
|
|
6
6
|
Project-URL: Repository, https://github.com/satoh-y-0323/claude-code-conductor
|