claude-code-conductor 2.33.0__tar.gz → 2.35.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 (204) hide show
  1. claude_code_conductor-2.35.0/.claude/agents/design-critic.md +63 -0
  2. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/dev-workflow/SKILL.md +128 -1
  3. claude_code_conductor-2.35.0/.claude/skills/dev-workflow/references/design-critic-rubric.md +160 -0
  4. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/parallel-agents/SKILL.md +13 -0
  5. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/start/SKILL.md +2 -2
  6. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/CHANGELOG.md +37 -0
  7. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/PKG-INFO +1 -1
  8. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/__init__.py +1 -1
  9. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/CLAUDE.md +0 -0
  10. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/agents/architect.md +0 -0
  11. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/agents/code-reviewer.md +0 -0
  12. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/agents/developer.md +0 -0
  13. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/agents/doc-writer.md +0 -0
  14. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/agents/interviewer.md +0 -0
  15. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/agents/planner.md +0 -0
  16. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/agents/project-setup.md +0 -0
  17. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/agents/security-reviewer.md +0 -0
  18. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/agents/systematic-debugger.md +0 -0
  19. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/agents/tester.md +0 -0
  20. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/agents/wt_developer.md +0 -0
  21. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/agents/wt_systematic-debugger.md +0 -0
  22. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/agents/wt_tester.md +0 -0
  23. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/breaking-changes.txt +0 -0
  24. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/deletions.txt +0 -0
  25. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/docs/config-policy.md +0 -0
  26. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/docs/parallel-agents-setup.md +0 -0
  27. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/docs/platform-adapters.md +0 -0
  28. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/docs/settings.json.md +0 -0
  29. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/hooks/_hook_utils.py +0 -0
  30. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/hooks/check_agent_invocation.py +0 -0
  31. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/hooks/consolidate_memory.py +0 -0
  32. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/hooks/permission_handler.py +0 -0
  33. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/hooks/permission_handler_toast.py +0 -0
  34. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/hooks/planner_check.py +0 -0
  35. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/hooks/post_tool.py +0 -0
  36. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/hooks/pre_compact.py +0 -0
  37. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/hooks/pre_tool.py +0 -0
  38. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/hooks/recall_autorebuild.py +0 -0
  39. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/hooks/recall_inject.py +0 -0
  40. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/hooks/restore_session.py +0 -0
  41. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/hooks/select_tier.py +0 -0
  42. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/hooks/session_start.py +0 -0
  43. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/hooks/session_stop.py +0 -0
  44. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/hooks/session_utils.py +0 -0
  45. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/hooks/statusline.py +0 -0
  46. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/hooks/stop.py +0 -0
  47. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/hooks/worktree_guard.py +0 -0
  48. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/memory/.gitkeep +0 -0
  49. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/permission_rules.json +0 -0
  50. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/rules/promoted/index.md +0 -0
  51. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/settings.json +0 -0
  52. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/brainstorm/SKILL.md +0 -0
  53. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/codex-review/SKILL.md +0 -0
  54. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/dev-workflow/references/code-review-checklist.md +0 -0
  55. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/dev-workflow/references/design-rubric.md +0 -0
  56. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/dev-workflow/references/interview-rubric.md +0 -0
  57. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/dev-workflow/references/plan-design-guidelines.md +0 -0
  58. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/dev-workflow/references/security-review-checklist.md +0 -0
  59. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/dev-workflow/scripts/record_review_decision.py +0 -0
  60. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/dev-workflow/scripts/record_tier_outcome.py +0 -0
  61. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/dev-workflow/scripts/review_hint_inject.py +0 -0
  62. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/develop/SKILL.md +0 -0
  63. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/doc/SKILL.md +0 -0
  64. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/extract-lib/SKILL.md +0 -0
  65. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/init-session/SKILL.md +0 -0
  66. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/mcp-config/SKILL.md +0 -0
  67. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/pattern-status/SKILL.md +0 -0
  68. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/promote-pattern/SKILL.md +0 -0
  69. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/recall/SKILL.md +0 -0
  70. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/report-timestamp/SKILL.md +0 -0
  71. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/report-timestamp/scripts/get_timestamp.py +0 -0
  72. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/review-phase/SKILL.md +0 -0
  73. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/setup/SKILL.md +0 -0
  74. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/setup/reference.md +0 -0
  75. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/setup/templates/coding-standards-template.md +0 -0
  76. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/skills/setup/templates/project-conventions-template.md +0 -0
  77. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.claude/state/.gitkeep +0 -0
  78. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/.gitignore +0 -0
  79. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/ARCHITECTURE.md +0 -0
  80. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/LICENSE +0 -0
  81. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/LICENSES/chroma-hnswlib-LICENSE +0 -0
  82. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/LICENSES/chroma-hnswlib-NOTICE +0 -0
  83. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/LICENSES/fastembed-LICENSE +0 -0
  84. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/LICENSES/fastembed-NOTICE +0 -0
  85. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/LICENSES/onnxruntime-LICENSE +0 -0
  86. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/LICENSES/paraphrase-multilingual-MiniLM-L12-v2-LICENSE +0 -0
  87. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/README.md +0 -0
  88. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/hatch_build.py +0 -0
  89. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/pyproject.toml +0 -0
  90. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/__main__.py +0 -0
  91. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/_db_params.py +0 -0
  92. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/_excludes.py +0 -0
  93. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/_terminal.py +0 -0
  94. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/adapters.py +0 -0
  95. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/cli.py +0 -0
  96. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/cli_ask.py +0 -0
  97. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/cli_doctor.py +0 -0
  98. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/cli_init.py +0 -0
  99. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/cli_list.py +0 -0
  100. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/cli_plan.py +0 -0
  101. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/cli_recall.py +0 -0
  102. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/cli_tier.py +0 -0
  103. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/cli_update.py +0 -0
  104. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/db.py +0 -0
  105. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/embedding.py +0 -0
  106. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/mcp_server.py +0 -0
  107. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/migrate.py +0 -0
  108. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/migrations/001_initial.sql +0 -0
  109. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/migrations/002_agent_cost_runs.sql +0 -0
  110. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/migrations/003_tier_cost.sql +0 -0
  111. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/migrations/README.md +0 -0
  112. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/migrations/__init__.py +0 -0
  113. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/paths.py +0 -0
  114. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/plan_validator.py +0 -0
  115. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/platforms.py +0 -0
  116. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/pricing.py +0 -0
  117. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/question.py +0 -0
  118. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/recall_chunker.py +0 -0
  119. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/recall_index.py +0 -0
  120. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/src/c3/usage_ingester.py +0 -0
  121. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/__init__.py +0 -0
  122. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/conftest.py +0 -0
  123. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/fixtures/usage/README.md +0 -0
  124. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/fixtures/usage/mainline.jsonl +0 -0
  125. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/fixtures/usage/subagents/agent-deadbeef.jsonl +0 -0
  126. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/fixtures/usage/subagents/agent-deadbeef.meta.json +0 -0
  127. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/__init__.py +0 -0
  128. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_check_agent_invocation.py +0 -0
  129. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_consolidate_memory.py +0 -0
  130. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_hook_utils.py +0 -0
  131. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_permission_handler.py +0 -0
  132. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_permission_handler_toast.py +0 -0
  133. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_pip_reinstall_reminder.py +0 -0
  134. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_planner_check.py +0 -0
  135. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_planner_check_dev.py +0 -0
  136. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_post_tool.py +0 -0
  137. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_pre_tool.py +0 -0
  138. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_recall_autorebuild.py +0 -0
  139. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_recall_inject.py +0 -0
  140. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_record_review_decision.py +0 -0
  141. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_record_tier_outcome.py +0 -0
  142. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_restore_session.py +0 -0
  143. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_review_hint_inject.py +0 -0
  144. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_select_tier.py +0 -0
  145. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_select_tier_escalation.py +0 -0
  146. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_session_start.py +0 -0
  147. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_session_stop.py +0 -0
  148. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_session_utils.py +0 -0
  149. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_settings_local_absolute_paths.py +0 -0
  150. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_similarity_boost.py +0 -0
  151. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_statusline.py +0 -0
  152. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_statusline_template_sync.py +0 -0
  153. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_sync_check.py +0 -0
  154. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/hooks/test_template_guard.py +0 -0
  155. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/skills/__init__.py +0 -0
  156. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/skills/_skill_helpers.py +0 -0
  157. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/skills/test_dev_workflow_no_task_type.py +0 -0
  158. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/skills/test_init_session_no_task_type.py +0 -0
  159. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/skills/test_planner_lightweight.py +0 -0
  160. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/skills/test_recall_skill.py +0 -0
  161. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/skills/test_session_backlog_reconciliation.py +0 -0
  162. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/skills/test_setup_templates.py +0 -0
  163. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/skills/test_start_skill_bugfix_flow.py +0 -0
  164. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/skills/test_start_skill_new_flow.py +0 -0
  165. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/skills/test_start_skill_security_audit_phase.py +0 -0
  166. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_adapters.py +0 -0
  167. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_check_deletions.py +0 -0
  168. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_cli_ask.py +0 -0
  169. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_cli_doctor.py +0 -0
  170. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_cli_entry.py +0 -0
  171. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_cli_init.py +0 -0
  172. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_cli_list.py +0 -0
  173. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_cli_plan.py +0 -0
  174. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_cli_recall.py +0 -0
  175. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_cli_tier.py +0 -0
  176. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_cli_update_breaking_changes.py +0 -0
  177. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_cli_update_deletions.py +0 -0
  178. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_db.py +0 -0
  179. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_docstring_consistency.py +0 -0
  180. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_embedding.py +0 -0
  181. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_excludes.py +0 -0
  182. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_extract_breaking_changes.py +0 -0
  183. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_mcp_server_elicit.py +0 -0
  184. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_migrate.py +0 -0
  185. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_paths.py +0 -0
  186. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_plan_validator.py +0 -0
  187. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_pre_compact.py +0 -0
  188. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_pre_tool_hook.py +0 -0
  189. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_precompact_additional.py +0 -0
  190. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_precompact_toctou_fixes.py +0 -0
  191. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_pricing.py +0 -0
  192. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_recall_chunker.py +0 -0
  193. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_recall_index.py +0 -0
  194. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_references_migration.py +0 -0
  195. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_session_utils_additional.py +0 -0
  196. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_skill_no_builtin_conflict.py +0 -0
  197. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_statusline.py +0 -0
  198. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_stop_additional.py +0 -0
  199. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_stop_hook.py +0 -0
  200. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_stop_precompact_fixes.py +0 -0
  201. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_sync_template_stop.py +0 -0
  202. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_template_pre_tool_hook.py +0 -0
  203. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_usage_ingester.py +0 -0
  204. {claude_code_conductor-2.33.0 → claude_code_conductor-2.35.0}/tests/test_worktree_guard.py +0 -0
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: design-critic
3
+ model: opus
4
+ memory: project
5
+ permissionMode: bypassPermissions
6
+ description: 設計・計画監査担当。requirements/architecture/plan を敵対的に監査し design-review-report を出力する。ソース編集不可。
7
+ tools:
8
+ - Read
9
+ - Write
10
+ - Glob
11
+ - Grep
12
+ - Skill
13
+ ---
14
+
15
+ # Design Critic
16
+
17
+ ## Core Mandate
18
+ 要件・設計・計画レポートを第三者として敵対的に監査し、実装前に手戻りを引き起こす前提崩れ・曖昧さ・抜け漏れを検出して design-review-report として出力する。
19
+
20
+ ## Key Scope
21
+
22
+ ✅ 担当すること:
23
+ - requirements-report / architecture-report / plan-report の監査
24
+ - 3 レンズ(前提発掘 / 曖昧さ / 抜け漏れ)による finding 抽出
25
+ - 各 finding への重要度・起因層・該当箇所の付与
26
+ - design-review-report の出力
27
+
28
+ ❌ 担当しないこと:
29
+ - ソースコードの編集・修正(read-only 第三者監査)
30
+ - コード品質レビュー(code-reviewer の担当)
31
+ - セキュリティ脆弱性診断(security-reviewer の担当)
32
+ - 実装方針の決定・設計変更の代行
33
+
34
+ ## Workflow
35
+
36
+ **Before:**
37
+ - `.claude/skills/dev-workflow/references/design-critic-rubric.md` を Read して 3 レンズと finding 形式を確認する
38
+ - Glob で以下の各最新ファイルを取得し Read する:
39
+ - `.claude/reports/requirements-report-*.md`(最新 1 件)
40
+ - `.claude/reports/architecture-report-*.md`(最新 1 件)
41
+ - `.claude/reports/plan-report-*.md`(最新 1 件)
42
+
43
+ **During:**
44
+ - ルーブリックの 3 レンズ(前提発掘 `[DC-AS-NNN]` / 曖昧さ `[DC-AM-NNN]` / 抜け漏れ `[DC-GP-NNN]`)を順に適用する
45
+ - この段階の役割は**網羅(coverage)であり取捨選択ではない**。確信度が低い finding・Low 重要度の finding も握り潰さず report する。重要度による最終的な絞り込みは下流(ユーザー承認・層別ルーティング)に委ねる
46
+ - 各 finding に必須付与する項目(詳細は `design-critic-rubric.md` の「Finding 必須項目」セクションを参照):
47
+ - **重要度**: High(このまま実装すれば確実に手戻り)/ Medium(解釈次第で手戻り)/ Low(改善余地)
48
+ - **起因層**: `A要件` / `B設計` / `C計画`(層別ルーティングの判定キー)
49
+ - **該当箇所**: どのレポートのどのセクションか
50
+ - **問題点**: 何が問題か・なぜリスクか
51
+ - **実装前に確認・修正すべきこと**: 解消するために必要なアクション
52
+ - findings が出なかった場合は「findings なし」として明記し、その旨 report に記載する
53
+
54
+ **After:**
55
+ - Skill ツールで `report-timestamp` を呼び出してタイムスタンプを取得し、Write ツールで `.claude/reports/design-review-report-{timestamp}.md` に出力する
56
+
57
+ ## Tools & Constraints
58
+ 制限: design-review-report の新規 Write 以外のファイル編集・書き込みは行わない(ソースファイル・既存レポート・その他ファイルへの Edit / Write は禁止)
59
+
60
+ ## Related Agents
61
+ - 上流: planner(plan-report を受け取る)
62
+ - ピア: code-reviewer / security-reviewer(同じ監査型エージェント。design-critic はフェーズ C-3 で設計監査、code-reviewer / security-reviewer はフェーズ E でコード・セキュリティ監査を独立稼働)
63
+ - 下流: 親 Claude(C-3 ゲート: findings の承認フロー・層別ルーティングを担う)→ 起因層に応じて interviewer / architect / planner へルーティング
@@ -167,7 +167,7 @@ plan-report の全タスクを走査し、以下の形式でテキスト出力
167
167
  }
168
168
  ```
169
169
 
170
- 承認後 → セッションファイルの `- [ ] 計画` を `- [x] 計画` に Edit して**フェーズ D** へ。
170
+ 承認後 → セッションファイルの `- [ ] 計画` を `- [x] 計画` に Edit して**C-3(計画監査ゲート)** へ。
171
171
 
172
172
  **知識蓄積:**
173
173
  - 「否認・修正を依頼する」: `## 試みたが失敗したアプローチ` に教訓をルール形式で追記し `patterns` に追加する
@@ -175,6 +175,133 @@ plan-report の全タスクを走査し、以下の形式でテキスト出力
175
175
 
176
176
  ---
177
177
 
178
+ ### C-3: 計画監査ゲート(opt-in)
179
+
180
+ **セッションファイル運用:** C-3 は C-2 で `計画 [x]` 化が完了した後の独立ゲートである。セッションファイルへの新規 `- [ ]` フェーズ行の追加は不要。
181
+
182
+ **ステップ 1: opt-in の確認(AskUserQuestion 単独ターン)**
183
+
184
+ AskUserQuestion で確認する(このブロックに Agent 起動などの副作用ツールを混在させない):
185
+
186
+ ```json
187
+ {
188
+ "questions": [{
189
+ "question": "実装前に設計・計画を design-critic で監査しますか?",
190
+ "options": [
191
+ { "label": "監査する", "description": "前提・曖昧さ・抜け漏れを敵対的にチェック(手戻りが多そう/重要な変更で推奨)" },
192
+ { "label": "スキップ", "description": "小さい・自明な変更。そのまま実装へ" }
193
+ ]
194
+ }]
195
+ }
196
+ ```
197
+
198
+ 「スキップ」→ そのまま**フェーズ D** へ(ノーオペ)。
199
+ 「監査する」→ ステップ 2 へ(別ターンで実行)。
200
+
201
+ **ステップ 2: design-critic の起動(AskUserQuestion と別ターン)**
202
+
203
+ Agent ツールで `design-critic` を起動する。
204
+
205
+ - `subagent_type: "design-critic"`(固有名を明示。`'claude'` や省略は禁止)
206
+ - `isolation: worktree` は使わない(read-only・並列なし)
207
+ - プロンプトには以下の起動指示のみを含める(レポートの内容は agent 側で Glob・Read させる [SR-AI-001]):
208
+ - 「`design-critic-rubric.md` を Read し、requirements / architecture / plan の各最新レポートを Glob で取得して 3 レンズで監査せよ」
209
+
210
+ design-critic は `.claude/reports/design-review-report-YYYYMMDD-HHMMSS.md` を Write して終了する。
211
+
212
+ 完了後 → ステップ 3 へ。
213
+
214
+ **ステップ 3: findings の分岐**
215
+
216
+ design-review-report を Read して findings の有無を確認する。design-critic の起動失敗・中断によりレポートが存在しない場合は、AskUserQuestion でユーザーに「再実行する」か「スキップしてフェーズ D へ進む」かを確認する。
217
+
218
+ **findings なし(report に「findings なし」と記載されている場合):**
219
+ そのまま**フェーズ D** へ。
220
+
221
+ **findings あり:**
222
+ 指摘一覧をテキストで提示してから AskUserQuestion で方針を確認する(このブロックに副作用ツールを混在させない):
223
+
224
+ ```json
225
+ {
226
+ "questions": [{
227
+ "question": "design-review-report に指摘があります。対応方針を選択してください。",
228
+ "options": [
229
+ { "label": "全て対応する", "description": "全指摘に [対応予定] を付けて起因層へ戻す" },
230
+ { "label": "対応する指摘を選ぶ", "description": "指摘ごとに対応/許容を決める" },
231
+ { "label": "全て許容して進む", "description": "全指摘を許容してフェーズ D へ" },
232
+ { "label": "否認・再監査を依頼する", "description": "フィードバックして design-critic を再実行" }
233
+ ]
234
+ }]
235
+ }
236
+ ```
237
+
238
+ **「全て対応する」の場合:**
239
+ 全指摘に `> **[対応予定]**` をマークしてから層別ルーティング(ステップ 4)へ。
240
+
241
+ **「対応する指摘を選ぶ」の場合:**
242
+ 続けて AskUserQuestion で確認する(別ターン):
243
+ ```json
244
+ {
245
+ "questions": [{
246
+ "question": "どの指摘を対応しますか?対応する指摘 ID(例: DC-AS-001)と、許容する指摘の理由を教えてください。"
247
+ }]
248
+ }
249
+ ```
250
+ 1. 対応する指摘に `> **[対応予定]**` を Edit で追記する
251
+ 2. 許容する指摘の直下に `> **[許容]** {理由}` を Edit で追記する(検出記録は削除しない)
252
+ 3. `[対応予定]` を付けた finding が 1 件以上あれば層別ルーティング(ステップ 4)へ。全て許容した場合はフェーズ D へ。
253
+
254
+ **「全て許容して進む」の場合:**
255
+ 続けて AskUserQuestion で許容理由を確認する(別ターン):
256
+ ```json
257
+ {
258
+ "questions": [{
259
+ "question": "全指摘を許容する理由を教えてください。"
260
+ }]
261
+ }
262
+ ```
263
+ 全指摘の直下に `> **[許容]** {理由}` を Edit で追記してから**フェーズ D** へ。
264
+
265
+ **「否認・再監査を依頼する」の場合:**
266
+ 続けて AskUserQuestion でフィードバックを確認してからステップ 2(design-critic 再起動)へ。
267
+
268
+ **ステップ 4: 層別ルーティング**
269
+
270
+ (ステップ 3 で「全て対応する」または「対応する指摘を選ぶ」を選び、`[対応予定]` が 1 件以上ある場合のみこのステップへ到達する)
271
+
272
+ `[対応予定]` を付けた finding の起因層(`A要件` / `B設計` / `C計画`)を集計し、最も上流の層へ戻る(上流順: **A要件 < B設計 < C計画**)。戻り先はピンポイント修正(`[対応予定]` の finding のみ対象。フルやり直しはしない)。**最上流の判定は `[対応予定]` を付けた finding だけで行う(`[許容]` にした finding の起因層は戻り先に影響しない)。**
273
+
274
+ | `[対応予定]` finding の最上流起因 | 戻り先 | 修正する担当 | その後の連鎖 |
275
+ |---|---|---|---|
276
+ | A要件 を含む | フェーズ A | interviewer(該当点のみ追加確認) | A → B → C → C-3 |
277
+ | B設計 が最上流 | フェーズ B | architect(該当設計のみ修正) | B → C → C-3 |
278
+ | C計画 のみ | フェーズ C | planner(該当タスクのみ修正) | C → C-3 |
279
+
280
+ 上流フェーズ修正後は下流へ自然に連鎖する(例: B 修正 → C 再計画 → C-2 再承認 → C-3)。各フェーズでも該当 `[対応予定]` の finding のみを反映する。
281
+
282
+ 連鎖が C-2 を経て C-3 に戻ったら → ステップ 5(再監査の選択)へ。
283
+
284
+ **ステップ 5: 修正後の再監査(選択式・無限ループ防止)**
285
+
286
+ 上流修正の連鎖を経て C-3 に戻ってきた場合、毎回自動再走はしない。AskUserQuestion で再監査の要否を確認する(このブロックに副作用ツールを混在させない):
287
+
288
+ ```json
289
+ {
290
+ "questions": [{
291
+ "question": "修正が入りました。design-critic で再監査しますか?",
292
+ "options": [
293
+ { "label": "再監査する", "description": "更新後のレポート群を再度チェック(重要案件)" },
294
+ { "label": "再監査せず実装へ", "description": "フェーズ D へ進む" }
295
+ ]
296
+ }]
297
+ }
298
+ ```
299
+
300
+ 「再監査する」→ ステップ 2(design-critic 起動)へ(別ターンで実行)。
301
+ 「再監査せず実装へ」→ **フェーズ D** へ。
302
+
303
+ ---
304
+
178
305
  ## フェーズ D: 実装
179
306
 
180
307
  **フェーズ C から続いている場合:** plan-report はコンテキスト内にあるため読み直し不要。
@@ -0,0 +1,160 @@
1
+ # Design Critic Rubric(設計監査・ルーブリック)
2
+
3
+ `dev-workflow` フェーズ C-3(計画監査ゲート)で design-critic が参照する**3 レンズ監査指針**。
4
+ design-critic サブエージェントが requirements-report / architecture-report / plan-report を読み込んだ後、
5
+ 本ファイルを Read して**3 レンズを順に適用し、finding を抽出する**。フェーズ C-3 専用。
6
+
7
+ 設計思想: **レンズカテゴリ=固定**(何を探すか予測可能)/
8
+ **finding 文面=動的**(レポート内容からその場で生成する)。
9
+
10
+ ---
11
+
12
+ ## Finding ID 体系
13
+
14
+ | レンズ | finding ID プレフィックス | 探索内容 |
15
+ |---|---|---|
16
+ | 前提発掘 | `[DC-AS-NNN]` | 暗黙の前提を列挙し、裏付け検証を行う |
17
+ | 曖昧さ | `[DC-AM-NNN]` | 複数の解釈が成り立つ記述を特定する |
18
+ | 抜け漏れ | `[DC-GP-NNN]` | 要件↔設計↔計画のトレーサビリティ欠落を検出する |
19
+
20
+ NNN は 3 桁の連番(001 から始める)。レンズ内で独立してカウントする(DC-AS-001, DC-AM-001 は別物)。
21
+
22
+ ---
23
+
24
+ ## Finding 必須項目
25
+
26
+ 各 finding に以下の 5 項目を必ず付与する:
27
+
28
+ | 項目 | 値の例 | 説明 |
29
+ |---|---|---|
30
+ | **重要度** | High / Medium / Low | High = このまま実装すれば確実に手戻り(前提崩れ・タスク欠落)。Medium = 解釈次第で手戻り。Low = 改善余地 |
31
+ | **起因層** | A要件 / B設計 / C計画 | 問題の根本が発生している層。層別ルーティングの判定キー(上流順: A < B < C) |
32
+ | **該当箇所** | 例: `architecture-report §2.3` | どのレポートのどのセクションか |
33
+ | **問題点** | 自然文で記述 | 何が問題か・なぜリスクか |
34
+ | **実装前に確認・修正すべきこと** | 自然文で記述 | 解消するために必要なアクション |
35
+
36
+ ---
37
+
38
+ ## レンズ 1: 前提発掘 `[DC-AS-NNN]`
39
+
40
+ **目的**: 設計・計画に暗黙で埋め込まれている前提を列挙し、各前提が要件/設計/既存コードで裏付けられているかを検証する。裏付けのない前提は実装フェーズで崩れる潜在リスク。
41
+
42
+ ### 着眼点
43
+
44
+ - **インフラ・環境前提**: 特定の OS / Python バージョン / ライブラリバージョン / 外部サービスの可用性を「当然ある」として扱っていないか。requirements-report / architecture-report に記載があるか確認する
45
+ - **データ前提**: スキーマ形式・入力値の範囲・null 可否・文字コード・言語など、暗黙に制限されている前提が requirements で確定しているか
46
+ - **利用者行動前提**: ユーザーが特定の順序で操作する・特定の権限を持つ・特定の知識を持つ、などの前提が要件に根拠を持つか
47
+ - **外部連携前提**: 外部 API / サービスのインターフェース・レスポンス形式・可用性 SLA が設計に明記されているか
48
+ - **後方互換前提**: 既存機能・データ・設定が「壊れない」前提で計画が組まれている場合、その保証が設計に盛り込まれているか
49
+
50
+ ### 判定基準
51
+
52
+ - 前提が requirements-report または architecture-report に明記されている → 裏付けあり(finding 不要)
53
+ - 前提が既存コードの実装から確認できる → 裏付けあり(finding 不要)
54
+ - 前提が上記いずれにも根拠なく置かれている → finding として記録(重要度は影響範囲で判定)
55
+
56
+ ---
57
+
58
+ ## レンズ 2: 曖昧さ `[DC-AM-NNN]`
59
+
60
+ **目的**: 実装者が解釈で割れる記述を特定する。複数の妥当な解釈が成り立つ要件・設計は、実装者ごとに異なる実装を生み出し、レビュー時・統合時に手戻りを引き起こす。
61
+
62
+ ### 着眼点
63
+
64
+ - **主語の曖昧さ**: 「ユーザーは〜できる」の「ユーザー」が誰か(役割・権限レベル)が特定できるか
65
+ - **「最新」「直近」の曖昧さ**: 「最新の〇〇」「直近 N 件」の定義が未確定で実装者が独自に定めるしかない状態
66
+ - **「適切に」「必要に応じて」「柔軟に」**: 動作の条件や基準が自然言語で曖昧に記述され、具体的な判定ロジックが読み取れない
67
+ - **OR / AND の曖昧さ**: 条件列挙が「AまたはB」「AかつB」か判別できない記述
68
+ - **エラー処理の曖昧さ**: 「失敗時はエラーを返す」だけでどのエラー型か・ロールバック範囲か・リトライ要否かが不明
69
+ - **単数 / 複数の曖昧さ**: 「1 件」「複数件」の制約が明示されていないため、実装者が任意に決める状態
70
+
71
+ ### 判定基準
72
+
73
+ - 1 つの記述に対して「A のようにも読める・B のようにも読める」が複数成立する → finding として記録
74
+ - 文脈全体で意味が一意に定まる場合は finding 不要
75
+
76
+ ---
77
+
78
+ ## レンズ 3: 抜け漏れ `[DC-GP-NNN]`
79
+
80
+ **目的**: 要件↔設計↔計画のトレーサビリティ欠落を検出する。要件に記載があるが設計に落ちていない・設計に落ちているが計画タスクに無い、というギャップが実装漏れの直接原因になる。
81
+
82
+ ### 着眼点
83
+
84
+ - **要件 → 設計の欠落**: requirements-report に記載された機能・非機能要件が architecture-report で設計されていない
85
+ - **設計 → 計画の欠落**: architecture-report の設計判断・コンポーネントが plan-report のタスクに反映されていない
86
+ - **エラーパスの欠落**: 正常系は設計・計画されているが、異常系(バリデーション失敗・タイムアウト・権限不足等)がどちらかに存在しない
87
+ - **境界値・エッジケースの欠落**: 入力の空/null/最大値/最小値・ゼロ件ケースが要件・設計に明示されているか
88
+ - **非機能要件の欠落**: パフォーマンス・可用性・セキュリティ・ログ・監査証跡などが要件に上がっているが設計/計画に反映されていない
89
+ - **削除・クリーンアップの欠落**: 作成タスクはあるが削除・クリーンアップ・後始末タスクが計画にない
90
+ - **テスト・検証の欠落**: 計画タスクに実装タスクはあるが、対応するテスト・検証タスクが存在しない
91
+
92
+ ### 判定基準
93
+
94
+ - 要件・設計・計画を突き合わせ、上位層に記載があり下位層に対応物がない → finding として記録
95
+ - 対応物が別の記述・タスク名で含意されている場合は finding 不要
96
+
97
+ ---
98
+
99
+ ## design-review-report 出力形式
100
+
101
+ `code-review-report` と同型。ファイル名: `.claude/reports/design-review-report-YYYYMMDD-HHMMSS.md`
102
+
103
+ **Findings の並び順**: レンズ単位(DC-AS → DC-AM → DC-GP の順)で列挙する。同一レンズ内では重要度降順(High → Medium → Low)で並べる。
104
+
105
+ ```
106
+ ---
107
+ generated: YYYY-MM-DD HH:MM:SS
108
+ agent: design-critic
109
+ inputs:
110
+ - requirements-report-YYYYMMDD-HHMMSS.md
111
+ - architecture-report-YYYYMMDD-HHMMSS.md
112
+ - plan-report-YYYYMMDD-HHMMSS.md
113
+ ---
114
+
115
+ # Design Review Report
116
+
117
+ **生成日時:** YYYY-MM-DD HH:MM:SS
118
+ **担当:** design-critic
119
+ **入力:** requirements-report-〇〇 / architecture-report-〇〇 / plan-report-〇〇
120
+
121
+ ---
122
+
123
+ ## サマリ
124
+
125
+ | 重要度 | 件数 |
126
+ |---|---|
127
+ | High | N |
128
+ | Medium | N |
129
+ | Low | N |
130
+ | 合計 | N |
131
+
132
+ findings なしの場合は「findings なし — 実装フェーズへ進めます」とのみ記載する。
133
+
134
+ ---
135
+
136
+ ## Findings
137
+
138
+ ### [DC-AS-001](High・起因: B設計)
139
+ - 該当: architecture-report §2.3
140
+ - 問題: 〜という前提が置かれているが、requirements-report に裏付けがない
141
+ - 実装前に確認すべきこと: 〜
142
+
143
+ ### [DC-AM-001](Medium・起因: A要件)
144
+ - 該当: requirements-report §1.2
145
+ - 問題: 〜の記述は「〜とも読める / 〜とも読める」で解釈が割れる
146
+ - 実装前に確認すべきこと: 〜
147
+
148
+ ### [DC-GP-001](High・起因: C計画)
149
+ - 該当: plan-report タスク一覧
150
+ - 問題: architecture-report §2.1 で設計された〜コンポーネントに対応するタスクが plan-report にない
151
+ - 実装前に確認すべきこと: 〜
152
+ ```
153
+
154
+ ---
155
+
156
+ ## 予測可能性の担保
157
+
158
+ **探索するレンズカテゴリは固定**(前提発掘 / 曖昧さ / 抜け漏れ)・**finding 文面だけ動的**。
159
+ 監査のたびに同じ 3 レンズで探索するため、「何がチェックされるか」が予測可能であり、
160
+ 設計者・計画者が事前に潰しやすい。
@@ -216,6 +216,19 @@ worktree path は Agent ツール返り値の `<worktree><worktreePath>...</work
216
216
 
217
217
  全タスク成功した wave に対して以下を順に実行する。
218
218
 
219
+ #### 2-F-0: 親 cwd をプロジェクトルートへ復帰(無条件・必須)
220
+
221
+ worktree Agent 完了後、Claude Code の既知バグ([Issue #28017](https://github.com/anthropics/claude-code/issues/28017) "Task tool with isolation=worktree leaks CWD to parent session"・closed as duplicate)により、**親 Claude の Bash cwd が `.claude/worktrees/agent-*` 内へ移動したまま戻らない**ことがある(発生はバージョン・環境・タイミング依存)。この状態だと 2-F-1〜2-F-3 の取り込み・コミット・削除が worktree 内で走って正しく行われない(Issue でも "Subsequent Bash commands run in the wrong directory" と報告)。とくに cwd が worktree 内のままだと worktree ディレクトリの削除に失敗しやすい(OS によっては cwd 配下を削除できない)。
222
+
223
+ これを防ぐため、**2-F の最初に無条件でプロジェクトルートへ戻す**:
224
+
225
+ ```bash
226
+ cd <ROOT>
227
+ ```
228
+
229
+ - `<ROOT>` = プロジェクトルートの絶対パス。最初の worktree Agent を起動する前(cwd がまだルート)の `pwd` の値で、セッション開始時の作業ディレクトリと同じ。worktree 内から `git rev-parse --show-toplevel` を打つと worktree のルートが返るため、ルート判定には使わず **事前に控えた絶対パス** を使う。
230
+ - cwd が漏れていなくても `cd <ROOT>` は無害。判定せず毎 wave 無条件で実行する(Issue が挙げる公式ワークアラウンド "manually cd back" に準拠)。`cd` は C3 の pre_tool hook の検査対象外のためブロックされない。
231
+
219
232
  #### 2-F-1: 成果物の取り込み
220
233
 
221
234
  各 worktree の `writes` ファイルを main に取り込む。**親 Claude が一括で行う**:
@@ -52,7 +52,7 @@ AskUserQuestion で対象フェーズを確認する:
52
52
  { "label": "要件定義", "description": "requirements-report-*.md" },
53
53
  { "label": "設計", "description": "architecture-report-*.md" },
54
54
  { "label": "計画", "description": "plan-report-*.md" },
55
- { "label": "レビュー", "description": "code-review-report-*.md / security-review-report-*.md" }
55
+ { "label": "レビュー", "description": "code-review-report-*.md / security-review-report-*.md / design-review-report-*.md" }
56
56
  ],
57
57
  "multiSelect": true
58
58
  }]
@@ -63,7 +63,7 @@ AskUserQuestion で対象フェーズを確認する:
63
63
  - 要件定義: `mkdir -p .claude/reports/archive && mv .claude/reports/requirements-report-*.md .claude/reports/archive/ 2>/dev/null || true`
64
64
  - 設計: `mkdir -p .claude/reports/archive && mv .claude/reports/architecture-report-*.md .claude/reports/archive/ 2>/dev/null || true`
65
65
  - 計画: `mkdir -p .claude/reports/archive && mv .claude/reports/plan-report-*.md .claude/reports/archive/ 2>/dev/null || true`
66
- - レビュー: `mkdir -p .claude/reports/archive && mv .claude/reports/code-review-report-*.md .claude/reports/archive/ 2>/dev/null || true && mv .claude/reports/security-review-report-*.md .claude/reports/archive/ 2>/dev/null || true`
66
+ - レビュー: `mkdir -p .claude/reports/archive && mv .claude/reports/code-review-report-*.md .claude/reports/archive/ 2>/dev/null || true && mv .claude/reports/security-review-report-*.md .claude/reports/archive/ 2>/dev/null || true && mv .claude/reports/design-review-report-*.md .claude/reports/archive/ 2>/dev/null || true`
67
67
 
68
68
  ---
69
69
 
@@ -1,5 +1,42 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.35.0] - 2026-06-10
4
+
5
+ **並列実行 worktree の cwd リーク(Claude Code [Issue #28017](https://github.com/anthropics/claude-code/issues/28017))への暫定ワークアラウンドを追加(手順追加・破壊的変更なし)**: `isolation: "worktree"` の Agent 完了後に親セッションの作業ディレクトリ(cwd)が worktree(`.claude/worktrees/agent-*`)内へ移動したまま戻らない Claude Code の既知バグ(「Task tool with isolation=worktree leaks CWD to parent session」・closed as duplicate・複数 OS で報告)により、wave 完了処理(成果物の取り込み・コミット・worktree 削除)が誤ったディレクトリで走り、特に worktree ディレクトリの削除に失敗する事象がある。公式修正までの暫定対応として、`parallel-agents` skill の wave 完了処理の先頭で **無条件に cwd をプロジェクトルートへ戻す手順 `2-F-0`** を追加した。
6
+
7
+ ### 追加
8
+
9
+ - **`.claude/skills/parallel-agents/SKILL.md` 2-F-0(親 cwd をプロジェクトルートへ復帰・無条件・必須)**: 各 wave の完了処理(2-F)の最初で `cd <ROOT>`(`<ROOT>` = 最初の worktree Agent 起動前の cwd の絶対パス)を無条件で実行する。cwd が漏れていなくても無害。Issue が挙げる公式ワークアラウンド "manually cd back" に準拠。これにより後続の 2-F-1(取り込み)・2-F-2(コミット)・2-F-3(削除)が常にプロジェクトルートで実行され、worktree 削除失敗を回避する。
10
+
11
+ ### 後方互換
12
+
13
+ - 手順を 1 ステップ追加しただけで、wave の成果物・コミット内容・削除結果は変わらない。公開 API・CLI・DB スキーマ・hook・コード挙動に変更なし。**破壊的変更なし**・migration 不要。
14
+ - 既存の 2-F-3(worktree クリーンアップ)はフォールバック型の手順を温存。本対応は公式修正までの暫定ワークアラウンドであり、ワークアラウンドが効かない場合も従来どおり残留チェック+手動削除で吸収できる。
15
+
16
+ ### 注意
17
+
18
+ - 本変更は `parallel-agents` skill(`/develop` のフェーズ D で間接起動)の手順追記。`c3 update` 適用後、次回の並列実装 wave から新手順が読まれる(新規 agent 定義の追加ではないためセッション再起動は不要)。
19
+
20
+ ## [2.34.0] - 2026-06-09
21
+
22
+ **設計・計画監査ゲート `design-critic` を追加(機能追加・opt-in・破壊的変更なし)**: 標準ワークフローのフェーズ C(計画)とフェーズ D(実装)の間に、実装前の設計・計画を第三者として敵対的に監査する opt-in ゲート **C-3** を新設した。ブログ記事「Automated Doubt Development Process」に着想を得た「自動化された疑念」を C3 に取り込み、**実装中に発覚していた手戻り(前提崩れ・曖昧さ・抜け漏れ)を実装前に検出**することを狙う。新規 read-only サブエージェント `design-critic` が requirements/architecture/plan を 3 レンズ(前提発掘 `[DC-AS]` / 曖昧さ `[DC-AM]` / 抜け漏れ `[DC-GP]`)で監査し、各 finding に**起因層(A要件 < B設計 < C計画)**を付与する。findings は起因層に応じて正しい上流フェーズへ戻す**層別ルーティング**で対応する(設計起因を計画フェーズに戻しても直らない問題を回避)。
23
+
24
+ ### 追加
25
+
26
+ - **`.claude/agents/design-critic.md`(新規・配布 agent)**: 設計・計画監査担当の read-only 第三者サブエージェント(code-reviewer と同型・ソース編集不可・`design-review-report` のみ Write)。`memory: project` / `permissionMode: bypassPermissions` 付き。
27
+ - **`.claude/skills/dev-workflow/references/design-critic-rubric.md`(新規・配布 rubric)**: 3 レンズの着眼点・finding 必須項目(重要度/起因層/該当箇所/問題点/実装前に確認すべきこと)・`design-review-report` 出力形式を定義。
28
+ - **`.claude/skills/dev-workflow/SKILL.md` フェーズ C-3(計画監査ゲート)**: opt-in(監査する/スキップ)→ design-critic 起動 → findings 承認フロー(フェーズ E と同型)→ 層別ルーティング(`[対応予定]` finding の最上流起因へピンポイント戻し)→ 修正後の再監査(選択式・無限ループ防止)。スキップ時はノーオペでフェーズ D へ。
29
+ - **`.claude/skills/start/SKILL.md` Step 0**: アーカイブ対象(レビュー分類)に `design-review-report-*.md` を追加。
30
+
31
+ ### 後方互換
32
+
33
+ - フェーズ C-3 は独立 opt-in ゲートとして追記。スキップ時は従来の C→D 遷移と同一でノーオペのため、**既存ワークフローに影響なし**。公開 API・CLI・DB スキーマ・hook・コード挙動に変更なし。**破壊的変更なし**・migration 不要。
34
+
35
+ ### 注意(有効化にセッション再起動が必要)
36
+
37
+ - `design-critic` は新規サブエージェント定義のため、`c3 update` でファイルが追加された**直後のセッションでは agent レジストリに登録されず起動できない**(Claude Code はセッション開始時に agent 定義をロードする)。**次回セッションから利用可能**になる。フェーズ C-3 を通る際、当該セッションで agent が見つからない場合はセッションを再起動すること。
38
+ - プラットフォームアダプター(Codex/Cursor/OpenCode)への design-critic 反映は本リリースのスコープ外(Claude Code のみ)。`c3 init --platform opencode` 等では `.claude/agents/design-critic.md` が自動で subagent として生成されるが、ワークフロー組み込み(C-3)は Claude Code 専用。
39
+
3
40
  ## [2.33.0] - 2026-06-08
4
41
 
5
42
  **配布 `CLAUDE.md` の「C3 Managed」セクション撤去とドキュメント同期(挙動不変・破壊的変更・migration なし)**: `.claude/CLAUDE.md` 末尾の `## C3 Managed` セクション(`@rules/promoted/index.md` の `@import` +「手動編集しないこと」コメント)を撤去した。Claude Code 公式仕様で `.claude/rules/` はサブディレクトリ含め**再帰的に自動ロード**される(`paths:` 無しは `CLAUDE.md` と同等優先度で全文ロード)ため、`rules/promoted/` は `@import` が無くても context に載る。include は冗長で、かつ「ファイル全体が `c3 update` で上書きされる配布物」なのに 1 セクションだけ「手動編集禁止」と書くのは誤解を招くため撤去した。v2.1.168 実機 `/context` で「`@import` 無しでも昇格ルール(個別ファイル+`index.md`)が自動ロードされる」ことを検証済み。
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: claude-code-conductor
3
- Version: 2.33.0
3
+ Version: 2.35.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.33.0"
3
+ __version__ = "2.35.0"