claude-dev-env 2.12.0 → 2.14.0

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 (399) hide show
  1. package/AGENTS.md +61 -0
  2. package/CLAUDE.md +1 -57
  3. package/_shared/AGENTS.md +15 -0
  4. package/_shared/CLAUDE.md +1 -15
  5. package/_shared/advisor/AGENTS.md +22 -0
  6. package/_shared/advisor/CLAUDE.md +1 -22
  7. package/_shared/pr-loop/AGENTS.md +27 -0
  8. package/_shared/pr-loop/CLAUDE.md +1 -27
  9. package/_shared/pr-loop/scripts/AGENTS.md +35 -0
  10. package/_shared/pr-loop/scripts/CLAUDE.md +1 -35
  11. package/_shared/pr-loop/scripts/code_rules_gate.py +2 -3
  12. package/_shared/pr-loop/scripts/code_rules_gate_parts/AGENTS.md +42 -0
  13. package/_shared/pr-loop/scripts/code_rules_gate_parts/CLAUDE.md +1 -42
  14. package/_shared/pr-loop/scripts/pr_loop_shared_constants/AGENTS.md +26 -0
  15. package/_shared/pr-loop/scripts/pr_loop_shared_constants/CLAUDE.md +1 -26
  16. package/_shared/pr-loop/scripts/test_code_rules_gate.py +0 -26
  17. package/_shared/pr-loop/scripts/tests/AGENTS.md +44 -0
  18. package/_shared/pr-loop/scripts/tests/CLAUDE.md +1 -44
  19. package/_shared/process-tree/AGENTS.md +41 -0
  20. package/_shared/process-tree/CLAUDE.md +1 -41
  21. package/agents/AGENTS.md +31 -0
  22. package/agents/CLAUDE.md +1 -32
  23. package/agents/clean-coder.md +6 -6
  24. package/agents/pr-description-writer.md +11 -81
  25. package/agents/test_agent_frontmatter.py +4 -4
  26. package/audit-rubrics/AGENTS.md +43 -0
  27. package/audit-rubrics/CLAUDE.md +1 -43
  28. package/audit-rubrics/category_rubrics/AGENTS.md +37 -0
  29. package/audit-rubrics/category_rubrics/CLAUDE.md +1 -37
  30. package/audit-rubrics/prompts/AGENTS.md +37 -0
  31. package/audit-rubrics/prompts/CLAUDE.md +1 -37
  32. package/bin/AGENTS.md +112 -0
  33. package/bin/CLAUDE.md +1 -112
  34. package/bin/ever-shipped-skills.mjs +1 -0
  35. package/bin/install-constants.mjs +6 -7
  36. package/bin/install.mjs +71 -13
  37. package/bin/install.prune.test.mjs +26 -0
  38. package/bin/install.settings-defaults.test.mjs +60 -33
  39. package/bin/install.test.mjs +36 -4
  40. package/commands/AGENTS.md +23 -0
  41. package/commands/CLAUDE.md +1 -23
  42. package/commands/hook-log-extract.md +3 -3
  43. package/commands/sr-loop.md +9 -5
  44. package/docs/AGENTS.md +32 -0
  45. package/docs/CLAUDE.md +1 -33
  46. package/docs/CODE_RULES.md +1 -1
  47. package/docs/imagegen.md +22 -0
  48. package/docs/references/AGENTS.md +17 -0
  49. package/docs/references/CLAUDE.md +1 -18
  50. package/hooks/AGENTS.md +31 -0
  51. package/hooks/CLAUDE.md +1 -31
  52. package/hooks/_gh_pr_author_swap_utils.py +14 -0
  53. package/hooks/advisory/AGENTS.md +16 -0
  54. package/hooks/advisory/CLAUDE.md +1 -16
  55. package/hooks/blocking/AGENTS.md +123 -0
  56. package/hooks/blocking/CLAUDE.md +1 -148
  57. package/hooks/blocking/claude_md_orphan_file_blocker_parts/AGENTS.md +28 -0
  58. package/hooks/blocking/claude_md_orphan_file_blocker_parts/CLAUDE.md +1 -28
  59. package/hooks/blocking/code_rules_banned_identifiers.py +1 -1
  60. package/hooks/blocking/code_rules_dead_module_constant.py +149 -37
  61. package/hooks/blocking/code_rules_probe_chains.py +6 -2
  62. package/hooks/blocking/config/AGENTS.md +10 -0
  63. package/hooks/blocking/config/CLAUDE.md +1 -22
  64. package/hooks/blocking/conventional_pr_title_gate.py +1 -2
  65. package/hooks/blocking/gh_pr_author_restore.py +7 -2
  66. package/hooks/blocking/intent_only_ending_blocker.py +11 -16
  67. package/hooks/blocking/inventory_intent_records/AGENTS.md +26 -0
  68. package/hooks/blocking/inventory_intent_records/CLAUDE.md +1 -26
  69. package/hooks/blocking/package_inventory_stale_blocker_parts/AGENTS.md +26 -0
  70. package/hooks/blocking/package_inventory_stale_blocker_parts/CLAUDE.md +1 -26
  71. package/hooks/blocking/pii_prevention_blocker_parts/AGENTS.md +24 -0
  72. package/hooks/blocking/pii_prevention_blocker_parts/CLAUDE.md +1 -24
  73. package/hooks/blocking/send_user_file_open_locally_blocker.py +1 -1
  74. package/hooks/blocking/stop_dispatcher.py +4 -4
  75. package/hooks/blocking/tdd_enforcer_parts/AGENTS.md +30 -0
  76. package/hooks/blocking/tdd_enforcer_parts/CLAUDE.md +1 -30
  77. package/hooks/blocking/test_bash_pre_tool_use_dispatcher.py +0 -3
  78. package/hooks/blocking/test_code_rules_enforcer_banned_prefixes.py +1 -1
  79. package/hooks/blocking/test_code_rules_enforcer_dead_module_constant.py +171 -0
  80. package/hooks/blocking/test_code_rules_enforcer_magic_allowlist.py +1 -1
  81. package/hooks/blocking/test_gh_pr_author_restore.py +2 -1
  82. package/hooks/blocking/test_intent_only_ending_blocker.py +4 -0
  83. package/hooks/blocking/test_pre_tool_use_dispatcher.py +6 -7
  84. package/hooks/blocking/test_send_user_file_open_locally_blocker.py +4 -3
  85. package/hooks/blocking/test_shared_stdin_adoption.py +0 -2
  86. package/hooks/diagnostic/AGENTS.md +43 -0
  87. package/hooks/diagnostic/CLAUDE.md +1 -43
  88. package/hooks/diagnostic/hook_log_extractor.py +4 -38
  89. package/hooks/diagnostic/hook_log_stop_wrapper.py +6 -155
  90. package/hooks/diagnostic/migrations/AGENTS.md +16 -0
  91. package/hooks/diagnostic/migrations/CLAUDE.md +1 -16
  92. package/hooks/diagnostic/queries/AGENTS.md +19 -0
  93. package/hooks/diagnostic/queries/CLAUDE.md +1 -19
  94. package/hooks/diagnostic/test_hook_log_extractor.py +10 -23
  95. package/hooks/diagnostic/test_hook_log_stop_wrapper.py +3 -331
  96. package/hooks/git-hooks/AGENTS.md +31 -0
  97. package/hooks/git-hooks/CLAUDE.md +1 -31
  98. package/hooks/git-hooks/git_hooks_constants/AGENTS.md +21 -0
  99. package/hooks/git-hooks/git_hooks_constants/CLAUDE.md +1 -21
  100. package/hooks/git-hooks/git_hooks_constants/__init__.py +4 -12
  101. package/hooks/git-hooks/pre_push.py +49 -118
  102. package/hooks/git-hooks/test_pre_push.py +111 -137
  103. package/hooks/hooks.json +0 -35
  104. package/hooks/hooks_constants/AGENTS.md +104 -0
  105. package/hooks/hooks_constants/CLAUDE.md +1 -113
  106. package/hooks/hooks_constants/bash_pre_tool_use_dispatcher_constants.py +0 -11
  107. package/hooks/hooks_constants/convergence_branch_constants.py +0 -1
  108. package/hooks/hooks_constants/fable_spawn_gate_constants.py +3 -4
  109. package/hooks/hooks_constants/hook_log_extractor_constants.py +1 -2
  110. package/hooks/hooks_constants/pre_tool_use_dispatcher_constants.py +0 -8
  111. package/hooks/hooks_constants/send_user_file_open_locally_blocker_constants.py +1 -6
  112. package/hooks/hooks_constants/stop_dispatcher_constants.py +0 -1
  113. package/hooks/hooks_constants/task_list_loop_starter_constants.py +4 -3
  114. package/hooks/hooks_constants/test_bash_pre_tool_use_dispatcher_constants.py +1 -26
  115. package/hooks/hooks_constants/test_pre_tool_use_dispatcher_constants.py +0 -5
  116. package/hooks/hooks_constants/test_stop_dispatcher_constants.py +0 -1
  117. package/hooks/hooks_constants/working_style_prompt_constants.py +29 -20
  118. package/hooks/lifecycle/AGENTS.md +18 -0
  119. package/hooks/lifecycle/CLAUDE.md +1 -20
  120. package/hooks/observability/AGENTS.md +20 -0
  121. package/hooks/observability/CLAUDE.md +1 -20
  122. package/hooks/session/AGENTS.md +33 -0
  123. package/hooks/session/CLAUDE.md +1 -33
  124. package/hooks/session/gh_pr_author_session_cleanup.py +7 -2
  125. package/hooks/session/task_list_loop_starter.py +3 -3
  126. package/hooks/session/test_gh_pr_author_session_cleanup.py +2 -1
  127. package/hooks/session/test_task_list_loop_starter.py +10 -2
  128. package/hooks/session/test_working_style_prompt.py +9 -4
  129. package/hooks/validation/AGENTS.md +20 -0
  130. package/hooks/validation/CLAUDE.md +1 -20
  131. package/hooks/validators/AGENTS.md +51 -0
  132. package/hooks/validators/CLAUDE.md +1 -51
  133. package/hooks/validators/health_check.py +52 -19
  134. package/hooks/validators/python_style_checks.py +1 -1
  135. package/hooks/validators/test_health_check.py +112 -27
  136. package/hooks/workflow/AGENTS.md +16 -0
  137. package/hooks/workflow/CLAUDE.md +1 -16
  138. package/installable-surfaces.manifest.json +1 -0
  139. package/output-styles/AGENTS.md +15 -0
  140. package/output-styles/CLAUDE.md +1 -15
  141. package/package.json +2 -1
  142. package/rules/AGENTS.md +61 -0
  143. package/rules/CLAUDE.md +1 -63
  144. package/rules/code-standards.md +5 -9
  145. package/rules/doc-prose-cuts.md +1 -1
  146. package/rules/gh-cli-conventions.md +0 -1
  147. package/rules/git-workflow.md +1 -3
  148. package/scripts/AGENTS.md +62 -0
  149. package/scripts/CLAUDE.md +1 -63
  150. package/scripts/_code_review_test_support.py +0 -95
  151. package/scripts/codex_compat_materializer.py +4 -0
  152. package/scripts/dev_env_scripts_constants/AGENTS.md +21 -0
  153. package/scripts/dev_env_scripts_constants/CLAUDE.md +1 -21
  154. package/scripts/dev_env_scripts_constants/code_review_constants.py +9 -98
  155. package/scripts/dev_env_scripts_constants/test_code_review_constants.py +1 -44
  156. package/scripts/invoke_code_review.py +8 -451
  157. package/scripts/sync_to_cursor/AGENTS.md +23 -0
  158. package/scripts/sync_to_cursor/CLAUDE.md +1 -23
  159. package/scripts/test_invoke_code_review.py +5 -61
  160. package/scripts/test_invoke_code_review_cli.py +1 -45
  161. package/scripts/test_invoke_code_review_contract.py +1 -118
  162. package/scripts/test_validate_instruction_pairs.py +90 -0
  163. package/scripts/test_verify_installable_package.py +5 -1
  164. package/scripts/tests/AGENTS.md +33 -0
  165. package/scripts/tests/CLAUDE.md +1 -33
  166. package/scripts/tests/test_codex_compat_materializer.py +36 -1
  167. package/scripts/validate_instruction_pairs.py +183 -0
  168. package/settings.json +1 -10
  169. package/skills/AGENTS.md +72 -0
  170. package/skills/CLAUDE.md +1 -64
  171. package/skills/_shared/AGENTS.md +44 -0
  172. package/skills/_shared/CLAUDE.md +1 -44
  173. package/skills/_shared/advisor/AGENTS.md +9 -0
  174. package/skills/_shared/advisor/CLAUDE.md +1 -9
  175. package/skills/_shared/pr-loop/AGENTS.md +50 -0
  176. package/skills/_shared/pr-loop/CLAUDE.md +1 -50
  177. package/skills/_shared/pr-loop/prompts/AGENTS.md +9 -0
  178. package/skills/_shared/pr-loop/prompts/CLAUDE.md +1 -9
  179. package/skills/_shared/pr-loop/scripts/AGENTS.md +35 -0
  180. package/skills/_shared/pr-loop/scripts/CLAUDE.md +1 -35
  181. package/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/AGENTS.md +24 -0
  182. package/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/CLAUDE.md +1 -24
  183. package/skills/anthropic-plan/AGENTS.md +34 -0
  184. package/skills/anthropic-plan/CLAUDE.md +1 -34
  185. package/skills/anthropic-plan/scripts/AGENTS.md +11 -0
  186. package/skills/anthropic-plan/scripts/CLAUDE.md +1 -11
  187. package/skills/anthropic-plan/scripts/anthropic_plan_scripts_constants/AGENTS.md +16 -0
  188. package/skills/anthropic-plan/scripts/anthropic_plan_scripts_constants/CLAUDE.md +1 -16
  189. package/skills/anthropic-plan/templates/AGENTS.md +13 -0
  190. package/skills/anthropic-plan/templates/CLAUDE.md +1 -13
  191. package/skills/anthropic-plan/workflow/AGENTS.md +14 -0
  192. package/skills/anthropic-plan/workflow/CLAUDE.md +1 -14
  193. package/skills/auditing-claude-config/AGENTS.md +21 -0
  194. package/skills/auditing-claude-config/CLAUDE.md +1 -21
  195. package/skills/autoconverge/AGENTS.md +36 -0
  196. package/skills/autoconverge/CLAUDE.md +1 -36
  197. package/skills/autoconverge/reference/AGENTS.md +16 -0
  198. package/skills/autoconverge/reference/CLAUDE.md +1 -16
  199. package/skills/autoconverge/reference/convergence.md +7 -7
  200. package/skills/autoconverge/reference/gotchas.md +3 -10
  201. package/skills/autoconverge/workflow/AGENTS.md +26 -0
  202. package/skills/autoconverge/workflow/CLAUDE.md +1 -26
  203. package/skills/autoconverge/workflow/autoconverge_report_constants/AGENTS.md +16 -0
  204. package/skills/autoconverge/workflow/autoconverge_report_constants/CLAUDE.md +1 -16
  205. package/skills/autoconverge/workflow/converge.contract.test.mjs +53 -1388
  206. package/skills/autoconverge/workflow/converge.copilot-gate.test.mjs +4 -3
  207. package/skills/autoconverge/workflow/converge.fix-recovery.test.mjs +33 -493
  208. package/skills/autoconverge/workflow/converge.merge-conflict.test.mjs +15 -97
  209. package/skills/autoconverge/workflow/converge.mjs +201 -238
  210. package/skills/autoconverge/workflow/converge.precatch.test.mjs +1 -1
  211. package/skills/bugteam/AGENTS.md +30 -0
  212. package/skills/bugteam/CLAUDE.md +1 -30
  213. package/skills/bugteam/CONSTRAINTS.md +1 -1
  214. package/skills/bugteam/SKILL.md +9 -0
  215. package/skills/bugteam/reference/AGENTS.md +20 -0
  216. package/skills/bugteam/reference/CLAUDE.md +1 -20
  217. package/skills/bugteam/reference/audit-and-teammates.md +10 -6
  218. package/skills/bugteam/reference/obstacles/AGENTS.md +24 -0
  219. package/skills/bugteam/reference/obstacles/CLAUDE.md +1 -24
  220. package/skills/bugteam/scripts/AGENTS.md +30 -0
  221. package/skills/bugteam/scripts/CLAUDE.md +1 -30
  222. package/skills/bugteam/scripts/bugteam_scripts_constants/AGENTS.md +18 -0
  223. package/skills/bugteam/scripts/bugteam_scripts_constants/CLAUDE.md +1 -18
  224. package/skills/bugteam/test_skill_additions.py +9 -0
  225. package/skills/closeout/reference/handoff-prompt-template.md +1 -1
  226. package/skills/codex-review/AGENTS.md +46 -0
  227. package/skills/codex-review/CLAUDE.md +1 -46
  228. package/skills/codex-review/reference/AGENTS.md +15 -0
  229. package/skills/codex-review/reference/CLAUDE.md +1 -15
  230. package/skills/codex-review/scripts/codex_review_scripts_constants/AGENTS.md +18 -0
  231. package/skills/codex-review/scripts/codex_review_scripts_constants/CLAUDE.md +1 -18
  232. package/skills/codex-review/test_skill_scaffold.py +3 -3
  233. package/skills/comments/SKILL.md +65 -0
  234. package/skills/copilot-review/AGENTS.md +18 -0
  235. package/skills/copilot-review/CLAUDE.md +1 -18
  236. package/skills/descriptions/SKILL.md +51 -0
  237. package/skills/emergencies/SKILL.md +42 -0
  238. package/skills/everything-search/AGENTS.md +17 -0
  239. package/skills/everything-search/CLAUDE.md +1 -17
  240. package/skills/fresh-branch/AGENTS.md +14 -0
  241. package/skills/fresh-branch/CLAUDE.md +1 -14
  242. package/skills/grok-spawn/AGENTS.md +28 -0
  243. package/skills/grok-spawn/CLAUDE.md +1 -28
  244. package/skills/orchestrator/SKILL.md +2 -4
  245. package/skills/plan-to-pr/SKILL.md +6 -7
  246. package/skills/plan-to-pr/reference/final-validation-tasks.md +1 -1
  247. package/skills/plan-to-pr/reference/process-inventory.md +2 -2
  248. package/skills/plan-to-pr/reference/review-loop.md +2 -2
  249. package/skills/plan-to-pr/reference/run-record.schema.json +1 -1
  250. package/skills/plan-to-pr/reference/task-seeds.md +1 -1
  251. package/skills/plan-to-pr/reference/task-ticket.md +3 -4
  252. package/skills/plan-to-pr/scripts/config/constants.py +1 -2
  253. package/skills/plan-to-pr/scripts/test_validate_protocol.py +1 -1
  254. package/skills/plan-to-pr/test_skill_contract.py +2 -2
  255. package/skills/pr-converge/AGENTS.md +32 -0
  256. package/skills/pr-converge/CLAUDE.md +1 -32
  257. package/skills/pr-converge/SKILL.md +13 -16
  258. package/skills/pr-converge/pr_converge_skill_constants/AGENTS.md +26 -0
  259. package/skills/pr-converge/pr_converge_skill_constants/CLAUDE.md +1 -26
  260. package/skills/pr-converge/reference/AGENTS.md +28 -0
  261. package/skills/pr-converge/reference/CLAUDE.md +1 -28
  262. package/skills/pr-converge/reference/obstacles/AGENTS.md +23 -0
  263. package/skills/pr-converge/reference/obstacles/CLAUDE.md +1 -23
  264. package/skills/pr-converge/reference/progress-checklist.md +6 -5
  265. package/skills/pr-converge/reference/state-schema.md +1 -27
  266. package/skills/pr-converge/scripts/AGENTS.md +46 -0
  267. package/skills/pr-converge/scripts/CLAUDE.md +1 -46
  268. package/skills/pr-converge/scripts/pr_converge_scripts_constants/AGENTS.md +18 -0
  269. package/skills/pr-converge/scripts/pr_converge_scripts_constants/CLAUDE.md +1 -18
  270. package/skills/pr-converge/workflows/AGENTS.md +16 -0
  271. package/skills/pr-converge/workflows/CLAUDE.md +1 -16
  272. package/skills/pr-loop-cloud-transport/SKILL.md +1 -1
  273. package/skills/pr-loop-cloud-transport/reference/identity-and-hooks.md +3 -3
  274. package/skills/pr-loop-lifecycle/SKILL.md +1 -1
  275. package/skills/pr-loop-lifecycle/reference/teardown-publish-permissions.md +1 -1
  276. package/skills/prototype/SKILL.md +4 -4
  277. package/skills/prototype/reference/honest-limitations.md +5 -5
  278. package/skills/prototype/reference/promotion-tasks.md +2 -2
  279. package/skills/prototype/workflows/promotion.md +4 -6
  280. package/skills/rebase/AGENTS.md +32 -0
  281. package/skills/rebase/CLAUDE.md +1 -32
  282. package/skills/recall/AGENTS.md +30 -0
  283. package/skills/recall/CLAUDE.md +1 -30
  284. package/skills/remember/AGENTS.md +31 -0
  285. package/skills/remember/CLAUDE.md +1 -31
  286. package/skills/reviews/SKILL.md +85 -0
  287. package/skills/session-log/AGENTS.md +32 -0
  288. package/skills/session-log/CLAUDE.md +1 -32
  289. package/skills/session-tidy/AGENTS.md +36 -0
  290. package/skills/session-tidy/CLAUDE.md +1 -36
  291. package/skills/skill-builder/AGENTS.md +49 -0
  292. package/skills/skill-builder/CLAUDE.md +1 -49
  293. package/skills/skill-builder/references/AGENTS.md +25 -0
  294. package/skills/skill-builder/references/CLAUDE.md +1 -25
  295. package/skills/skill-builder/references/deterministic-elements.md +1 -1
  296. package/skills/skill-builder/templates/AGENTS.md +14 -0
  297. package/skills/skill-builder/templates/CLAUDE.md +1 -14
  298. package/skills/skill-builder/workflows/AGENTS.md +19 -0
  299. package/skills/skill-builder/workflows/CLAUDE.md +1 -19
  300. package/skills/small-cl/SKILL.md +52 -0
  301. package/skills/task-build/AGENTS.md +29 -0
  302. package/skills/task-build/CLAUDE.md +1 -29
  303. package/skills/update/AGENTS.md +38 -0
  304. package/skills/update/CLAUDE.md +1 -38
  305. package/system-prompts/AGENTS.md +17 -0
  306. package/system-prompts/CLAUDE.md +1 -17
  307. package/system-prompts/software-engineer.xml +3 -3
  308. package/agents/code-verifier.md +0 -74
  309. package/docs/PR_DESCRIPTION_GUIDE.md +0 -157
  310. package/docs/references/code-review-enforcement.md +0 -132
  311. package/hooks/blocking/code_review_enforcement_config_bootstrap.py +0 -53
  312. package/hooks/blocking/code_review_gate_deny.py +0 -74
  313. package/hooks/blocking/code_review_pr_create_gate.py +0 -198
  314. package/hooks/blocking/code_review_push_gate.py +0 -145
  315. package/hooks/blocking/code_review_stamp_directory_write_blocker.py +0 -348
  316. package/hooks/blocking/code_review_stamp_store.py +0 -233
  317. package/hooks/blocking/code_review_stamp_write_blocker_parts/__init__.py +0 -7
  318. package/hooks/blocking/code_review_stamp_write_blocker_parts/conftest.py +0 -15
  319. package/hooks/blocking/code_review_stamp_write_blocker_parts/obfuscated_stamp_path_reference.py +0 -212
  320. package/hooks/blocking/code_review_stamp_write_blocker_parts/split_directory_change_into_stamp.py +0 -138
  321. package/hooks/blocking/code_review_stamp_write_blocker_parts/test_obfuscated_stamp_path_reference.py +0 -49
  322. package/hooks/blocking/code_review_stamp_write_blocker_parts/test_split_directory_change_into_stamp.py +0 -38
  323. package/hooks/blocking/code_verifier_spawn_preflight_gate.py +0 -483
  324. package/hooks/blocking/config/code_review_enforcement_constants.py +0 -143
  325. package/hooks/blocking/config/test_code_review_enforcement_constants.py +0 -166
  326. package/hooks/blocking/config/verified_commit_constants.py +0 -160
  327. package/hooks/blocking/config/verified_commit_context_constants.py +0 -21
  328. package/hooks/blocking/config/verified_commit_gate_output_constants.py +0 -14
  329. package/hooks/blocking/conftest.py +0 -123
  330. package/hooks/blocking/convergence_gate_blocker.py +0 -310
  331. package/hooks/blocking/pr_converge_bugteam_enforcer.py +0 -170
  332. package/hooks/blocking/pr_description_body_audit.py +0 -148
  333. package/hooks/blocking/pr_description_command_parser.py +0 -237
  334. package/hooks/blocking/pr_description_enforcer.py +0 -227
  335. package/hooks/blocking/pr_description_pr_number.py +0 -155
  336. package/hooks/blocking/pr_description_proof_of_work.py +0 -385
  337. package/hooks/blocking/pr_description_readability.py +0 -364
  338. package/hooks/blocking/reviewer_spawn_gate.py +0 -182
  339. package/hooks/blocking/test_code_review_enforcement_config_bootstrap.py +0 -62
  340. package/hooks/blocking/test_code_review_gate_deny.py +0 -54
  341. package/hooks/blocking/test_code_review_pr_create_gate.py +0 -199
  342. package/hooks/blocking/test_code_review_push_gate.py +0 -205
  343. package/hooks/blocking/test_code_review_stamp_directory_write_blocker.py +0 -199
  344. package/hooks/blocking/test_code_review_stamp_store.py +0 -205
  345. package/hooks/blocking/test_code_verifier_spawn_preflight_gate.py +0 -710
  346. package/hooks/blocking/test_code_verifier_tools_contract.py +0 -28
  347. package/hooks/blocking/test_convergence_gate_blocker.py +0 -428
  348. package/hooks/blocking/test_pr_converge_bugteam_enforcer.py +0 -311
  349. package/hooks/blocking/test_pr_converge_bugteam_enforcer_state_tolerance.py +0 -184
  350. package/hooks/blocking/test_pr_description_enforcer.py +0 -221
  351. package/hooks/blocking/test_pr_description_enforcer_body_audit.py +0 -247
  352. package/hooks/blocking/test_pr_description_enforcer_body_rules.py +0 -493
  353. package/hooks/blocking/test_pr_description_enforcer_command_parser.py +0 -366
  354. package/hooks/blocking/test_pr_description_enforcer_pr_number.py +0 -159
  355. package/hooks/blocking/test_pr_description_enforcer_proof_gate.py +0 -175
  356. package/hooks/blocking/test_pr_description_enforcer_readability.py +0 -443
  357. package/hooks/blocking/test_pr_description_proof_of_work.py +0 -313
  358. package/hooks/blocking/test_reviewer_spawn_gate.py +0 -230
  359. package/hooks/blocking/test_verdict_directory_write_blocker.py +0 -804
  360. package/hooks/blocking/test_verification_verdict_store.py +0 -974
  361. package/hooks/blocking/test_verified_commit_config_bootstrap.py +0 -67
  362. package/hooks/blocking/test_verified_commit_docs_delta.py +0 -176
  363. package/hooks/blocking/test_verified_commit_gate.py +0 -581
  364. package/hooks/blocking/test_verified_commit_gate_additional_context.py +0 -134
  365. package/hooks/blocking/test_verified_commit_message_accuracy_blocker.py +0 -131
  366. package/hooks/blocking/test_verifier_verdict_minter.py +0 -299
  367. package/hooks/blocking/tests/test_verified_commit_gate.py +0 -41
  368. package/hooks/blocking/verdict_directory_write_blocker.py +0 -687
  369. package/hooks/blocking/verification_verdict_store.py +0 -1039
  370. package/hooks/blocking/verified_commit_config_bootstrap.py +0 -63
  371. package/hooks/blocking/verified_commit_gate.py +0 -113
  372. package/hooks/blocking/verified_commit_gate_parts/CLAUDE.md +0 -28
  373. package/hooks/blocking/verified_commit_gate_parts/__init__.py +0 -1
  374. package/hooks/blocking/verified_commit_gate_parts/command_tokenization.py +0 -174
  375. package/hooks/blocking/verified_commit_gate_parts/deny_payload.py +0 -53
  376. package/hooks/blocking/verified_commit_gate_parts/deny_reason.py +0 -80
  377. package/hooks/blocking/verified_commit_gate_parts/directory_resolution.py +0 -170
  378. package/hooks/blocking/verified_commit_gate_parts/gated_invocations.py +0 -217
  379. package/hooks/blocking/verified_commit_gate_parts/tests/conftest.py +0 -10
  380. package/hooks/blocking/verified_commit_gate_parts/tests/test_command_tokenization.py +0 -94
  381. package/hooks/blocking/verified_commit_gate_parts/tests/test_deny_payload.py +0 -17
  382. package/hooks/blocking/verified_commit_gate_parts/tests/test_deny_reason.py +0 -38
  383. package/hooks/blocking/verified_commit_gate_parts/tests/test_directory_resolution.py +0 -71
  384. package/hooks/blocking/verified_commit_gate_parts/tests/test_gated_invocations.py +0 -96
  385. package/hooks/blocking/verified_commit_message_accuracy_blocker.py +0 -167
  386. package/hooks/blocking/verifier_verdict_minter.py +0 -280
  387. package/hooks/hooks_constants/code_verifier_spawn_preflight_gate_constants.py +0 -64
  388. package/hooks/hooks_constants/convergence_gate_blocker_constants.py +0 -53
  389. package/hooks/hooks_constants/pr_converge_bugteam_enforcer_constants.py +0 -55
  390. package/hooks/hooks_constants/pr_converge_bugteam_enforcer_state.py +0 -67
  391. package/hooks/hooks_constants/pr_description_enforcer_constants.py +0 -167
  392. package/hooks/hooks_constants/pr_description_proof_of_work_constants.py +0 -107
  393. package/hooks/hooks_constants/reviewer_spawn_gate_constants.py +0 -41
  394. package/hooks/hooks_constants/test_pr_description_enforcer_constants.py +0 -292
  395. package/hooks/lifecycle/pr_converge_bugteam_skill_tracker.py +0 -198
  396. package/hooks/lifecycle/test_pr_converge_bugteam_skill_tracker.py +0 -283
  397. package/rules/proof-of-work-pr-comments.md +0 -22
  398. package/rules/verified-commit-gate-skip.md +0 -4
  399. package/scripts/Show-Asset.ps1 +0 -106
@@ -0,0 +1,18 @@
1
+ # copilot-review
2
+
3
+ Spawns a background subagent that polls the GitHub Copilot reviewer on the current PR, fixes unaddressed findings, and re-requests review each tick until the PR is clean. Triggered by `/copilot-review`, `watch copilot`, `babysit copilot review`, or `keep re-requesting copilot`.
4
+
5
+ ## Purpose
6
+
7
+ The main session gathers PR context (number, HEAD SHA, owner/repo, branch), spawns a self-terminating background subagent with a fully filled-in prompt, and returns control at once. The subagent loops on a 6-minute `ScheduleWakeup` cadence: fetch Copilot's latest review, TDD-fix any inline findings, push a commit, reply inline, resolve each addressed thread, re-request review. It stops on convergence, a persistent blocker, `TaskStop`, three consecutive ticks with no Copilot review at the current HEAD, or after 20 ticks.
8
+
9
+ ## Key files
10
+
11
+ | File | Purpose |
12
+ |---|---|
13
+ | `SKILL.md` | Four-step orchestration (opt-out check, gather PR context, spawn subagent, report to user), fix protocol, stop conditions, and ground rules (one commit per tick, honor hooks, preserve draft state, use `copilot-pull-request-reviewer[bot]` with the `[bot]` suffix). |
14
+ | `templates/subagent-prompt.md` | The background watcher prompt Step 3 passes to the subagent word for word, with placeholders for PR number, owner, repo, branch, and HEAD SHA. |
15
+
16
+ ## Environment opt-out
17
+
18
+ Set `CLAUDE_REVIEWS_DISABLED=copilot` to disable. The skill checks this before spawning anything.
@@ -1,18 +1 @@
1
- # copilot-review
2
-
3
- Spawns a background subagent that polls the GitHub Copilot reviewer on the current PR, fixes unaddressed findings, and re-requests review each tick until the PR is clean. Triggered by `/copilot-review`, `watch copilot`, `babysit copilot review`, or `keep re-requesting copilot`.
4
-
5
- ## Purpose
6
-
7
- The main session gathers PR context (number, HEAD SHA, owner/repo, branch), spawns a self-terminating background subagent with a fully filled-in prompt, and returns control at once. The subagent loops on a 6-minute `ScheduleWakeup` cadence: fetch Copilot's latest review, TDD-fix any inline findings, push a commit, reply inline, resolve each addressed thread, re-request review. It stops on convergence, a persistent blocker, `TaskStop`, three consecutive ticks with no Copilot review at the current HEAD, or after 20 ticks.
8
-
9
- ## Key files
10
-
11
- | File | Purpose |
12
- |---|---|
13
- | `SKILL.md` | Four-step orchestration (opt-out check, gather PR context, spawn subagent, report to user), fix protocol, stop conditions, and ground rules (one commit per tick, honor hooks, preserve draft state, use `copilot-pull-request-reviewer[bot]` with the `[bot]` suffix). |
14
- | `templates/subagent-prompt.md` | The background watcher prompt Step 3 passes to the subagent word for word, with placeholders for PR number, owner, repo, branch, and HEAD SHA. |
15
-
16
- ## Environment opt-out
17
-
18
- Set `CLAUDE_REVIEWS_DISABLED=copilot` to disable. The skill checks this before spawning anything.
1
+ @AGENTS.md
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: descriptions
3
+ description: >-
4
+ Draft or revise a pull-request description. Use when a user asks for a "PR
5
+ description", "pull request summary", or "change description".
6
+ ---
7
+
8
+ # Pull Request Description Guide
9
+
10
+ ## When to Use This Guide
11
+
12
+ Use this guide to prepare or revise the written context for a pull request. A
13
+ description explains the change to reviewers and future readers; it records the
14
+ intent and evidence that source code alone cannot express.
15
+
16
+ ## Required Content
17
+
18
+ Start with a short, specific summary line. Follow it with the information needed
19
+ to understand the change:
20
+
21
+ - The problem, motivation, and affected users or systems.
22
+ - The implemented approach and meaningful design decisions.
23
+ - Verification performed, including test commands and observed results.
24
+ - Risks, migrations, compatibility effects, and rollback or recovery context.
25
+ - Related issues, design records, and scoped follow-up work.
26
+
27
+ Use durable prose for every essential fact when linked material has restricted
28
+ access or a limited retention period.
29
+
30
+ ## Description Shape
31
+
32
+ ```text
33
+ Summarize the delivered change.
34
+
35
+ Explain the problem and the approach.
36
+
37
+ Verification: <commands and results>
38
+ Risk: <migration, compatibility, or recovery context>
39
+ ```
40
+
41
+ Keep tags short and use them according to the repository's established format.
42
+
43
+ ## Reviewing a Description
44
+
45
+ Compare the description with the changed files and the review findings. Keep the
46
+ summary, scope, verification, and risk information aligned with the pull
47
+ request's current contents.
48
+
49
+ Use [reviews](../reviews/SKILL.md#review-workflow) for substantive code
50
+ assessment and [small-cl](../small-cl/SKILL.md#what-a-focused-pull-request-contains)
51
+ to establish a focused scope.
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: emergencies
3
+ description: >-
4
+ Classify an urgent production change and guide its focused emergency review.
5
+ Use when a user asks about an "emergency hotfix", "production incident", or "urgent security fix".
6
+ ---
7
+
8
+ # Emergency Review Guide
9
+
10
+ ## Emergency Classification
11
+
12
+ Use emergency handling for a narrow change that mitigates an active, severe
13
+ consequence:
14
+
15
+ - A production failure materially affecting users or a critical service.
16
+ - An active security or legal exposure requiring prompt mitigation.
17
+ - A contractual, hardware, or market deadline where a missed delivery causes a
18
+ severe external consequence.
19
+
20
+ Record the incident, affected system, immediate consequence, and the proposed
21
+ mitigation before assessing the change.
22
+
23
+ ## Standard Priority
24
+
25
+ Use the [review guide](../reviews/SKILL.md#review-workflow) for feature
26
+ schedules, end-of-day timing, ordinary delivery targets, and build remediation.
27
+ Use a focused rollback or remediation change when it restores service safely.
28
+
29
+ ## While the Incident Is Active
30
+
31
+ Keep the change as small as the mitigation permits. Evaluate whether it resolves
32
+ the incident, introduces a new immediate risk, and has sufficient validation for
33
+ the affected path.
34
+
35
+ State the incident context, verification performed, observed result, and any
36
+ remaining recovery work in the pull request. Use the [comment guide](../comments/SKILL.md#writing-useful-review-comments)
37
+ to communicate required mitigation work clearly.
38
+
39
+ ## Follow-up Assessment
40
+
41
+ After service is stable, use the [review guide](../reviews/SKILL.md#evaluation-criteria)
42
+ for the broader maintainability, testing, documentation, and prevention work.
@@ -0,0 +1,17 @@
1
+ # everything-search
2
+
3
+ Fast file search on Windows using the Everything (voidtools) `es.exe` command-line tool. Triggered by `find files`, `search for files`, `locate files`, or any request to use Everything.
4
+
5
+ ## Purpose
6
+
7
+ Searches files by extension, name, date modified, size, or path against Everything's real-time index. Returns results instantly regardless of drive size. The skill covers the correct `es.exe` path, search operator syntax, multi-extension patterns, output options, and the junction/symlink note (Everything indexes real NTFS paths only — not junctions or mapped drives).
8
+
9
+ ## Key file
10
+
11
+ | File | Purpose |
12
+ |---|---|
13
+ | `SKILL.md` | Command syntax for WSL and Windows paths, all search operators (`ext:`, `dm:`, `size:`, wildcards, OR/AND/NOT), output flags (`-sort`, `-n`, `-size`), worked examples, and a junction/drive-mapping lookup table. |
14
+
15
+ ## When to use
16
+
17
+ Use for file-system searches by name, extension, size, or date. For content searches use Grep. If a path is a junction or mapped drive and Everything returns nothing, translate to the real NTFS path or fall back to the Glob tool.
@@ -1,17 +1 @@
1
- # everything-search
2
-
3
- Fast file search on Windows using the Everything (voidtools) `es.exe` command-line tool. Triggered by `find files`, `search for files`, `locate files`, or any request to use Everything.
4
-
5
- ## Purpose
6
-
7
- Searches files by extension, name, date modified, size, or path against Everything's real-time index. Returns results instantly regardless of drive size. The skill covers the correct `es.exe` path, search operator syntax, multi-extension patterns, output options, and the junction/symlink note (Everything indexes real NTFS paths only — not junctions or mapped drives).
8
-
9
- ## Key file
10
-
11
- | File | Purpose |
12
- |---|---|
13
- | `SKILL.md` | Command syntax for WSL and Windows paths, all search operators (`ext:`, `dm:`, `size:`, wildcards, OR/AND/NOT), output flags (`-sort`, `-n`, `-size`), worked examples, and a junction/drive-mapping lookup table. |
14
-
15
- ## When to use
16
-
17
- Use for file-system searches by name, extension, size, or date. For content searches use Grep. If a path is a junction or mapped drive and Everything returns nothing, translate to the real NTFS path or fall back to the Glob tool.
1
+ @AGENTS.md
@@ -0,0 +1,14 @@
1
+ # fresh-branch
2
+
3
+ Creates a new branch from fresh-fetched `origin/main` inside an isolated worktree under a configured root. Default: `<repo-root>/.claude/worktrees/<agent>/<branch-name>`. Optional absolute `--worktree-root` relocates the root (agent and branch still nest under it). Relative roots and path escape fail closed. Does not push, open a PR, or run `checkout -b` in the caller tree.
4
+
5
+ ## Key files
6
+
7
+ | File | Purpose |
8
+ |---|---|
9
+ | `SKILL.md` | Phases, checklist, configured-root contract, execute-vs-read for the CLI, gotchas |
10
+ | `scripts/create_fresh_branch.py` | Deterministic CLI: resolve configured root (fail closed before fetch), fetch base, `git worktree add -b`, JSON stdout |
11
+ | `scripts/fresh_branch_git_commands.py` | Git command helpers: fetch, ref checks, `git worktree add -b --no-track` |
12
+ | `scripts/test_create_fresh_branch.py` | Behavioral tests with temporary git repos (default root, explicit root, escape, collisions) |
13
+ | `scripts/test_fresh_branch_git_commands.py` | Behavioral tests for the git command helpers |
14
+ | `scripts/fresh_branch_scripts_constants/` | Constants package (`fresh_branch_cli_constants`) for CLI flags and error strings |
@@ -1,14 +1 @@
1
- # fresh-branch
2
-
3
- Creates a new branch from fresh-fetched `origin/main` inside an isolated worktree under a configured root. Default: `<repo-root>/.claude/worktrees/<agent>/<branch-name>`. Optional absolute `--worktree-root` relocates the root (agent and branch still nest under it). Relative roots and path escape fail closed. Does not push, open a PR, or run `checkout -b` in the caller tree.
4
-
5
- ## Key files
6
-
7
- | File | Purpose |
8
- |---|---|
9
- | `SKILL.md` | Phases, checklist, configured-root contract, execute-vs-read for the CLI, gotchas |
10
- | `scripts/create_fresh_branch.py` | Deterministic CLI: resolve configured root (fail closed before fetch), fetch base, `git worktree add -b`, JSON stdout |
11
- | `scripts/fresh_branch_git_commands.py` | Git command helpers: fetch, ref checks, `git worktree add -b --no-track` |
12
- | `scripts/test_create_fresh_branch.py` | Behavioral tests with temporary git repos (default root, explicit root, escape, collisions) |
13
- | `scripts/test_fresh_branch_git_commands.py` | Behavioral tests for the git command helpers |
14
- | `scripts/fresh_branch_scripts_constants/` | Constants package (`fresh_branch_cli_constants`) for CLI flags and error strings |
1
+ @AGENTS.md
@@ -0,0 +1,28 @@
1
+ # grok-spawn
2
+
3
+ **Trigger:** `/grok-spawn`, "spawn grok workers", "grok worker fleet", "run this with grok workers", "headless grok batch".
4
+
5
+ Orchestrator playbook for fleets of headless grok CLI workers. Composes
6
+ `grok_worker_preflight.py` and `spawn_grok_batch.py` by name. Holds no spawn
7
+ logic of its own. The calling session verifies results and owns every commit,
8
+ push, and GitHub post.
9
+
10
+ ## Subdirectories
11
+
12
+ | Directory | Role |
13
+ |---|---|
14
+ | `reference/` | Prompt-part templates and tool-profile flag docs the hub cites on demand. |
15
+
16
+ ## Key files
17
+
18
+ | File | Role |
19
+ |---|---|
20
+ | `SKILL.md` | Entry protocol: when to use, gotchas, preflight → batch spec → launch → collect → verify. |
21
+ | `reference/worker-briefs.md` | Readonly investigation brief, build brief (edits and tests only), report contract. |
22
+ | `reference/flag-profiles.md` | Readonly vs build flag sets, shared flags, leader-socket and stagger rules, `--agent` note. |
23
+
24
+ ## Entry point
25
+
26
+ No skill-local scripts. Runtime lives in `$HOME/.claude/scripts/`
27
+ (`grok_worker_preflight.py`, `spawn_grok_batch.py`, `grok_headless_runner.py`)
28
+ after install. Constants live in `scripts/dev_env_scripts_constants/`.
@@ -1,28 +1 @@
1
- # grok-spawn
2
-
3
- **Trigger:** `/grok-spawn`, "spawn grok workers", "grok worker fleet", "run this with grok workers", "headless grok batch".
4
-
5
- Orchestrator playbook for fleets of headless grok CLI workers. Composes
6
- `grok_worker_preflight.py` and `spawn_grok_batch.py` by name. Holds no spawn
7
- logic of its own. The calling session verifies results and owns every commit,
8
- push, and GitHub post.
9
-
10
- ## Subdirectories
11
-
12
- | Directory | Role |
13
- |---|---|
14
- | `reference/` | Prompt-part templates and tool-profile flag docs the hub cites on demand. |
15
-
16
- ## Key files
17
-
18
- | File | Role |
19
- |---|---|
20
- | `SKILL.md` | Entry protocol: when to use, gotchas, preflight → batch spec → launch → collect → verify. |
21
- | `reference/worker-briefs.md` | Readonly investigation brief, build brief (edits and tests only), report contract. |
22
- | `reference/flag-profiles.md` | Readonly vs build flag sets, shared flags, leader-socket and stagger rules, `--agent` note. |
23
-
24
- ## Entry point
25
-
26
- No skill-local scripts. Runtime lives in `$HOME/.claude/scripts/`
27
- (`grok_worker_preflight.py`, `spawn_grok_batch.py`, `grok_headless_runner.py`)
28
- after install. Constants live in `scripts/dev_env_scripts_constants/`.
1
+ @AGENTS.md
@@ -232,7 +232,7 @@ workflow resume is available.
232
232
  | Work | Agent type | Model |
233
233
  |---|---|---|
234
234
  | Feature, bug, and refactor coding | `clean-coder` | `sonnet` on a Claude host; the sonnet-equivalent id the worker-model resolver prints on a third-party host |
235
- | Verification passes | `code-verifier` | `sonnet` on a Claude host; the sonnet-equivalent id the worker-model resolver prints on a third-party host |
235
+ | Review and verification | `code-quality-agent` | `sonnet` on a Claude host; the sonnet-equivalent id the worker-model resolver prints on a third-party host |
236
236
  | Script runs, GitHub posting, and backfill driving | `general-purpose` runner | `sonnet` on a Claude host; the sonnet-equivalent id the worker-model resolver prints on a third-party host |
237
237
  | PR descriptions | `pr-description-writer` | `haiku`, with file-list grounding check |
238
238
  | Fan-out searches and checklist verification reads | `Explore` | `haiku`; use `sonnet` when judgment-heavy |
@@ -265,8 +265,7 @@ Routing rules:
265
265
  system, with no second one.
266
266
  - Resume a warm workflow agent before creating a new workflow run when
267
267
  the warm agent holds the relevant context.
268
- - `clean-coder` owns code edits. `code-verifier` owns verification. The
269
- same workflow agent never grades work it wrote.
268
+ - Review and verification workflows apply the [review guide](../reviews/SKILL.md#review-workflow).
270
269
  - PR-description workflows include the actual changed-file list in the
271
270
  prompt and verify the final body against that file list before posting
272
271
  or returning it.
@@ -363,4 +362,3 @@ no open work remains, run `set --status done` before any re-arm attempt.
363
362
  ## File-backed run ledger
364
363
 
365
364
  When host task tools are absent, reconcile delegated work through `scripts/grok_run_ledger.py` under the run-state directory (stable task ids, one live owner, unique advisor sessions, dependency blocking, snapshot-drift reopening).
366
-
@@ -57,8 +57,7 @@ Refuse the first matching case and stop:
57
57
  - A requested change spans files outside the packet's allowed file set.
58
58
  - A task contains more than one deliverable, acceptance check, or commit.
59
59
  - A required task tool, verifier, model tier, advisor, review path, or gate is unavailable.
60
- - The user asks to bypass verification, `verified_commit_gate`, independent
61
- review, final validation, or a publication gate.
60
+ - The user asks to bypass verification, review under the [review guide](../reviews/SKILL.md#review-workflow), final validation, or a publication gate.
62
61
 
63
62
  Return exactly: `Plan-to-PR blocked: <missing input or capability>.`
64
63
 
@@ -105,8 +104,8 @@ For each seeded task:
105
104
  1. The orchestrator issues the standalone task ticket.
106
105
  2. One worker implements one deliverable within the ticket's allowed files.
107
106
  3. The worker runs the one acceptance check and reports exact output and blockers.
108
- 4. A fresh verifier checks the task diff, baseline, named gates, and ticket-to-diff
109
- scope. It must pass `verified_commit_gate` for the exact surface.
107
+ 4. Review and verify the task diff, baseline, named checks, and ticket-to-diff
108
+ scope under the [review guide](../reviews/SKILL.md#review-workflow).
110
109
  5. The orchestrator creates exactly one commit and records its hash.
111
110
 
112
111
  No task borrows files, acceptance checks, or commit history from another task.
@@ -114,7 +113,7 @@ Unrelated changes remain untouched and uncommitted.
114
113
 
115
114
  ## Review and repair
116
115
 
117
- Before every commit, require fresh verification and `verified_commit_gate`.
116
+ Before every commit, record fresh verification and review under the [review guide](../reviews/SKILL.md#review-workflow).
118
117
  After the commit, a separate fast low-effort Luna review worker runs native
119
118
  findings-only correctness review at `/e-code-review low`. The review returns
120
119
  findings only and has no repair flag.
@@ -128,8 +127,8 @@ gate after cleanup.
128
127
  ## Final validation and publication
129
128
 
130
129
  The Luna max final validator maps every commit to one packet task and checks
131
- cumulative behavior, the allowed-file ledger, acceptance checks, verifier
132
- output, `verified_commit_gate` evidence, and post-commit review records. Any
130
+ cumulative behavior, the allowed-file ledger, acceptance checks, verification
131
+ output, and post-commit review records. Any
133
132
  unmapped commit, missing record, failed gate, or unresolved finding blocks
134
133
  publication.
135
134
 
@@ -7,7 +7,7 @@ PASS, FAIL plus file and line evidence, or N/A plus a reason.
7
7
  2. Confirm every task record has required identity, files, acceptance, and commit fields.
8
8
  3. Confirm every committed task has native findings-only review and separate repair records.
9
9
  4. Confirm every repair has acceptance output, fresh exact-surface verification, and an amended commit before the next review.
10
- 5. Confirm all review records are clean and all verifier records pass.
10
+ 5. Confirm all review records are clean and all verification records are present.
11
11
  6. Confirm the complete allowed-file ledger contains no extra changed files.
12
12
  7. Confirm final validation and workflow self-audit evidence are present before release.
13
13
  8. Confirm the finalized PR branch receives Luna max `/e-simplify` cleanup with
@@ -11,10 +11,10 @@ judgment remains in the hub or companion reference.
11
11
  | Seed implementation work after packet approval | deterministic | `task-seed:reference/task-seeds.md` | Host task IDs, packet path, and evidence | task-tool |
12
12
  | Record task fields | deterministic | `reference/run-record.schema.json` and `scripts/validate_protocol.py` | Validator output and exit code | `scripts/test_validate_protocol.py` |
13
13
  | Implement one deliverable | judgment | `SKILL.md` | Worker report and diff | N/A: implementation choice |
14
- | Verify exact surface | deterministic | `task-seed:reference/task-seeds.md` | Verifier output and `verified_commit_gate` | task-tool |
14
+ | Verify exact surface | deterministic | `task-seed:reference/task-seeds.md` | Verification output and [review guide](../../reviews/SKILL.md#review-workflow) | task-tool |
15
15
  | Review committed task | deterministic | `reference/review-loop.md` | Findings-only native review record | `test_task_ticket_contract.py` |
16
16
  | Repair confirmed findings | deterministic | `reference/review-loop.md` | Separate repair record and confirmed findings | `test_task_ticket_contract.py` |
17
- | Decide whether a finding is confirmed | judgment | `reference/review-loop.md` | Repair record names the confirmed finding | N/A: review judgment |
17
+ | Decide whether a finding is confirmed | judgment | [review guide](../../reviews/SKILL.md#review-judgment) | Repair record names the confirmed finding | N/A: review judgment |
18
18
  | Repeat until clean | borderline | `reference/review-loop.md` | Amended commit and clean review record | `test_task_ticket_contract.py` |
19
19
  | Validate cumulative release | deterministic | `task-seed:reference/final-validation-tasks.md` | Final validator task evidence | task-tool |
20
20
  | Self-audit the workflow | deterministic | `task-seed:reference/self-audit-tasks.md` | Self-audit task evidence | task-tool |
@@ -6,7 +6,7 @@ Run this loop for every committed task. Store each pass in the task record.
6
6
  2. It invokes the native findings-only `/e-code-review low` correctness
7
7
  capability; the review has no repair flag.
8
8
  3. Record resolved model, effort, command, findings, repair status, and surface
9
- hash. Missing native review or verifier capability fails closed.
9
+ hash. Apply the [review guide](../../reviews/SKILL.md#review-workflow) to every finding.
10
10
  4. A separate fast low-effort Luna repair worker applies only confirmed findings.
11
11
  5. Rerun the task acceptance check and fresh exact-surface verification.
12
12
  6. Amend the task commit and repeat the native review until clean.
@@ -14,7 +14,7 @@ Run this loop for every committed task. Store each pass in the task record.
14
14
  ## Accepted records
15
15
 
16
16
  Clean means the native review reports no findings for the exact committed
17
- surface. A repaired pass is not accepted until acceptance and fresh verifier
17
+ surface. A repaired pass is not accepted until acceptance and fresh verification
18
18
  output are recorded against the amended commit.
19
19
 
20
20
  ## Example
@@ -22,6 +22,6 @@
22
22
  "finding": {"type": "object", "additionalProperties": false, "required": ["finding", "disposition"], "properties": {"finding": {"type": "string", "minLength": 1}, "disposition": {"enum": ["confirmed", "dismissed"]}}},
23
23
  "review_record": {"type": "object", "additionalProperties": false, "required": ["resolved_model", "effort", "command", "findings", "repair_status", "surface_hash", "findings_only", "has_repair_flag"], "properties": {"resolved_model": {"type": "string", "minLength": 1}, "effort": {"type": "string", "minLength": 1}, "command": {"type": "string", "minLength": 1}, "findings": {"type": "array", "items": {"$ref": "#/$defs/finding"}}, "repair_status": {"type": "string", "minLength": 1}, "surface_hash": {"type": "string", "minLength": 1}, "findings_only": {"const": true}, "has_repair_flag": {"const": false}}},
24
24
  "repair_record": {"type": "object", "additionalProperties": false, "required": ["resolved_model", "effort", "confirmed_findings", "repair_status", "surface_hash"], "properties": {"resolved_model": {"type": "string", "minLength": 1}, "effort": {"type": "string", "minLength": 1}, "confirmed_findings": {"type": "array", "items": {"type": "string", "minLength": 1}}, "repair_status": {"type": "string", "minLength": 1}, "surface_hash": {"type": "string", "minLength": 1}}},
25
- "verification_record": {"type": "object", "additionalProperties": false, "required": ["acceptance_output", "verifier_output", "verified_commit_gate", "surface_hash"], "properties": {"acceptance_output": {"type": "string", "minLength": 1}, "verifier_output": {"type": "string", "minLength": 1}, "verified_commit_gate": {"type": "string", "minLength": 1}, "surface_hash": {"type": "string", "minLength": 1}}}
25
+ "verification_record": {"type": "object", "additionalProperties": false, "required": ["acceptance_output", "verification_output", "surface_hash"], "properties": {"acceptance_output": {"type": "string", "minLength": 1}, "verification_output": {"type": "string", "minLength": 1}, "surface_hash": {"type": "string", "minLength": 1}}}
26
26
  }
27
27
  }
@@ -7,7 +7,7 @@ equivalent before implementation. Mark it complete only with evidence.
7
7
  2. Capture the baseline and create one task record from the run-record schema.
8
8
  3. Implement the single deliverable within the allowed file set.
9
9
  4. Run the acceptance check and record its exact output.
10
- 5. Run fresh exact-surface verification and `verified_commit_gate`.
10
+ 5. Run fresh exact-surface verification and apply the [review guide](../../reviews/SKILL.md#review-workflow).
11
11
  6. Create exactly one task commit and record its identity.
12
12
  7. Run the separate native review and record findings-only output.
13
13
  8. Run separate Luna repair only for confirmed findings; rerun acceptance and
@@ -17,13 +17,12 @@ commits.
17
17
  | Worker route | The model role and selected route from `reference/model-routing.md`; planner and final-validator records include Luna max plus Sol xhigh advisor evidence, and orchestrator records the max route |
18
18
  | Commit record | Exactly one commit hash for this ticket |
19
19
  | Review record | Separate fast low-effort Luna review output that invokes native `/e-code-review low` and returns findings only, followed by separate fast low-effort Luna repair output, including resolved model, effort, command, findings, repair status, and surface hash |
20
- | Verification record | Fresh verifier output and `verified_commit_gate` result for the exact surface |
20
+ | Verification record | Fresh verification output for the exact surface and review under the [review guide](../../reviews/SKILL.md#review-workflow) |
21
21
 
22
22
  ## Execution contract
23
23
 
24
24
  The worker changes only the allowed files, runs the acceptance check, and reports
25
- the exact output. A fresh verifier checks the ticket against the diff before one
26
- commit is created. The commit hash is recorded before the separate review pass.
25
+ the exact output. Review and verification follow the [review guide](../../reviews/SKILL.md#review-workflow) before one commit is created. The commit hash is recorded before the separate review pass.
27
26
 
28
27
  ## Review and completion contract
29
28
 
@@ -33,6 +32,6 @@ repair flag. A separate fast low-effort Luna repair worker applies only confirme
33
32
  the resolved model, effort, command, findings, repair status, and surface hash.
34
33
  Confirmed repairs require the acceptance check and fresh exact-surface verification
35
34
  again; amend the task commit and repeat the native review until clean. Missing
36
- native review or required verifier capability fails closed. The
35
+ native review fails closed. The
37
36
  final validator maps the commit to this ticket and rejects missing or extra
38
37
  records.
@@ -174,8 +174,7 @@ ALL_REPAIR_FIELDS: tuple[str, ...] = (
174
174
  )
175
175
  ALL_VERIFICATION_FIELDS: tuple[str, ...] = (
176
176
  "acceptance_output",
177
- "verifier_output",
178
- "verified_commit_gate",
177
+ "verification_output",
179
178
  "surface_hash",
180
179
  )
181
180
  ALL_REVIEW_TEXT_FIELDS: tuple[str, ...] = (
@@ -20,7 +20,7 @@ validate_record = VALIDATE_PROTOCOL_MODULE.validate_record
20
20
 
21
21
 
22
22
  def valid_record() -> dict[str, object]:
23
- verification = {"acceptance_output": "passed: pytest", "verifier_output": "passed: clean", "verified_commit_gate": "passed: exact surface", "surface_hash": "a" * 64}
23
+ verification = {"acceptance_output": "passed: pytest", "verification_output": "passed: clean", "surface_hash": "a" * 64}
24
24
  return {
25
25
  "task_identity": "task-3", "deliverable": "validator", "allowed_files": ["validator.py"],
26
26
  "acceptance_check": "pytest", "baseline": "clean", "worker_route": "implementation worker; effort=low", "commit": "a1b2c3d",
@@ -90,7 +90,7 @@ def test_skill_contract_enforces_task_commit_and_review_order() -> None:
90
90
  skill_text = read_skill_text()
91
91
 
92
92
  assert EXPECTED_TASK_PROTOCOL_HEADING in skill_text
93
- assert "fresh verification and `verified_commit_gate`" in skill_text
93
+ assert "fresh verification and review under the [review guide]" in skill_text
94
94
  assert (
95
95
  "native\nfindings-only correctness review at `/e-code-review low`" in skill_text
96
96
  )
@@ -163,7 +163,7 @@ def test_skill_contract_references_future_fixed_artifacts_without_copying_tables
163
163
 
164
164
  def test_skill_contract_companion_reference_paths_exist() -> None:
165
165
  skill_text = read_skill_text()
166
- local_reference_paths = re.findall(r"\]\(([^)]+)\)", skill_text)
166
+ local_reference_paths = [each_path.split("#", maxsplit=1)[0] for each_path in re.findall(r"\]\(([^)]+)\)", skill_text)]
167
167
  repository_paths = [
168
168
  each_path
169
169
  for each_path in local_reference_paths
@@ -0,0 +1,32 @@
1
+ # pr-converge skill
2
+
3
+ Drives a draft PR to convergence by driving the internal passes to clean first — a code-review pass and a bugteam audit — then running Cursor Bugbot and Copilot as terminal confirmation gates, applying TDD fixes, posting inline replies, and re-triggering the external reviewers each tick until all are clean on the same HEAD and the PR is mergeable.
4
+
5
+ **Trigger:** `/pr-converge`, "drive PR to convergence", "loop bugbot and bugteam", "babysit bugbot and bugteam", "until both are clean", "converge this PR".
6
+
7
+ ## Key files
8
+
9
+ | File | Purpose |
10
+ |---|---|
11
+ | `SKILL.md` | Full tick workflow, pre-flight checks, state schema, budget-aware tick boundaries, stop conditions |
12
+ | `pr_converge_skill_constants/constants.py` | Runtime and API constants (bot logins, review states, GH API path templates, regex patterns) |
13
+
14
+ ## Subdirectories
15
+
16
+ | Directory | Role |
17
+ |---|---|
18
+ | `pr_converge_skill_constants/` | Importable constants module shared by skill scripts |
19
+ | `reference/` | Per-tick steps, convergence gates, fix protocol, obstacle runbooks, state schema, stop conditions, examples |
20
+ | `scripts/` | Python helpers (bugbot check, convergence check, Copilot review fetcher, fix-reply poster, reflow tool) and their tests |
21
+ | `workflows/` | ScheduleWakeup loop pacing specification (`pacer=schedule_wakeup`) |
22
+
23
+ ## Conventions
24
+
25
+ - Pre-flight selects a pacer via `select_converge_pacer.py`: `schedule_wakeup` or `portable`. Missing `ScheduleWakeup` selects portable — it does not abort the skill.
26
+ - On `pacer=schedule_wakeup`, each invocation runs one tick and the next advances via `ScheduleWakeup`. On `pacer=portable`, the session runs ticks continuously (continue or in-session poll) until convergence, a stop condition, or a budget handoff.
27
+ - Loop state persists to `$CLAUDE_JOB_DIR/pr-converge-state.json` between ticks.
28
+ - Isolation uses `EnterWorktree` when present; otherwise the portable driver git worktree path, then `preflight_worktree.py`.
29
+ - All findings and PR reports state verified facts only — no hedging language.
30
+ - The GitHub MCP (`pull_request_read`, `pull_request_review_write`) is the primary path for PR inspection; `gh api` is the fallback.
31
+ - Three step-scoped agents (`fix_executor`, `thread_sweep`, `copilot_watch`) persist across ticks via the `persistent_agents` map in loop state; each tick resumes them with `SendMessage` and spawns a fresh named agent when a stored id is dead.
32
+ - The tick delegates shared mechanics to three sibling sub-skills: `reviewer-gates` (opt-out, Copilot quota, Bugbot trigger), `pr-fix-protocol` (fix sequence + unresolved-thread sweep), and `pr-loop-lifecycle` (run open/close). Target resolution happens inline in `reference/per-tick.md` Steps 1 and 1.5. Audit posting follows the `_shared/pr-loop/post-audit-thread-contract.md` contract, run through `_shared/pr-loop/scripts/post_audit_thread.py`.
@@ -1,32 +1 @@
1
- # pr-converge skill
2
-
3
- Drives a draft PR to convergence by driving the internal passes to clean first — a code-review pass and a bugteam audit — then running Cursor Bugbot and Copilot as terminal confirmation gates, applying TDD fixes, posting inline replies, and re-triggering the external reviewers each tick until all are clean on the same HEAD and the PR is mergeable.
4
-
5
- **Trigger:** `/pr-converge`, "drive PR to convergence", "loop bugbot and bugteam", "babysit bugbot and bugteam", "until both are clean", "converge this PR".
6
-
7
- ## Key files
8
-
9
- | File | Purpose |
10
- |---|---|
11
- | `SKILL.md` | Full tick workflow, pre-flight checks, state schema, budget-aware tick boundaries, stop conditions |
12
- | `pr_converge_skill_constants/constants.py` | Runtime and API constants (bot logins, review states, GH API path templates, regex patterns) |
13
-
14
- ## Subdirectories
15
-
16
- | Directory | Role |
17
- |---|---|
18
- | `pr_converge_skill_constants/` | Importable constants module shared by skill scripts |
19
- | `reference/` | Per-tick steps, convergence gates, fix protocol, obstacle runbooks, state schema, stop conditions, examples |
20
- | `scripts/` | Python helpers (bugbot check, convergence check, Copilot review fetcher, fix-reply poster, reflow tool) and their tests |
21
- | `workflows/` | ScheduleWakeup loop pacing specification (`pacer=schedule_wakeup`) |
22
-
23
- ## Conventions
24
-
25
- - Pre-flight selects a pacer via `select_converge_pacer.py`: `schedule_wakeup` or `portable`. Missing `ScheduleWakeup` selects portable — it does not abort the skill.
26
- - On `pacer=schedule_wakeup`, each invocation runs one tick and the next advances via `ScheduleWakeup`. On `pacer=portable`, the session runs ticks continuously (continue or in-session poll) until convergence, a stop condition, or a budget handoff.
27
- - Loop state persists to `$CLAUDE_JOB_DIR/pr-converge-state.json` between ticks.
28
- - Isolation uses `EnterWorktree` when present; otherwise the portable driver git worktree path, then `preflight_worktree.py`.
29
- - All findings and PR reports state verified facts only — no hedging language.
30
- - The GitHub MCP (`pull_request_read`, `pull_request_review_write`) is the primary path for PR inspection; `gh api` is the fallback.
31
- - Three step-scoped agents (`fix_executor`, `thread_sweep`, `copilot_watch`) persist across ticks via the `persistent_agents` map in loop state; each tick resumes them with `SendMessage` and spawns a fresh named agent when a stored id is dead.
32
- - The tick delegates shared mechanics to three sibling sub-skills: `reviewer-gates` (opt-out, Copilot quota, Bugbot trigger), `pr-fix-protocol` (fix sequence + unresolved-thread sweep), and `pr-loop-lifecycle` (run open/close). Target resolution happens inline in `reference/per-tick.md` Steps 1 and 1.5. Audit posting follows the `_shared/pr-loop/post-audit-thread-contract.md` contract, run through `_shared/pr-loop/scripts/post_audit_thread.py`.
1
+ @AGENTS.md
@@ -168,9 +168,8 @@ when `$CLAUDE_JOB_DIR` is gone.
168
168
 
169
169
  Fields: `phase`, `tick_count`, `bugbot_clean_at`, `code_review_clean_at`,
170
170
  `bugteam_clean_at`, `copilot_clean_at`, `merge_state_status`, `current_head`,
171
- `bugbot_acknowledged_at`, `bugbot_down`, `copilot_down`,
172
- `bugteam_skill_invoked_at_head`, `bugteam_skill_invoked_at_tick`,
173
- `agents_session_id`, `persistent_agents`.
171
+ `bugbot_acknowledged_at`, `bugbot_down`, `copilot_down`, `agents_session_id`,
172
+ `persistent_agents`.
174
173
 
175
174
  ## Persistent per-step agents
176
175
 
@@ -190,19 +189,17 @@ the `persistent_agents` map
190
189
  resolver-supplied sonnet-equivalent on third-party hosts. The `name`
191
190
  makes the agent a persistent teammate
192
191
  that idles awaiting messages. Record `{agent_id, created_tick,
193
- last_used_tick}` under the step key. Keep the spawn prompt fix-shaped,
194
- never audit-shaped: the `pr_converge_bugteam_enforcer` hook blocks
195
- audit-shaped clean-coder spawns during the BUGTEAM phase.
192
+ last_used_tick}` under the step key. Keep the spawn prompt focused on the
193
+ current fix. Step 6 sends audit judgment through the
194
+ [review guide](../reviews/SKILL.md#review-workflow).
196
195
  - **Stale or dead id:** on a `SendMessage` failure, or no acknowledgment
197
196
  within one bounded wait, drop the map entry, spawn a fresh named agent,
198
197
  record it, and continue the tick. Never abort a tick on a stale id;
199
198
  never retry the same dead id.
200
199
  - **Fresh every round (never persisted):** the Step 5 host-aware
201
200
  `invoke_code_review.py` / `/code-review ultra --fix` pass and the Step 6
202
- bugteam audit (unbiased eyes each round; the enforcer needs the formal
203
- Skill call), and every `code-verifier` — a named code-verifier never fires
204
- `SubagentStop`, so no verdict mints (see the named-`code-verifier` entry
205
- in the Gotchas list below).
201
+ bugteam audit. Apply the [review guide](../reviews/SKILL.md#review-workflow)
202
+ to each review pass.
206
203
  - **Shutdown:** at loop end (convergence or a stop condition), send each
207
204
  persistent agent a shutdown request and clear `persistent_agents` before
208
205
  the `pr-loop-lifecycle` Close.
@@ -263,7 +260,6 @@ post a fresh PR in a fresh branch based on origin main to the user.
263
260
  [Step 1.5](reference/per-tick.md). Skipping this reviews and edits the
264
261
  wrong repo. The route is routine and automatic — never a material fork
265
262
  to pause on.
266
- - **A named/teammate `code-verifier` never mints a verdict** — In a background-job session, an `Agent`-tool `code-verifier` spawned with a `name` (or otherwise as a persistent teammate) goes idle/"available" awaiting messages rather than terminating, so its `SubagentStop` never fires. `verifier_verdict_minter.py` mints the verdict only on `SubagentStop`, so no verdict file is written and `verified_commit_gate` blocks the `git commit`/`git push` with "no passing verification verdict" even though the verifier emitted `all_pass`. A `shutdown_request` is ignored and `TaskStop` cannot resolve the teammate's id. Spawn the code-verifier as a one-shot agent with NO `name` (a plain async `Agent` call) so it runs to completion and fires `SubagentStop`, minting the verdict bound to the live surface. Keep the work tree frozen between verification and the commit so the minted surface hash still matches.
267
263
 
268
264
  ## Progress checklist
269
265
 
@@ -333,7 +329,7 @@ round as converged. This rule holds every tick, every loop, every PR.
333
329
  - [ ] **clean on `current_head`** → zero unresolved threads (else fix + resolve first)
334
330
  → `bugbot_clean_at = current_head` → Step 7
335
331
  - [ ] **no review / commit_id mismatch** → `reviewer-gates` Bugbot flow (Gate 3):
336
- silent pass → stamp + Step 7; queued/triggered → ScheduleWakeup 360s or portable in-session poll → Step 4;
332
+ silent pass → Step 7; queued/triggered → ScheduleWakeup 360s or portable in-session poll → Step 4;
337
333
  down → `bugbot_down = true` → Step 7
338
334
 
339
335
  - [ ] **Step 5: CODE-REVIEW — static sweep, review, fix, advance**
@@ -373,9 +369,10 @@ round as converged. This rule holds every tick, every loop, every PR.
373
369
  See: [`reference/per-tick.md` § Step 2 BUGTEAM](reference/per-tick.md);
374
370
  [`../bugteam/SKILL.md`](../bugteam/SKILL.md).
375
371
  Pre-condition: `code_review_clean_at == current_head`.
376
- Mandatory: `Skill({skill: "bugteam", args: "<PR URL>"})` this tick
377
- (enforcer-blocked otherwise; `qbug` is not a substitute). Scope: FULL
378
- `origin/main...HEAD` diff. Re-resolve HEAD after bugteam.
372
+ Mandatory: `Skill({skill: "bugteam", args: "<PR URL>"})` this tick.
373
+ Use the [review guide](../reviews/SKILL.md#review-workflow) for its
374
+ judgment. `qbug` is not a substitute. Scope: FULL `origin/main...HEAD`
375
+ diff. Re-resolve HEAD after bugteam.
379
376
 
380
377
  - [ ] **bugteam pushed** → verify threads replied + resolved → reset markers
381
378
  → `phase = CODE_REVIEW` → ScheduleWakeup 360s or portable in-session poll → Step 5
@@ -392,7 +389,7 @@ round as converged. This rule holds every tick, every loop, every PR.
392
389
  before these gates run. Count unresolved threads before each gate.
393
390
  Every gate records evidence; gate (f) cites evidence from (a)–(e).
394
391
 
395
- - [ ] **(a) Copilot findings** — fetch Copilot on `current_head`; dirty → fix + return to Step 5; clean → stamp `copilot_clean_at`; absent → continue; when `copilot_down`, skip
392
+ - [ ] **(a) Copilot findings** — fetch Copilot on `current_head`; dirty → fix + return to Step 5; clean → record `copilot_clean_at`; absent → continue; when `copilot_down`, skip
396
393
  - [ ] **(b) Claude reviewer** — fetch Claude on `current_head`; dirty → fix + return to Step 5; clean or absent → continue
397
394
  - [ ] **(c) Mergeability** — `mergeable_state == "clean"` and `mergeable == true`; dirty → rebase + return to Step 1; blocked/behind/unknown/unstable → hard blocker
398
395
  - [ ] **(d) Post-convergence Copilot request** — request Copilot when not pending and not `copilot_down`; enter `COPILOT_WAIT` (Step 7a); when `copilot_down`, skip to (e)