claude-code-conductor 2.14.2__tar.gz → 2.15.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 (170) hide show
  1. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/agents/code-reviewer.md +2 -2
  2. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/agents/planner.md +2 -2
  3. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/agents/security-reviewer.md +2 -2
  4. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/hooks/planner_check.py +1 -1
  5. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/skills/parallel-agents/SKILL.md +1 -1
  6. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/CHANGELOG.md +34 -0
  7. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/PKG-INFO +1 -1
  8. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/src/c3/__init__.py +1 -1
  9. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/skills/test_planner_lightweight.py +6 -6
  10. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_excludes.py +1 -1
  11. claude_code_conductor-2.15.0/tests/test_references_migration.py +119 -0
  12. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/CLAUDE.md +0 -0
  13. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/agents/architect.md +0 -0
  14. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/agents/developer.md +0 -0
  15. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/agents/doc-writer.md +0 -0
  16. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/agents/interviewer.md +0 -0
  17. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/agents/project-setup.md +0 -0
  18. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/agents/systematic-debugger.md +0 -0
  19. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/agents/tester.md +0 -0
  20. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/agents/wt_developer.md +0 -0
  21. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/agents/wt_systematic-debugger.md +0 -0
  22. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/agents/wt_tester.md +0 -0
  23. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/docs/platform-adapters.md +0 -0
  24. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/docs/settings.json.md +0 -0
  25. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/hooks/_hook_utils.py +0 -0
  26. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/hooks/check_agent_invocation.py +0 -0
  27. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/hooks/consolidate_memory.py +0 -0
  28. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/hooks/permission_handler.py +0 -0
  29. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/hooks/permission_handler_toast.py +0 -0
  30. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/hooks/post_tool.py +0 -0
  31. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/hooks/pre_compact.py +0 -0
  32. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/hooks/pre_tool.py +0 -0
  33. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/hooks/recall_inject.py +0 -0
  34. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/hooks/restore_session.py +0 -0
  35. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/hooks/schema.sql +0 -0
  36. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/hooks/select_tier.py +0 -0
  37. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/hooks/session_start.py +0 -0
  38. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/hooks/session_stop.py +0 -0
  39. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/hooks/session_utils.py +0 -0
  40. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/hooks/statusline.py +0 -0
  41. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/hooks/stop.py +0 -0
  42. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/hooks/worktree_guard.py +0 -0
  43. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/memory/.gitkeep +0 -0
  44. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/permission_rules.json +0 -0
  45. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/rules/promoted/index.md +0 -0
  46. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/settings.json +0 -0
  47. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/skills/code-review/SKILL.md +0 -0
  48. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/skills/codex-review/SKILL.md +0 -0
  49. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/skills/dev-workflow/SKILL.md +0 -0
  50. {claude_code_conductor-2.14.2/.claude/rules → claude_code_conductor-2.15.0/.claude/skills/dev-workflow/references}/code-review-checklist.md +0 -0
  51. {claude_code_conductor-2.14.2/.claude/rules → claude_code_conductor-2.15.0/.claude/skills/dev-workflow/references}/plan-design-guidelines.md +0 -0
  52. {claude_code_conductor-2.14.2/.claude/rules → claude_code_conductor-2.15.0/.claude/skills/dev-workflow/references}/security-review-checklist.md +0 -0
  53. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/skills/dev-workflow/scripts/record_review_decision.py +0 -0
  54. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/skills/dev-workflow/scripts/record_tier_outcome.py +0 -0
  55. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/skills/dev-workflow/scripts/review_hint_inject.py +0 -0
  56. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/skills/develop/SKILL.md +0 -0
  57. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/skills/doc/SKILL.md +0 -0
  58. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/skills/extract-lib/SKILL.md +0 -0
  59. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/skills/init-session/SKILL.md +0 -0
  60. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/skills/mcp-config/SKILL.md +0 -0
  61. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/skills/pattern-status/SKILL.md +0 -0
  62. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/skills/promote-pattern/SKILL.md +0 -0
  63. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/skills/recall/SKILL.md +0 -0
  64. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/skills/report-timestamp/SKILL.md +0 -0
  65. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/skills/report-timestamp/scripts/get_timestamp.py +0 -0
  66. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/skills/setup/SKILL.md +0 -0
  67. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/skills/setup/reference.md +0 -0
  68. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/skills/setup/templates/coding-standards-template.md +0 -0
  69. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/skills/setup/templates/project-conventions-template.md +0 -0
  70. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/skills/start/SKILL.md +0 -0
  71. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.claude/state/.gitkeep +0 -0
  72. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/.gitignore +0 -0
  73. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/LICENSE +0 -0
  74. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/LICENSES/chroma-hnswlib-LICENSE +0 -0
  75. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/LICENSES/chroma-hnswlib-NOTICE +0 -0
  76. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/LICENSES/fastembed-LICENSE +0 -0
  77. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/LICENSES/fastembed-NOTICE +0 -0
  78. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/LICENSES/onnxruntime-LICENSE +0 -0
  79. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/LICENSES/paraphrase-multilingual-MiniLM-L12-v2-LICENSE +0 -0
  80. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/README.md +0 -0
  81. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/hatch_build.py +0 -0
  82. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/pyproject.toml +0 -0
  83. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/src/c3/__main__.py +0 -0
  84. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/src/c3/_excludes.py +0 -0
  85. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/src/c3/_terminal.py +0 -0
  86. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/src/c3/adapters.py +0 -0
  87. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/src/c3/cli.py +0 -0
  88. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/src/c3/cli_ask.py +0 -0
  89. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/src/c3/cli_doctor.py +0 -0
  90. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/src/c3/cli_init.py +0 -0
  91. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/src/c3/cli_list.py +0 -0
  92. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/src/c3/cli_plan.py +0 -0
  93. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/src/c3/cli_recall.py +0 -0
  94. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/src/c3/cli_tier.py +0 -0
  95. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/src/c3/cli_update.py +0 -0
  96. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/src/c3/db.py +0 -0
  97. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/src/c3/embedding.py +0 -0
  98. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/src/c3/mcp_server.py +0 -0
  99. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/src/c3/paths.py +0 -0
  100. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/src/c3/plan_validator.py +0 -0
  101. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/src/c3/platforms.py +0 -0
  102. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/src/c3/question.py +0 -0
  103. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/src/c3/recall_chunker.py +0 -0
  104. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/src/c3/recall_index.py +0 -0
  105. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/__init__.py +0 -0
  106. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/conftest.py +0 -0
  107. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/__init__.py +0 -0
  108. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_check_agent_invocation.py +0 -0
  109. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_consolidate_memory.py +0 -0
  110. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_hook_utils.py +0 -0
  111. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_permission_handler.py +0 -0
  112. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_permission_handler_toast.py +0 -0
  113. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_pip_reinstall_reminder.py +0 -0
  114. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_planner_check.py +0 -0
  115. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_planner_check_dev.py +0 -0
  116. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_post_tool.py +0 -0
  117. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_pre_tool.py +0 -0
  118. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_recall_inject.py +0 -0
  119. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_record_review_decision.py +0 -0
  120. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_record_tier_outcome.py +0 -0
  121. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_restore_session.py +0 -0
  122. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_review_hint_inject.py +0 -0
  123. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_select_tier.py +0 -0
  124. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_select_tier_escalation.py +0 -0
  125. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_session_start.py +0 -0
  126. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_session_stop.py +0 -0
  127. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_session_utils.py +0 -0
  128. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_settings_local_absolute_paths.py +0 -0
  129. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_similarity_boost.py +0 -0
  130. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_statusline.py +0 -0
  131. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_statusline_template_sync.py +0 -0
  132. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_sync_check.py +0 -0
  133. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/hooks/test_template_guard.py +0 -0
  134. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/skills/__init__.py +0 -0
  135. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/skills/_skill_helpers.py +0 -0
  136. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/skills/test_dev_workflow_no_task_type.py +0 -0
  137. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/skills/test_init_session_no_task_type.py +0 -0
  138. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/skills/test_recall_skill.py +0 -0
  139. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/skills/test_session_backlog_reconciliation.py +0 -0
  140. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/skills/test_setup_templates.py +0 -0
  141. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/skills/test_start_skill_bugfix_flow.py +0 -0
  142. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/skills/test_start_skill_new_flow.py +0 -0
  143. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/skills/test_start_skill_security_audit_phase.py +0 -0
  144. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_adapters.py +0 -0
  145. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_cli_ask.py +0 -0
  146. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_cli_entry.py +0 -0
  147. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_cli_init.py +0 -0
  148. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_cli_list.py +0 -0
  149. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_cli_plan.py +0 -0
  150. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_cli_recall.py +0 -0
  151. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_cli_tier.py +0 -0
  152. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_docstring_consistency.py +0 -0
  153. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_embedding.py +0 -0
  154. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_mcp_server_elicit.py +0 -0
  155. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_paths.py +0 -0
  156. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_plan_validator.py +0 -0
  157. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_pre_compact.py +0 -0
  158. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_pre_tool_hook.py +0 -0
  159. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_precompact_additional.py +0 -0
  160. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_precompact_toctou_fixes.py +0 -0
  161. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_recall_chunker.py +0 -0
  162. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_recall_index.py +0 -0
  163. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_session_utils_additional.py +0 -0
  164. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_statusline.py +0 -0
  165. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_stop_additional.py +0 -0
  166. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_stop_hook.py +0 -0
  167. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_stop_precompact_fixes.py +0 -0
  168. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_sync_template_stop.py +0 -0
  169. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_template_pre_tool_hook.py +0 -0
  170. {claude_code_conductor-2.14.2 → claude_code_conductor-2.15.0}/tests/test_worktree_guard.py +0 -0
@@ -44,11 +44,11 @@ tools:
44
44
  **Before:**
45
45
  - `git diff` または変更ファイル一覧を Bash で確認する
46
46
  - 関連するテストコードも合わせて Read する
47
- - `.claude/rules/code-review-checklist.md` を Read してチェック観点を確認する
47
+ - `.claude/skills/dev-workflow/references/code-review-checklist.md` を Read してチェック観点を確認する
48
48
 
49
49
  **During:**
50
50
  - 指摘は重大度(High / Medium / Low)で分類する
51
- - **指摘ごとに該当する checklist_id を `[CR-XX-NNN]` 形式で併記する**(`.claude/rules/code-review-checklist.md` の各項目に付与済み)。review-hint(レビュー判断ヒント機能)の照合キーになるため、必須とする。複数該当する場合は最も近いものを 1 つ選ぶ
51
+ - **指摘ごとに該当する checklist_id を `[CR-XX-NNN]` 形式で併記する**(`.claude/skills/dev-workflow/references/code-review-checklist.md` の各項目に付与済み)。review-hint(レビュー判断ヒント機能)の照合キーになるため、必須とする。複数該当する場合は最も近いものを 1 つ選ぶ
52
52
  - **該当 ID がない場合は `[CR-NEW]` で出す**(チェックリスト追加候補として扱う)。無理やり近い既存 ID にマッピングしないこと。review-hint の照合精度が落ち、チェックリストの成長機会も失われるため
53
53
  - 良い実装は明示的に記録する(削除しないよう伝える)
54
54
  - 修正必須と推奨の2段階で提示する
@@ -33,7 +33,7 @@ requirements-report・architecture-report・各種レビューレポートを統
33
33
  ## Workflow
34
34
 
35
35
  **Before:**
36
- - **必読: `.claude/rules/plan-design-guidelines.md`** を Read する(depends_on 設計・TDD 3-wave 分解・writes 衝突回避・自動検査ルール R2〜R6・出力直前の自己チェックリスト)
36
+ - **必読: `.claude/skills/dev-workflow/references/plan-design-guidelines.md`** を Read する(depends_on 設計・TDD 3-wave 分解・writes 衝突回避・自動検査ルール R2〜R6・出力直前の自己チェックリスト)
37
37
  - 利用可能な全レポートを Read する(requirements / architecture / test / review)
38
38
  - レポートが存在しないフェーズはスキップして正常とする
39
39
 
@@ -57,7 +57,7 @@ requirements-report・architecture-report・各種レビューレポートを統
57
57
  制限:
58
58
  - ソースファイルの編集・書き込みは行わない
59
59
  - plan-report の YAML フロントマター内で `tasks[].id` の重複・未定義の `depends_on` 参照・エージェント名の typo を出力しない(`c3 plan validate` で検証可能)
60
- - `.claude/rules/plan-design-guidelines.md` のルール 1〜13 と自己チェックリストに違反した plan-report を出力しない
60
+ - `.claude/skills/dev-workflow/references/plan-design-guidelines.md` のルール 1〜13 と自己チェックリストに違反した plan-report を出力しない
61
61
  - 自動検査対象に違反する plan-report を出力しない:
62
62
  - R2/R4/R6(配布対象): `.claude/hooks/planner_check.py` が PostToolUse で WARN を出す
63
63
  - R3(C3 固有): `.dev/hooks/_planner_check.py` が PostToolUse で exit 2 ブロック
@@ -45,11 +45,11 @@ SQLインジェクション・XSS・認証認可・秘密情報漏洩などの
45
45
  **Before:**
46
46
  - 変更ファイルと依存関係を Bash / Glob / Grep で確認する
47
47
  - 認証・外部入力・データベースアクセスのコードを優先的に確認する
48
- - `.claude/rules/security-review-checklist.md` を Read してチェック観点を確認する
48
+ - `.claude/skills/dev-workflow/references/security-review-checklist.md` を Read してチェック観点を確認する
49
49
 
50
50
  **During:**
51
51
  - 指摘は深刻度(Critical / High / Medium / Low)で分類する
52
- - **指摘ごとに該当する checklist_id を `[SR-XX-NNN]` 形式で併記する**(`.claude/rules/security-review-checklist.md` の各項目に付与済み)。review-hint(レビュー判断ヒント機能)の照合キーになるため、必須とする。複数該当する場合は最も近いものを 1 つ選ぶ
52
+ - **指摘ごとに該当する checklist_id を `[SR-XX-NNN]` 形式で併記する**(`.claude/skills/dev-workflow/references/security-review-checklist.md` の各項目に付与済み)。review-hint(レビュー判断ヒント機能)の照合キーになるため、必須とする。複数該当する場合は最も近いものを 1 つ選ぶ
53
53
  - **該当 ID がない場合は `[SR-NEW]` で出す**(チェックリスト追加候補として扱う)。無理やり近い既存 ID にマッピングしないこと。review-hint の照合精度が落ち、チェックリストの成長機会も失われるため
54
54
  - 悪用シナリオを具体的に記述して再現可能な形で報告する
55
55
  - 修正方法の例を提示する
@@ -287,7 +287,7 @@ def main() -> None:
287
287
  "[PlannerCheck WARN] plan-report の検査で違反を検出しました:\n"
288
288
  + "\n".join(f" - {msg}" for msg in sanitized_warnings)
289
289
  + "\n\n"
290
- + "ルールの詳細は .claude/rules/plan-design-guidelines.md を参照。"
290
+ + "ルールの詳細は .claude/skills/dev-workflow/references/plan-design-guidelines.md を参照。"
291
291
  + "意図的に許容する場合はユーザーに確認を取ること。"
292
292
  )
293
293
  output = {
@@ -154,7 +154,7 @@ plan-report 承認時点で全タスク・agent・writes・prompt が確認済
154
154
 
155
155
  - `subagent_type`: 上記マッピング表の値
156
156
  - `isolation`: **`read_only: false` タスクのみ `"worktree"` を指定する。`read_only: true`(code-reviewer / security-reviewer)はソースを変更しないため worktree 不要。`isolation` を省略して main リポジトリで直接実行し、レポートを main の `.claude/reports/` に直接書かせる。**
157
- > **R5 hook による機械強制**: 上記ルールに違反して `read_only: true` のレビュータスクに `isolation: "worktree"` を指定した場合、`.claude/hooks/check_agent_invocation.py`(PreToolUse Agent hook)が exit 2 でブロックする。詳細は `.claude/rules/plan-design-guidelines.md` R5 参照。
157
+ > **R5 hook による機械強制**: 上記ルールに違反して `read_only: true` のレビュータスクに `isolation: "worktree"` を指定した場合、`.claude/hooks/check_agent_invocation.py`(PreToolUse Agent hook)が exit 2 でブロックする。詳細は `.claude/skills/dev-workflow/references/plan-design-guidelines.md` R5 参照。
158
158
  - `run_in_background`: `true`
159
159
  - `description`: タスク id(5 単語以内)
160
160
  - `prompt`: 以下を含める(ペルソナ採用は不要、frontmatter / system prompt で自動適用される):
@@ -1,5 +1,39 @@
1
1
  # Changelog
2
2
 
3
+ ## v2.15.0 (2026-05-22)
4
+
5
+ ### 変更
6
+ - planner / code-reviewer / security-reviewer 用の長文ガイドライン 3 ファイルを
7
+ `.claude/rules/` から `.claude/skills/dev-workflow/references/` に移動。
8
+ Claude Code 公式仕様で `.claude/rules/*.md` が全文自動ロードされコンテキストを
9
+ 常時 ~10.8k tokens 圧迫していた問題を解消。
10
+ - `plan-design-guidelines.md`
11
+ - `code-review-checklist.md`
12
+ - `security-review-checklist.md`
13
+
14
+ ### 配布先での手動クリーンアップ手順(必須)
15
+
16
+ `c3 update` は配布物の削除を検出しないため、配布先プロジェクトで以下を手動実行:
17
+
18
+ ```bash
19
+ rm .claude/rules/plan-design-guidelines.md
20
+ rm .claude/rules/code-review-checklist.md
21
+ rm .claude/rules/security-review-checklist.md
22
+ ```
23
+
24
+ **PowerShell (Windows):**
25
+ ```powershell
26
+ Remove-Item .claude\rules\plan-design-guidelines.md
27
+ Remove-Item .claude\rules\code-review-checklist.md
28
+ Remove-Item .claude\rules\security-review-checklist.md
29
+ ```
30
+
31
+ ### ドキュメント
32
+ - taxonomy.md に「長文ガイドラインは skills/<name>/references/ に置く」設計指針を明記
33
+ - decisions.md に新 ADR を追加
34
+
35
+ ---
36
+
3
37
  ## [2.14.2] - 2026-05-22
4
38
 
5
39
  ### 個人ドキュメントの wheel 配布除外
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-code-conductor
3
- Version: 2.14.2
3
+ Version: 2.15.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
@@ -1,3 +1,3 @@
1
1
  """Claude Code Conductor (C3) - multi-agent orchestration framework for Claude Code."""
2
2
 
3
- __version__ = "2.14.2"
3
+ __version__ = "2.15.0"
@@ -2,7 +2,7 @@
2
2
  tests/skills/test_planner_lightweight.py
3
3
 
4
4
  v2.13.0 で planner.md を 172 行 → ~66 行に軽量化した検証。
5
- 並列実行設計指針・自動検査ルールは rules/plan-design-guidelines.md に外出しされている。
5
+ 並列実行設計指針・自動検査ルールは skills/dev-workflow/references/plan-design-guidelines.md に外出しされている。
6
6
  """
7
7
  from pathlib import Path
8
8
 
@@ -10,7 +10,7 @@ from tests.skills._skill_helpers import WORKTREE_ROOT
10
10
 
11
11
 
12
12
  PLANNER_AGENT = WORKTREE_ROOT / ".claude" / "agents" / "planner.md"
13
- PLAN_DESIGN_GUIDELINES = WORKTREE_ROOT / ".claude" / "rules" / "plan-design-guidelines.md"
13
+ PLAN_DESIGN_GUIDELINES = WORKTREE_ROOT / ".claude" / "skills" / "dev-workflow" / "references" / "plan-design-guidelines.md"
14
14
 
15
15
 
16
16
  def _read(path: Path) -> str:
@@ -23,7 +23,7 @@ def test_planner_agent_under_80_lines():
23
23
  line_count = len(content.splitlines())
24
24
  assert line_count <= 80, (
25
25
  f"planner.md は {line_count} 行(80 行上限超過)。"
26
- " 処理手順は rules/plan-design-guidelines.md に外出ししてください(D-012)。"
26
+ " 処理手順は skills/dev-workflow/references/plan-design-guidelines.md に外出ししてください(D-012)。"
27
27
  )
28
28
 
29
29
 
@@ -45,9 +45,9 @@ def test_planner_references_plan_design_guidelines():
45
45
 
46
46
 
47
47
  def test_plan_design_guidelines_exists_and_has_rules():
48
- """rules/plan-design-guidelines.md が存在し、ルール 1〜13 と R2〜R6 を含む。"""
48
+ """skills/dev-workflow/references/plan-design-guidelines.md が存在し、ルール 1〜13 と R2〜R6 を含む。"""
49
49
  content = _read(PLAN_DESIGN_GUIDELINES)
50
- assert content, "rules/plan-design-guidelines.md が存在しない"
50
+ assert content, "skills/dev-workflow/references/plan-design-guidelines.md が存在しない"
51
51
  required_concepts = (
52
52
  "depends_on の付け方",
53
53
  "TDD タスクは 3-wave に分解",
@@ -79,7 +79,7 @@ def test_planner_no_longer_contains_extracted_sections():
79
79
  found = [h for h in forbidden_headings if h in content]
80
80
  assert not found, (
81
81
  f"planner.md に外出し済みのセクションが残っている: {found}. "
82
- "rules/plan-design-guidelines.md に移動してください。"
82
+ "skills/dev-workflow/references/plan-design-guidelines.md に移動してください。"
83
83
  )
84
84
 
85
85
 
@@ -10,7 +10,7 @@ def test_keeps_framework_files():
10
10
  assert not should_skip("skills/dev-workflow.md")
11
11
  assert not should_skip("commands/develop.md")
12
12
  assert not should_skip("hooks/pre_tool.py")
13
- assert not should_skip("rules/code-review-checklist.md")
13
+ assert not should_skip("skills/dev-workflow/references/code-review-checklist.md")
14
14
  assert not should_skip("settings.json")
15
15
  assert not should_skip("CLAUDE.md")
16
16
  assert not should_skip("docs/settings.json.md")
@@ -0,0 +1,119 @@
1
+ """Tests for references migration: rules/ -> skills/dev-workflow/references/.
2
+
3
+ Verifies that:
4
+ - The 3 reference files exist at their new locations under skills/dev-workflow/references/
5
+ - The 3 old locations under rules/ no longer exist
6
+ - Agent definitions reference the new paths and not the old paths
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ from pathlib import Path
12
+
13
+ WORKTREE_ROOT = Path(__file__).resolve().parents[1]
14
+
15
+ _CLAUDE = WORKTREE_ROOT / ".claude"
16
+
17
+
18
+ # ---------------------------------------------------------------------------
19
+ # 1-3: New reference files exist under skills/dev-workflow/references/
20
+ # ---------------------------------------------------------------------------
21
+
22
+
23
+ def test_plan_design_guidelines_exists_at_new_location():
24
+ path = _CLAUDE / "skills" / "dev-workflow" / "references" / "plan-design-guidelines.md"
25
+ assert path.exists(), f"Expected file not found: {path}"
26
+
27
+
28
+ def test_code_review_checklist_exists_at_new_location():
29
+ path = _CLAUDE / "skills" / "dev-workflow" / "references" / "code-review-checklist.md"
30
+ assert path.exists(), f"Expected file not found: {path}"
31
+
32
+
33
+ def test_security_review_checklist_exists_at_new_location():
34
+ path = _CLAUDE / "skills" / "dev-workflow" / "references" / "security-review-checklist.md"
35
+ assert path.exists(), f"Expected file not found: {path}"
36
+
37
+
38
+ # ---------------------------------------------------------------------------
39
+ # 4-6: Old locations under rules/ no longer exist
40
+ # ---------------------------------------------------------------------------
41
+
42
+
43
+ def test_plan_design_guidelines_absent_from_rules():
44
+ path = _CLAUDE / "rules" / "plan-design-guidelines.md"
45
+ assert not path.exists(), f"File should have been removed from rules/: {path}"
46
+
47
+
48
+ def test_code_review_checklist_absent_from_rules():
49
+ path = _CLAUDE / "rules" / "code-review-checklist.md"
50
+ assert not path.exists(), f"File should have been removed from rules/: {path}"
51
+
52
+
53
+ def test_security_review_checklist_absent_from_rules():
54
+ path = _CLAUDE / "rules" / "security-review-checklist.md"
55
+ assert not path.exists(), f"File should have been removed from rules/: {path}"
56
+
57
+
58
+ # ---------------------------------------------------------------------------
59
+ # 7-9: Agent definitions reference the new paths
60
+ # ---------------------------------------------------------------------------
61
+
62
+
63
+ def test_planner_references_new_plan_design_guidelines():
64
+ agent_file = _CLAUDE / "agents" / "planner.md"
65
+ assert agent_file.exists(), f"Agent file not found: {agent_file}"
66
+ content = agent_file.read_text(encoding="utf-8")
67
+ assert "skills/dev-workflow/references/plan-design-guidelines.md" in content, (
68
+ "planner.md should reference skills/dev-workflow/references/plan-design-guidelines.md"
69
+ )
70
+
71
+
72
+ def test_code_reviewer_references_new_code_review_checklist():
73
+ agent_file = _CLAUDE / "agents" / "code-reviewer.md"
74
+ assert agent_file.exists(), f"Agent file not found: {agent_file}"
75
+ content = agent_file.read_text(encoding="utf-8")
76
+ assert "skills/dev-workflow/references/code-review-checklist.md" in content, (
77
+ "code-reviewer.md should reference skills/dev-workflow/references/code-review-checklist.md"
78
+ )
79
+
80
+
81
+ def test_security_reviewer_references_new_security_review_checklist():
82
+ agent_file = _CLAUDE / "agents" / "security-reviewer.md"
83
+ assert agent_file.exists(), f"Agent file not found: {agent_file}"
84
+ content = agent_file.read_text(encoding="utf-8")
85
+ assert "skills/dev-workflow/references/security-review-checklist.md" in content, (
86
+ "security-reviewer.md should reference skills/dev-workflow/references/security-review-checklist.md"
87
+ )
88
+
89
+
90
+ # ---------------------------------------------------------------------------
91
+ # 10-12: Agent definitions do NOT reference the old rules/ paths
92
+ # ---------------------------------------------------------------------------
93
+
94
+
95
+ def test_planner_does_not_reference_old_plan_design_guidelines():
96
+ agent_file = _CLAUDE / "agents" / "planner.md"
97
+ assert agent_file.exists(), f"Agent file not found: {agent_file}"
98
+ content = agent_file.read_text(encoding="utf-8")
99
+ assert "rules/plan-design-guidelines.md" not in content, (
100
+ "planner.md must not reference old path rules/plan-design-guidelines.md"
101
+ )
102
+
103
+
104
+ def test_code_reviewer_does_not_reference_old_code_review_checklist():
105
+ agent_file = _CLAUDE / "agents" / "code-reviewer.md"
106
+ assert agent_file.exists(), f"Agent file not found: {agent_file}"
107
+ content = agent_file.read_text(encoding="utf-8")
108
+ assert "rules/code-review-checklist.md" not in content, (
109
+ "code-reviewer.md must not reference old path rules/code-review-checklist.md"
110
+ )
111
+
112
+
113
+ def test_security_reviewer_does_not_reference_old_security_review_checklist():
114
+ agent_file = _CLAUDE / "agents" / "security-reviewer.md"
115
+ assert agent_file.exists(), f"Agent file not found: {agent_file}"
116
+ content = agent_file.read_text(encoding="utf-8")
117
+ assert "rules/security-review-checklist.md" not in content, (
118
+ "security-reviewer.md must not reference old path rules/security-review-checklist.md"
119
+ )