claude-dev-env 2.4.0 → 2.7.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 (309) hide show
  1. package/CLAUDE.md +26 -59
  2. package/_shared/pr-loop/scripts/_claude_permissions_common.py +84 -0
  3. package/_shared/pr-loop/scripts/code_rules_gate.py +6 -3
  4. package/_shared/pr-loop/scripts/code_rules_gate_parts/CLAUDE.md +12 -2
  5. package/_shared/pr-loop/scripts/code_rules_gate_parts/baseline_import_isolation.py +309 -0
  6. package/_shared/pr-loop/scripts/code_rules_gate_parts/staged_test_regression.py +540 -0
  7. package/_shared/pr-loop/scripts/code_rules_gate_parts/staged_test_running.py +206 -70
  8. package/_shared/pr-loop/scripts/code_rules_gate_parts/tests/__init__.py +1 -0
  9. package/_shared/pr-loop/scripts/code_rules_gate_parts/tests/_repo_test_helpers.py +76 -0
  10. package/_shared/pr-loop/scripts/code_rules_gate_parts/tests/test_baseline_import_isolation.py +248 -0
  11. package/_shared/pr-loop/scripts/code_rules_gate_parts/tests/test_staged_test_regression.py +309 -0
  12. package/_shared/pr-loop/scripts/code_rules_gate_parts/tests/test_staged_test_running.py +91 -58
  13. package/_shared/pr-loop/scripts/grant_project_claude_permissions.py +306 -306
  14. package/_shared/pr-loop/scripts/pr_loop_shared_constants/claude_permissions_constants.py +44 -0
  15. package/_shared/pr-loop/scripts/pr_loop_shared_constants/code_rules_gate_constants.py +202 -0
  16. package/_shared/pr-loop/scripts/pr_loop_shared_constants/copilot_quota_constants.py +24 -24
  17. package/_shared/pr-loop/scripts/pr_loop_shared_constants/stale_worktree_rule_sweep_constants.py +107 -107
  18. package/_shared/pr-loop/scripts/revoke_project_claude_permissions.py +290 -48
  19. package/_shared/pr-loop/scripts/tests/test_claude_permissions_common.py +42 -2
  20. package/_shared/pr-loop/scripts/tests/test_claude_permissions_constants.py +36 -0
  21. package/_shared/pr-loop/scripts/tests/test_code_rules_gate.py +100 -1
  22. package/_shared/pr-loop/scripts/tests/test_fix_hookspath.py +497 -497
  23. package/_shared/pr-loop/scripts/tests/test_revoke_project_claude_permissions.py +311 -2
  24. package/_shared/pr-loop/scripts/tests/test_stale_worktree_rule_sweep.py +301 -301
  25. package/_shared/pr-loop/scripts/tests/test_stale_worktree_rule_sweep_constants.py +85 -85
  26. package/_shared/pr-loop/worker-spawn.md +1 -1
  27. package/agents/CLAUDE.md +3 -2
  28. package/agents/caveman.md +0 -1
  29. package/agents/clasp-deployment-orchestrator.md +0 -1
  30. package/agents/clean-coder.md +0 -1
  31. package/agents/code-advisor.md +0 -1
  32. package/agents/code-quality-agent.md +1 -2
  33. package/agents/code-verifier.md +36 -8
  34. package/agents/deep-research.md +0 -1
  35. package/agents/docs-agent.md +0 -1
  36. package/agents/git-commit-crafter.md +0 -1
  37. package/agents/issue-tracker.md +42 -0
  38. package/agents/plan-packet-validator.md +0 -1
  39. package/agents/pr-description-writer.md +0 -1
  40. package/agents/test_agent_frontmatter.py +67 -18
  41. package/audit-rubrics/category_rubrics/category-o-docstring-vs-impl-drift.md +143 -141
  42. package/bin/CLAUDE.md +68 -5
  43. package/bin/codex-compat.mjs +104 -0
  44. package/bin/codex-compat.test.mjs +51 -0
  45. package/bin/ever-shipped-skills.mjs +1 -0
  46. package/bin/install-constants.mjs +88 -0
  47. package/bin/install.mjs +1138 -114
  48. package/bin/install.prune.test.mjs +869 -19
  49. package/bin/install.test.mjs +906 -2
  50. package/codex-capability-map.json +13 -0
  51. package/commands/implement.md +1 -1
  52. package/commands/right-size.md +1 -1
  53. package/docs/CLAUDE.md +1 -0
  54. package/docs/CODE_RULES.md +2 -0
  55. package/docs/codex-compatibility.md +25 -0
  56. package/docs/host-pool-health-monitor.md +102 -0
  57. package/docs/nas-ssh-invocation.md +96 -12
  58. package/docs/references/CLAUDE.md +4 -2
  59. package/docs/references/advisor-tool.md +13 -0
  60. package/docs/references/code-review-enforcement.md +35 -0
  61. package/docs/references/team-advisor-skill.md +14 -0
  62. package/hooks/blocking/CLAUDE.md +4 -0
  63. package/hooks/blocking/code_review_pr_create_gate.py +7 -3
  64. package/hooks/blocking/code_review_push_gate.py +9 -4
  65. package/hooks/blocking/code_review_stamp_directory_write_blocker.py +8 -0
  66. package/hooks/blocking/config/__init__.py +5 -5
  67. package/hooks/blocking/config/code_review_enforcement_constants.py +40 -7
  68. package/hooks/blocking/config/test_code_review_enforcement_constants.py +58 -0
  69. package/hooks/blocking/config/verified_commit_constants.py +160 -159
  70. package/hooks/blocking/eli11_reply_enforcer.py +479 -0
  71. package/hooks/blocking/gh_body_arg_blocker.py +1 -1
  72. package/hooks/blocking/nas_ssh_binary_enforcer.py +8 -46
  73. package/hooks/blocking/orchestrator_refresh_reschedule_gate.py +256 -0
  74. package/hooks/blocking/pre_tool_use_dispatcher.py +24 -24
  75. package/hooks/blocking/shell_substitution_blocker.py +129 -0
  76. package/hooks/blocking/state_description_blocker.py +1 -1
  77. package/hooks/blocking/stop_dispatcher.py +1 -1
  78. package/hooks/blocking/test_bash_pre_tool_use_dispatcher.py +2 -3
  79. package/hooks/blocking/test_code_review_pr_create_gate.py +14 -0
  80. package/hooks/blocking/test_code_review_push_gate.py +16 -0
  81. package/hooks/blocking/test_code_review_stamp_directory_write_blocker.py +19 -0
  82. package/hooks/blocking/test_eli11_reply_enforcer.py +457 -0
  83. package/hooks/blocking/test_orchestrator_refresh_reschedule_gate.py +231 -0
  84. package/hooks/blocking/test_pre_tool_use_dispatcher.py +10 -1
  85. package/hooks/blocking/test_shell_substitution_blocker.py +124 -0
  86. package/hooks/blocking/test_stop_dispatcher.py +23 -0
  87. package/hooks/blocking/test_unscoped_search_blocker.py +102 -0
  88. package/hooks/blocking/test_verdict_directory_write_blocker.py +804 -808
  89. package/hooks/blocking/test_verification_verdict_store.py +54 -0
  90. package/hooks/blocking/test_verified_commit_gate.py +581 -581
  91. package/hooks/blocking/test_verified_commit_message_accuracy_blocker.py +131 -131
  92. package/hooks/blocking/unscoped_search_blocker.py +391 -0
  93. package/hooks/blocking/verdict_directory_write_blocker.py +687 -687
  94. package/hooks/blocking/verification_verdict_store.py +1039 -1036
  95. package/hooks/blocking/verified_commit_message_accuracy_blocker.py +167 -167
  96. package/hooks/blocking/verifier_verdict_minter.py +280 -280
  97. package/hooks/git-hooks/CLAUDE.md +3 -0
  98. package/hooks/git-hooks/conftest.py +30 -0
  99. package/hooks/git-hooks/gate_utils.py +2 -2
  100. package/hooks/git-hooks/git_hooks_constants/__init__.py +41 -2
  101. package/hooks/git-hooks/pre_push.py +75 -4
  102. package/hooks/git-hooks/pre_push_base_reference.py +166 -0
  103. package/hooks/git-hooks/test_config.py +0 -15
  104. package/hooks/git-hooks/test_gate_utils.py +3 -15
  105. package/hooks/git-hooks/test_pre_commit.py +1 -15
  106. package/hooks/git-hooks/test_pre_push.py +257 -23
  107. package/hooks/git-hooks/test_pre_push_base_reference.py +339 -0
  108. package/hooks/hooks.json +10 -12
  109. package/hooks/hooks_constants/CLAUDE.md +7 -2
  110. package/hooks/hooks_constants/bash_pre_tool_use_dispatcher_constants.py +4 -4
  111. package/hooks/hooks_constants/eli11_reply_enforcer_constants.py +101 -0
  112. package/hooks/hooks_constants/enter_worktree_prefetch_constants.py +18 -18
  113. package/hooks/hooks_constants/nas_ssh_binary_enforcer_constants.py +2 -8
  114. package/hooks/hooks_constants/orchestrator_refresh_reschedule_gate_constants.py +48 -0
  115. package/hooks/hooks_constants/ruff_integration_constants.py +16 -0
  116. package/hooks/hooks_constants/shell_command_segments.py +82 -0
  117. package/hooks/hooks_constants/shell_substitution_blocker_constants.py +67 -0
  118. package/hooks/hooks_constants/stop_dispatcher_constants.py +1 -0
  119. package/hooks/hooks_constants/test_bash_pre_tool_use_dispatcher_constants.py +5 -6
  120. package/hooks/hooks_constants/test_stop_dispatcher_constants.py +1 -0
  121. package/hooks/hooks_constants/unscoped_search_blocker_constants.py +153 -0
  122. package/hooks/lifecycle/enter_worktree_origin_prefetch.py +163 -146
  123. package/hooks/lifecycle/test_enter_worktree_origin_prefetch.py +185 -178
  124. package/hooks/pyproject.toml +1 -0
  125. package/hooks/validators/CLAUDE.md +1 -0
  126. package/hooks/validators/config/__init__.py +0 -0
  127. package/hooks/validators/config/directory_exemption_constants.py +183 -0
  128. package/hooks/validators/config/test_directory_exemption_constants.py +21 -0
  129. package/hooks/validators/conftest.py +4 -0
  130. package/hooks/validators/ruff_integration.py +49 -5
  131. package/hooks/validators/run_all_validators.py +206 -9
  132. package/hooks/validators/test_directory_exemption_constants.py +185 -0
  133. package/hooks/validators/test_python_antipattern_checks.py +110 -5
  134. package/hooks/validators/test_ruff_integration.py +92 -1
  135. package/hooks/validators/test_run_all_validators.py +115 -68
  136. package/hooks/validators/test_run_all_validators_pretooluse.py +159 -1
  137. package/package.json +13 -3
  138. package/rules/CLAUDE.md +17 -22
  139. package/rules/agent-spawn-protocol.md +6 -6
  140. package/rules/anti-corollary-tests.md +1 -1
  141. package/rules/bdd.md +1 -1
  142. package/rules/cleanup-temp-files.md +10 -4
  143. package/rules/code-standards.md +7 -0
  144. package/rules/conservative-action.md +1 -5
  145. package/rules/context7.md +0 -4
  146. package/rules/destructive-commands.md +47 -0
  147. package/rules/doc-inventory-integrity.md +48 -0
  148. package/rules/doc-prose-cuts.md +58 -0
  149. package/rules/docstring-prose-matches-implementation.md +53 -44
  150. package/rules/durable-post-artifacts.md +0 -4
  151. package/rules/eli11-replies.md +31 -0
  152. package/rules/explore-thoroughly.md +4 -4
  153. package/rules/falsify-before-green.md +68 -0
  154. package/rules/file-global-constants.md +1 -1
  155. package/rules/filesystem-search.md +51 -0
  156. package/rules/gh-cli-conventions.md +27 -0
  157. package/rules/git-workflow.md +26 -0
  158. package/rules/hedging-claims.md +9 -0
  159. package/rules/long-horizon-autonomy.md +0 -4
  160. package/rules/measurement-denominators.md +48 -0
  161. package/rules/nas-ssh-invocation.md +23 -5
  162. package/rules/parallel-tools.md +2 -2
  163. package/rules/plain-illustrative-docstrings.md +3 -7
  164. package/rules/plain-language.md +2 -0
  165. package/rules/proof-of-work-pr-comments.md +0 -4
  166. package/rules/re-stage-before-commit.md +2 -0
  167. package/rules/research-mode.md +10 -0
  168. package/rules/shell-invocation.md +21 -0
  169. package/rules/testing.md +4 -0
  170. package/rules/verified-commit-gate-skip.md +3 -27
  171. package/rules/verify-before-asking.md +5 -0
  172. package/rules/windows-filesystem-safe.md +1 -1
  173. package/rules/workers-done-before-complete.md +4 -0
  174. package/scripts/CLAUDE.md +1 -0
  175. package/scripts/Capture-PoolHealth.ps1 +410 -0
  176. package/scripts/Migrate-ShellPolicy.ps1 +1 -1
  177. package/scripts/_code_review_test_support.py +404 -0
  178. package/scripts/claude_chain_runner.py +141 -1
  179. package/scripts/codex_capability_bridge.py +171 -0
  180. package/scripts/codex_compat_materializer.py +1087 -0
  181. package/scripts/codex_compat_watcher.py +502 -0
  182. package/scripts/conftest.py +16 -1
  183. package/scripts/dev_env_scripts_constants/CLAUDE.md +1 -1
  184. package/scripts/dev_env_scripts_constants/claude_chain_constants.py +9 -0
  185. package/scripts/dev_env_scripts_constants/code_review_constants.py +37 -0
  186. package/scripts/invoke_code_review.py +11 -4
  187. package/scripts/resolve_worker_spawn.py +626 -626
  188. package/scripts/spawn_grok_batch.py +672 -672
  189. package/scripts/sync_to_cursor/rules.py +0 -10
  190. package/scripts/test_claude_chain_runner.py +131 -0
  191. package/scripts/test_invoke_code_review.py +85 -908
  192. package/scripts/test_invoke_code_review_chain.py +70 -0
  193. package/scripts/test_invoke_code_review_cli.py +192 -0
  194. package/scripts/test_invoke_code_review_contract.py +256 -0
  195. package/scripts/test_invoke_code_review_git.py +123 -0
  196. package/scripts/test_invoke_code_review_mode.py +99 -0
  197. package/scripts/test_resolve_worker_spawn.py +1014 -1014
  198. package/scripts/tests/test_code_review_constants.py +80 -0
  199. package/scripts/tests/test_codex_capability_bridge.py +91 -0
  200. package/scripts/tests/test_codex_compat_materializer.py +632 -0
  201. package/scripts/tests/test_codex_compat_watcher.py +599 -0
  202. package/scripts/tests/test_sync_to_cursor.py +0 -1
  203. package/skills/CLAUDE.md +2 -0
  204. package/skills/auditing-claude-config/SKILL.md +114 -114
  205. package/skills/autoconverge/SKILL.md +427 -427
  206. package/skills/autoconverge/reference/convergence.md +24 -3
  207. package/skills/autoconverge/workflow/CLAUDE.md +1 -0
  208. package/skills/autoconverge/workflow/converge.clean-audit.test.mjs +3 -3
  209. package/skills/autoconverge/workflow/converge.contract.test.mjs +1263 -1263
  210. package/skills/autoconverge/workflow/converge.mjs +168 -1
  211. package/skills/autoconverge/workflow/converge.p2-advance.test.mjs +202 -0
  212. package/skills/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-a11d903476b803493.jsonl +2 -2
  213. package/skills/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-a26213978adeef6fb.jsonl +2 -2
  214. package/skills/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-a3def0d15ed9d9110.jsonl +2 -2
  215. package/skills/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-a41f41b1b708ee3b7.jsonl +2 -2
  216. package/skills/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-a758b880abecc3ff7.jsonl +2 -2
  217. package/skills/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-a8897b89656b1bd16.jsonl +2 -2
  218. package/skills/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-abd463d744a1437bc.jsonl +2 -2
  219. package/skills/autoconverge/workflow/fixtures/wf_run/subagents/workflows/wf_881252e6-700/agent-ad19d027ae8ee1816.jsonl +2 -2
  220. package/skills/autoconverge/workflow/fixtures/wf_run/workflows/wf_881252e6-700.json +265 -265
  221. package/skills/bugteam/reference/copilot-gap-analysis.md +1 -1
  222. package/skills/closeout/SKILL.md +33 -50
  223. package/skills/codex-review/scripts/codex_review_scripts_constants/run_constants.py +8 -0
  224. package/skills/codex-review/scripts/run_codex_review.py +233 -1
  225. package/skills/codex-review/scripts/test_run_codex_review.py +189 -0
  226. package/skills/condensing-instructions/SKILL.md +72 -0
  227. package/skills/copilot-review/SKILL.md +119 -119
  228. package/skills/e-code-review/SKILL.md +52 -0
  229. package/skills/e-code-review/reference/fix.md +54 -0
  230. package/skills/e-code-review/reference/loop.md +43 -0
  231. package/skills/e-code-review/reference/low.md +57 -0
  232. package/skills/e-code-review/reference/medium.md +153 -0
  233. package/skills/e-code-review/reference/xhigh.md +182 -0
  234. package/skills/e-simplify/SKILL.md +97 -0
  235. package/skills/fresh-branch/CLAUDE.md +1 -1
  236. package/skills/fresh-branch/SKILL.md +5 -6
  237. package/skills/fresh-branch/scripts/create_fresh_branch.py +42 -24
  238. package/skills/fresh-branch/scripts/fresh_branch_scripts_constants/fresh_branch_cli_constants.py +1 -3
  239. package/skills/fresh-branch/scripts/test_create_fresh_branch.py +30 -126
  240. package/skills/issue-tracker/SKILL.md +92 -0
  241. package/skills/issue-tracker/reference/epic-and-sub-issue-model.md +55 -0
  242. package/skills/issue-tracker/reference/handoff-schema.md +64 -0
  243. package/skills/issue-tracker/reference/operation-matrix.md +41 -0
  244. package/skills/orchestrator/SKILL.md +177 -22
  245. package/skills/orchestrator/scripts/status_gate.py +625 -0
  246. package/skills/orchestrator/scripts/status_gate_constants/__init__.py +1 -0
  247. package/skills/orchestrator/scripts/status_gate_constants/config/__init__.py +1 -0
  248. package/skills/orchestrator/scripts/status_gate_constants/config/constants.py +47 -0
  249. package/skills/orchestrator/scripts/test_status_gate.py +439 -0
  250. package/skills/orchestrator-refresh/SKILL.md +129 -35
  251. package/skills/plan-to-pr/SKILL.md +155 -0
  252. package/skills/plan-to-pr/reference/final-validation-tasks.md +15 -0
  253. package/skills/plan-to-pr/reference/model-routing.md +36 -0
  254. package/skills/plan-to-pr/reference/packet-contract.md +43 -0
  255. package/skills/plan-to-pr/reference/packet-schema.json +57 -0
  256. package/skills/plan-to-pr/reference/process-inventory.md +22 -0
  257. package/skills/plan-to-pr/reference/review-loop.md +33 -0
  258. package/skills/plan-to-pr/reference/run-record.schema.json +27 -0
  259. package/skills/plan-to-pr/reference/self-audit-tasks.md +15 -0
  260. package/skills/plan-to-pr/reference/task-seeds.md +14 -0
  261. package/skills/plan-to-pr/reference/task-ticket.md +38 -0
  262. package/skills/plan-to-pr/scripts/config/__init__.py +1 -0
  263. package/skills/plan-to-pr/scripts/config/constants.py +193 -0
  264. package/skills/plan-to-pr/scripts/create_packet.py +173 -0
  265. package/skills/plan-to-pr/scripts/test_create_packet.py +102 -0
  266. package/skills/plan-to-pr/scripts/test_validate_packet.py +256 -0
  267. package/skills/plan-to-pr/scripts/test_validate_protocol.py +135 -0
  268. package/skills/plan-to-pr/scripts/test_validate_run.py +158 -0
  269. package/skills/plan-to-pr/scripts/validate_packet.py +655 -0
  270. package/skills/plan-to-pr/scripts/validate_protocol.py +622 -0
  271. package/skills/plan-to-pr/scripts/validate_run.py +173 -0
  272. package/skills/plan-to-pr/test_skill_contract.py +207 -0
  273. package/skills/plan-to-pr/test_task_ticket_contract.py +151 -0
  274. package/skills/pr-converge/SKILL.md +472 -469
  275. package/skills/pr-converge/reference/examples.md +3 -3
  276. package/skills/pr-converge/reference/fix-protocol.md +1 -1
  277. package/skills/pr-converge/reference/ground-rules.md +7 -4
  278. package/skills/pr-converge/reference/multi-pr-orchestration.md +4 -1
  279. package/skills/pr-converge/reference/per-tick.md +5 -5
  280. package/skills/pr-converge/reference/progress-checklist.md +1 -1
  281. package/skills/pr-converge/scripts/check_convergence_gates.py +279 -279
  282. package/skills/pr-converge/scripts/test_check_convergence_codex.py +507 -507
  283. package/skills/pr-converge/scripts/test_check_convergence_gates.py +84 -84
  284. package/skills/pr-converge/test_step5_host_branch.py +1 -1
  285. package/skills/pr-fix-protocol/SKILL.md +1 -1
  286. package/skills/privacy-hygiene/SKILL.md +68 -68
  287. package/skills/privacy-hygiene/reference/sweep-procedure.md +1 -1
  288. package/skills/prototype/workflows/promotion.md +1 -1
  289. package/skills/release-notes-html/SKILL.md +164 -0
  290. package/skills/session-log/SKILL.md +1 -1
  291. package/skills/task-build/CLAUDE.md +8 -7
  292. package/skills/task-build/SKILL.md +16 -8
  293. package/skills/task-build/reference/tool-routing.md +19 -0
  294. package/rules/claude-md-orphan-file.md +0 -28
  295. package/rules/cleanup-command-forms.md +0 -23
  296. package/rules/code-reviews.md +0 -11
  297. package/rules/env-var-table-code-drift.md +0 -10
  298. package/rules/gh-body-file.md +0 -5
  299. package/rules/gh-paginate.md +0 -3
  300. package/rules/hook-prose-matches-detector.md +0 -15
  301. package/rules/no-historical-clutter.md +0 -26
  302. package/rules/no-inline-destructive-literals.md +0 -9
  303. package/rules/no-justification-noise.md +0 -61
  304. package/rules/package-inventory-stale-entry.md +0 -25
  305. package/rules/right-sized-engineering.md +0 -28
  306. package/rules/self-contained-docs.md +0 -17
  307. package/rules/shell-invocation-policy.md +0 -5
  308. package/rules/tdd.md +0 -7
  309. package/skills/closeout/reference/issue-body-templates.md +0 -108
@@ -1,266 +1,266 @@
1
- {
2
- "runId": "wf_881252e6-700",
3
- "timestamp": "2026-06-13T12:21:55.114Z",
4
- "workflowName": "autoconverge",
5
- "args": "{\"owner\": \"example-owner\", \"repo\": \"example-repo\", \"prNumber\": 211, \"bugbotDisabled\": false}",
6
- "result": {
7
- "converged": true,
8
- "rounds": 4,
9
- "finalSha": "7c2f420c4d5b7c83aa47f93d99a0f1420e3373c4",
10
- "blocker": null
11
- },
12
- "agentCount": 33,
13
- "logs": [
14
- "Round 1: parallel Bugbot + code-review + bug-audit on 6a5169e",
15
- "Round 1: all lenses clean on 6a5169e \u2014 posting clean audit artifact",
16
- "Copilot raised 11 finding(s) \u2014 fixing and re-converging",
17
- "Round 2: parallel Bugbot + code-review + bug-audit on 620382f",
18
- "Round 2: all lenses clean on 620382f \u2014 posting clean audit artifact",
19
- "Copilot raised 2 finding(s) \u2014 fixing and re-converging",
20
- "Round 3: parallel Bugbot + code-review + bug-audit on 7c2f420",
21
- "Round 3: all lenses clean on 7c2f420 \u2014 posting clean audit artifact",
22
- "Copilot raised 2 finding(s) \u2014 fixing and re-converging",
23
- "Round 4: parallel Bugbot + code-review + bug-audit on 7c2f420",
24
- "Round 4: all lenses clean on 7c2f420 \u2014 posting clean audit artifact"
25
- ],
26
- "workflowProgress": [
27
- {
28
- "index": 1,
29
- "label": "resolve-head",
30
- "phaseTitle": "Converge",
31
- "agentId": "a5fe69b589d8d7fbb",
32
- "state": "done"
33
- },
34
- {
35
- "index": 2,
36
- "label": "prefetch-main",
37
- "phaseTitle": "Converge",
38
- "agentId": "ac31351235aa865f1",
39
- "state": "done"
40
- },
41
- {
42
- "index": 3,
43
- "label": "lens:bugbot",
44
- "phaseTitle": "Converge",
45
- "agentId": "a62ab69718928660b",
46
- "state": "done"
47
- },
48
- {
49
- "index": 4,
50
- "label": "lens:code-review",
51
- "phaseTitle": "Converge",
52
- "agentId": "abd463d744a1437bc",
53
- "state": "done"
54
- },
55
- {
56
- "index": 5,
57
- "label": "lens:bug-audit",
58
- "phaseTitle": "Converge",
59
- "agentId": "ab84b5cb3e6362e6b",
60
- "state": "done"
61
- },
62
- {
63
- "index": 6,
64
- "label": "post-clean-audit",
65
- "phaseTitle": "Converge",
66
- "agentId": "aee38021859a3de55",
67
- "state": "done"
68
- },
69
- {
70
- "index": 7,
71
- "label": "copilot-gate",
72
- "phaseTitle": "Copilot gate",
73
- "agentId": "a3def0d15ed9d9110",
74
- "state": "done"
75
- },
76
- {
77
- "index": 8,
78
- "label": "fix:copilot",
79
- "phaseTitle": "Converge",
80
- "agentId": "a26213978adeef6fb",
81
- "state": "done"
82
- },
83
- {
84
- "index": 9,
85
- "label": "resolve-head",
86
- "phaseTitle": "Converge",
87
- "agentId": "a88f58b25c2721e0a",
88
- "state": "done"
89
- },
90
- {
91
- "index": 10,
92
- "label": "prefetch-main",
93
- "phaseTitle": "Converge",
94
- "agentId": "aabb9c42f62fefa4e",
95
- "state": "done"
96
- },
97
- {
98
- "index": 11,
99
- "label": "lens:bugbot",
100
- "phaseTitle": "Converge",
101
- "agentId": "aaba3804f6e7ecdb9",
102
- "state": "done"
103
- },
104
- {
105
- "index": 12,
106
- "label": "lens:code-review",
107
- "phaseTitle": "Converge",
108
- "agentId": "a7e434e6ea14aa176",
109
- "state": "done"
110
- },
111
- {
112
- "index": 13,
113
- "label": "lens:bug-audit",
114
- "phaseTitle": "Converge",
115
- "agentId": "a46f6274a36a1db05",
116
- "state": "done"
117
- },
118
- {
119
- "index": 14,
120
- "label": "post-clean-audit",
121
- "phaseTitle": "Converge",
122
- "agentId": "a3da3394c6ff72250",
123
- "state": "done"
124
- },
125
- {
126
- "index": 15,
127
- "label": "copilot-gate",
128
- "phaseTitle": "Copilot gate",
129
- "agentId": "ad19d027ae8ee1816",
130
- "state": "done"
131
- },
132
- {
133
- "index": 16,
134
- "label": "fix:copilot",
135
- "phaseTitle": "Converge",
136
- "agentId": "a8897b89656b1bd16",
137
- "state": "done"
138
- },
139
- {
140
- "index": 17,
141
- "label": "resolve-head",
142
- "phaseTitle": "Converge",
143
- "agentId": "a196c9a85c88db8a7",
144
- "state": "done"
145
- },
146
- {
147
- "index": 18,
148
- "label": "prefetch-main",
149
- "phaseTitle": "Converge",
150
- "agentId": "a3154efa58640a34e",
151
- "state": "done"
152
- },
153
- {
154
- "index": 19,
155
- "label": "lens:bugbot",
156
- "phaseTitle": "Converge",
157
- "agentId": "a1f2a12f1470d7c7b",
158
- "state": "done"
159
- },
160
- {
161
- "index": 20,
162
- "label": "lens:code-review",
163
- "phaseTitle": "Converge",
164
- "agentId": "a6754f2df6e70aa7c",
165
- "state": "done"
166
- },
167
- {
168
- "index": 21,
169
- "label": "lens:bug-audit",
170
- "phaseTitle": "Converge",
171
- "agentId": "aabdfb7eba8ff036e",
172
- "state": "done"
173
- },
174
- {
175
- "index": 22,
176
- "label": "post-clean-audit",
177
- "phaseTitle": "Converge",
178
- "agentId": "aa3438f61bdd9129e",
179
- "state": "done"
180
- },
181
- {
182
- "index": 23,
183
- "label": "copilot-gate",
184
- "phaseTitle": "Copilot gate",
185
- "agentId": "a11d903476b803493",
186
- "state": "done"
187
- },
188
- {
189
- "index": 24,
190
- "label": "fix:copilot",
191
- "phaseTitle": "Converge",
192
- "agentId": "a758b880abecc3ff7",
193
- "state": "done"
194
- },
195
- {
196
- "index": 25,
197
- "label": "resolve-head",
198
- "phaseTitle": "Converge",
199
- "agentId": "a536d1ed4bb9ad0de",
200
- "state": "done"
201
- },
202
- {
203
- "index": 26,
204
- "label": "prefetch-main",
205
- "phaseTitle": "Converge",
206
- "agentId": "a89686ea20e9224e2",
207
- "state": "done"
208
- },
209
- {
210
- "index": 27,
211
- "label": "lens:bugbot",
212
- "phaseTitle": "Converge",
213
- "agentId": "a82b70fdc78fe7c3a",
214
- "state": "done"
215
- },
216
- {
217
- "index": 28,
218
- "label": "lens:code-review",
219
- "phaseTitle": "Converge",
220
- "agentId": "a00c5df83283e9cf6",
221
- "state": "done"
222
- },
223
- {
224
- "index": 29,
225
- "label": "lens:bug-audit",
226
- "phaseTitle": "Converge",
227
- "agentId": "a89412c46f53a3218",
228
- "state": "done"
229
- },
230
- {
231
- "index": 30,
232
- "label": "post-clean-audit",
233
- "phaseTitle": "Converge",
234
- "agentId": "add6f0d13e1911d87",
235
- "state": "done"
236
- },
237
- {
238
- "index": 31,
239
- "label": "copilot-gate",
240
- "phaseTitle": "Copilot gate",
241
- "agentId": "a41f41b1b708ee3b7",
242
- "state": "done"
243
- },
244
- {
245
- "index": 32,
246
- "label": "check-convergence",
247
- "phaseTitle": "Finalize",
248
- "agentId": "a3338954faed1eb55",
249
- "state": "done"
250
- },
251
- {
252
- "index": 33,
253
- "label": "mark-ready",
254
- "phaseTitle": "Finalize",
255
- "agentId": "add93d458ce4da043",
256
- "state": "done"
257
- },
258
- {
259
- "index": 34,
260
- "label": "convergence-summary",
261
- "phaseTitle": "Finalize",
262
- "agentId": "ab1c2d3e4f5a6b7c8",
263
- "state": "done"
264
- }
265
- ]
1
+ {
2
+ "runId": "wf_881252e6-700",
3
+ "timestamp": "2026-06-13T12:21:55.114Z",
4
+ "workflowName": "autoconverge",
5
+ "args": "{\"owner\": \"example-owner\", \"repo\": \"example-repo\", \"prNumber\": 211, \"bugbotDisabled\": false}",
6
+ "result": {
7
+ "converged": true,
8
+ "rounds": 4,
9
+ "finalSha": "7c2f420c4d5b7c83aa47f93d99a0f1420e3373c4",
10
+ "blocker": null
11
+ },
12
+ "agentCount": 33,
13
+ "logs": [
14
+ "Round 1: parallel Bugbot + code-review + bug-audit on 6a5169e",
15
+ "Round 1: all lenses clean on 6a5169e \u2014 posting clean audit artifact",
16
+ "Copilot raised 11 finding(s) \u2014 fixing and re-converging",
17
+ "Round 2: parallel Bugbot + code-review + bug-audit on 620382f",
18
+ "Round 2: all lenses clean on 620382f \u2014 posting clean audit artifact",
19
+ "Copilot raised 2 finding(s) \u2014 fixing and re-converging",
20
+ "Round 3: parallel Bugbot + code-review + bug-audit on 7c2f420",
21
+ "Round 3: all lenses clean on 7c2f420 \u2014 posting clean audit artifact",
22
+ "Copilot raised 2 finding(s) \u2014 fixing and re-converging",
23
+ "Round 4: parallel Bugbot + code-review + bug-audit on 7c2f420",
24
+ "Round 4: all lenses clean on 7c2f420 \u2014 posting clean audit artifact"
25
+ ],
26
+ "workflowProgress": [
27
+ {
28
+ "index": 1,
29
+ "label": "resolve-head",
30
+ "phaseTitle": "Converge",
31
+ "agentId": "a5fe69b589d8d7fbb",
32
+ "state": "done"
33
+ },
34
+ {
35
+ "index": 2,
36
+ "label": "prefetch-main",
37
+ "phaseTitle": "Converge",
38
+ "agentId": "ac31351235aa865f1",
39
+ "state": "done"
40
+ },
41
+ {
42
+ "index": 3,
43
+ "label": "lens:bugbot",
44
+ "phaseTitle": "Converge",
45
+ "agentId": "a62ab69718928660b",
46
+ "state": "done"
47
+ },
48
+ {
49
+ "index": 4,
50
+ "label": "lens:code-review",
51
+ "phaseTitle": "Converge",
52
+ "agentId": "abd463d744a1437bc",
53
+ "state": "done"
54
+ },
55
+ {
56
+ "index": 5,
57
+ "label": "lens:bug-audit",
58
+ "phaseTitle": "Converge",
59
+ "agentId": "ab84b5cb3e6362e6b",
60
+ "state": "done"
61
+ },
62
+ {
63
+ "index": 6,
64
+ "label": "post-clean-audit",
65
+ "phaseTitle": "Converge",
66
+ "agentId": "aee38021859a3de55",
67
+ "state": "done"
68
+ },
69
+ {
70
+ "index": 7,
71
+ "label": "copilot-gate",
72
+ "phaseTitle": "Copilot gate",
73
+ "agentId": "a3def0d15ed9d9110",
74
+ "state": "done"
75
+ },
76
+ {
77
+ "index": 8,
78
+ "label": "fix:copilot",
79
+ "phaseTitle": "Converge",
80
+ "agentId": "a26213978adeef6fb",
81
+ "state": "done"
82
+ },
83
+ {
84
+ "index": 9,
85
+ "label": "resolve-head",
86
+ "phaseTitle": "Converge",
87
+ "agentId": "a88f58b25c2721e0a",
88
+ "state": "done"
89
+ },
90
+ {
91
+ "index": 10,
92
+ "label": "prefetch-main",
93
+ "phaseTitle": "Converge",
94
+ "agentId": "aabb9c42f62fefa4e",
95
+ "state": "done"
96
+ },
97
+ {
98
+ "index": 11,
99
+ "label": "lens:bugbot",
100
+ "phaseTitle": "Converge",
101
+ "agentId": "aaba3804f6e7ecdb9",
102
+ "state": "done"
103
+ },
104
+ {
105
+ "index": 12,
106
+ "label": "lens:code-review",
107
+ "phaseTitle": "Converge",
108
+ "agentId": "a7e434e6ea14aa176",
109
+ "state": "done"
110
+ },
111
+ {
112
+ "index": 13,
113
+ "label": "lens:bug-audit",
114
+ "phaseTitle": "Converge",
115
+ "agentId": "a46f6274a36a1db05",
116
+ "state": "done"
117
+ },
118
+ {
119
+ "index": 14,
120
+ "label": "post-clean-audit",
121
+ "phaseTitle": "Converge",
122
+ "agentId": "a3da3394c6ff72250",
123
+ "state": "done"
124
+ },
125
+ {
126
+ "index": 15,
127
+ "label": "copilot-gate",
128
+ "phaseTitle": "Copilot gate",
129
+ "agentId": "ad19d027ae8ee1816",
130
+ "state": "done"
131
+ },
132
+ {
133
+ "index": 16,
134
+ "label": "fix:copilot",
135
+ "phaseTitle": "Converge",
136
+ "agentId": "a8897b89656b1bd16",
137
+ "state": "done"
138
+ },
139
+ {
140
+ "index": 17,
141
+ "label": "resolve-head",
142
+ "phaseTitle": "Converge",
143
+ "agentId": "a196c9a85c88db8a7",
144
+ "state": "done"
145
+ },
146
+ {
147
+ "index": 18,
148
+ "label": "prefetch-main",
149
+ "phaseTitle": "Converge",
150
+ "agentId": "a3154efa58640a34e",
151
+ "state": "done"
152
+ },
153
+ {
154
+ "index": 19,
155
+ "label": "lens:bugbot",
156
+ "phaseTitle": "Converge",
157
+ "agentId": "a1f2a12f1470d7c7b",
158
+ "state": "done"
159
+ },
160
+ {
161
+ "index": 20,
162
+ "label": "lens:code-review",
163
+ "phaseTitle": "Converge",
164
+ "agentId": "a6754f2df6e70aa7c",
165
+ "state": "done"
166
+ },
167
+ {
168
+ "index": 21,
169
+ "label": "lens:bug-audit",
170
+ "phaseTitle": "Converge",
171
+ "agentId": "aabdfb7eba8ff036e",
172
+ "state": "done"
173
+ },
174
+ {
175
+ "index": 22,
176
+ "label": "post-clean-audit",
177
+ "phaseTitle": "Converge",
178
+ "agentId": "aa3438f61bdd9129e",
179
+ "state": "done"
180
+ },
181
+ {
182
+ "index": 23,
183
+ "label": "copilot-gate",
184
+ "phaseTitle": "Copilot gate",
185
+ "agentId": "a11d903476b803493",
186
+ "state": "done"
187
+ },
188
+ {
189
+ "index": 24,
190
+ "label": "fix:copilot",
191
+ "phaseTitle": "Converge",
192
+ "agentId": "a758b880abecc3ff7",
193
+ "state": "done"
194
+ },
195
+ {
196
+ "index": 25,
197
+ "label": "resolve-head",
198
+ "phaseTitle": "Converge",
199
+ "agentId": "a536d1ed4bb9ad0de",
200
+ "state": "done"
201
+ },
202
+ {
203
+ "index": 26,
204
+ "label": "prefetch-main",
205
+ "phaseTitle": "Converge",
206
+ "agentId": "a89686ea20e9224e2",
207
+ "state": "done"
208
+ },
209
+ {
210
+ "index": 27,
211
+ "label": "lens:bugbot",
212
+ "phaseTitle": "Converge",
213
+ "agentId": "a82b70fdc78fe7c3a",
214
+ "state": "done"
215
+ },
216
+ {
217
+ "index": 28,
218
+ "label": "lens:code-review",
219
+ "phaseTitle": "Converge",
220
+ "agentId": "a00c5df83283e9cf6",
221
+ "state": "done"
222
+ },
223
+ {
224
+ "index": 29,
225
+ "label": "lens:bug-audit",
226
+ "phaseTitle": "Converge",
227
+ "agentId": "a89412c46f53a3218",
228
+ "state": "done"
229
+ },
230
+ {
231
+ "index": 30,
232
+ "label": "post-clean-audit",
233
+ "phaseTitle": "Converge",
234
+ "agentId": "add6f0d13e1911d87",
235
+ "state": "done"
236
+ },
237
+ {
238
+ "index": 31,
239
+ "label": "copilot-gate",
240
+ "phaseTitle": "Copilot gate",
241
+ "agentId": "a41f41b1b708ee3b7",
242
+ "state": "done"
243
+ },
244
+ {
245
+ "index": 32,
246
+ "label": "check-convergence",
247
+ "phaseTitle": "Finalize",
248
+ "agentId": "a3338954faed1eb55",
249
+ "state": "done"
250
+ },
251
+ {
252
+ "index": 33,
253
+ "label": "mark-ready",
254
+ "phaseTitle": "Finalize",
255
+ "agentId": "add93d458ce4da043",
256
+ "state": "done"
257
+ },
258
+ {
259
+ "index": 34,
260
+ "label": "convergence-summary",
261
+ "phaseTitle": "Finalize",
262
+ "agentId": "ab1c2d3e4f5a6b7c8",
263
+ "state": "done"
264
+ }
265
+ ]
266
266
  }
@@ -510,4 +510,4 @@ Expected output after the patch lands: a list containing `Line 91: Collection co
510
510
  - Inventory data sources: live `gh api repos/example-org/example-repo/pulls/{101,102}/comments` filtered to `Copilot`; verbatim bodies preserved in the inventory table above.
511
511
  - Original-commit content used to confirm violations: PR #101 head `29117309cf4ec1e83883160d8c819e0843f9c3ac`; PR #102 review-time commit `e4abf52c3a6c724b4e64bfed0d979cd60a2c8bf0`; PR #102 merged head `c9c935a96cc59d39d623dc7eddda3d341007607c`.
512
512
  - CODE_RULES.md sections invoked by the patch plan: §⚡ Magic values; §5 Extended naming rules (collections `all_orders`, `all_users`); §6.5 File length guidance; §7 Right-Sized Engineering; §10 No redundant data fetches (used as analogue for wrapper plumb-through).
513
- - Constraints honored: `gh-body-file` (no `gh ... --body` calls in the new code paths), `no-shell-substitution` (no `$(...)` in the verification commands above; multi-step shell flows are written as separate Bash invocations or `&&`-chained literal strings).
513
+ - Constraints honored: `gh-cli-conventions` (no `gh ... --body` calls in the new code paths), `shell-invocation` (no `$(...)` in the verification commands above; multi-step shell flows are written as separate Bash invocations or `&&`-chained literal strings).