claude-code-conductor 2.62.0__tar.gz → 2.64.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 (262) hide show
  1. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/agents/architect.md +3 -1
  2. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/agents/developer.md +0 -1
  3. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/agents/doc-writer.md +0 -1
  4. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/agents/planner.md +2 -2
  5. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/agents/security-reviewer.md +0 -1
  6. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/agents/systematic-debugger.md +1 -3
  7. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/agents/wt_developer.md +1 -2
  8. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/agents/wt_systematic-debugger.md +2 -4
  9. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/agents/wt_tester.md +1 -1
  10. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/docs/config-policy.md +28 -0
  11. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/settings.json +2 -0
  12. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/dev-workflow/SKILL.md +7 -3
  13. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/dev-workflow/references/plan-design-guidelines.md +28 -1
  14. claude_code_conductor-2.64.0/.claude/skills/dev-workflow/references/reachability-map.md +38 -0
  15. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/parallel-agents/SKILL.md +2 -0
  16. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/start/SKILL.md +18 -6
  17. claude_code_conductor-2.64.0/.claude/skills/start/scripts/archive_reports.py +513 -0
  18. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/CHANGELOG.md +96 -0
  19. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/PKG-INFO +1 -1
  20. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/__init__.py +1 -1
  21. claude_code_conductor-2.64.0/tests/skills/test_reachability_map.py +157 -0
  22. claude_code_conductor-2.64.0/tests/test_archive_reports.py +1524 -0
  23. claude_code_conductor-2.64.0/tests/test_ci_workflows.py +205 -0
  24. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_refgraph.py +4 -4
  25. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_refgraph_structural.py +3 -3
  26. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_scripts_src_bootstrap.py +262 -12
  27. claude_code_conductor-2.64.0/tests/test_start_skill_archive_contract.py +304 -0
  28. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/.gitignore +0 -0
  29. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/CLAUDE.md +0 -0
  30. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/agents/code-reviewer.md +0 -0
  31. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/agents/design-critic.md +0 -0
  32. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/agents/interviewer.md +0 -0
  33. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/agents/project-setup.md +0 -0
  34. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/agents/tester.md +0 -0
  35. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/breaking-changes.txt +0 -0
  36. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/deletions.txt +0 -0
  37. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/docs/autonomous-mode-onboarding.md +0 -0
  38. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/docs/nul-boundary.md +0 -0
  39. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/docs/parallel-agents-setup.md +0 -0
  40. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/docs/platform-adapters.md +0 -0
  41. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/docs/settings.json.md +0 -0
  42. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/hooks/_hook_utils.py +0 -0
  43. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/hooks/check_agent_invocation.py +0 -0
  44. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/hooks/consolidate_memory.py +0 -0
  45. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/hooks/patterns_guard.py +0 -0
  46. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/hooks/permission_handler.py +0 -0
  47. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/hooks/permission_handler_toast.py +0 -0
  48. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/hooks/planner_check.py +0 -0
  49. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/hooks/post_tool.py +0 -0
  50. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/hooks/pre_compact.py +0 -0
  51. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/hooks/pre_tool.py +0 -0
  52. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/hooks/recall_autorebuild.py +0 -0
  53. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/hooks/recall_inject.py +0 -0
  54. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/hooks/report_contract_check.py +0 -0
  55. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/hooks/restore_session.py +0 -0
  56. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/hooks/select_tier.py +0 -0
  57. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/hooks/session_mode_watch.py +0 -0
  58. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/hooks/session_start.py +0 -0
  59. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/hooks/session_stop.py +0 -0
  60. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/hooks/session_utils.py +0 -0
  61. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/hooks/statusline.py +0 -0
  62. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/hooks/stop.py +0 -0
  63. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/hooks/tier_autoapply.py +0 -0
  64. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/hooks/tier_gap_check.py +0 -0
  65. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/hooks/worktree_guard.py +0 -0
  66. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/memory/.gitkeep +0 -0
  67. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/permission_rules.json +0 -0
  68. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/rules/promoted/index.md +0 -0
  69. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/autonomous-mode/SKILL.md +0 -0
  70. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/autonomous-mode/scripts/mode_line.py +0 -0
  71. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/brainstorm/SKILL.md +0 -0
  72. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/codex-review/SKILL.md +0 -0
  73. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/dev-workflow/references/code-review-checklist.md +0 -0
  74. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/dev-workflow/references/design-critic-rubric.md +0 -0
  75. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/dev-workflow/references/design-rubric.md +0 -0
  76. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/dev-workflow/references/interview-rubric.md +0 -0
  77. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/dev-workflow/references/security-review-checklist.md +0 -0
  78. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/dev-workflow/scripts/detect_execution_verification.py +0 -0
  79. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/dev-workflow/scripts/record_agent_outcome.py +0 -0
  80. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/dev-workflow/scripts/record_review_decision.py +0 -0
  81. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/dev-workflow/scripts/review_hint_inject.py +0 -0
  82. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/develop/SKILL.md +0 -0
  83. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/doc/SKILL.md +0 -0
  84. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/extract-lib/SKILL.md +0 -0
  85. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/init-session/SKILL.md +0 -0
  86. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/init-session/scripts/session_guard.py +0 -0
  87. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/mcp-config/SKILL.md +0 -0
  88. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/pattern-status/SKILL.md +0 -0
  89. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/promote-pattern/SKILL.md +0 -0
  90. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/recall/SKILL.md +0 -0
  91. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/report-timestamp/SKILL.md +0 -0
  92. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/report-timestamp/scripts/get_timestamp.py +0 -0
  93. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/review-phase/SKILL.md +0 -0
  94. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/setup/SKILL.md +0 -0
  95. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/setup/reference.md +0 -0
  96. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/setup/templates/coding-standards-template.md +0 -0
  97. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/skills/setup/templates/project-conventions-template.md +0 -0
  98. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.claude/state/.gitkeep +0 -0
  99. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/.gitignore +0 -0
  100. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/ARCHITECTURE.md +0 -0
  101. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/LICENSE +0 -0
  102. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/LICENSES/fastembed-LICENSE +0 -0
  103. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/LICENSES/fastembed-NOTICE +0 -0
  104. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/LICENSES/numpy-LICENSE +0 -0
  105. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/LICENSES/onnxruntime-LICENSE +0 -0
  106. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/LICENSES/paraphrase-multilingual-MiniLM-L12-v2-LICENSE +0 -0
  107. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/README.md +0 -0
  108. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/hatch_build.py +0 -0
  109. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/pyproject.toml +0 -0
  110. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/__main__.py +0 -0
  111. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/_db_params.py +0 -0
  112. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/_excludes.py +0 -0
  113. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/_terminal.py +0 -0
  114. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/adapters.py +0 -0
  115. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/cli.py +0 -0
  116. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/cli_ask.py +0 -0
  117. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/cli_doctor.py +0 -0
  118. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/cli_init.py +0 -0
  119. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/cli_list.py +0 -0
  120. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/cli_metrics.py +0 -0
  121. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/cli_plan.py +0 -0
  122. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/cli_recall.py +0 -0
  123. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/cli_run.py +0 -0
  124. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/cli_tier.py +0 -0
  125. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/cli_update.py +0 -0
  126. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/db.py +0 -0
  127. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/embedding.py +0 -0
  128. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/gitutil.py +0 -0
  129. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/mcp_server.py +0 -0
  130. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/migrate.py +0 -0
  131. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/migrations/001_initial.sql +0 -0
  132. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/migrations/002_agent_cost_runs.sql +0 -0
  133. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/migrations/003_tier_cost.sql +0 -0
  134. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/migrations/004_agent_outcomes.sql +0 -0
  135. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/migrations/005_drop_agent_tier_bandit.sql +0 -0
  136. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/migrations/006_review_decisions_severity.sql +0 -0
  137. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/migrations/007_review_decisions_resolution.sql +0 -0
  138. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/migrations/008_drop_agent_runs.sql +0 -0
  139. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/migrations/README.md +0 -0
  140. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/migrations/__init__.py +0 -0
  141. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/paths.py +0 -0
  142. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/plan_validator.py +0 -0
  143. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/platforms.py +0 -0
  144. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/pricing.py +0 -0
  145. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/question.py +0 -0
  146. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/recall_chunker.py +0 -0
  147. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/recall_index.py +0 -0
  148. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/refgraph.py +0 -0
  149. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/src/c3/usage_ingester.py +0 -0
  150. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/__init__.py +0 -0
  151. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/_pre_compact_helpers.py +0 -0
  152. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/conftest.py +0 -0
  153. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/fixtures/usage/README.md +0 -0
  154. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/fixtures/usage/mainline.jsonl +0 -0
  155. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/fixtures/usage/subagents/agent-deadbeef.jsonl +0 -0
  156. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/fixtures/usage/subagents/agent-deadbeef.meta.json +0 -0
  157. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/__init__.py +0 -0
  158. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_check_agent_invocation.py +0 -0
  159. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_consolidate_memory.py +0 -0
  160. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_detect_execution_verification.py +0 -0
  161. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_hook_utils.py +0 -0
  162. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_permission_handler.py +0 -0
  163. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_permission_handler_toast.py +0 -0
  164. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_pip_reinstall_reminder.py +0 -0
  165. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_planner_check.py +0 -0
  166. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_planner_check_dev.py +0 -0
  167. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_post_tool.py +0 -0
  168. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_pre_tool.py +0 -0
  169. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_recall_autorebuild.py +0 -0
  170. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_recall_inject.py +0 -0
  171. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_record_agent_outcome.py +0 -0
  172. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_record_review_decision.py +0 -0
  173. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_restore_session.py +0 -0
  174. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_review_hint_inject.py +0 -0
  175. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_select_tier.py +0 -0
  176. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_select_tier_escalation.py +0 -0
  177. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_session_start.py +0 -0
  178. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_session_stop.py +0 -0
  179. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_session_utils.py +0 -0
  180. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_settings_local_absolute_paths.py +0 -0
  181. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_settings_tier_autoapply_registration.py +0 -0
  182. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_similarity_boost.py +0 -0
  183. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_statusline.py +0 -0
  184. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_statusline_template_sync.py +0 -0
  185. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_sync_check.py +0 -0
  186. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_template_guard.py +0 -0
  187. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_tier_autoapply.py +0 -0
  188. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_tier_gap_check.py +0 -0
  189. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/hooks/test_tier_security_fixes.py +0 -0
  190. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/skills/__init__.py +0 -0
  191. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/skills/_skill_helpers.py +0 -0
  192. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/skills/test_dev_workflow_no_task_type.py +0 -0
  193. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/skills/test_init_session_no_task_type.py +0 -0
  194. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/skills/test_marker_compliance.py +0 -0
  195. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/skills/test_parallel_agents_skill_tier.py +0 -0
  196. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/skills/test_planner_lightweight.py +0 -0
  197. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/skills/test_recall_skill.py +0 -0
  198. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/skills/test_session_backlog_reconciliation.py +0 -0
  199. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/skills/test_session_guard.py +0 -0
  200. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/skills/test_setup_templates.py +0 -0
  201. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/skills/test_start_skill_bugfix_flow.py +0 -0
  202. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/skills/test_start_skill_new_flow.py +0 -0
  203. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/skills/test_start_skill_security_audit_phase.py +0 -0
  204. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_adapters.py +0 -0
  205. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_audit_review_decisions.py +0 -0
  206. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_check_deletions.py +0 -0
  207. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_claude_gitignore.py +0 -0
  208. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_cli_ask.py +0 -0
  209. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_cli_doctor.py +0 -0
  210. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_cli_doctor_launcher.py +0 -0
  211. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_cli_entry.py +0 -0
  212. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_cli_init.py +0 -0
  213. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_cli_list.py +0 -0
  214. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_cli_metrics.py +0 -0
  215. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_cli_plan.py +0 -0
  216. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_cli_recall.py +0 -0
  217. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_cli_run.py +0 -0
  218. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_cli_tier.py +0 -0
  219. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_cli_update_breaking_changes.py +0 -0
  220. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_cli_update_deletions.py +0 -0
  221. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_db.py +0 -0
  222. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_db_connect_lint.py +0 -0
  223. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_docstring_consistency.py +0 -0
  224. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_embedding.py +0 -0
  225. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_excludes.py +0 -0
  226. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_extract_breaking_changes.py +0 -0
  227. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_gitutil.py +0 -0
  228. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_hooks_stdin_idiom.py +0 -0
  229. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_init_only_patterns.py +0 -0
  230. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_mcp_server_elicit.py +0 -0
  231. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_migrate.py +0 -0
  232. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_mode_line.py +0 -0
  233. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_no_bare_python_launcher.py +0 -0
  234. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_no_passonly_tests.py +0 -0
  235. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_nul_boundary_lint.py +0 -0
  236. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_paths.py +0 -0
  237. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_patterns_guard.py +0 -0
  238. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_plan_validator.py +0 -0
  239. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_pre_compact.py +0 -0
  240. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_pre_tool_hook.py +0 -0
  241. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_precompact_additional.py +0 -0
  242. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_precompact_toctou_fixes.py +0 -0
  243. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_pricing.py +0 -0
  244. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_recall_chunker.py +0 -0
  245. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_recall_index.py +0 -0
  246. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_references_migration.py +0 -0
  247. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_refgraph_query.py +0 -0
  248. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_report_contract_check.py +0 -0
  249. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_scripts_stdout_encoding.py +0 -0
  250. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_session_mode_watch.py +0 -0
  251. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_session_utils_additional.py +0 -0
  252. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_settings_hooks_registration.py +0 -0
  253. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_skill_no_builtin_conflict.py +0 -0
  254. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_statusline.py +0 -0
  255. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_stop_additional.py +0 -0
  256. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_stop_agent_memory_warn.py +0 -0
  257. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_stop_hook.py +0 -0
  258. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_stop_precompact_fixes.py +0 -0
  259. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_sync_template_stop.py +0 -0
  260. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_template_pre_tool_hook.py +0 -0
  261. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_usage_ingester.py +0 -0
  262. {claude_code_conductor-2.62.0 → claude_code_conductor-2.64.0}/tests/test_worktree_guard.py +0 -0
@@ -35,12 +35,14 @@ requirements-report を受け取り、システム設計・技術選定・依存
35
35
 
36
36
  **Before:**
37
37
  - requirements-report を Read する
38
- - 既存コードがあれば Glob / Grep で構造を把握する
38
+ - 採用する対策・パターンと同種の対策が過去に破られていないか、reviewer 系の agent-memory を確認する(agent-memory は gitignored でありディレクトリ横断の検索は空振りする。対象ファイルを列挙してから個別に読む)
39
39
 
40
40
  **During:**
41
41
  - 技術選定の根拠とトレードオフを必ず記録する
42
42
  - 複数案がある場合は比較表を作り採用理由を明示する
43
43
  - 不明点はユーザーに確認する
44
+ - 対策・不変則は判定手段でなく満たすべき性質で書く(手段の固定は射程を縮める)
45
+ - 対策・規約の配置先を決めるときは `.claude/skills/dev-workflow/references/reachability-map.md` で読み手に届くかを確認する
44
46
 
45
47
  **After:**
46
48
  - Skill ツールで `report-timestamp` を呼び出してタイムスタンプを取得し、Write ツールで `.claude/reports/architecture-report-{timestamp}.md` に出力する
@@ -43,7 +43,6 @@ plan-report に基づき実装・デバッグ・リファクタリングを行
43
43
 
44
44
  **Before:**
45
45
  - plan-report を Read して実装対象タスクを確認する
46
- - 既存コードを Glob / Grep で把握する
47
46
 
48
47
  **During:**
49
48
  - 1タスク = 1コミットの粒度を保つ
@@ -36,7 +36,6 @@ tools:
36
36
 
37
37
  **Before:**
38
38
  - プロンプトに含まれる要件(種類・読み手・目的・粒度・対象・出力先)を確認する
39
- - Glob / Grep で対象ファイル・ディレクトリの構造を把握する
40
39
  - Read で関連ファイルを読み込む(大規模な場合は優先度の高いファイルから)
41
40
 
42
41
  **During:**
@@ -41,7 +41,7 @@ requirements-report・architecture-report・各種レビューレポートを統
41
41
  **During:**
42
42
  - レビュー指摘がある場合は優先度を付けて反映する
43
43
  - タスクは「1タスク = 1コミット」の粒度を意識して分解する
44
- - `.claude/skills/dev-workflow/references/plan-design-guidelines.md` のルール 1〜15 と R2〜R6 を遵守する(適用射程は同ファイル冒頭の分類表に従う。`"sequential"` プランでは並列前提ルールを適用しない)
44
+ - `.claude/skills/dev-workflow/references/plan-design-guidelines.md` のルール 1〜20 と R2〜R6 を遵守する(適用射程は同ファイル冒頭の分類表に従う。`"sequential"` プランでは並列前提ルールを適用しない)
45
45
 
46
46
  **After:**
47
47
  - Skill ツールで `report-timestamp` を呼び出してタイムスタンプを取得し、Write ツールで `.claude/reports/plan-report-{timestamp}.md` に出力する
@@ -58,7 +58,7 @@ requirements-report・architecture-report・各種レビューレポートを統
58
58
  制限:
59
59
  - ソースファイルの編集・書き込みは行わない
60
60
  - plan-report の YAML フロントマター内で `tasks[].id` の重複・未定義の `depends_on` 参照・エージェント名の typo を出力しない(`c3 plan validate` で検証可能)
61
- - `.claude/skills/dev-workflow/references/plan-design-guidelines.md` のルール 1〜15 と自己チェックリストに違反した plan-report を出力しない(適用射程は分類表に従う)
61
+ - `.claude/skills/dev-workflow/references/plan-design-guidelines.md` のルール 1〜20 と自己チェックリストに違反した plan-report を出力しない(適用射程は分類表に従う)
62
62
  - 自動検査対象に違反する plan-report を出力しない:
63
63
  - R2/R4/R6(配布対象): `.claude/hooks/planner_check.py` が PostToolUse で WARN を出す
64
64
  - R3(C3 固有): `.dev/hooks/_planner_check.py` が PostToolUse で exit 2 ブロック
@@ -41,7 +41,6 @@ SQLインジェクション・XSS・認証認可・秘密情報漏洩などの
41
41
  ## Workflow
42
42
 
43
43
  **Before:**
44
- - 変更ファイルと依存関係を Bash / Glob / Grep で確認する
45
44
  - 認証・外部入力・データベースアクセスのコードを優先的に確認する
46
45
  - `.claude/skills/dev-workflow/references/security-review-checklist.md` を Read してチェック観点を確認する
47
46
 
@@ -63,13 +63,11 @@ developer が詰まった問題の根本原因を調査し、debug-analysis-repo
63
63
  - エラーに関連する変更がないか調べる
64
64
 
65
65
  **2-4: 関連コードの読み込み**
66
- - Glob / Grep / Read でエラー箇所周辺のコードを調査する
67
66
  - 依存関係・呼び出し元を辿る
68
67
 
69
68
  ### Step 3: Phase 2 - パターン分析
70
69
 
71
70
  **3-1: 動いている類似コードを探す**
72
- - Grep / Glob で同様のパターンを実装している箇所を探す
73
71
  - 動いているコードと壊れているコードの両方を Read する
74
72
 
75
73
  **3-2: 差分の特定**
@@ -107,7 +105,7 @@ Skill ツールで `report-timestamp` を呼び出してタイムスタンプを
107
105
  ```
108
106
 
109
107
  ## Tools & Constraints
110
- - コードを修正・編集しない(Read / Bash / Glob / Grep / Write のみ使用)
108
+ - コードを修正・編集しない(`memory:` 付き agent には Edit が実行時に自動付与されるため、frontmatter ではなく本規約が唯一の担保)
111
109
  - 推測で原因を断言しない。再現コマンドの出力など証拠に基づいて記述する
112
110
  - 推奨仮説は1つに絞る(複数の仮説を羅列しない)
113
111
 
@@ -17,7 +17,7 @@ tools:
17
17
 
18
18
  # Developer (worktree-parallel)
19
19
 
20
- > **v2.2.0+**: 本 agent は `parallel-agents` skill が `isolation: "worktree"` 付きで起動する **並列実行専用** バリアント。`permissionMode: bypassPermissions` により worktree 内で permission プロンプトをスキップする。worktree 外への書き込みは `.claude/hooks/worktree_guard.py` (PreToolUse, `PO_WORKTREE_GUARD=1`) でガードされる。
20
+ > 本 agent は `parallel-agents` skill が `isolation: "worktree"` 付きで起動する **並列実行専用** バリアント。`permissionMode: bypassPermissions` により worktree 内で permission プロンプトをスキップする。worktree 外への書き込みは `.claude/hooks/worktree_guard.py` (PreToolUse, `PO_WORKTREE_GUARD=1`) でガードされる。
21
21
  >
22
22
  > 単発起動(`/develop` フェーズ D-1〜D-5 等、`isolation` なし)では本 agent を**使わない**。元の `developer` agent を使うこと。
23
23
 
@@ -48,7 +48,6 @@ plan-report に基づき実装・デバッグ・リファクタリングを行
48
48
 
49
49
  **Before:**
50
50
  - plan-report を Read して実装対象タスクを確認する
51
- - 既存コードを Glob / Grep で把握する
52
51
 
53
52
  **During:**
54
53
  - 1タスク = 1コミットの粒度を保つ
@@ -15,7 +15,7 @@ tools:
15
15
 
16
16
  # Systematic Debugger (worktree-parallel)
17
17
 
18
- > **v2.2.0+**: 本 agent は `parallel-agents` skill が `isolation: "worktree"` 付きで起動する **並列実行専用** バリアント。`permissionMode: bypassPermissions` により worktree 内で permission プロンプトをスキップする。worktree 外への書き込みは `.claude/hooks/worktree_guard.py` (PreToolUse, `PO_WORKTREE_GUARD=1`) でガードされる。
18
+ > 本 agent は `parallel-agents` skill が `isolation: "worktree"` 付きで起動する **並列実行専用** バリアント。`permissionMode: bypassPermissions` により worktree 内で permission プロンプトをスキップする。worktree 外への書き込みは `.claude/hooks/worktree_guard.py` (PreToolUse, `PO_WORKTREE_GUARD=1`) でガードされる。
19
19
  >
20
20
  > 単発起動(worktree なしで親 Claude から直接 Agent ツールで起動するケース等)では本 agent を**使わない**。元の `systematic-debugger` agent を使うこと。
21
21
 
@@ -68,13 +68,11 @@ developer が詰まった問題の根本原因を調査し、debug-analysis-repo
68
68
  - エラーに関連する変更がないか調べる
69
69
 
70
70
  **2-4: 関連コードの読み込み**
71
- - Glob / Grep / Read でエラー箇所周辺のコードを調査する
72
71
  - 依存関係・呼び出し元を辿る
73
72
 
74
73
  ### Step 3: Phase 2 - パターン分析
75
74
 
76
75
  **3-1: 動いている類似コードを探す**
77
- - Grep / Glob で同様のパターンを実装している箇所を探す
78
76
  - 動いているコードと壊れているコードの両方を Read する
79
77
 
80
78
  **3-2: 差分の特定**
@@ -112,7 +110,7 @@ developer が詰まった問題の根本原因を調査し、debug-analysis-repo
112
110
  ```
113
111
 
114
112
  ## Tools & Constraints
115
- - コードを修正・編集しない(Read / Bash / Glob / Grep / Write のみ使用)
113
+ - コードを修正・編集しない(`memory:` 付き agent には Edit が実行時に自動付与されるため、frontmatter ではなく本規約が唯一の担保)
116
114
  - 推測で原因を断言しない。再現コマンドの出力など証拠に基づいて記述する
117
115
  - 推奨仮説は1つに絞る(複数の仮説を羅列しない)
118
116
 
@@ -15,7 +15,7 @@ tools:
15
15
 
16
16
  # Tester (worktree-parallel)
17
17
 
18
- > **v2.2.0+**: 本 agent は `parallel-agents` skill が `isolation: "worktree"` 付きで起動する **並列実行専用** バリアント。`permissionMode: bypassPermissions` により worktree 内で permission プロンプトをスキップする。worktree 外への書き込みは `.claude/hooks/worktree_guard.py` (PreToolUse, `PO_WORKTREE_GUARD=1`) でガードされる。
18
+ > 本 agent は `parallel-agents` skill が `isolation: "worktree"` 付きで起動する **並列実行専用** バリアント。`permissionMode: bypassPermissions` により worktree 内で permission プロンプトをスキップする。worktree 外への書き込みは `.claude/hooks/worktree_guard.py` (PreToolUse, `PO_WORKTREE_GUARD=1`) でガードされる。
19
19
  >
20
20
  > 単発起動(`/develop` フェーズ D-1〜D-5 等、`isolation` なし)では本 agent を**使わない**。元の `tester` agent を使うこと。
21
21
 
@@ -422,6 +422,34 @@ Claude Code 側で `deny` 判定が出た後に発火するため、`permission_
422
422
  定期的にレビューすること(`c3 run <固定スクリプトパス>` 形式のみを許可し、`../` を含みうる可変パスを
423
423
  プレフィックス許可しない)。
424
424
 
425
+ **追記(SR-AI-001): 破壊操作を伴うスクリプトは追記系と同列に扱わない**
426
+
427
+ 上記のプレフィックス一致という性質は、許可対象のスクリプトが**何をするか**によって危険度が変わる。
428
+ `c3 run <script>*` の末尾ワイルドカード 1 本は、そのスクリプトが取りうる**あらゆる引数列**を
429
+ 無確認で許可する。追記系スクリプト(記録・注入・インデックス更新)ならこれで実害は限定的だが、
430
+ **ファイルの移動・削除・上書きを行うスクリプトでは、引数 1 つで対象ディレクトリごと差し替えられる**。
431
+ 実例: `archive_reports.py` は `--reports-dir <任意ディレクトリ>` を取り、その直下の `*.md` を
432
+ 移動して移動元を削除する。末尾ワイルドカードで allow すると、プロンプトインジェクション経由で
433
+ 任意ディレクトリの `*.md` が無確認で移動・削除されうる。
434
+
435
+ **対処**(新しい allow を追加する際・レビューで拾う際のチェック):
436
+ - そのスクリプトが破壊操作(削除・移動・上書き)を伴うかをまず判定する
437
+ - 伴う場合、allow は**正規経路が実際に使う形だけ**に絞る(引数なしの完全一致 + 正規のオプションで
438
+ 始まる形)。末尾ワイルドカード 1 本にしない
439
+ - allow の絞り込みだけでは足りない場合がある。`<script> --opt *` 形のパターンは、後続に別の
440
+ オプションが続く文字列とも前方一致しうるため、**危険な引数自体に env ゲートを課す**
441
+ (例: `archive_reports.py` の `--reports-dir` は `C3_ARCHIVE_REPORTS_DIR_OK=1` がある場合のみ有効)。
442
+ env は allow パターンの前方一致では満たせないため、単一のコマンド文字列では越えられない関所になる
443
+
444
+ **追記(SR-NEW-2): env ゲートの射程は単一コマンド文字列に対する関所であり、セッション跨ぎの env 継承は射程外**
445
+
446
+ 上記の env ゲート(例: `C3_ARCHIVE_REPORTS_DIR_OK=1`)が防いでいるのは「1 本の許可済みコマンド文字列の
447
+ 前方一致だけでは越えられない」という点であり、**シェルセッションを跨いだ環境変数の永続化・継承は
448
+ 別の話**である。`export C3_ARCHIVE_REPORTS_DIR_OK=1` を `.bashrc` 等の起動ファイルに書く・
449
+ CI のジョブ環境変数として設定する・親プロセスから子プロセスへ継承させる、といった経路で
450
+ ゲートが「常時開いた状態」になれば、env ゲート自体は無力化される。ゲートは「未設定が既定」
451
+ という運用を前提にした関所であり、恒久的な env 設定と組み合わせて使わないこと。
452
+
425
453
  ---
426
454
 
427
455
  ## 8. 参照先
@@ -13,6 +13,8 @@
13
13
  "Bash(c3 run .claude/skills/dev-workflow/scripts/record_review_decision.py*)",
14
14
  "Bash(c3 run .claude/skills/dev-workflow/scripts/record_agent_outcome.py*)",
15
15
  "Bash(c3 run .claude/skills/init-session/scripts/session_guard.py*)",
16
+ "Bash(c3 run .claude/skills/start/scripts/archive_reports.py)",
17
+ "Bash(c3 run .claude/skills/start/scripts/archive_reports.py --phase *)",
16
18
  "Read(**)",
17
19
  "Grep(**)",
18
20
  "Edit(.claude/reports/**)",
@@ -80,7 +80,7 @@ session.tmp の `モード:` 行を確認する。**有効な自律宣言**(§
80
80
 
81
81
  ### A-1〜A-3: 動的ヒアリング(ルーブリック型)
82
82
 
83
- **最初に必ず** `.claude/skills/dev-workflow/references/interview-rubric.md` を Read する(記憶・推測で進めない)。
83
+ `.claude/skills/dev-workflow/references/interview-rubric.md` を Read する。
84
84
  その指針に従い、床 5 観点(①背景・目的 ②スコープ境界 ③制約・前提 ④非機能要件 ⑤成功条件)を
85
85
  **動的にヒアリング**する。要点:
86
86
 
@@ -147,7 +147,7 @@ c3 run .claude/skills/dev-workflow/scripts/record_agent_outcome.py \
147
147
 
148
148
  ### B-1〜B-2: 動的設計確認(ルーブリック型)
149
149
 
150
- **最初に必ず** `.claude/skills/dev-workflow/references/design-rubric.md` を Read する(記憶・推測で進めない)。
150
+ `.claude/skills/dev-workflow/references/design-rubric.md` を Read する。
151
151
  その指針に従い、床 4 観点(①技術スタック制約 ②要件から導く設計判断ポイント ③非機能の実現方針 ④トレードオフ分岐)を
152
152
  **動的に確認**する。要点:
153
153
 
@@ -570,7 +570,7 @@ c3 run .claude/skills/dev-workflow/scripts/record_agent_outcome.py \
570
570
  3. plan-report も当日 debug-analysis も存在しない場合はフェーズ C から始めるよう案内して終了する。
571
571
 
572
572
  **`po_plan_version: "0.1"` の場合(parallel-agents モード):**
573
- 1. **最初に必ず** `.claude/skills/parallel-agents/SKILL.md` を Read する(記憶・推測で進めない)
573
+ 1. `.claude/skills/parallel-agents/SKILL.md` を Read する
574
574
  2. `.claude/skills/parallel-agents/SKILL.md` の手順に完全に従って wave 単位で実装を進める
575
575
  3. 全 wave 完了後はフェーズ E(レビュー)へ進む(wave に reviewer タスクが含まれていれば E をスキップ可能と案内する)
576
576
 
@@ -973,6 +973,8 @@ c3 run .claude/skills/dev-workflow/scripts/record_agent_outcome.py \
973
973
  ```
974
974
 
975
975
  **指摘がある場合:**
976
+ 対応の置き場所(どの文書・どの層に対策を置くか)を決める際は `.claude/skills/dev-workflow/references/reachability-map.md` で読み手に届くかを確認する。
977
+
976
978
  指摘一覧をテキストで提示してから AskUserQuestion で方針を確認する:
977
979
  ```json
978
980
  {
@@ -1114,6 +1116,8 @@ c3 run .claude/skills/dev-workflow/scripts/record_agent_outcome.py \
1114
1116
  ```
1115
1117
 
1116
1118
  **指摘がある場合:**
1119
+ 対応の置き場所(どの文書・どの層に対策を置くか)を決める際は `.claude/skills/dev-workflow/references/reachability-map.md` で読み手に届くかを確認する。
1120
+
1117
1121
  指摘一覧をテキストで提示してから AskUserQuestion で方針を確認する:
1118
1122
  ```json
1119
1123
  {
@@ -5,7 +5,7 @@
5
5
  | 分類 | ルール番号 | R 番号 | 自己チェックリスト項目 |
6
6
  |---|---|---|---|
7
7
  | `"0.1"`(並列実行)限定 | ルール 1・2・10・11・14/ルール 3・9(※直後の注記により sequential でも成果物宣言・レビュー配置の規律は満たすこと) | R5(isolation 指定が発生しない逐次では非該当) | チェーン長/同一ファイル衝突/R5/ルール 14 |
8
- | 両モード共通 | ルール 4・5・7・8・12・13・15 | R2・R3・R4・R6(planner_check hook 群は po_plan_version の値を読まないため sequential プランでも発火する) | id 一意・depends_on 参照先実在/空配列禁止/TDD 3 タスク分解/15 分粒度/R6/writes が空のタスク/レビュータスクの depends_on/ルール 15 方向検算 |
8
+ | 両モード共通 | ルール 4・5・7・8・12・13・15・16・17・18・19・20 | R2・R3・R4・R6(planner_check hook 群は po_plan_version の値を読まないため sequential プランでも発火する) | id 一意・depends_on 参照先実在/空配列禁止/TDD 3 タスク分解/15 分粒度/R6/writes が空のタスク/レビュータスクの depends_on/ルール 15 方向検算/テスト凍結の実装責任/手順過多の契約化/一時改変の後始末方法/検知力検証の双方向/gitignored 検証パス |
9
9
  | 逐次では読み替え | ルール 6(Stuck Signal の契約自体は共通。wave 失敗時の 2-E 吸収は並列限定の運用であり、逐次は dev-workflow SKILL.md の D-2.5〈Stuck チェック〉で吸収する) | - | - |
10
10
 
11
11
  **注記**: 両モード共通に分類されたルール(5・R2・R4・R6 等)が `writes` や reviewer タスクの存在を前提とする場合、**その前提を作るルール(9・3)も sequential プランで満たすこと**。`"0.1"` 限定の趣旨は『並列度・worktree 取り込み衝突に関する制約』に限られ、成果物宣言・レビュー配置の規律はモードを問わない。
@@ -13,6 +13,8 @@
13
13
  planner agent が本ファイルを参照する。
14
14
  plan-report 生成時はこれを確実に読んでから出力すること(D-012 準拠)。
15
15
 
16
+ 規約・対策の配置先を決めるときは `reachability-map.md` で読み手に届くかを確認する。
17
+
16
18
  ---
17
19
 
18
20
  ## depends_on の付け方
@@ -129,6 +131,26 @@ Stage 1: dev_a, dev_b, dev_c (並列)
129
131
 
130
132
  **静的検査の保証範囲**: 本ルールの静的検査(`tests/skills/test_planner_lightweight.py`)が保証するのは**この規約文書にルール 15 が存在すること**のみであり、個々の plan-report が本ルールに従っているかは検査しない。方向が合っているかの判定は planner の責任に残る。
131
133
 
134
+ ## 凍結仕様の実装責任(ルール 16)
135
+
136
+ 16. **テスト前提の実装責任** — 計画が既存テストの凍結を前提とする場合(件数リテラル・逐語アンカー・特定テストケースの存在仮定など)、その仮定を変更する修正は **当該テストファイルを `writes` に含むタスク** で行うこと。修正担当を明示することにより、前提が破られたときの責任の所在を確定させる。
137
+
138
+ ## タスク prompt の設計方針(ルール 17)
139
+
140
+ 17. **契約と性質で指示し、手順で指定しない** — `tasks[].prompt` には契約・不変則・測るべき性質を書く。逐語的な手順指定は避けること。実施主体が判断を失い、手順の逐語に従うだけになると別の欠陥を生じやすい。実測: C-3 監査で High 5 件中 3 件が親による逐語手順の誤りが原因だった(2026-07-23)。
141
+
142
+ ## 一時改変の後始末指定(ルール 18)
143
+
144
+ 18. **cleanup 手段を明示・禁止経路を宣言する** — 検証のための一時改変(テストの一時ハード・mock 削除・debug logging など)を指示する場合、**後始末の手段を逐語で指定し、 `git checkout` / `git restore` / `git reset` を明示的に禁止すること**。これらは復元不能な失敗を招く(実績: 2026-08-01 に実装 5 時間分が全損)。代わりに「元のコードへ戻す」「テストスケルトンを削除」など、失敗時に検出可能な方法を指示すること。
145
+
146
+ ## 検知力検証の双方向テスト(ルール 19)
147
+
148
+ 19. **do-nothing スタブの両方向赤緑反転** — 検証系タスクの contract に「検知力を実証する」を含める場合、do-nothing スタブ **2 種**(always-False / always-True)を用いて赤緑が完全に入れ替わることを示すこと。単一スタブでは正の双子が赤にならない原理的限界を越えられない。適用困難な対象では、代替手段として「両方向反転」の実現可能性を明記する。
149
+
150
+ ## gitignored 成果物の検証経路(ルール 20)
151
+
152
+ 20. **直接 Read・状態外の指示分離** — gitignored ファイル(`.claude/reports/` 等)の検証は `git status --short` ではなく **直接 Read で行うこと**。git 管理下で成果物を検証する必要があれば、明示的に commit → 確認 → cleanup の流れを指示する。worktree で起動される worker(developer / tester)の prompt には gitignored 文書の Read を指示しないこと(届く経路が無い。親か plan-report 経由で指す)。reviewer 向けの prompt には「当該ファイルは gitignored である」と明記し、reviewer に直接 Read させることを指示する。
153
+
132
154
  ---
133
155
 
134
156
  ## 出力直前の自己チェックリスト
@@ -147,6 +169,11 @@ plan-report を Write する前に以下を必ず確認する:
147
169
  - [ ] R6: タスク総数 3 件以上なら reviewer 系タスクが 1 件以上含まれているか
148
170
  - [ ] ルール 14: writes が全て gitignored のタスク(confirm- 等)は運用層で main 直接経路に読み替えられることを認識しているか
149
171
  - [ ] ルール 15: finding 反映時に方向検算表を含めたか(Critical/High/Medium 必須)
172
+ - [ ] ルール 16: テスト凍結仮定を変更する修正は当該テストファイルを writes に含む task で行うか明示されているか
173
+ - [ ] ルール 17: tasks[].prompt は逐語手順でなく契約・不変則・測るべき性質で書かれているか
174
+ - [ ] ルール 18: 一時改変指示は後始末手段を逐語で指定し、git checkout/restore/reset を明示的に禁止しているか
175
+ - [ ] ルール 19: 検証系 task の contract に do-nothing スタブ 2 種の赤緑反転実証が含まれているか(適用困難なら代替宣言)
176
+ - [ ] ルール 20: gitignored 成果物検証は直接 Read 指示で行い、worker prompt には Read を指示していないか
150
177
 
151
178
  ---
152
179
 
@@ -0,0 +1,38 @@
1
+ # 到達可能性マップ
2
+
3
+ 規約・対策をどこに置けば読み手に届くか。対象読み手ごとに、有効な配置先を表引きで示す。
4
+
5
+ ## 到達経路一覧
6
+
7
+ 表の列構成: 経路(配置方法)、実パス(ファイルパスまたは「—」)、届く role(対象読み手)、条件(前提・性質)
8
+
9
+ | 経路 | 実パス | 届く role | 条件 |
10
+ |---|---|---|---|
11
+ | .claude/CLAUDE.md | .claude/CLAUDE.md | 全 role | 自動ロード・常駐コスト有。全員に効かせたい安全境界のみ置く |
12
+ | .claude/rules/ (再帰自動ロード) | — | 全 role | 再帰自動ロード。サブエージェント含む。`.claude/rules/` 配下のサブディレクトリも対象 |
13
+ | agents/<role>.md 本文 | — | 当該 role のみ | サブエージェント起動時に frontmatter とともに載る。persona 実行 role(interviewer/architect/planner)へは dev-workflow SKILL.md 各フェーズ冒頭の Read 指示に依存して親経由で届く |
14
+ | dev-workflow/SKILL.md | .claude/skills/dev-workflow/SKILL.md | 親 Claude のみ | worker(developer/tester)には届かない。フェーズ遷移・承認ゲートの定義・手順 |
15
+ | references/*.md (導線経由) | — | 導線を持つ role のみ | 導線が無ければ誰にも届かない。SKILL.md 各フェーズから Read 指示で参照される |
16
+ | plan-report タスク prompt | — | 当該タスクの worker のみ | worker へ届く唯一の動的経路。planner が転記した内容のみ有効 |
17
+ | 起動プロンプト(E-0 等) | — | 起動された agent のみ | E-0 の枠付けが正例。データ/指示の明確な区分 |
18
+ | agent-memory/<role>/ | — | 当該 role(Before に Read 指示を持つ role のみ) | gitignored: worktree に存在せず、ディレクトリ横断検索は空振りする。ファイルを列挙して個別に Read。上流(architect)には既定では届かない(architect.md の Before が能動的な確認を指示して補完する) |
19
+ | design-critic-rubric.md | .claude/skills/dev-workflow/references/design-critic-rubric.md | design-critic(C-3 ステップ 2) | C-3 設計監査ゲート内で Read 指示される |
20
+ | interview-rubric.md | .claude/skills/dev-workflow/references/interview-rubric.md | interviewer(A-1〜A-3) | フェーズ A 冒頭で Read 指示される |
21
+ | design-rubric.md | .claude/skills/dev-workflow/references/design-rubric.md | architect(B-1〜B-2) | フェーズ B 冒頭で Read 指示される |
22
+ | plan-design-guidelines.md | .claude/skills/dev-workflow/references/plan-design-guidelines.md | planner(C-2) | フェーズ C 計画作成時に参照・守るべき規約 |
23
+
24
+ ## 置き場所デシジョン(3 手順)
25
+
26
+ **① 対象読み手を決める**
27
+ 恒久規約・対策の対象読み手は誰か。例: developer のみ、全 role、特定フェーズの worker、など。
28
+
29
+ **② 表で経路を引く**
30
+ 上記の表から対象読み手に届く経路を探す。複数経路がある場合は「コスト」と「確実性」で選ぶ。
31
+ - 常駐コスト(CLAUDE.md 肥大化)vs. 導線による確実性(参照側の負担)
32
+ - 安全境界(コミット・削除・権限)はより上流(CLAUDE.md / rules/)に置く
33
+
34
+ **③ 経路が無ければ agent 本文か plan 契約に置く**
35
+ 表を見ても対象読み手に届く経路が無い場合(例: worker 向け恒久規約、developer のみ向けのパターン)は、以下を選ぶ:
36
+ - 多くの worker が参照するなら plan-report の task prompt に書く(動的経路)
37
+ - 特定フェーズ限定なら agent.md 本文に書く
38
+ - サブエージェント(design-critic など)の動作規約なら agent 本文か SKILL.md の起動フェーズに書く
@@ -140,6 +140,8 @@ plan-report 承認時点で全タスク・agent・writes・prompt が確認済
140
140
 
141
141
  ### 2-C: タスクを実行する(並列起動)
142
142
 
143
+ wave を起動する前に `git status` が空(未コミット変更なし)であることを確認する(未コミット変更は worktree に届かない。2-F-2 の取り込み後確認とは別の**起動前**チェック)
144
+
143
145
  並列化可能タスクを **1 ターン内で複数 Agent ツール呼び出し** として発行する。並列度の上限は **デフォルト 5、上限 15**(PoC で検証済み)。タスク数がそれ以上なら 5 件ずつのバッチに分割する。
144
146
 
145
147
  **重要**: 各タスクの `agent` 名は plan-report で `tester` / `developer` 等と書かれているが、**Agent ツール呼び出し時の `subagent_type` には並列専用バリアント (`wt_*`) を指定する**。マッピング表:
@@ -53,10 +53,14 @@ Glob で `.claude/reports/*.md` を検索する(`archive/` 配下は含まな
53
53
  }
54
54
  ```
55
55
 
56
+ アーカイブは専用スクリプトが行う。このコマンドは、移動先に同名のファイルが既にある場合は
57
+ 移動元を `{元の名前}-archived-{元ファイルの更新時刻}.md` へリネームして**両方を残す**(既存ファイルは 1 バイトも変更しない)。
58
+ アーカイブ先ディレクトリが無ければ作成する。移動できなかったファイルがあれば stderr に一覧を出して exit 1 になる。
59
+
56
60
  **「全てアーカイブして新しく始める」の場合:**
57
61
  Bash ツールで実行する:
58
62
  ```bash
59
- mkdir -p .claude/reports/archive && mv .claude/reports/*.md .claude/reports/archive/
63
+ c3 run .claude/skills/start/scripts/archive_reports.py
60
64
  ```
61
65
 
62
66
  **「アーカイブするフェーズを選ぶ」の場合:**
@@ -77,11 +81,19 @@ AskUserQuestion で対象フェーズを確認する:
77
81
  }
78
82
  ```
79
83
 
80
- 選択されたフェーズに対応するファイルを Bash ツールで移動する(ファイルが存在しない場合はスキップ):
81
- - 要件定義: `mkdir -p .claude/reports/archive && mv .claude/reports/requirements-report-*.md .claude/reports/archive/ 2>/dev/null || true`
82
- - 設計: `mkdir -p .claude/reports/archive && mv .claude/reports/architecture-report-*.md .claude/reports/archive/ 2>/dev/null || true`
83
- - 計画: `mkdir -p .claude/reports/archive && mv .claude/reports/plan-report-*.md .claude/reports/archive/ 2>/dev/null || true`
84
- - レビュー: `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`
84
+ 選択された各ラベルを次の表で `--phase` の値に読み替え、Bash ツールで 1 回だけ実行する
85
+ (`--phase` は繰り返し指定でき、指定した分の和が対象になる。対象ファイルが 1 件も無くても成功する):
86
+
87
+ | 選択肢のラベル | `--phase` の値 | 対象になるファイル |
88
+ |---|---|---|
89
+ | 要件定義 | `requirements` | `requirements-report-*.md` |
90
+ | 設計 | `architecture` | `architecture-report-*.md` |
91
+ | 計画 | `plan` | `plan-report-*.md` |
92
+ | レビュー | `review` | `code-review-report-*.md` / `security-review-report-*.md` / `design-review-report-*.md` |
93
+
94
+ ```bash
95
+ c3 run .claude/skills/start/scripts/archive_reports.py --phase requirements --phase review
96
+ ```
85
97
 
86
98
  ---
87
99