claude-code-conductor 2.18.0__tar.gz → 2.19.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.
Files changed (179) hide show
  1. claude_code_conductor-2.19.0/.claude/breaking-changes.txt +7 -0
  2. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/docs/config-policy.md +18 -19
  3. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/docs/settings.json.md +3 -2
  4. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/CHANGELOG.md +74 -0
  5. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/PKG-INFO +1 -1
  6. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/hatch_build.py +1 -0
  7. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/src/c3/__init__.py +1 -1
  8. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/src/c3/_excludes.py +1 -0
  9. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/src/c3/cli_update.py +426 -2
  10. claude_code_conductor-2.19.0/tests/test_cli_update_breaking_changes.py +531 -0
  11. claude_code_conductor-2.19.0/tests/test_extract_breaking_changes.py +190 -0
  12. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/CLAUDE.md +0 -0
  13. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/agents/architect.md +0 -0
  14. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/agents/code-reviewer.md +0 -0
  15. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/agents/developer.md +0 -0
  16. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/agents/doc-writer.md +0 -0
  17. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/agents/interviewer.md +0 -0
  18. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/agents/planner.md +0 -0
  19. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/agents/project-setup.md +0 -0
  20. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/agents/security-reviewer.md +0 -0
  21. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/agents/systematic-debugger.md +0 -0
  22. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/agents/tester.md +0 -0
  23. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/agents/wt_developer.md +0 -0
  24. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/agents/wt_systematic-debugger.md +0 -0
  25. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/agents/wt_tester.md +0 -0
  26. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/deletions.txt +0 -0
  27. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/docs/parallel-agents-setup.md +0 -0
  28. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/docs/platform-adapters.md +0 -0
  29. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/hooks/_hook_utils.py +0 -0
  30. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/hooks/check_agent_invocation.py +0 -0
  31. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/hooks/consolidate_memory.py +0 -0
  32. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/hooks/permission_handler.py +0 -0
  33. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/hooks/permission_handler_toast.py +0 -0
  34. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/hooks/planner_check.py +0 -0
  35. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/hooks/post_tool.py +0 -0
  36. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/hooks/pre_compact.py +0 -0
  37. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/hooks/pre_tool.py +0 -0
  38. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/hooks/recall_inject.py +0 -0
  39. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/hooks/restore_session.py +0 -0
  40. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/hooks/schema.sql +0 -0
  41. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/hooks/select_tier.py +0 -0
  42. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/hooks/session_start.py +0 -0
  43. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/hooks/session_stop.py +0 -0
  44. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/hooks/session_utils.py +0 -0
  45. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/hooks/statusline.py +0 -0
  46. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/hooks/stop.py +0 -0
  47. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/hooks/worktree_guard.py +0 -0
  48. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/memory/.gitkeep +0 -0
  49. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/permission_rules.json +0 -0
  50. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/rules/promoted/index.md +0 -0
  51. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/settings.json +0 -0
  52. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/codex-review/SKILL.md +0 -0
  53. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/dev-workflow/SKILL.md +0 -0
  54. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/dev-workflow/references/code-review-checklist.md +0 -0
  55. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/dev-workflow/references/plan-design-guidelines.md +0 -0
  56. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/dev-workflow/references/security-review-checklist.md +0 -0
  57. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/dev-workflow/scripts/record_review_decision.py +0 -0
  58. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/dev-workflow/scripts/record_tier_outcome.py +0 -0
  59. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/dev-workflow/scripts/review_hint_inject.py +0 -0
  60. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/develop/SKILL.md +0 -0
  61. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/doc/SKILL.md +0 -0
  62. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/extract-lib/SKILL.md +0 -0
  63. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/init-session/SKILL.md +0 -0
  64. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/mcp-config/SKILL.md +0 -0
  65. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/parallel-agents/SKILL.md +0 -0
  66. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/pattern-status/SKILL.md +0 -0
  67. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/promote-pattern/SKILL.md +0 -0
  68. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/recall/SKILL.md +0 -0
  69. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/report-timestamp/SKILL.md +0 -0
  70. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/report-timestamp/scripts/get_timestamp.py +0 -0
  71. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/review-phase/SKILL.md +0 -0
  72. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/setup/SKILL.md +0 -0
  73. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/setup/reference.md +0 -0
  74. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/setup/templates/coding-standards-template.md +0 -0
  75. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/setup/templates/project-conventions-template.md +0 -0
  76. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/skills/start/SKILL.md +0 -0
  77. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.claude/state/.gitkeep +0 -0
  78. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/.gitignore +0 -0
  79. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/LICENSE +0 -0
  80. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/LICENSES/chroma-hnswlib-LICENSE +0 -0
  81. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/LICENSES/chroma-hnswlib-NOTICE +0 -0
  82. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/LICENSES/fastembed-LICENSE +0 -0
  83. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/LICENSES/fastembed-NOTICE +0 -0
  84. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/LICENSES/onnxruntime-LICENSE +0 -0
  85. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/LICENSES/paraphrase-multilingual-MiniLM-L12-v2-LICENSE +0 -0
  86. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/README.md +0 -0
  87. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/pyproject.toml +0 -0
  88. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/src/c3/__main__.py +0 -0
  89. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/src/c3/_terminal.py +0 -0
  90. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/src/c3/adapters.py +0 -0
  91. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/src/c3/cli.py +0 -0
  92. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/src/c3/cli_ask.py +0 -0
  93. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/src/c3/cli_doctor.py +0 -0
  94. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/src/c3/cli_init.py +0 -0
  95. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/src/c3/cli_list.py +0 -0
  96. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/src/c3/cli_plan.py +0 -0
  97. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/src/c3/cli_recall.py +0 -0
  98. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/src/c3/cli_tier.py +0 -0
  99. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/src/c3/db.py +0 -0
  100. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/src/c3/embedding.py +0 -0
  101. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/src/c3/mcp_server.py +0 -0
  102. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/src/c3/paths.py +0 -0
  103. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/src/c3/plan_validator.py +0 -0
  104. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/src/c3/platforms.py +0 -0
  105. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/src/c3/question.py +0 -0
  106. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/src/c3/recall_chunker.py +0 -0
  107. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/src/c3/recall_index.py +0 -0
  108. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/__init__.py +0 -0
  109. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/conftest.py +0 -0
  110. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/__init__.py +0 -0
  111. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_check_agent_invocation.py +0 -0
  112. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_consolidate_memory.py +0 -0
  113. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_hook_utils.py +0 -0
  114. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_permission_handler.py +0 -0
  115. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_permission_handler_toast.py +0 -0
  116. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_pip_reinstall_reminder.py +0 -0
  117. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_planner_check.py +0 -0
  118. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_planner_check_dev.py +0 -0
  119. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_post_tool.py +0 -0
  120. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_pre_tool.py +0 -0
  121. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_recall_inject.py +0 -0
  122. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_record_review_decision.py +0 -0
  123. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_record_tier_outcome.py +0 -0
  124. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_restore_session.py +0 -0
  125. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_review_hint_inject.py +0 -0
  126. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_select_tier.py +0 -0
  127. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_select_tier_escalation.py +0 -0
  128. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_session_start.py +0 -0
  129. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_session_stop.py +0 -0
  130. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_session_utils.py +0 -0
  131. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_settings_local_absolute_paths.py +0 -0
  132. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_similarity_boost.py +0 -0
  133. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_statusline.py +0 -0
  134. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_statusline_template_sync.py +0 -0
  135. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_sync_check.py +0 -0
  136. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/hooks/test_template_guard.py +0 -0
  137. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/skills/__init__.py +0 -0
  138. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/skills/_skill_helpers.py +0 -0
  139. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/skills/test_dev_workflow_no_task_type.py +0 -0
  140. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/skills/test_init_session_no_task_type.py +0 -0
  141. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/skills/test_planner_lightweight.py +0 -0
  142. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/skills/test_recall_skill.py +0 -0
  143. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/skills/test_session_backlog_reconciliation.py +0 -0
  144. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/skills/test_setup_templates.py +0 -0
  145. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/skills/test_start_skill_bugfix_flow.py +0 -0
  146. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/skills/test_start_skill_new_flow.py +0 -0
  147. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/skills/test_start_skill_security_audit_phase.py +0 -0
  148. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_adapters.py +0 -0
  149. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_cli_ask.py +0 -0
  150. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_cli_entry.py +0 -0
  151. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_cli_init.py +0 -0
  152. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_cli_list.py +0 -0
  153. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_cli_plan.py +0 -0
  154. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_cli_recall.py +0 -0
  155. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_cli_tier.py +0 -0
  156. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_cli_update_deletions.py +0 -0
  157. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_db.py +0 -0
  158. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_docstring_consistency.py +0 -0
  159. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_embedding.py +0 -0
  160. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_excludes.py +0 -0
  161. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_mcp_server_elicit.py +0 -0
  162. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_paths.py +0 -0
  163. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_plan_validator.py +0 -0
  164. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_pre_compact.py +0 -0
  165. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_pre_tool_hook.py +0 -0
  166. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_precompact_additional.py +0 -0
  167. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_precompact_toctou_fixes.py +0 -0
  168. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_recall_chunker.py +0 -0
  169. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_recall_index.py +0 -0
  170. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_references_migration.py +0 -0
  171. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_session_utils_additional.py +0 -0
  172. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_skill_no_builtin_conflict.py +0 -0
  173. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_statusline.py +0 -0
  174. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_stop_additional.py +0 -0
  175. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_stop_hook.py +0 -0
  176. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_stop_precompact_fixes.py +0 -0
  177. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_sync_template_stop.py +0 -0
  178. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_template_pre_tool_hook.py +0 -0
  179. {claude_code_conductor-2.18.0 → claude_code_conductor-2.19.0}/tests/test_worktree_guard.py +0 -0
@@ -0,0 +1,7 @@
1
+ # C3 breaking changes log
2
+ # Format: vX.Y.Z|<English summary>|<Japanese summary>
3
+ # Note: extra '|' characters in the Japanese field are allowed (parser uses maxsplit=2).
4
+ # Note: English field must not contain '|' (validated by scripts/extract_breaking_changes.py).
5
+ # Lines starting with '#' are comments. Blank lines ignored.
6
+
7
+ v2.11.0|summarize-memory agent + skill removed; replaced by `c3 recall`|summarize-memory エージェント / skill を完全廃止。代替は `c3 recall` の意味検索。
@@ -64,8 +64,8 @@ hatch_build.py _excludes.py の重複定義(ビルド
64
64
  2. `.claude/settings.json` — プロジェクト共通設定(git 管理)
65
65
  3. `~/.claude/settings.json` — グローバル個人設定(マシンローカル)
66
66
 
67
- > **重要**: `hooks` セクションのみ「マージしない・完全上書き」挙動。
68
- > `settings.local.json` `hooks` を書くと `settings.json` の `hooks` が **すべて無効化** される。
67
+ > **補足**: `hooks` は両ファイルの内容がマージされる(本配布元リポで `settings.json` の lifecycle hooks と `settings.local.json` の `.dev/hooks/*` が並走している実機事実)。
68
+ > ただし Claude Code 公式 docs では hooks のマージ挙動が明記されていないため、チーム全体で必要な hook は `settings.json` 側に集約するのが安全。
69
69
  > 詳細は §7「既知の落とし穴」を参照。
70
70
  > キー仕様の詳細は `.claude/docs/settings.json.md` を参照。
71
71
 
@@ -84,7 +84,7 @@ hatch_build.py _excludes.py の重複定義(ビルド
84
84
  ### レイヤー C: LLM 指示・知識(CLAUDE.md / rules)
85
85
 
86
86
  - `.claude/CLAUDE.md` — 常時注入されるプロジェクト指示
87
- - `.claude/rules/*.md` — `paths:` フロントマターがあればパスマッチ時のみ、なければ常時注入
87
+ - `.claude/rules/*.md` — 常時全文注入(`paths:` フロントマターは「適用範囲のドキュメント」であり、注入タイミングは変わらない)
88
88
  - `.claude/rules/promoted/index.md` — `@rules/promoted/index.md` で CLAUDE.md から include される
89
89
  (`/promote-pattern` skill が追記する **ユーザー所有領域**)
90
90
 
@@ -104,7 +104,7 @@ hatch_build.py _excludes.py の重複定義(ビルド
104
104
 
105
105
  ---
106
106
 
107
- ## 3. 配布判断マトリクス(13 カテゴリ)
107
+ ## 3. 配布判断マトリクス(14 カテゴリ)
108
108
 
109
109
  `_excludes.py` の `EXCLUDE_PATTERNS` / `KEEP_PATTERNS` を実装照合した結果。
110
110
  各カテゴリに配布有無・c3 update の更新有無・理由を明示する。
@@ -121,9 +121,10 @@ hatch_build.py _excludes.py の重複定義(ビルド
121
121
  | 8 | `.claude/settings.json` | ○ | ○ | プロジェクト共通設定(hooks 登録・permissions など) |
122
122
  | 9 | `.claude/permission_rules.json` | ○ | ○ | C3 独自の自動承認パターン(PermissionRequest hook が参照) |
123
123
  | 10 | `.claude/settings.local.json` | × | — | 個人 override・秘匿情報。`_excludes.py` でも除外、`.gitignore` でも除外、c3 update も触らない |
124
- | 11 | `.claude/reports/*` / `memory/*` / `agent-memory/*` / `state/*` / `tmp/*` / `worktrees/*` / `logs/*` | × (`.gitkeep` のみ ○) | — | 実行時生成領域。空ディレクトリのみ `KEEP_PATTERNS` の `.gitkeep` で配布。データ本体は除外 |
124
+ | 11 | `.claude/reports/*` / `memory/*` / `agent-memory/*` / `state/*` / `tmp/*` / `worktrees/*` / `logs/*` | × (`.gitkeep` のみ ○) | — | 実行時生成領域。空ディレクトリのみ `KEEP_PATTERNS` の `.gitkeep` で配布。データ本体は除外。v2.19.0 で `.claude/state/c3_version.txt`(バージョン checkpoint)を追加(`state/*` 一括除外により自動非配布) |
125
125
  | 12 | `.dev/*` / `/CLAUDE.md` / `/AGENTS.md` / `/.codex/` / `/.cursor/` / `/.agents/` | × | — | 配布元専用または adapter 生成物。wheel には構造的に含まれない(`src/c3/_template/.claude/` 配下のみ同梱)が、配布元 `.gitignore` で commit 混入も防ぐ |
126
126
  | 13 | `.claude/deletions.txt` | ○ | ○ | `c3 update` が読み込み、利用先 `.claude/` から該当ファイルを削除候補として扱う。配布元の `.claude/deletions.txt` に追記したエントリは次回 pip install → `c3 update` で利用先に伝播。`KEEP_PATTERNS` で明示配布。`c3 update` 自体は本ファイルを削除しない(§7 落とし穴 5 参照) |
127
+ | 14 | `.claude/breaking-changes.txt` | ○ | ○ | `c3 update` が読み込み、利用先の `.claude/state/c3_version.txt`(バージョン checkpoint)と diff を計算して破壊的変更を表示する。MAJOR bump 時は y/N 承認プロンプトを発火。`KEEP_PATTERNS` で明示配布。配布元 `.claude/breaking-changes.txt` を更新すれば次回 pip install → `c3 update` で利用先に伝播。利用先 git 管理は tracked(上書きされる) |
127
128
 
128
129
  > **注意 (カテゴリ #6)**: `taxonomy.md` は `_excludes.py` の EXCLUDE 対象だが、`.gitignore` では tracked 状態(GitHub に公開済み)。
129
130
  > **wheel には含まれない**点に注意。gitignore と wheel 配布は別レイヤーであり、
@@ -152,13 +153,13 @@ hatch_build.py _excludes.py の重複定義(ビルド
152
153
  `settings.local.json` は `c3 init` も `c3 update` も作成・上書きしない。
153
154
  個人設定を安全に保ちつつ、C3 のアップデートを受け取れる設計。
154
155
 
155
- ### 原則 3: `hooks` セクションは書かない
156
+ ### 原則 3: `hooks` は「個人専用・配布元専用」のみに留める
156
157
 
157
- **最重要の落とし穴**。`settings.local.json` `hooks` セクションを追記すると、
158
- `settings.json` の `hooks` エントリが **すべて無効化** される(マージではなく完全上書き)。
158
+ `settings.local.json` `hooks` は `settings.json` の `hooks` とマージされる(本配布元リポで `.dev/hooks/*` を `settings.local.json` に登録して `.claude/hooks/*` と並走させている実例あり)。
159
159
 
160
- C3 lifecycle hook(`permission_handler.py` 等)が動かなくなるため、
161
- `hooks` のカスタマイズは必ず `settings.json` 側に行う(チーム合意を経て)。
160
+ ただし以下の理由から、`settings.local.json` には「個人 / 配布元専用 hook」のみを書く:
161
+ - Claude Code 公式 docs では hooks のマージ挙動が明記されておらず、将来仕様が変わるリスクがある
162
+ - チーム全体で必要な hook は `settings.json` 側に置いてチーム合意を経るべき
162
163
 
163
164
  詳細は §7「既知の落とし穴」の項目 1 を参照。
164
165
 
@@ -204,6 +205,8 @@ C3 の wheel 配布除外パターンは **3 つのファイルに分散して
204
205
  | `src/c3/_excludes.py` | `c3 init` / `c3 update` 時の除外判断(Python 実装) | 配布先への配布/非配布を変更する時 |
205
206
  | `hatch_build.py` | wheel ビルド時の除外判断(`_excludes.py` の重複定義) | `_excludes.py` を変更した時(必ず同期) |
206
207
 
208
+ **`breaking-changes.txt` の同期義務(v2.19.0 追加)**: 新たな破壊的変更をリリースする際は、必ず `_excludes.py` / `hatch_build.py` の `KEEP_PATTERNS` に `"breaking-changes.txt"` が含まれていることを確認した上で、配布元 `.claude/breaking-changes.txt` にエントリを追記する。`scripts/extract_breaking_changes.py --check` で CHANGELOG との整合性を確認し、未記載があれば追記してから wheel を再ビルドする(詳細は配布元 `/CLAUDE.md` §6 参照)。
209
+
207
210
  `hatch_build.py` の重複が必要な理由: hatch build hook はパッケージ import 前に走るため、
208
211
  `_excludes.py` を import できない。2 ファイルの完全一致が必須。
209
212
 
@@ -234,17 +237,13 @@ C3 の wheel 配布除外パターンは **3 つのファイルに分散して
234
237
 
235
238
  **ここを読まないと事故る**ポイントを集約。症状が出たらまず確認すること。
236
239
 
237
- ### 落とし穴 1: `hooks` セクションが `settings.local.json` で完全上書きされる
238
-
239
- **症状**: `permission_handler.py` 等の C3 hook が突然動かなくなる。
240
+ ### 落とし穴 1: `hooks` のマージ挙動は公式 docs 未明記
240
241
 
241
- **原因**: Claude Code の `settings.json` 系では、`hooks` セクションのみマージではなく
242
- **完全上書き**の挙動を取る(`permissions.allow` 等他のキーはマージ)。
243
- `settings.local.json` に `hooks: []` や任意の hook 定義を書くと、
244
- `settings.json` の `hooks` エントリが全て無効化される。
242
+ **現状**: 実機では `settings.local.json` の `hooks` と `settings.json` の `hooks` はマージされる(本配布元リポの `.dev/hooks/*` 登録が実例)。
243
+ ただし Claude Code 公式 docs では hooks のマージ挙動が明記されていないため、将来の Claude Code バージョンで挙動が変わるリスクがある。
245
244
 
246
- **対処**: `settings.local.json` `hooks` セクションを削除し、`settings.json` 側に移す。
247
- カスタム hook を追加したい場合はチームで `settings.json` を編集する(git 管理)。
245
+ **対処**: チーム全体で必要な hook は `settings.json` 側に置く(git 管理 / チーム合意)。`settings.local.json` には個人 / 配布元専用 hook のみを書く(本リポでは `.dev/hooks/*` 配下のみ)。
246
+ 万が一 lifecycle hook が動かなくなった場合は、`settings.local.json` を一時退避して `settings.json` 単独で動作するか切り分ける。
248
247
 
249
248
  ### 落とし穴 2: `taxonomy.md` は tracked だが wheel 配布されない
250
249
 
@@ -4,7 +4,8 @@ Claude Code の設定ファイル。プロジェクトルートの `.claude/sett
4
4
  ユーザーローカルの上書きは `.claude/settings.local.json`(`.gitignore` 推奨)。
5
5
 
6
6
  > 設定の優先順位: `settings.local.json` > `settings.json` > グローバル設定(`~/.claude/settings.json`)
7
- > ただし `hooks` セクションは `settings.local.json` `settings.json` を**完全に上書き**する(マージしない)。
7
+ > `hooks` セクションは両ファイルの内容がマージされる(本配布元リポで `.dev/hooks/*` を `settings.local.json` に登録して `.claude/hooks/*` と並走させている実機事実)。
8
+ > ただし Claude Code 公式 docs では hooks のマージ挙動が明記されていないため、チーム全体で必要な hook は `settings.json` 側に集約するのが安全。
8
9
 
9
10
  ---
10
11
 
@@ -508,4 +509,4 @@ MCP(Model Context Protocol)サーバーを登録する。登録されたサ
508
509
  | `.claude/settings.json` | プロジェクト共通設定。git 管理する |
509
510
  | `.claude/settings.local.json` | 開発者個人の設定(追加 `allow` 等)。`.gitignore` に追加して git 管理しない |
510
511
 
511
- > `hooks` `settings.local.json` に書くと `settings.json` `hooks` が**完全に無効化**される。フックは `settings.json` のみに書くこと。
512
+ > `hooks` `settings.local.json` `settings.json` の内容がマージされる(実機検証済み)。ただし Claude Code 公式 docs ではこの挙動が明記されていないため、チーム全体で必要なフックは `settings.json` 側に集約する。`settings.local.json` は個人・配布元専用フック(例: 本リポの `.dev/hooks/*`)に留める。
@@ -1,5 +1,79 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.19.0] - 2026-05-24
4
+
5
+ **基盤整備リリース第 3 弾**: `c3 update` 実行時に breaking changes 表示 + MAJOR 承認プロンプトを導入する。
6
+ v2.11.0 の `summarize-memory` 廃止のように利用先設定の手動修正が必要なケースで、
7
+ 利用者が破壊的変更を見逃すリスクを構造的に防ぐ。
8
+
9
+ ### 機能追加
10
+
11
+ - **`c3 update` 実行時の breaking changes 表示 + MAJOR 承認プロンプト**:
12
+ 利用先 `.claude/state/c3_version.txt`(バージョン checkpoint)と配布元バージョン
13
+ (`c3.__version__`) を比較し、その区間にある breaking changes を
14
+ `.claude/breaking-changes.txt` から抽出して表示する。
15
+ - **initial(初回)**: 全件表示。プロンプト非発火。
16
+ - **minor / patch**: 区間内 breaking changes を表示。プロンプト非発火。
17
+ - **MAJOR**: 区間内 breaking changes を表示後、`Proceed with major version update? [y/N]:` プロンプトを発火。
18
+ N または非対話環境(EOF)で `exit 0`(add/update / deletions / checkpoint 更新のいずれも実行されない)。
19
+ - **downgrade**: stderr に 1 行 warning のみ。checkpoint 不変。プロンプト非発火。
20
+ - `--yes` フラグで MAJOR プロンプトをスキップ可(CI / 自動化用)。
21
+ - `--dry-run` では MAJOR プロンプト非発火(`(dry-run: confirmation would be required)` 表示)。
22
+ - `--platform codex` 等 claude 以外単独実行時は発火しない。
23
+
24
+ - **`.claude/breaking-changes.txt`(新規)**: breaking changes ログファイル。
25
+ フォーマット: `vX.Y.Z|<English summary>|<Japanese summary>` の pipe 区切り 1 行 1 エントリ。
26
+ v2.11.0(`summarize-memory` 廃止)を初期エントリとして同梱。
27
+ `KEEP_PATTERNS` で明示配布。`c3 update` で利用先に伝播。
28
+
29
+ - **`.claude/state/c3_version.txt`(新規、利用先生成)**: バージョン checkpoint ファイル。
30
+ `c3 update` の claude block 成功時(non-dry-run / non-downgrade)に自動更新。
31
+ `state/*` 一括除外により配布対象外(利用先で生成、git 管理は推奨しない)。
32
+
33
+ - **`scripts/extract_breaking_changes.py`(新規)**: CHANGELOG.md の `### 破壊的変更` セクションを抽出し、
34
+ `.claude/breaking-changes.txt` に未記載のエントリを追記するリリースワークフロースクリプト。
35
+ - `--check`: 未記載があれば `exit 1` + stderr に未記載 version 列挙(CI 用)
36
+ - `--dry-run`: 候補表示のみ、書き込まない
37
+ - 対話モード: en サマリ必須入力(空入力はエラー)
38
+ - atomic write (tmp + `os.replace`) で安全に追記
39
+
40
+ - **`KEEP_PATTERNS` への `breaking-changes.txt` 追加**: `src/c3/_excludes.py` / `hatch_build.py` の
41
+ `KEEP_PATTERNS` に `"breaking-changes.txt"` を追加(3 ファイル同期ルール準拠)。
42
+
43
+ ### 変更
44
+
45
+ - **`src/c3/__init__.py`**: `__version__` を `"2.18.0"` から `"2.19.0"` に更新。
46
+
47
+ ### ドキュメント
48
+
49
+ - **`.claude/docs/config-policy.md`**:
50
+ - §3 配布判断マトリクス 13 → 14 カテゴリ(`breaking-changes.txt` 追加)
51
+ - §11(`state/*`)に「v2.19.0 で `c3_version.txt` を追加」と注記
52
+ - §6 3 ファイル同期ルールに `breaking-changes.txt` のメンテ責任を追記
53
+ - **`/CLAUDE.md`**(配布元 gitignored):
54
+ - §6「リリース前 breaking changes チェック」を新規追加
55
+ - `scripts/extract_breaking_changes.py --check` 手順 / wheel 検証コマンドを含む
56
+
57
+ ### ドキュメント訂正(v2.17.0 / v2.18.0 で配布した記述の誤りを訂正)
58
+
59
+ - **`hooks` のマージ挙動**: v2.17.0 / v2.18.0 で配布した `.claude/docs/config-policy.md` §2 / §4 / §7 と
60
+ `.claude/docs/settings.json.md` 冒頭・末尾の「`settings.local.json` の hooks が `settings.json` の
61
+ hooks を完全上書きする」記述は **誤り**。実機検証で両ファイルの hooks は **マージされる** ことを確認
62
+ (本配布元リポでも `settings.json` の lifecycle hooks と `settings.local.json` の `.dev/hooks/*` が並走)。
63
+ Claude Code 公式 docs では hooks のマージ挙動が明記されていないため、チーム全体で必要な hook は
64
+ `settings.json` 側に集約するのが安全、という方針に変更。
65
+ - **`.claude/rules/*.md` の注入挙動**: v2.17.0 で配布した `.claude/docs/config-policy.md` §2 の
66
+ 「`paths:` フロントマターがあればパスマッチ時のみ、なければ常時注入」記述は誤り。実機では `rules/*.md`
67
+ は常時全文注入され、`paths:` は「適用範囲のドキュメント」であって注入タイミングは変わらない。
68
+
69
+ ### 影響
70
+
71
+ - **既存利用先**: `c3 update` 実行時に「初回 checkpoint 作成」ヘッダ + v2.11.0 の breaking change が表示される。
72
+ MAJOR バンプ確認プロンプトは発火しない(v2.11.0 → v2.19.0 は minor bump)。
73
+ `.claude/state/c3_version.txt` が自動生成されるが、`state/*` は gitignore 推奨。
74
+
75
+ ---
76
+
3
77
  ## v2.18.0 (2026-05-24)
4
78
 
5
79
  **基盤整備リリース第 2 弾**: `c3 update` の削除検出を `deletions.txt` 方式で導入する。
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-code-conductor
3
- Version: 2.18.0
3
+ Version: 2.19.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
@@ -69,6 +69,7 @@ KEEP_PATTERNS: tuple[str, ...] = (
69
69
  "tmp/.gitkeep",
70
70
  "state/.gitkeep",
71
71
  "deletions.txt", # 新規: c3 update が読む削除指示書
72
+ "breaking-changes.txt", # v2.19.0: c3 update が読む破壊的変更ログ
72
73
  )
73
74
 
74
75
 
@@ -1,3 +1,3 @@
1
1
  """Claude Code Conductor (C3) - multi-agent orchestration framework for Claude Code."""
2
2
 
3
- __version__ = "2.18.0"
3
+ __version__ = "2.19.0"
@@ -66,6 +66,7 @@ KEEP_PATTERNS: tuple[str, ...] = (
66
66
  "tmp/.gitkeep",
67
67
  "state/.gitkeep",
68
68
  "deletions.txt", # 新規: c3 update が読む削除指示書
69
+ "breaking-changes.txt", # v2.19.0: c3 update が読む破壊的変更ログ
69
70
  )
70
71
 
71
72