claude-dev-env 4.3.0 → 7.1.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 (480) hide show
  1. package/.agents/agents/pr-description-writer.md +2 -2
  2. package/.agents/agents/test_agent_frontmatter.py +2 -2
  3. package/.agents/agents/test_pr_description_writer_style.py +1 -3
  4. package/.agents/skills/e-code-review/SKILL.md +12 -12
  5. package/.agents/skills/e-code-review/preflight-proposal.contract.test.mjs +20 -0
  6. package/.agents/skills/e-code-review/reference/fix.md +15 -17
  7. package/.agents/skills/e-code-review/reference/loop.md +35 -39
  8. package/.agents/skills/e-code-review/reference/mode-contract.test.mjs +2 -1
  9. package/.agents/skills/e-code-review/reference/preflight-proposal.md +44 -9
  10. package/.agents/skills/e-code-review/reference/runner-selection.md +13 -14
  11. package/.agents/skills/issue-tracker/SKILL.md +5 -4
  12. package/.agents/skills/pull-request/SKILL.md +11 -13
  13. package/.agents/skills/pull-request/reference/publication-tasks.md +3 -3
  14. package/.agents/skills/pull-request/scripts/github_pr_command_constants/config/constants.py +9 -1
  15. package/.agents/skills/pull-request/scripts/pull_request.py +35 -44
  16. package/.agents/skills/pull-request/scripts/test_github_pr_command_constants.py +9 -0
  17. package/.agents/skills/pull-request/scripts/test_pull_request.py +35 -3
  18. package/.agents/skills/session-continuity/README.md +189 -0
  19. package/.agents/skills/session-continuity/SKILL.md +114 -0
  20. package/.agents/skills/session-continuity/continuity.mjs +375 -0
  21. package/.agents/skills/session-continuity/continuity.test.mjs +303 -0
  22. package/.agents/skills/skill-builder/SKILL.md +3 -196
  23. package/.agents/skills/syncing-submodules/scripts/test_sync_parent_pointer.py +0 -7
  24. package/.agents/skills/windows-scheduled-task/SKILL.md +153 -0
  25. package/_shared/pr-loop/scripts/pr_loop_shared_constants/terminology_sweep_constants.py +6 -0
  26. package/_shared/pr-loop/scripts/terminology_sweep.py +64 -19
  27. package/_shared/pr-loop/scripts/tests/test_terminology_sweep.py +59 -0
  28. package/bin/cde.mjs +36 -8
  29. package/bin/cde.test.mjs +48 -0
  30. package/bin/ever-shipped-skills.mjs +2 -20
  31. package/bin/ever-shipped-skills.test.mjs +8 -0
  32. package/bin/expand_home_directory_tokens.mjs +4 -5
  33. package/bin/expand_home_directory_tokens.test.mjs +128 -0
  34. package/bin/git_hooks_installer.mjs +22 -3
  35. package/bin/git_hooks_installer.test.mjs +159 -5
  36. package/bin/install-session-continuity.mjs +78 -0
  37. package/bin/install-session-continuity.test.mjs +42 -0
  38. package/bin/install.agents-home.test.mjs +15 -13
  39. package/bin/install.codex-rules.test.mjs +5 -2
  40. package/bin/install.cursor-rules.test.mjs +5 -2
  41. package/bin/install.mjs +506 -63
  42. package/bin/install.policy-lint.test.mjs +130 -0
  43. package/bin/install.profiles.test.mjs +10 -0
  44. package/bin/install.prune.test.mjs +286 -37
  45. package/bin/install.pstack-plugin.test.mjs +114 -0
  46. package/bin/install.test.mjs +537 -120
  47. package/bin/install.transaction.test.mjs +3 -3
  48. package/bin/refresh-pstack-plugin-skills.test.mjs +211 -0
  49. package/docs/CODE_RULES.md +1 -1
  50. package/hooks/advisory/pr_done_reminder.py +342 -0
  51. package/hooks/advisory/test_pr_done_reminder.py +249 -0
  52. package/hooks/blocking/bash_post_call_dispatcher.py +53 -6
  53. package/hooks/blocking/code_rules_banned_identifiers.py +3 -0
  54. package/hooks/blocking/code_rules_paired_test.py +22 -15
  55. package/hooks/blocking/precommit_code_rules_gate.py +5 -8
  56. package/hooks/blocking/test_bash_dispatcher_interpreter_starts.py +7 -52
  57. package/hooks/blocking/test_bash_post_call_dispatcher.py +65 -4
  58. package/hooks/blocking/test_bash_pre_tool_use_dispatcher.py +0 -69
  59. package/hooks/blocking/test_code_rules_banned_identifiers.py +64 -0
  60. package/hooks/blocking/test_code_rules_enforcer_paired_test.py +36 -29
  61. package/hooks/blocking/test_code_rules_js_resume_task_enumeration.py +4 -4
  62. package/hooks/blocking/test_code_rules_js_returns_object_schemaless.py +5 -5
  63. package/hooks/blocking/test_pre_tool_use_dispatcher.py +43 -342
  64. package/hooks/blocking/test_pre_tool_use_dispatcher_native.py +20 -51
  65. package/hooks/blocking/test_shared_stdin_adoption.py +1 -47
  66. package/hooks/git-hooks/git_hooks_constants/staged_policy_lint.py +12 -0
  67. package/hooks/git-hooks/git_hooks_constants/verification_notice_constants.py +116 -0
  68. package/hooks/git-hooks/post_commit.py +33 -0
  69. package/hooks/git-hooks/pre_commit.py +18 -49
  70. package/hooks/git-hooks/pre_push.py +45 -541
  71. package/hooks/git-hooks/test_installed_policy_lint.py +208 -0
  72. package/hooks/git-hooks/test_native_hook_support.py +129 -0
  73. package/hooks/git-hooks/test_native_policy_commit.py +120 -0
  74. package/hooks/git-hooks/test_post_commit.py +43 -0
  75. package/hooks/git-hooks/test_pre_commit.py +38 -148
  76. package/hooks/git-hooks/test_pre_push.py +48 -1631
  77. package/hooks/git-hooks/test_verification_notice.py +60 -0
  78. package/hooks/git-hooks/test_verification_start.py +173 -0
  79. package/hooks/git-hooks/verification_notice.py +192 -0
  80. package/hooks/git-hooks/verification_notice_context.py +253 -0
  81. package/hooks/git-hooks/verification_notice_state.py +237 -0
  82. package/hooks/git-hooks/verification_start.py +100 -0
  83. package/hooks/hooks.json +1 -120
  84. package/hooks/hooks_constants/banned_identifiers_constants.py +4 -0
  85. package/hooks/hooks_constants/bash_post_call_dispatcher_constants.py +14 -1
  86. package/hooks/hooks_constants/bash_pre_tool_use_dispatcher_constants.py +1 -15
  87. package/hooks/hooks_constants/post_tool_use_dispatcher_constants.py +0 -4
  88. package/hooks/hooks_constants/pr_done_reminder_constants.py +98 -0
  89. package/hooks/hooks_constants/pre_tool_use_dispatcher_constants.py +10 -93
  90. package/hooks/hooks_constants/stop_dispatcher_constants.py +1 -4
  91. package/hooks/hooks_constants/test_bash_post_call_dispatcher_constants.py +19 -2
  92. package/hooks/hooks_constants/test_bash_pre_tool_use_dispatcher_constants.py +3 -66
  93. package/hooks/hooks_constants/test_pr_done_reminder_constants.py +40 -0
  94. package/hooks/hooks_constants/test_pre_tool_use_dispatcher_constants.py +46 -201
  95. package/hooks/hooks_constants/test_stop_dispatcher_constants.py +3 -25
  96. package/hooks/validation/test_post_tool_use_dispatcher.py +35 -298
  97. package/hooks/validators/run_all_validators.py +5 -1
  98. package/hooks/validators/security_checks.py +57 -2
  99. package/hooks/validators/test_hook_timing_harness.py +2 -5
  100. package/hooks/validators/test_run_all_validators_mutation_tool_parity.py +3 -11
  101. package/hooks/validators/test_run_all_validators_policy_lint.py +36 -0
  102. package/hooks/validators/test_security_checks.py +57 -0
  103. package/package.json +2 -2
  104. package/rules/confirm-implementation-forks.md +2 -0
  105. package/rules/durable-post-artifacts.md +2 -1
  106. package/rules/git-workflow.md +18 -6
  107. package/rules/pstack-host-mapping.md +48 -0
  108. package/rules/vault-context.md +3 -5
  109. package/rules/verify-runtime-state.md +7 -0
  110. package/scripts/audit-hooks-cli.mjs +5 -0
  111. package/scripts/audit-hooks.mjs +72 -16
  112. package/scripts/automatic_advisory/__init__.py +1 -0
  113. package/scripts/automatic_advisory/checkout.py +51 -0
  114. package/scripts/automatic_advisory/cli.py +334 -0
  115. package/scripts/automatic_advisory/config/__init__.py +1 -0
  116. package/scripts/automatic_advisory/config/constants.py +93 -0
  117. package/scripts/automatic_advisory/config/timing.py +4 -0
  118. package/scripts/automatic_advisory/configuration.py +197 -0
  119. package/scripts/automatic_advisory/execution.py +350 -0
  120. package/scripts/automatic_advisory/git.py +69 -0
  121. package/scripts/automatic_advisory/model.py +107 -0
  122. package/scripts/automatic_advisory/process_host.py +32 -0
  123. package/scripts/automatic_advisory/publisher.py +84 -0
  124. package/scripts/automatic_advisory/runner.py +399 -0
  125. package/scripts/automatic_advisory/state.py +116 -0
  126. package/scripts/automatic_advisory/window_flags.py +41 -0
  127. package/scripts/automatic_advisory/windows_job.py +122 -0
  128. package/scripts/check.ps1 +0 -1
  129. package/{.agents/skills/run-claude-dev-env/driver.mjs → scripts/ci/installer-lifecycle.mjs} +3 -28
  130. package/scripts/ci/installer-lifecycle.test.mjs +26 -0
  131. package/scripts/ci/windows-installer-lifecycle.ps1 +1 -11
  132. package/scripts/codex_compat_materializer.py +99 -13
  133. package/scripts/dev_env_scripts_constants/shared_tree_constants.py +4 -5
  134. package/{.agents/skills/_shared/pr-loop/scripts → scripts}/durable_post_lint.py +35 -43
  135. package/{.agents/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/durable_post_lint_constants.py → scripts/durable_post_lint_config/config/constants.py} +10 -10
  136. package/{.agents/skills/_shared/pr-loop/scripts/test_durable_post_lint_constants.py → scripts/durable_post_lint_config/config/test_constants.py} +14 -1
  137. package/scripts/local_report_cli.py +184 -0
  138. package/scripts/local_report_core.py +247 -0
  139. package/scripts/local_report_publisher.py +12 -0
  140. package/scripts/local_report_validation.py +357 -0
  141. package/scripts/local_verification/__init__.py +23 -0
  142. package/scripts/local_verification/check_runner.py +364 -0
  143. package/scripts/local_verification/check_support.py +99 -0
  144. package/scripts/local_verification/cli.py +158 -0
  145. package/scripts/local_verification/command_runner.py +84 -0
  146. package/scripts/local_verification/config/__init__.py +1 -0
  147. package/scripts/local_verification/config/constants.py +89 -0
  148. package/scripts/local_verification/config/timing.py +1 -0
  149. package/scripts/local_verification/git_state.py +146 -0
  150. package/scripts/local_verification/manifest.py +224 -0
  151. package/scripts/local_verification/model.py +174 -0
  152. package/scripts/local_verification/runner.py +234 -0
  153. package/scripts/policy_lint/adapter_detectors.py +13 -6
  154. package/scripts/policy_lint/adapter_pairing.py +58 -3
  155. package/scripts/policy_lint/adapters.py +7 -4
  156. package/scripts/policy_lint/config/approved_test_pairs.py +323 -0
  157. package/scripts/policy_lint/config/constants.py +5 -0
  158. package/scripts/policy_lint/engine.py +48 -4
  159. package/scripts/policy_lint/model.py +1 -0
  160. package/scripts/policy_lint/registry.py +1 -1
  161. package/scripts/policy_lint/selection.py +2 -1
  162. package/scripts/policy_lint/selection_git.py +2 -0
  163. package/scripts/pr_verification/__init__.py +1 -0
  164. package/scripts/pr_verification/branch_refs.py +114 -0
  165. package/scripts/pr_verification/config/__init__.py +1 -0
  166. package/scripts/pr_verification/config/constants.py +84 -0
  167. package/scripts/pr_verification/config/timing.py +5 -0
  168. package/scripts/pr_verification/github.py +137 -0
  169. package/scripts/pr_verification/github_api.py +376 -0
  170. package/scripts/pr_verification/github_labels.py +88 -0
  171. package/scripts/pr_verification/github_parsing.py +182 -0
  172. package/scripts/pr_verification/github_transport.py +91 -0
  173. package/scripts/pr_verification/lock.py +122 -0
  174. package/scripts/pr_verification/model.py +43 -0
  175. package/scripts/pr_verification/requirements.txt +1 -0
  176. package/scripts/refresh_pstack_plugin_skills.mjs +200 -0
  177. package/scripts/shared_tree_paths.py +32 -3
  178. package/{.agents/skills/_shared/pr-loop/scripts → scripts}/test_durable_post_lint.py +97 -0
  179. package/scripts/test_shared_tree_paths.py +33 -0
  180. package/scripts/tests/test-audit-hooks-cli.mjs +150 -0
  181. package/scripts/tests/test-audit-hooks.mjs +94 -2
  182. package/scripts/tests/test_automatic_advisory.py +376 -0
  183. package/scripts/tests/test_automatic_advisory_job_cleanup.py +71 -0
  184. package/scripts/tests/test_automatic_advisory_polling.py +216 -0
  185. package/scripts/tests/test_automatic_advisory_recovery.py +320 -0
  186. package/scripts/tests/test_automatic_advisory_repairs.py +400 -0
  187. package/scripts/tests/test_automatic_advisory_settings.py +48 -0
  188. package/scripts/tests/test_automatic_advisory_window_flags.py +163 -0
  189. package/scripts/tests/test_closed_pr_label.py +157 -0
  190. package/scripts/tests/test_codex_compat_materializer.py +189 -6
  191. package/scripts/tests/test_github_labels.py +101 -0
  192. package/scripts/tests/test_github_transport.py +125 -0
  193. package/scripts/tests/test_local_report_publisher.py +396 -0
  194. package/scripts/tests/test_local_report_publisher_cli.py +85 -0
  195. package/scripts/tests/test_local_verification.py +348 -0
  196. package/scripts/tests/test_local_verification_cli.py +98 -0
  197. package/scripts/tests/test_policy_lint_rules_archive.py +120 -0
  198. package/scripts/tests/test_policy_lint_rules_engine.py +25 -4
  199. package/scripts/tests/test_policy_lint_rules_installed_loader.py +29 -0
  200. package/scripts/tests/test_policy_lint_rules_pairing.py +163 -0
  201. package/scripts/tests/test_policy_lint_rules_registry.py +227 -13
  202. package/scripts/tests/test_policy_lint_selection.py +25 -2
  203. package/scripts/tests/test_policy_lint_selection_native_index.py +30 -0
  204. package/scripts/tests/test_pr_verification_github.py +392 -0
  205. package/scripts/tests/test_pr_verification_lock.py +168 -0
  206. package/scripts/tests/test_rules.py +3 -7
  207. package/scripts/tests/test_verification_notice.py +347 -0
  208. package/.agents/skills/_shared/pr-loop/.claude/CLAUDE.md +0 -1
  209. package/.agents/skills/_shared/pr-loop/audit-contract.md +0 -5
  210. package/.agents/skills/_shared/pr-loop/audit-reply-template.md +0 -5
  211. package/.agents/skills/_shared/pr-loop/code-rules-gate.md +0 -5
  212. package/.agents/skills/_shared/pr-loop/fix-protocol.md +0 -5
  213. package/.agents/skills/_shared/pr-loop/gh-payloads.md +0 -5
  214. package/.agents/skills/_shared/pr-loop/portable-driver.md +0 -149
  215. package/.agents/skills/_shared/pr-loop/post-audit-thread-contract.md +0 -5
  216. package/.agents/skills/_shared/pr-loop/precatch-rubric.md +0 -5
  217. package/.agents/skills/_shared/pr-loop/preflight-proposal.contract.test.mjs +0 -119
  218. package/.agents/skills/_shared/pr-loop/preflight-proposal.md +0 -5
  219. package/.agents/skills/_shared/pr-loop/prompts/.claude/CLAUDE.md +0 -1
  220. package/.agents/skills/_shared/pr-loop/prompts/AGENTS.md +0 -1
  221. package/.agents/skills/_shared/pr-loop/prompts/pr-consistency-audit.xml +0 -324
  222. package/.agents/skills/_shared/pr-loop/scripts/.claude/CLAUDE.md +0 -1
  223. package/.agents/skills/_shared/pr-loop/scripts/AGENTS.md +0 -1
  224. package/.agents/skills/_shared/pr-loop/scripts/RUNTIME_SCRIPTS.md +0 -29
  225. package/.agents/skills/_shared/pr-loop/scripts/_cli_utils.py +0 -22
  226. package/.agents/skills/_shared/pr-loop/scripts/_path_resolver.py +0 -186
  227. package/.agents/skills/_shared/pr-loop/scripts/_xml_utils.py +0 -20
  228. package/.agents/skills/_shared/pr-loop/scripts/audit_category_schema.py +0 -355
  229. package/.agents/skills/_shared/pr-loop/scripts/build_audit_prompt.py +0 -289
  230. package/.agents/skills/_shared/pr-loop/scripts/build_converge_task_list.py +0 -310
  231. package/.agents/skills/_shared/pr-loop/scripts/build_fix_prompt.py +0 -292
  232. package/.agents/skills/_shared/pr-loop/scripts/init_loop_state.py +0 -134
  233. package/.agents/skills/_shared/pr-loop/scripts/portable_converge_driver.py +0 -1646
  234. package/.agents/skills/_shared/pr-loop/scripts/preflight_worktree.py +0 -392
  235. package/.agents/skills/_shared/pr-loop/scripts/select_converge_pacer.py +0 -215
  236. package/.agents/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/.claude/CLAUDE.md +0 -1
  237. package/.agents/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/AGENTS.md +0 -1
  238. package/.agents/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/__init__.py +0 -0
  239. package/.agents/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/audit_category_schema_constants.py +0 -37
  240. package/.agents/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/converge_task_list_constants.py +0 -56
  241. package/.agents/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/handoff_constants.py +0 -45
  242. package/.agents/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/pacer_constants.py +0 -47
  243. package/.agents/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/path_resolver_constants.py +0 -157
  244. package/.agents/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/portable_driver_constants.py +0 -177
  245. package/.agents/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/preflight_constants.py +0 -70
  246. package/.agents/skills/_shared/pr-loop/scripts/teardown_worktrees.py +0 -172
  247. package/.agents/skills/_shared/pr-loop/scripts/test__path_resolver.py +0 -106
  248. package/.agents/skills/_shared/pr-loop/scripts/test_audit_category_schema.py +0 -94
  249. package/.agents/skills/_shared/pr-loop/scripts/test_build_audit_prompt.py +0 -499
  250. package/.agents/skills/_shared/pr-loop/scripts/test_build_converge_task_list.py +0 -140
  251. package/.agents/skills/_shared/pr-loop/scripts/test_build_fix_prompt.py +0 -262
  252. package/.agents/skills/_shared/pr-loop/scripts/test_init_loop_state.py +0 -71
  253. package/.agents/skills/_shared/pr-loop/scripts/test_portable_converge_driver.py +0 -1119
  254. package/.agents/skills/_shared/pr-loop/scripts/test_preflight_worktree.py +0 -287
  255. package/.agents/skills/_shared/pr-loop/scripts/test_select_converge_pacer.py +0 -207
  256. package/.agents/skills/_shared/pr-loop/scripts/test_teardown_worktrees.py +0 -59
  257. package/.agents/skills/_shared/pr-loop/scripts/test_write_handoff.py +0 -201
  258. package/.agents/skills/_shared/pr-loop/scripts/write_audit_outcomes.py +0 -182
  259. package/.agents/skills/_shared/pr-loop/scripts/write_fix_outcomes.py +0 -206
  260. package/.agents/skills/_shared/pr-loop/scripts/write_handoff.py +0 -309
  261. package/.agents/skills/_shared/pr-loop/state-schema.md +0 -5
  262. package/.agents/skills/_shared/pr-loop/worker-spawn.md +0 -5
  263. package/.agents/skills/autoconverge/.claude/CLAUDE.md +0 -1
  264. package/.agents/skills/autoconverge/AGENTS.md +0 -1
  265. package/.agents/skills/autoconverge/SKILL.md +0 -431
  266. package/.agents/skills/autoconverge/reference/.claude/CLAUDE.md +0 -1
  267. package/.agents/skills/autoconverge/reference/AGENTS.md +0 -1
  268. package/.agents/skills/autoconverge/reference/closing-report.md +0 -93
  269. package/.agents/skills/autoconverge/reference/convergence-gates.md +0 -31
  270. package/.agents/skills/autoconverge/reference/convergence.md +0 -219
  271. package/.agents/skills/autoconverge/reference/copilot-findings.md +0 -51
  272. package/.agents/skills/autoconverge/reference/gotchas.md +0 -66
  273. package/.agents/skills/autoconverge/reference/headless-safety.md +0 -44
  274. package/.agents/skills/autoconverge/reference/multi-pr.md +0 -128
  275. package/.agents/skills/autoconverge/reference/self-closing-loop.md +0 -84
  276. package/.agents/skills/autoconverge/reference/stop-conditions.md +0 -127
  277. package/.agents/skills/autoconverge/test_portable_pacer_gate.py +0 -54
  278. package/.agents/skills/autoconverge/workflow/.claude/CLAUDE.md +0 -1
  279. package/.agents/skills/autoconverge/workflow/AGENTS.md +0 -1
  280. package/.agents/skills/autoconverge/workflow/aggregate_runs.py +0 -371
  281. package/.agents/skills/autoconverge/workflow/autoconverge_report_constants/.claude/CLAUDE.md +0 -1
  282. package/.agents/skills/autoconverge/workflow/autoconverge_report_constants/AGENTS.md +0 -1
  283. package/.agents/skills/autoconverge/workflow/autoconverge_report_constants/__init__.py +0 -0
  284. package/.agents/skills/autoconverge/workflow/autoconverge_report_constants/render_report_constants.py +0 -250
  285. package/.agents/skills/autoconverge/workflow/converge.clean-audit.test.mjs +0 -665
  286. package/.agents/skills/autoconverge/workflow/converge.codex-gate.test.mjs +0 -472
  287. package/.agents/skills/autoconverge/workflow/converge.contract.test.mjs +0 -64
  288. package/.agents/skills/autoconverge/workflow/converge.copilot-gate.test.mjs +0 -1009
  289. package/.agents/skills/autoconverge/workflow/converge.fix-progress.test.mjs +0 -107
  290. package/.agents/skills/autoconverge/workflow/converge.fix-recovery.test.mjs +0 -33
  291. package/.agents/skills/autoconverge/workflow/converge.merge-conflict.test.mjs +0 -15
  292. package/.agents/skills/autoconverge/workflow/converge.mjs +0 -3132
  293. package/.agents/skills/autoconverge/workflow/converge.p2-advance.test.mjs +0 -202
  294. package/.agents/skills/autoconverge/workflow/converge.path-aware.test.mjs +0 -47
  295. package/.agents/skills/autoconverge/workflow/converge.precatch.test.mjs +0 -152
  296. package/.agents/skills/autoconverge/workflow/converge.run-input.test.mjs +0 -116
  297. package/.agents/skills/autoconverge/workflow/converge_multi.mjs +0 -169
  298. package/.agents/skills/autoconverge/workflow/converge_multi.run-input.test.mjs +0 -173
  299. package/.agents/skills/autoconverge/workflow/convergence_summary.py +0 -110
  300. package/.agents/skills/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-a11d903476b803493.jsonl +0 -2
  301. package/.agents/skills/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-a26213978adeef6fb.jsonl +0 -2
  302. package/.agents/skills/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-a3def0d15ed9d9110.jsonl +0 -2
  303. package/.agents/skills/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-a41f41b1b708ee3b7.jsonl +0 -2
  304. package/.agents/skills/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-a758b880abecc3ff7.jsonl +0 -2
  305. package/.agents/skills/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-a8897b89656b1bd16.jsonl +0 -2
  306. package/.agents/skills/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-ab1c2d3e4f5a6b7c8.jsonl +0 -2
  307. package/.agents/skills/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-abd463d744a1437bc.jsonl +0 -2
  308. package/.agents/skills/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-ad19d027ae8ee1816.jsonl +0 -2
  309. package/.agents/skills/autoconverge/workflow/fixtures/wf_run/workflows/wf_881252e6-700.json +0 -266
  310. package/.agents/skills/autoconverge/workflow/render_report.py +0 -1024
  311. package/.agents/skills/autoconverge/workflow/test_aggregate_runs.py +0 -134
  312. package/.agents/skills/autoconverge/workflow/test_convergence_summary.py +0 -149
  313. package/.agents/skills/autoconverge/workflow/test_render_report.py +0 -812
  314. package/.agents/skills/hitl/SKILL.md +0 -45
  315. package/.agents/skills/pr-cleanup/SKILL.md +0 -140
  316. package/.agents/skills/pr-cleanup/reference/process-inventory.md +0 -17
  317. package/.agents/skills/pr-cleanup/reference/task-seeds.md +0 -22
  318. package/.agents/skills/pr-name-by-capability/SKILL.md +0 -73
  319. package/.agents/skills/pr-name-by-capability/reference/fetch-commands.md +0 -29
  320. package/.agents/skills/pr-name-by-capability/reference/offense-examples.md +0 -32
  321. package/.agents/skills/pr-name-by-capability/reference/report-template.md +0 -29
  322. package/.agents/skills/pr-name-by-capability/reference/rule-checklist.md +0 -38
  323. package/.agents/skills/pr-name-by-capability/reference/task-seeds.md +0 -10
  324. package/.agents/skills/pr-plain-language-cleanup/SKILL.md +0 -93
  325. package/.agents/skills/pr-refinement/SKILL.md +0 -31
  326. package/.agents/skills/pr-shared-extraction/SKILL.md +0 -177
  327. package/.agents/skills/pr-shared-extraction/reference/examples.md +0 -46
  328. package/.agents/skills/pr-shared-extraction/reference/offense-taxonomy.md +0 -100
  329. package/.agents/skills/pr-small-cl/SKILL.md +0 -52
  330. package/.agents/skills/pr-title-description/SKILL.md +0 -96
  331. package/.agents/skills/prototype/SKILL.md +0 -85
  332. package/.agents/skills/prototype/reference/honest-limitations.md +0 -23
  333. package/.agents/skills/prototype/reference/promotion-tasks.md +0 -23
  334. package/.agents/skills/prototype/scripts/build_sandbox_settings.py +0 -249
  335. package/.agents/skills/prototype/scripts/conftest.py +0 -15
  336. package/.agents/skills/prototype/scripts/launch_sandbox.py +0 -205
  337. package/.agents/skills/prototype/scripts/probe_sandbox_safety.py +0 -311
  338. package/.agents/skills/prototype/scripts/prototype_scripts_constants/__init__.py +0 -1
  339. package/.agents/skills/prototype/scripts/prototype_scripts_constants/config/__init__.py +0 -0
  340. package/.agents/skills/prototype/scripts/prototype_scripts_constants/config/build_sandbox_settings_constants.py +0 -41
  341. package/.agents/skills/prototype/scripts/prototype_scripts_constants/config/launch_sandbox_constants.py +0 -23
  342. package/.agents/skills/prototype/scripts/prototype_scripts_constants/config/probe_sandbox_safety_constants.py +0 -45
  343. package/.agents/skills/prototype/scripts/prototype_scripts_constants/config/prototype_common_constants.py +0 -10
  344. package/.agents/skills/prototype/scripts/test_build_sandbox_settings.py +0 -275
  345. package/.agents/skills/prototype/scripts/test_launch_sandbox.py +0 -303
  346. package/.agents/skills/prototype/scripts/test_probe_sandbox_safety.py +0 -312
  347. package/.agents/skills/prototype/workflows/promotion.md +0 -25
  348. package/.agents/skills/prototype/workflows/sandbox.md +0 -35
  349. package/.agents/skills/rebase/.claude/CLAUDE.md +0 -1
  350. package/.agents/skills/rebase/AGENTS.md +0 -1
  351. package/.agents/skills/rebase/SKILL.md +0 -178
  352. package/.agents/skills/review-router/SKILL.md +0 -51
  353. package/.agents/skills/review-router/reference/route-policy.json +0 -7
  354. package/.agents/skills/review-router/reference/task-seeds.md +0 -1
  355. package/.agents/skills/review-router/scripts/conftest.py +0 -4
  356. package/.agents/skills/review-router/scripts/review_router.py +0 -50
  357. package/.agents/skills/review-router/scripts/review_router_cli.py +0 -211
  358. package/.agents/skills/review-router/scripts/review_router_constants/__init__.py +0 -1
  359. package/.agents/skills/review-router/scripts/review_router_constants/config/__init__.py +0 -0
  360. package/.agents/skills/review-router/scripts/review_router_constants/config/constants.py +0 -13
  361. package/.agents/skills/review-router/scripts/test_review_router.py +0 -23
  362. package/.agents/skills/review-router/scripts/test_review_router_cli.py +0 -47
  363. package/.agents/skills/review-tier/SKILL.md +0 -56
  364. package/.agents/skills/review-tier/reference/task-seeds.md +0 -1
  365. package/.agents/skills/review-tier/reference/tier-policy.json +0 -9
  366. package/.agents/skills/review-tier/scripts/conftest.py +0 -4
  367. package/.agents/skills/review-tier/scripts/review_tier.py +0 -359
  368. package/.agents/skills/review-tier/scripts/review_tier_constants/__init__.py +0 -1
  369. package/.agents/skills/review-tier/scripts/review_tier_constants/config/__init__.py +0 -0
  370. package/.agents/skills/review-tier/scripts/review_tier_constants/config/constants.py +0 -29
  371. package/.agents/skills/review-tier/scripts/test_generation.py +0 -159
  372. package/.agents/skills/review-tier/scripts/test_review_tier.py +0 -33
  373. package/.agents/skills/run-claude-dev-env/SKILL.md +0 -84
  374. package/.agents/skills/session-log/.claude/CLAUDE.md +0 -1
  375. package/.agents/skills/session-log/AGENTS.md +0 -1
  376. package/.agents/skills/session-log/SKILL.md +0 -170
  377. package/.agents/skills/session-log/templates/frontmatter.md +0 -40
  378. package/.agents/skills/session-tidy/.claude/CLAUDE.md +0 -1
  379. package/.agents/skills/session-tidy/AGENTS.md +0 -1
  380. package/.agents/skills/session-tidy/SKILL.md +0 -191
  381. package/.agents/skills/skill-builder/references/.claude/CLAUDE.md +0 -1
  382. package/.agents/skills/skill-builder/references/AGENTS.md +0 -1
  383. package/.agents/skills/skill-builder/references/delegation-map.md +0 -130
  384. package/.agents/skills/skill-builder/references/description-field.md +0 -111
  385. package/.agents/skills/skill-builder/references/deterministic-elements.md +0 -218
  386. package/.agents/skills/skill-builder/references/progressive-disclosure.md +0 -122
  387. package/.agents/skills/skill-builder/references/self-audit-checklist.md +0 -126
  388. package/.agents/skills/skill-builder/references/skill-modularity.md +0 -111
  389. package/.agents/skills/skill-builder/references/skill-types.md +0 -232
  390. package/.agents/skills/skill-builder/references/thariq-x-post-skills.json +0 -33
  391. package/.agents/skills/skill-builder/templates/.claude/CLAUDE.md +0 -1
  392. package/.agents/skills/skill-builder/templates/AGENTS.md +0 -1
  393. package/.agents/skills/skill-builder/templates/gap-analysis.md +0 -87
  394. package/.agents/skills/skill-builder/workflows/.claude/CLAUDE.md +0 -1
  395. package/.agents/skills/skill-builder/workflows/AGENTS.md +0 -1
  396. package/.agents/skills/skill-builder/workflows/improve-skill.md +0 -136
  397. package/.agents/skills/skill-builder/workflows/new-skill.md +0 -179
  398. package/.agents/skills/skill-builder/workflows/polish-skill.md +0 -139
  399. package/.agents/skills/source-command-sr-loop/SKILL.md +0 -82
  400. package/.agents/skills/update/.claude/CLAUDE.md +0 -1
  401. package/.agents/skills/update/AGENTS.md +0 -1
  402. package/.agents/skills/update/SKILL.md +0 -190
  403. package/_shared/pr-loop/AGENTS.md +0 -1
  404. package/_shared/pr-loop/audit-contract.md +0 -183
  405. package/_shared/pr-loop/audit-reply-template.md +0 -151
  406. package/_shared/pr-loop/code-rules-gate.md +0 -65
  407. package/_shared/pr-loop/fix-protocol.md +0 -60
  408. package/_shared/pr-loop/gh-payloads.md +0 -75
  409. package/_shared/pr-loop/post-audit-thread-contract.md +0 -51
  410. package/_shared/pr-loop/precatch-rubric.md +0 -66
  411. package/_shared/pr-loop/preflight-proposal.md +0 -56
  412. package/_shared/pr-loop/scripts/post_audit_thread.py +0 -1242
  413. package/_shared/pr-loop/scripts/pr_loop_shared_constants/post_audit_thread_constants.py +0 -199
  414. package/_shared/pr-loop/scripts/tests/test_post_audit_thread.py +0 -1115
  415. package/_shared/pr-loop/scripts/tests/test_post_audit_thread_constants.py +0 -129
  416. package/_shared/pr-loop/state-schema.md +0 -45
  417. package/_shared/pr-loop/worker-spawn.md +0 -189
  418. package/hooks/blocking/ask_user_question_shape_blocker.py +0 -83
  419. package/hooks/blocking/bot_mention_comment_blocker.py +0 -76
  420. package/hooks/blocking/claude_md_orphan_file_blocker.py +0 -129
  421. package/hooks/blocking/cursor_cli_python_misfire_blocker.py +0 -108
  422. package/hooks/blocking/destructive_command_blocker.py +0 -2073
  423. package/hooks/blocking/fable_spawn_gate.py +0 -187
  424. package/hooks/blocking/luna_fast_mode_gate.py +0 -160
  425. package/hooks/blocking/nas_ssh_binary_enforcer.py +0 -163
  426. package/hooks/blocking/orchestrator_refresh_reschedule_gate.py +0 -260
  427. package/hooks/blocking/package_inventory_stale_blocker.py +0 -107
  428. package/hooks/blocking/pii_prevention_blocker.py +0 -365
  429. package/hooks/blocking/piped_pytest_blocker.py +0 -1223
  430. package/hooks/blocking/question_to_user_enforcer.py +0 -130
  431. package/hooks/blocking/send_user_file_open_locally_blocker.py +0 -71
  432. package/hooks/blocking/sensitive_file_protector.py +0 -167
  433. package/hooks/blocking/session_edit_stage_gate.py +0 -684
  434. package/hooks/blocking/session_handoff_blocker.py +0 -182
  435. package/hooks/blocking/shell_substitution_blocker.py +0 -350
  436. package/hooks/blocking/test_ask_user_question_shape.py +0 -69
  437. package/hooks/blocking/test_bot_mention_comment_blocker.py +0 -131
  438. package/hooks/blocking/test_claude_md_orphan_file_blocker.py +0 -1277
  439. package/hooks/blocking/test_cursor_cli_python_misfire_blocker.py +0 -208
  440. package/hooks/blocking/test_destructive_command_blocker.py +0 -2024
  441. package/hooks/blocking/test_destructive_command_blocker_deny_mode.py +0 -105
  442. package/hooks/blocking/test_destructive_command_blocker_no_verify.py +0 -122
  443. package/hooks/blocking/test_destructive_command_blocker_patterns.py +0 -133
  444. package/hooks/blocking/test_fable_spawn_gate.py +0 -381
  445. package/hooks/blocking/test_inventory_deadlock_resolution.py +0 -154
  446. package/hooks/blocking/test_luna_fast_mode_gate.py +0 -211
  447. package/hooks/blocking/test_nas_ssh_binary_enforcer.py +0 -225
  448. package/hooks/blocking/test_orchestrator_refresh_reschedule_gate.py +0 -231
  449. package/hooks/blocking/test_package_inventory_stale_blocker.py +0 -382
  450. package/hooks/blocking/test_pii_prevention_blocker.py +0 -1222
  451. package/hooks/blocking/test_pii_prevention_windows_git_path.py +0 -41
  452. package/hooks/blocking/test_pii_write_surface_ephemeral.py +0 -221
  453. package/hooks/blocking/test_piped_pytest_blocker.py +0 -587
  454. package/hooks/blocking/test_precommit_code_rules_gate_native_owner.py +0 -233
  455. package/hooks/blocking/test_question_to_user_enforcer.py +0 -169
  456. package/hooks/blocking/test_send_user_file_open_locally_blocker.py +0 -118
  457. package/hooks/blocking/test_sensitive_file_protector.py +0 -365
  458. package/hooks/blocking/test_session_edit_stage_gate.py +0 -537
  459. package/hooks/blocking/test_session_edit_stage_gate_staging.py +0 -64
  460. package/hooks/blocking/test_session_edit_stage_gate_support.py +0 -204
  461. package/hooks/blocking/test_session_edit_stage_gate_tracker.py +0 -116
  462. package/hooks/blocking/test_session_handoff_blocker.py +0 -318
  463. package/hooks/blocking/test_shell_substitution_blocker.py +0 -298
  464. package/hooks/blocking/test_unscoped_search_blocker.py +0 -102
  465. package/hooks/blocking/test_write_existing_file_blocker.py +0 -122
  466. package/hooks/blocking/tests/test_pii_prevention_blocker.py +0 -259
  467. package/hooks/blocking/unscoped_search_blocker.py +0 -391
  468. package/hooks/blocking/write_existing_file_blocker.py +0 -124
  469. package/hooks/hooks_constants/bot_mention_comment_blocker_constants.py +0 -19
  470. package/hooks/hooks_constants/cursor_cli_python_misfire_blocker_constants.py +0 -79
  471. package/hooks/hooks_constants/fable_spawn_gate_constants.py +0 -61
  472. package/hooks/hooks_constants/luna_fast_mode_gate_constants.py +0 -45
  473. package/hooks/hooks_constants/nas_ssh_binary_enforcer_constants.py +0 -20
  474. package/hooks/hooks_constants/orchestrator_refresh_reschedule_gate_constants.py +0 -57
  475. package/hooks/hooks_constants/send_user_file_open_locally_blocker_constants.py +0 -17
  476. package/hooks/hooks_constants/sensitive_file_protector_constants.py +0 -40
  477. package/hooks/hooks_constants/session_handoff_blocker_constants.py +0 -10
  478. package/hooks/hooks_constants/shell_substitution_blocker_constants.py +0 -80
  479. /package/.agents/skills/{_shared/pr-loop → session-continuity}/AGENTS.md +0 -0
  480. /package/{_shared/pr-loop → .agents/skills/session-continuity}/CLAUDE.md +0 -0
@@ -1,56 +0,0 @@
1
- """Constants for the scripted converge task-list builder.
2
-
3
- ``build_converge_task_list.py`` is the only place that decides which review
4
- gates appear on a run. Skill prose must not invent a different list.
5
- """
6
-
7
- from __future__ import annotations
8
-
9
- TASK_ID_CODE_REVIEW: str = "code_review"
10
- TASK_ID_BUGTEAM: str = "bugteam"
11
- TASK_ID_BUGBOT: str = "bugbot"
12
- TASK_ID_COPILOT: str = "copilot"
13
- TASK_ID_CODEX: str = "codex"
14
- TASK_ID_ALL_CLEAN_SAME_HEAD: str = "all_runnable_reviews_clean_same_head"
15
-
16
- TASK_KIND_REVIEW: str = "review"
17
- TASK_KIND_FINAL: str = "final"
18
-
19
- TASK_TITLE_CODE_REVIEW: str = "CODE_REVIEW clean (invoke_code_review / high)"
20
- TASK_TITLE_BUGTEAM: str = "BUGTEAM clean (full origin/main...HEAD audit)"
21
- TASK_TITLE_BUGBOT: str = "BUGBOT clean on same HEAD (or down/skip)"
22
- TASK_TITLE_COPILOT: str = "COPILOT clean on same HEAD (or down/skip)"
23
- TASK_TITLE_CODEX: str = "CODEX clean on same HEAD (when required)"
24
- TASK_TITLE_ALL_CLEAN_SAME_HEAD: str = (
25
- "All runnable code reviews CLEAN on the same HEAD"
26
- )
27
-
28
- RESULT_KEY_TASKS: str = "tasks"
29
- RESULT_KEY_FINAL_TASK_ID: str = "final_task_id"
30
- RESULT_KEY_RUNNABLE_REVIEW_IDS: str = "runnable_review_ids"
31
- RESULT_KEY_SKIPPED_REVIEW_IDS: str = "skipped_review_ids"
32
- RESULT_KEY_DONE_WHEN: str = "done_when"
33
-
34
- TASK_FIELD_ID: str = "id"
35
- TASK_FIELD_TITLE: str = "title"
36
- TASK_FIELD_KIND: str = "kind"
37
- TASK_FIELD_IS_RUNNABLE: str = "is_runnable"
38
- TASK_FIELD_SKIP_REASON: str = "skip_reason"
39
-
40
- SKIP_REASON_BUGBOT_DOWN: str = "bugbot_down"
41
- SKIP_REASON_COPILOT_DOWN: str = "copilot_down"
42
- SKIP_REASON_CODEX_DOWN: str = "codex_down"
43
- SKIP_REASON_CODEX_NOT_REQUIRED: str = "codex_not_required"
44
-
45
- CLI_BUGBOT_DOWN_FLAG: str = "--bugbot-down"
46
- CLI_COPILOT_DOWN_FLAG: str = "--copilot-down"
47
- CLI_CODEX_DOWN_FLAG: str = "--codex-down"
48
- CLI_CODEX_REQUIRED_FLAG: str = "--codex-required"
49
-
50
- DONE_WHEN_TEXT: str = (
51
- "Every task with is_runnable true and kind review is clean at one shared "
52
- "HEAD; final task all_runnable_reviews_clean_same_head is completed."
53
- )
54
-
55
- EXIT_SUCCESS: int = 0
56
- EXIT_USAGE_ERROR: int = 2
@@ -1,45 +0,0 @@
1
- """Filename, path-segment, and template constants for the durable handoff writer.
2
-
3
- Consumed by `write_handoff.py`, which writes each pr-loop run's resume-handoff
4
- files under `~/.claude/runtime/pr-loop/<run-name>/`.
5
- """
6
-
7
- ALL_HANDOFF_DIR_SEGMENTS = (".claude", "runtime", "pr-loop")
8
- HANDOFF_JSON_FILENAME = "handoff.json"
9
- HANDOFF_MARKDOWN_FILENAME = "HANDOFF.md"
10
- STATE_COPY_FILENAME = "state-copy.json"
11
- ATOMIC_STAGING_SUFFIX = ".tmp"
12
- HANDOFF_JSON_INDENT = 2
13
- COMPLETED_STEPS_SEPARATOR = ","
14
- STEP_LINE_SEPARATOR = "\n"
15
-
16
- NO_STATE_SNAPSHOT_LINE = (
17
- "No state snapshot was captured. Rebuild loop state from the PR before resuming."
18
- )
19
- DEFAULT_NEXT_STEP_LINE = "Continue from the resume command above."
20
- NO_STEPS_DONE_LINE = "- (none recorded yet)"
21
-
22
- HANDOFF_MARKDOWN_TEMPLATE = """# Resume handoff — PR {pr_number} ({head_ref})
23
-
24
- Goal: drive PR {pr_number} to convergence. This run stopped at phase `{phase}`.
25
-
26
- ## Resume command
27
-
28
- Run this exactly:
29
-
30
- ```
31
- {resume_command}
32
- ```
33
-
34
- ## State file to trust
35
-
36
- {state_line}
37
-
38
- ## Steps already done
39
-
40
- {steps_block}
41
-
42
- ## Next step
43
-
44
- {next_step}
45
- """
@@ -1,47 +0,0 @@
1
- """Named constants for converge pacer selection.
2
-
3
- Consumed by ``select_converge_pacer.py``. Pacer names are the only values the
4
- skill hubs and the portable driver accept.
5
- """
6
-
7
- from __future__ import annotations
8
-
9
- ENTRY_SKILL_PR_CONVERGE: str = "pr-converge"
10
- ENTRY_SKILL_AUTOCONVERGE: str = "autoconverge"
11
- ALL_ENTRY_SKILLS: tuple[str, ...] = (
12
- ENTRY_SKILL_PR_CONVERGE,
13
- ENTRY_SKILL_AUTOCONVERGE,
14
- )
15
-
16
- PACER_WORKFLOW: str = "workflow"
17
- PACER_SCHEDULE_WAKEUP: str = "schedule_wakeup"
18
- PACER_PORTABLE: str = "portable"
19
-
20
- CLI_SKILL_FLAG: str = "--skill"
21
- CLI_HAS_WORKFLOW_FLAG: str = "--has-workflow"
22
- CLI_HAS_SCHEDULE_WAKEUP_FLAG: str = "--has-schedule-wakeup"
23
-
24
- RESULT_KEY_PACER: str = "pacer"
25
- RESULT_KEY_ENTRY_SKILL: str = "entry_skill"
26
- RESULT_KEY_HAS_WORKFLOW: str = "has_workflow"
27
- RESULT_KEY_HAS_SCHEDULE_WAKEUP: str = "has_schedule_wakeup"
28
-
29
- ALL_TRUTHY_FLAG_TOKENS: frozenset[str] = frozenset(
30
- {"1", "true", "yes", "on", "y", "t"}
31
- )
32
- ALL_FALSY_FLAG_TOKENS: frozenset[str] = frozenset(
33
- {"0", "false", "no", "off", "n", "f"}
34
- )
35
-
36
- ENTRY_SKILL_JOIN_SEPARATOR: str = ", "
37
-
38
- UNKNOWN_ENTRY_SKILL_ERROR: str = (
39
- "entry skill must be one of {allowed}; got {got!r}"
40
- )
41
- INVALID_BOOL_FLAG_ERROR: str = (
42
- "flag value must be a boolean token (0/1, true/false, yes/no, on/off); "
43
- "got {got!r}"
44
- )
45
-
46
- EXIT_SUCCESS: int = 0
47
- EXIT_USAGE_ERROR: int = 2
@@ -1,157 +0,0 @@
1
- """Path template constants for the bugteam / pr-loop shared scripts."""
2
-
3
- import re
4
-
5
- from audit_category_schema import category_id_title_entries
6
-
7
- RUN_NAME_TEMPLATE_SINGLE = "bugteam-pr-{number}"
8
- RUN_NAME_TEMPLATE_MULTI = "bugteam-{sanitized_branch}"
9
- PER_PR_WORKSPACE_TEMPLATE = "pr-{number}"
10
- WORKTREE_DIRNAME = "worktree"
11
- DIFF_PATCH_TEMPLATE = "loop-{loop}.patch"
12
- OUTCOME_XML_TEMPLATE = ".bugteam-pr{number}-loop{loop}.outcomes.xml"
13
- FIX_OUTCOME_XML_TEMPLATE = ".bugteam-pr{number}-loop{loop}.fix-outcomes.xml"
14
- SLUGIFY_SAFE_CHARS = re.compile(r"[^A-Za-z0-9._-]")
15
- SLUGIFY_REPLACEMENT = "-"
16
- MULTI_PR_SLUG_TEMPLATE = "{owner}-{repo}-pr-{number}"
17
- LOOP_STATE_JSON_INDENT = 2
18
- ALL_VALID_FIX_STATUSES = frozenset({
19
- "fixed",
20
- "could_not_address",
21
- "hook_blocked",
22
- "unverified_fixed",
23
- })
24
-
25
- ALL_AUDIT_CONSTRAINT_TEXTS = [
26
- "Work exclusively within the worktree directory.",
27
- "Every finding must cite file:line.",
28
- "Document each finding with severity, file, line, and suggested fix.",
29
- "Report every real finding. Collection retains all severities "
30
- "(P0, P1, P2). Do not drop findings by severity during collection; "
31
- "severity or action filtering is a separate consumer stage after the "
32
- "collection record is complete.",
33
- "Read each file in the diff before reporting on it.",
34
- "Double-quote every path in shell commands and write paths with "
35
- "forward slashes (e.g. C:/Users/...), even on Windows.",
36
- ]
37
-
38
- ALL_AUDIT_CATEGORY_ENTRIES = category_id_title_entries()
39
-
40
- AUDIT_RUBRIC_REFERENCE_TEXT = (
41
- "The category list above is a summary. The binding definition of each "
42
- "category is its rubric file under $HOME/.claude/audit-rubrics/category_rubrics/ "
43
- "(ready-to-send prompt variants under $HOME/.claude/audit-rubrics/prompts/). "
44
- "Read the rubric files before auditing."
45
- )
46
-
47
- AUDIT_PROMPT_FLAVOR_AGENT = "agent"
48
- AUDIT_PROMPT_FLAVOR_HEADLESS = "headless"
49
- ALL_AUDIT_PROMPT_FLAVORS = frozenset({
50
- AUDIT_PROMPT_FLAVOR_AGENT,
51
- AUDIT_PROMPT_FLAVOR_HEADLESS,
52
- })
53
-
54
- AUDIT_COMMENT_POSTING_AGENT_TEXT = (
55
- "Post findings as inline review comments on the PR via "
56
- "the GitHub MCP add_comment_to_pending_review tool. "
57
- "Group related findings into a single pending review."
58
- )
59
- AUDIT_COMMENT_POSTING_HEADLESS_TEXT = (
60
- "Do not post reviews or comments. Use gh only when you must read "
61
- "PR metadata. Write findings into the outcome XML named in "
62
- "<output_format>. The lead session posts the review with "
63
- "post_audit_thread.py after the worker exits."
64
- )
65
- AUDIT_OUTPUT_FORMAT_AGENT_TEXT = (
66
- "Emit findings as JSON array of objects with keys: "
67
- "severity (P0/P1/P2), file, line, category, message, suggestion."
68
- )
69
- AUDIT_OUTPUT_FORMAT_HEADLESS_TEMPLATE = (
70
- "Write the complete audit outcome XML to {outcome_path}. "
71
- "Leave review_url empty when the lead posts after you exit. "
72
- "Do not use TaskCreate, MCP tools, or Artifact tools."
73
- )
74
-
75
- ALL_FIX_EXECUTION_STEPS = [
76
- "Read the finding and verify it against the current file at file:line.",
77
- "Write a failing test that reproduces the bug.",
78
- "Implement the smallest change that resolves the finding.",
79
- "Run the full test suite — confirm the new test and all existing tests pass.",
80
- "Stage and commit the fix with a descriptive message.",
81
- "Push the commit to the head branch.",
82
- "Post an inline reply on the finding thread confirming the fix.",
83
- ]
84
-
85
- ALL_FIX_EXECUTION_STEPS_HEADLESS = [
86
- "Read the finding and verify it against the current file at file:line.",
87
- "Write a failing test that reproduces the bug.",
88
- "Implement the smallest change that resolves the finding.",
89
- "Run the full test suite — confirm the new test and all existing tests pass.",
90
- "Leave the working tree dirty with your edits. Do not stage, commit, or push.",
91
- ]
92
-
93
- ALL_FIX_CONSTRAINT_TEXTS = [
94
- "Work exclusively within the worktree directory.",
95
- "Change only the lines directly related to each finding.",
96
- "Create one commit per fix loop, each focused on a single category of findings.",
97
- "Every fix must have a corresponding test.",
98
- "Remove deprecated code directly and update all call sites.",
99
- "Handle each error case with a named exception type.",
100
- "Double-quote every path in shell commands and write paths with "
101
- "forward slashes (e.g. C:/Users/...), even on Windows.",
102
- ]
103
-
104
- ALL_FIX_CONSTRAINT_TEXTS_HEADLESS = [
105
- "Work exclusively within the worktree directory.",
106
- "Change only the lines directly related to each finding.",
107
- "Every fix must have a corresponding test.",
108
- "Remove deprecated code directly and update all call sites.",
109
- "Handle each error case with a named exception type.",
110
- "Do not stage, commit, or push. The lead owns git write operations.",
111
- "Do not use TaskCreate, MCP tools, or Artifact tools.",
112
- "Double-quote every path in shell commands and write paths with "
113
- "forward slashes (e.g. C:/Users/...), even on Windows.",
114
- ]
115
-
116
- FIX_PROMPT_FLAVOR_AGENT = "agent"
117
- FIX_PROMPT_FLAVOR_HEADLESS = "headless"
118
- ALL_FIX_PROMPT_FLAVORS = frozenset({
119
- FIX_PROMPT_FLAVOR_AGENT,
120
- FIX_PROMPT_FLAVOR_HEADLESS,
121
- })
122
-
123
- FIX_COMMENT_POSTING_AGENT_TEXT = (
124
- "After commit, post one reply per finding thread via the GitHub MCP "
125
- "add_reply_to_pull_request_comment tool, then resolve the thread."
126
- )
127
- FIX_COMMENT_POSTING_HEADLESS_TEXT = (
128
- "Do not post replies or resolve threads. Use gh only when you must read "
129
- "PR metadata. Write per-finding outcomes into the outcome XML named in "
130
- "<output_format>. The lead session posts replies after the worker exits."
131
- )
132
- FIX_OUTPUT_FORMAT_AGENT_TEXT = (
133
- "After posting replies, write the complete fix outcome XML "
134
- "(schema in PROMPTS.md)."
135
- )
136
- FIX_OUTPUT_FORMAT_HEADLESS_TEMPLATE = (
137
- "Write the complete fix outcome XML to {outcome_path}. "
138
- "Leave commit_sha empty when the lead commits after you exit. "
139
- "Do not use TaskCreate, MCP tools, or Artifact tools."
140
- )
141
-
142
- ALL_PYTHON_ONEXC_VERSION = (3, 12)
143
-
144
- FINDINGS_JSON_MUST_BE_LIST_MESSAGE = (
145
- "findings-json root must be a JSON array of finding objects, got %s"
146
- )
147
-
148
- ALL_FINDING_BODY_ELEMENT_KEYS: tuple[str, ...] = (
149
- "title",
150
- "excerpt",
151
- "description",
152
- )
153
-
154
- ALL_FIX_OUTCOME_BODY_ELEMENT_KEYS: tuple[str, ...] = (
155
- "reason",
156
- "hook_output",
157
- )
@@ -1,177 +0,0 @@
1
- """Constants for the scripted portable converge driver.
2
-
3
- Deterministic control for third-party pacers lives in
4
- ``portable_converge_driver.py``. These names are the only phase, next-action,
5
- and delay tokens that driver emits.
6
- """
7
-
8
- from __future__ import annotations
9
-
10
- PHASE_CODE_REVIEW: str = "CODE_REVIEW"
11
- PHASE_BUGTEAM: str = "BUGTEAM"
12
- PHASE_BUGBOT: str = "BUGBOT"
13
- PHASE_COPILOT_WAIT: str = "COPILOT_WAIT"
14
- PHASE_READY: str = "READY"
15
- PHASE_BLOCKED: str = "BLOCKED"
16
- ALL_PHASES: tuple[str, ...] = (
17
- PHASE_CODE_REVIEW,
18
- PHASE_BUGTEAM,
19
- PHASE_BUGBOT,
20
- PHASE_COPILOT_WAIT,
21
- PHASE_READY,
22
- PHASE_BLOCKED,
23
- )
24
-
25
- NEXT_RUN_CODE_REVIEW: str = "run_code_review"
26
- NEXT_APPLY_FIXES: str = "apply_fixes_and_push"
27
- NEXT_RUN_BUGTEAM: str = "run_bugteam"
28
- NEXT_RUN_BUGBOT_GATE: str = "run_bugbot_gate"
29
- NEXT_RUN_CODEX: str = "run_codex_review"
30
- NEXT_REQUEST_COPILOT: str = "request_copilot_review"
31
- NEXT_POLL_WAIT: str = "poll_wait"
32
- NEXT_CHECK_READY: str = "check_ready"
33
- NEXT_MARK_READY: str = "mark_ready"
34
- NEXT_TEARDOWN: str = "teardown"
35
- NEXT_STOP_BLOCKED: str = "stop_blocked"
36
- ALL_NEXT_ACTIONS: tuple[str, ...] = (
37
- NEXT_RUN_CODE_REVIEW,
38
- NEXT_APPLY_FIXES,
39
- NEXT_RUN_BUGTEAM,
40
- NEXT_RUN_BUGBOT_GATE,
41
- NEXT_RUN_CODEX,
42
- NEXT_REQUEST_COPILOT,
43
- NEXT_POLL_WAIT,
44
- NEXT_CHECK_READY,
45
- NEXT_MARK_READY,
46
- NEXT_TEARDOWN,
47
- NEXT_STOP_BLOCKED,
48
- )
49
-
50
- DEFAULT_WAIT_SECONDS: int = 360
51
- BUGBOT_INLINE_LAG_WAIT_SECONDS: int = 90
52
- INLINE_LAG_STREAK_CAP: int = 3
53
- COPILOT_WAIT_HARD_CAP: int = 3
54
- BUGBOT_ABSENT_WAIT_HARD_CAP: int = 3
55
-
56
- STATE_FILENAME: str = "pr-converge-state.json"
57
- STATE_JSON_INDENT: int = 2
58
- STATE_STAGING_SUFFIX: str = ".tmp"
59
- ALL_GIT_REV_PARSE_HEAD_ARGV: tuple[str, ...] = ("git", "rev-parse", "HEAD")
60
- PREFLIGHT_WORKTREE_SCRIPT_NAME: str = "preflight_worktree.py"
61
- CLI_DESCRIPTION: str = "portable_converge_driver phase machine"
62
- SERVED_COMMAND_IN_SESSION: str = "in_session"
63
-
64
- RESULT_KEY_STATUS: str = "status"
65
- RESULT_KEY_PHASE: str = "phase"
66
- RESULT_KEY_NEXT: str = "next"
67
- RESULT_KEY_STATE_FILE: str = "state_file"
68
- RESULT_KEY_CURRENT_HEAD: str = "current_head"
69
- RESULT_KEY_TICK_COUNT: str = "tick_count"
70
- RESULT_KEY_WAIT_SECONDS: str = "wait_seconds"
71
- RESULT_KEY_BLOCKER: str = "blocker"
72
- RESULT_KEY_COMMANDS: str = "commands"
73
- RESULT_KEY_PACER: str = "pacer"
74
- RESULT_KEY_ENTRY_SKILL: str = "entry_skill"
75
- RESULT_KEY_OWNER: str = "owner"
76
- RESULT_KEY_REPO: str = "repo"
77
- RESULT_KEY_PR_NUMBER: str = "pr_number"
78
- RESULT_KEY_MESSAGE: str = "message"
79
- RESULT_KEY_COPILOT_DOWN: str = "copilot_down"
80
- RESULT_KEY_BUGBOT_DOWN: str = "bugbot_down"
81
- RESULT_KEY_CODEX_DOWN: str = "codex_down"
82
-
83
- STATUS_OK: str = "ok"
84
- STATUS_ERROR: str = "error"
85
-
86
- BLOCKER_COPILOT_WAIT_CAP: str = "copilot_wait_cap"
87
- BLOCKER_BUGBOT_WAIT_CAP: str = "bugbot_wait_cap"
88
- BLOCKER_INLINE_LAG_CAP: str = "inline_lag_cap"
89
- BLOCKER_REVIEW_FAILED: str = "code_review_failed"
90
- BLOCKER_PREFLIGHT: str = "preflight_failed"
91
- BLOCKER_NOT_PORTABLE: str = "pacer_not_portable"
92
-
93
- CLI_STATE_DIR_FLAG: str = "--state-dir"
94
- CLI_STATE_FILE_FLAG: str = "--state-file"
95
- CLI_OWNER_FLAG: str = "--owner"
96
- CLI_REPO_FLAG: str = "--repo"
97
- CLI_PR_NUMBER_FLAG: str = "--pr-number"
98
- CLI_CWD_FLAG: str = "--cwd"
99
- CLI_SESSION_MODEL_FLAG: str = "--session-model"
100
- CLI_RETURNCODE_FLAG: str = "--returncode"
101
- CLI_DIRTY_TREE_FLAG: str = "--dirty-tree"
102
- CLI_SERVED_COMMAND_FLAG: str = "--served-command"
103
- CLI_PUSHED_FLAG: str = "--pushed"
104
- CLI_CONVERGED_FLAG: str = "--converged"
105
- CLI_CLASSIFICATION_FLAG: str = "--classification"
106
- CLI_REVIEW_SURFACED_FLAG: str = "--review-surfaced"
107
- CLI_INLINE_LAG_FLAG: str = "--inline-lag"
108
- CLI_BUGBOT_DOWN_FLAG: str = "--bugbot-down"
109
- CLI_COPILOT_DOWN_FLAG: str = "--copilot-down"
110
- CLI_CODEX_DOWN_FLAG: str = "--codex-down"
111
- CLI_CODEX_REQUIRED_FLAG: str = "--codex-required"
112
- CLI_CODEX_CLEAN_AT_FLAG: str = "--codex-clean-at"
113
- CLI_CURRENT_HEAD_FLAG: str = "--current-head"
114
- CLI_CHECK_CONVERGENCE_EXIT_FLAG: str = "--check-exit"
115
-
116
- CLASSIFICATION_CLEAN: str = "clean"
117
- CLASSIFICATION_DIRTY: str = "dirty"
118
- CLASSIFICATION_ABSENT: str = "absent"
119
- CLASSIFICATION_DOWN: str = "down"
120
- ALL_CLASSIFICATIONS: tuple[str, ...] = (
121
- CLASSIFICATION_CLEAN,
122
- CLASSIFICATION_DIRTY,
123
- CLASSIFICATION_ABSENT,
124
- CLASSIFICATION_DOWN,
125
- )
126
- ALL_COPILOT_CLASSIFICATIONS: tuple[str, ...] = (
127
- CLASSIFICATION_CLEAN,
128
- CLASSIFICATION_DIRTY,
129
- CLASSIFICATION_ABSENT,
130
- CLASSIFICATION_DOWN,
131
- )
132
- ALL_CODEX_CLASSIFICATIONS: tuple[str, ...] = (
133
- CLASSIFICATION_CLEAN,
134
- CLASSIFICATION_DIRTY,
135
- CLASSIFICATION_DOWN,
136
- )
137
-
138
- STATE_KEY_PENDING_NEXT: str = "pending_next"
139
- STATE_KEY_PENDING_WAIT_SECONDS: str = "pending_wait_seconds"
140
- STATE_KEY_CODEX_DOWN: str = "codex_down"
141
- STATE_KEY_CODEX_REQUIRED: str = "codex_required"
142
- STATE_KEY_CODEX_CLEAN_AT: str = "codex_clean_at"
143
- STATE_KEY_SESSION_MODEL: str = "session_model"
144
- STATE_KEY_CWD: str = "cwd"
145
-
146
- MARK_READY_GH_BINARY: str = "gh"
147
- MARK_READY_PR_TOKEN: str = "pr"
148
- MARK_READY_SUBCOMMAND: str = "ready"
149
- MARK_READY_REPO_FLAG: str = "--repo"
150
-
151
- CHECK_CONVERGENCE_OWNER_FLAG: str = "--owner"
152
- CHECK_CONVERGENCE_REPO_FLAG: str = "--repo"
153
- CHECK_CONVERGENCE_PR_NUMBER_FLAG: str = "--pr-number"
154
- CHECK_CONVERGENCE_COPILOT_DOWN_FLAG: str = "--copilot-down"
155
- CHECK_CONVERGENCE_BUGBOT_DOWN_FLAG: str = "--bugbot-down"
156
- CHECK_CONVERGENCE_CODEX_DOWN_FLAG: str = "--codex-down"
157
- CHECK_CONVERGENCE_CODEX_CLEAN_AT_FLAG: str = "--codex-clean-at"
158
-
159
- COMMAND_OPEN_RUN: str = "open-run"
160
- COMMAND_AFTER_CODE_REVIEW: str = "after-code-review"
161
- COMMAND_AFTER_BUGTEAM: str = "after-bugteam"
162
- COMMAND_AFTER_BUGBOT: str = "after-bugbot"
163
- COMMAND_AFTER_COPILOT_WAIT: str = "after-copilot-wait"
164
- COMMAND_AFTER_CODEX: str = "after-codex"
165
- COMMAND_AFTER_READY_CHECK: str = "after-ready-check"
166
- COMMAND_SHOW_STATE: str = "show-state"
167
-
168
- DEFAULT_SESSION_MODEL: str = "third-party"
169
-
170
- INVOKE_CODE_REVIEW_RELATIVE_PATH: str = ".claude/scripts/invoke_code_review.py"
171
- CHECK_CONVERGENCE_RELATIVE_PATH: str = (
172
- ".claude/_shared/pr-loop/scripts/check_convergence.py"
173
- )
174
-
175
- EXIT_SUCCESS: int = 0
176
- EXIT_USAGE_ERROR: int = 2
177
- EXIT_CONTRACT_ERROR: int = 1
@@ -1,70 +0,0 @@
1
- """Constants for the worktree/cwd preflight guard shared by pr-loop skills."""
2
-
3
- import re
4
-
5
- OUTCOME_SAME_REPO = "same_repo"
6
- OUTCOME_DIFFERENT_REPO = "different_repo"
7
- OUTCOME_RE_ROOTED = "re_rooted"
8
-
9
- MODE_STRICT = "strict"
10
- MODE_CLASSIFY = "classify"
11
- ALL_PREFLIGHT_MODES = (MODE_STRICT, MODE_CLASSIFY)
12
-
13
- EXIT_PREFLIGHT_OK = 0
14
- EXIT_PREFLIGHT_ABORT = 1
15
-
16
- GIT_EXECUTABLE = "git"
17
- GIT_DIRECTORY_FLAG = "-C"
18
- ALL_GIT_IS_INSIDE_WORK_TREE_ARGS = ("rev-parse", "--is-inside-work-tree")
19
- ALL_GIT_REMOTE_GET_URL_ARGS = ("remote", "get-url", "origin")
20
- ALL_GIT_WORKTREE_LIST_ARGS = ("worktree", "list")
21
- GIT_INSIDE_WORK_TREE_TRUE = "true"
22
- GIT_SUBPROCESS_TIMEOUT_SECONDS = 30
23
-
24
- REMOTE_URL_IDENTITY_PATTERN = re.compile(
25
- r"github\.com[:/](?P<owner>[^/]+)/(?P<repo>[^/]+?)(?:\.git)?/?$"
26
- )
27
-
28
- CWD_IDENTITY_UNKNOWN = "unknown"
29
-
30
- OWNER_ARG_FLAG = "--owner"
31
- REPO_ARG_FLAG = "--repo"
32
- MODE_ARG_FLAG = "--mode"
33
-
34
- PREFLIGHT_CLI_DESCRIPTION = (
35
- "Verify the working directory and worktree before a PR-convergence run."
36
- )
37
-
38
- OUTCOME_MARKER_TEMPLATE = "PREFLIGHT_OUTCOME={outcome}"
39
-
40
- SUMMARY_SAME_REPO_TEMPLATE = (
41
- "OK: the working directory is the PR repo {owner}/{repo}; EnterWorktree can "
42
- "create and enter the branch worktree."
43
- )
44
- SUMMARY_DIFFERENT_REPO_TEMPLATE = (
45
- "The working directory repo {cwd_owner}/{cwd_repo} differs from the PR repo "
46
- "{owner}/{repo}."
47
- )
48
- SUMMARY_RE_ROOTED_TEMPLATE = (
49
- "The working directory {cwd} is not a usable checkout of a GitHub repo "
50
- "(no git work tree, or no readable origin remote)."
51
- )
52
- ABORT_DIFFERENT_REPO_STRICT_TEMPLATE = (
53
- "ABORT: autoconverge runs inside the PR's own repo, but this session is "
54
- "rooted in {cwd_owner}/{cwd_repo}. Start the session from a checkout of "
55
- "{owner}/{repo} and re-run."
56
- )
57
- ABORT_RE_ROOTED_TEMPLATE = (
58
- "ABORT: this session is not rooted in a git checkout (a resumed or "
59
- "background session can re-root to the home directory). Start the session "
60
- "from a checkout of {owner}/{repo} and re-run."
61
- )
62
- ABORT_WORKTREE_BROKEN_TEMPLATE = (
63
- "ABORT: the git worktree machinery in {cwd} is broken (git worktree list "
64
- "failed), so EnterWorktree cannot create the branch worktree. Run "
65
- "'git worktree prune' in {cwd} and re-run."
66
- )
67
- ROUTE_DIFFERENT_REPO_TEMPLATE = (
68
- "ROUTE: resolve the PR worktree for {owner}/{repo} and cd into it before "
69
- "any local work (cross-repo PR)."
70
- )