claude-dev-env 2.16.0 → 2.18.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 (557) hide show
  1. package/.agents/agents/AGENTS.md +6 -0
  2. package/.agents/skills/AGENTS.md +34 -35
  3. package/.agents/skills/_shared/pr-loop/AGENTS.md +22 -15
  4. package/.agents/skills/_shared/pr-loop/portable-driver.md +6 -7
  5. package/.agents/skills/_shared/pr-loop/prompts/AGENTS.md +2 -2
  6. package/.agents/skills/_shared/pr-loop/scripts/AGENTS.md +1 -1
  7. package/.agents/skills/_shared/pr-loop/scripts/portable_converge_driver.py +25 -16
  8. package/.agents/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/portable_driver_constants.py +1 -5
  9. package/.agents/skills/autoconverge/reference/convergence-gates.md +31 -0
  10. package/.agents/skills/autoconverge/reference/convergence.md +8 -10
  11. package/.agents/skills/autoconverge/reference/gotchas.md +1 -1
  12. package/.agents/skills/autoconverge/reference/stop-conditions.md +1 -1
  13. package/.agents/skills/autoconverge/workflow/converge.codex-gate.test.mjs +1 -1
  14. package/.agents/skills/autoconverge/workflow/converge.contract.test.mjs +1 -1
  15. package/.agents/skills/autoconverge/workflow/converge.mjs +3 -3
  16. package/.agents/skills/cert-classification-rule/SKILL.md +224 -0
  17. package/.agents/skills/cert-classification-rule/scripts/resort_cert_folders.py +158 -0
  18. package/.agents/skills/eli5/SKILL.md +128 -0
  19. package/.agents/skills/eli5/reference/task-seeds.md +11 -0
  20. package/.agents/skills/fresh-branch/scripts/test_create_fresh_branch.py +2 -3
  21. package/.agents/skills/name-by-capability-audit/SKILL.md +67 -0
  22. package/.agents/skills/name-by-capability-audit/reference/fetch-commands.md +29 -0
  23. package/.agents/skills/name-by-capability-audit/reference/offense-examples.md +32 -0
  24. package/.agents/skills/name-by-capability-audit/reference/report-template.md +29 -0
  25. package/.agents/skills/name-by-capability-audit/reference/rule-checklist.md +38 -0
  26. package/.agents/skills/name-by-capability-audit/reference/task-seeds.md +9 -0
  27. package/.agents/skills/orchestrator/SKILL.md +6 -4
  28. package/.agents/skills/orchestrator-refresh/SKILL.md +9 -5
  29. package/.agents/skills/pr-cleanup/SKILL.md +99 -0
  30. package/.agents/skills/prototype/reference/honest-limitations.md +1 -1
  31. package/.agents/skills/prototype/reference/promotion-tasks.md +1 -1
  32. package/.agents/skills/prototype/scripts/test_build_sandbox_settings.py +2 -2
  33. package/.agents/skills/prototype/workflows/promotion.md +2 -2
  34. package/.agents/skills/review-router/SKILL.md +51 -0
  35. package/.agents/skills/review-router/reference/route-policy.json +7 -0
  36. package/.agents/skills/review-router/reference/task-seeds.md +1 -0
  37. package/.agents/skills/review-router/scripts/conftest.py +4 -0
  38. package/.agents/skills/review-router/scripts/review_router.py +50 -0
  39. package/.agents/skills/review-router/scripts/review_router_cli.py +211 -0
  40. package/.agents/skills/review-router/scripts/review_router_constants/__init__.py +1 -0
  41. package/.agents/skills/review-router/scripts/review_router_constants/config/__init__.py +0 -0
  42. package/.agents/skills/review-router/scripts/review_router_constants/config/constants.py +13 -0
  43. package/.agents/skills/review-router/scripts/test_review_router.py +23 -0
  44. package/.agents/skills/review-router/scripts/test_review_router_cli.py +47 -0
  45. package/.agents/skills/review-tier/SKILL.md +56 -0
  46. package/.agents/skills/review-tier/reference/task-seeds.md +1 -0
  47. package/.agents/skills/review-tier/reference/tier-policy.json +9 -0
  48. package/.agents/skills/review-tier/scripts/conftest.py +4 -0
  49. package/.agents/skills/review-tier/scripts/review_tier.py +332 -0
  50. package/.agents/skills/review-tier/scripts/review_tier_constants/__init__.py +1 -0
  51. package/.agents/skills/review-tier/scripts/review_tier_constants/config/__init__.py +0 -0
  52. package/.agents/skills/review-tier/scripts/review_tier_constants/config/constants.py +29 -0
  53. package/.agents/skills/review-tier/scripts/test_generation.py +171 -0
  54. package/.agents/skills/review-tier/scripts/test_review_tier.py +33 -0
  55. package/.agents/skills/session-log/SKILL.md +1 -1
  56. package/.agents/skills/shared-extraction-audit/SKILL.md +160 -0
  57. package/.agents/skills/shared-extraction-audit/reference/examples.md +46 -0
  58. package/.agents/skills/shared-extraction-audit/reference/offense-taxonomy.md +100 -0
  59. package/.agents/skills/source-command-logifix/SKILL.md +29 -0
  60. package/.agents/skills/source-command-sr-loop/SKILL.md +58 -0
  61. package/.agents/skills/team-advisor/SKILL.md +5 -5
  62. package/.agents/skills-archived/AGENTS.md +45 -0
  63. package/.agents/{skills → skills-archived}/anthropic-plan/AGENTS.md +1 -1
  64. package/.agents/{skills → skills-archived}/bugteam/scripts/reflow_skill_md.py +3 -3
  65. package/.agents/{skills → skills-archived}/codex-review/test_skill_scaffold.py +1 -1
  66. package/.agents/{skills → skills-archived}/copilot-finding-triage/SKILL.md +1 -1
  67. package/.agents/{skills → skills-archived}/pr-converge/SKILL.md +6 -6
  68. package/.agents/{skills → skills-archived}/pr-converge/pr_converge_skill_constants/AGENTS.md +1 -1
  69. package/.agents/{skills → skills-archived}/pr-converge/pr_converge_skill_constants/constants.py +1 -1
  70. package/.agents/{skills → skills-archived}/pr-converge/reference/multi-pr-orchestration.md +1 -1
  71. package/.agents/{skills → skills-archived}/pr-converge/reference/per-tick.md +3 -3
  72. package/.agents/{skills → skills-archived}/pr-converge/scripts/reflow_skill_md.py +2 -2
  73. package/.agents/{skills → skills-archived}/pr-converge/test_portable_pacer_gate.py +6 -2
  74. package/.agents/{skills → skills-archived}/pr-converge/workflows/schedule-wakeup-loop.md +1 -1
  75. package/.agents/{skills → skills-archived}/split-pr/reference/proposal-format.md +1 -1
  76. package/AGENTS.md +34 -58
  77. package/_shared/AGENTS.md +2 -0
  78. package/_shared/advisor/AGENTS.md +5 -5
  79. package/_shared/advisor/advisor-protocol.md +54 -31
  80. package/_shared/advisor/reference/advisor-block.md +5 -1
  81. package/_shared/advisor/reference/consult-format.md +1 -1
  82. package/_shared/advisor/reference/identity.md +28 -0
  83. package/_shared/advisor/reference/lifecycle.md +8 -1
  84. package/_shared/advisor/reference/sol-rung.md +14 -9
  85. package/_shared/advisor/reference/spawn-walk-log.md +6 -5
  86. package/_shared/advisor/reference/third-party-bind.md +6 -7
  87. package/_shared/advisor/reference/warm-up.md +9 -2
  88. package/_shared/advisor/scripts/codex_sol_advisor.py +66 -11
  89. package/_shared/advisor/scripts/config/advisor_scripts_constants/advisor_route_constants.py +9 -0
  90. package/_shared/advisor/scripts/config/advisor_scripts_constants/model_tier_run_validator_constants.py +16 -4
  91. package/_shared/advisor/scripts/config/advisor_scripts_constants/sol_advisor_constants.py +11 -10
  92. package/_shared/advisor/scripts/model_tier_run_validator.py +50 -23
  93. package/_shared/advisor/scripts/tests/test_codex_sol_advisor.py +108 -3
  94. package/_shared/advisor/scripts/tests/test_model_tier_run_validator.py +171 -82
  95. package/_shared/advisor/scripts/tests/test_tier_model_ids.py +43 -0
  96. package/_shared/advisor/scripts/tier_model_ids.py +75 -7
  97. package/_shared/pr-loop/audit-reply-template.md +4 -0
  98. package/_shared/pr-loop/fix-protocol.md +7 -6
  99. package/_shared/pr-loop/gh-payloads.md +8 -6
  100. package/_shared/pr-loop/precatch-rubric.md +6 -5
  101. package/_shared/pr-loop/scripts/AGENTS.md +15 -0
  102. package/_shared/pr-loop/scripts/_pr_converge_path_setup.py +38 -0
  103. package/_shared/pr-loop/scripts/check_bugbot_ci.py +279 -0
  104. package/_shared/pr-loop/scripts/check_convergence.py +923 -0
  105. package/_shared/pr-loop/scripts/check_convergence_availability.py +275 -0
  106. package/_shared/pr-loop/scripts/check_convergence_gates.py +279 -0
  107. package/_shared/pr-loop/scripts/check_convergence_thread_gates.py +219 -0
  108. package/_shared/pr-loop/scripts/check_pending_reviews.py +154 -0
  109. package/_shared/pr-loop/scripts/codex_down_classifier.py +98 -0
  110. package/_shared/pr-loop/scripts/codex_review_scripts_constants/.claude/CLAUDE.md +1 -0
  111. package/_shared/pr-loop/scripts/codex_review_scripts_constants/AGENTS.md +18 -0
  112. package/_shared/pr-loop/scripts/codex_review_scripts_constants/__init__.py +1 -0
  113. package/_shared/pr-loop/scripts/codex_review_scripts_constants/classifier_constants.py +35 -0
  114. package/_shared/pr-loop/scripts/codex_review_scripts_constants/codex_usage_probe_constants.py +82 -0
  115. package/_shared/pr-loop/scripts/codex_review_scripts_constants/findings_constants.py +18 -0
  116. package/_shared/pr-loop/scripts/codex_review_scripts_constants/run_constants.py +53 -0
  117. package/_shared/pr-loop/scripts/codex_usage_probe.py +570 -0
  118. package/_shared/pr-loop/scripts/conftest.py +43 -0
  119. package/_shared/pr-loop/scripts/fetch_copilot_reviews.py +134 -0
  120. package/_shared/pr-loop/scripts/fixtures/auth_failure_synthetic.txt +1 -0
  121. package/_shared/pr-loop/scripts/fixtures/config_load_failure_v0.125.0.txt +1 -0
  122. package/_shared/pr-loop/scripts/fixtures/freeform_findings_v0.144.3.txt +6 -0
  123. package/_shared/pr-loop/scripts/fixtures/model_rejection_v0.125.0.jsonl +5 -0
  124. package/_shared/pr-loop/scripts/fixtures/structured_findings.txt +13 -0
  125. package/_shared/pr-loop/scripts/fixtures/success_stream_v0.144.3.jsonl +6 -0
  126. package/_shared/pr-loop/scripts/fixtures/unknown_failure_synthetic.txt +1 -0
  127. package/_shared/pr-loop/scripts/fixtures/usage_limit_synthetic.txt +1 -0
  128. package/_shared/pr-loop/scripts/parse_codex_findings.py +207 -0
  129. package/_shared/pr-loop/scripts/post_fix_reply.py +168 -0
  130. package/_shared/pr-loop/scripts/pr_converge_scripts_constants/.claude/CLAUDE.md +1 -0
  131. package/_shared/pr-loop/scripts/pr_converge_scripts_constants/AGENTS.md +18 -0
  132. package/_shared/pr-loop/scripts/pr_converge_scripts_constants/__init__.py +0 -0
  133. package/_shared/pr-loop/scripts/pr_converge_scripts_constants/convergence_gate_constants.py +70 -0
  134. package/_shared/pr-loop/scripts/pr_converge_scripts_constants/pr_converge_constants.py +118 -0
  135. package/_shared/pr-loop/scripts/pr_converge_scripts_constants/reflow_skill_md_constants.py +13 -0
  136. package/_shared/pr-loop/scripts/pr_converge_skill_constants/.claude/CLAUDE.md +1 -0
  137. package/_shared/pr-loop/scripts/pr_converge_skill_constants/AGENTS.md +26 -0
  138. package/_shared/pr-loop/scripts/pr_converge_skill_constants/__init__.py +0 -0
  139. package/_shared/pr-loop/scripts/pr_converge_skill_constants/constants.py +69 -0
  140. package/_shared/pr-loop/scripts/run_codex_review.py +609 -0
  141. package/_shared/pr-loop/scripts/test__pr_converge_path_setup.py +30 -0
  142. package/_shared/pr-loop/scripts/test_check_bugbot_ci.py +312 -0
  143. package/_shared/pr-loop/scripts/test_check_convergence.py +438 -0
  144. package/_shared/pr-loop/scripts/test_check_convergence_availability.py +391 -0
  145. package/_shared/pr-loop/scripts/test_check_convergence_codex.py +517 -0
  146. package/_shared/pr-loop/scripts/test_check_convergence_contract.py +400 -0
  147. package/_shared/pr-loop/scripts/test_check_convergence_fixture.py +179 -0
  148. package/_shared/pr-loop/scripts/test_check_convergence_gates.py +84 -0
  149. package/_shared/pr-loop/scripts/test_check_convergence_thread_gates.py +99 -0
  150. package/_shared/pr-loop/scripts/test_codex_down_classifier.py +143 -0
  151. package/_shared/pr-loop/scripts/test_codex_usage_probe.py +683 -0
  152. package/_shared/pr-loop/scripts/test_parse_codex_findings.py +130 -0
  153. package/_shared/pr-loop/scripts/test_run_codex_review.py +969 -0
  154. package/_shared/pr-loop/scripts/tests/test_claude_permissions_common.py +1 -1
  155. package/_shared/pr-loop/scripts/tests/test_code_rules_gate.py +1 -1
  156. package/_shared/pr-loop/scripts/tests/test_fix_hookspath.py +1 -1
  157. package/_shared/pr-loop/state-schema.md +20 -28
  158. package/_shared/pr-loop/worker-spawn.md +4 -3
  159. package/_shared/process-tree/AGENTS.md +3 -3
  160. package/bin/ever-shipped-skills.mjs +29 -1
  161. package/bin/install-constants.mjs +15 -6
  162. package/bin/install.agents-home.test.mjs +13 -0
  163. package/bin/install.cursor-rules.test.mjs +3 -3
  164. package/bin/install.mjs +80 -20
  165. package/bin/install.profile-root.test.mjs +1 -1
  166. package/bin/install.prune.test.mjs +23 -204
  167. package/bin/install.test.mjs +8 -5
  168. package/bin/resolve-install-root.mjs +21 -0
  169. package/bin/resolve-package-managed-directory.mjs +4 -4
  170. package/commands/AGENTS.md +2 -0
  171. package/commands/sr-loop.md +3 -0
  172. package/docs/references/prose-style-enforcement.md +3 -7
  173. package/docs/references/team-advisor-skill.md +2 -2
  174. package/hooks/AGENTS.md +0 -3
  175. package/hooks/blocking/AGENTS.md +0 -2
  176. package/hooks/blocking/ask_user_question_shape_blocker.py +83 -0
  177. package/hooks/blocking/pre_tool_use_dispatcher.py +2 -19
  178. package/hooks/blocking/state_description_blocker.py +1 -1
  179. package/hooks/blocking/test_ask_user_question_shape.py +69 -0
  180. package/hooks/blocking/test_pre_tool_use_dispatcher.py +17 -58
  181. package/hooks/blocking/test_pre_tool_use_dispatcher_native.py +9 -104
  182. package/hooks/blocking/test_state_description_blocker.py +1 -0
  183. package/hooks/blocking/test_stop_dispatcher.py +1 -26
  184. package/hooks/hooks.json +1 -1
  185. package/hooks/hooks_constants/AGENTS.md +0 -3
  186. package/hooks/hooks_constants/ask_user_question_shape.py +1 -1
  187. package/hooks/hooks_constants/ask_user_question_shape_constants.py +73 -0
  188. package/hooks/hooks_constants/bot_mention_comment_blocker_constants.py +1 -2
  189. package/hooks/hooks_constants/code_rules_path_utils_constants.py +0 -1
  190. package/hooks/hooks_constants/pre_tool_use_dispatcher_constants.py +0 -7
  191. package/hooks/hooks_constants/stop_dispatcher_constants.py +0 -1
  192. package/hooks/hooks_constants/test_ask_user_question_shape.py +1 -1
  193. package/hooks/hooks_constants/test_prose_metrics_parity.py +29 -107
  194. package/hooks/hooks_constants/test_stop_dispatcher_constants.py +0 -1
  195. package/hooks/hooks_constants/working_style_prompt_constants.py +9 -10
  196. package/hooks/session/AGENTS.md +4 -1
  197. package/hooks/session/test_working_style_prompt.py +8 -4
  198. package/hooks/session/working_style_prompt.py +4 -2
  199. package/package.json +1 -4
  200. package/rules/AGENTS.md +2 -5
  201. package/rules/asd-ste100-language.md +39 -0
  202. package/rules/ask-user-question-required.md +1 -1
  203. package/rules/long-horizon-autonomy.md +1 -1
  204. package/scripts/AGENTS.md +1 -0
  205. package/scripts/Show-Asset.ps1 +106 -0
  206. package/scripts/test_validate_instruction_pairs.py +30 -3
  207. package/scripts/tests/test_engine.py +4 -4
  208. package/scripts/tests/test_rules.py +5 -5
  209. package/system-prompts/AGENTS.md +8 -0
  210. package/system-prompts/software-engineer.xml +8 -3
  211. package/.agents/skills/grokify/evals/README.md +0 -72
  212. package/.agents/skills/grokify/evals/parse-payload.test.mjs +0 -171
  213. package/.agents/skills/grokify/evals/run-capability-evals.mjs +0 -545
  214. package/_shared/pr-loop/scripts/README.md +0 -21
  215. package/docs/imagegen.md +0 -22
  216. package/hooks/blocking/eli11_reply_enforcer.py +0 -436
  217. package/hooks/blocking/plain_language_blocker.py +0 -758
  218. package/hooks/blocking/test_eli11_reply_enforcer.py +0 -390
  219. package/hooks/blocking/test_plain_language_blocker.py +0 -683
  220. package/hooks/blocking/test_plain_language_blocker_allowlist.py +0 -228
  221. package/hooks/diagnostic/AGENTS.md +0 -75
  222. package/hooks/diagnostic/CLAUDE.md +0 -1
  223. package/hooks/diagnostic/hook_log_extractor.py +0 -875
  224. package/hooks/diagnostic/hook_log_init.py +0 -202
  225. package/hooks/diagnostic/hook_log_stop_wrapper.py +0 -26
  226. package/hooks/diagnostic/migrations/2026-04-25-drop-themes-hook-events.sql +0 -3
  227. package/hooks/diagnostic/migrations/AGENTS.md +0 -16
  228. package/hooks/diagnostic/migrations/CLAUDE.md +0 -1
  229. package/hooks/diagnostic/migrations/README.md +0 -76
  230. package/hooks/diagnostic/queries/AGENTS.md +0 -19
  231. package/hooks/diagnostic/queries/CLAUDE.md +0 -1
  232. package/hooks/diagnostic/queries/block_details_for_hook.sql +0 -26
  233. package/hooks/diagnostic/queries/blocks_by_category.sql +0 -10
  234. package/hooks/diagnostic/queries/blocks_by_tool.sql +0 -9
  235. package/hooks/diagnostic/queries/blocks_last_7_days.sql +0 -11
  236. package/hooks/diagnostic/queries/top_blockers_last_24_hours.sql +0 -12
  237. package/hooks/diagnostic/queries/top_blockers_overall.sql +0 -12
  238. package/hooks/diagnostic/requirements-hook-logs-dev.txt +0 -2
  239. package/hooks/diagnostic/requirements-hook-logs.txt +0 -1
  240. package/hooks/diagnostic/schema.sql +0 -51
  241. package/hooks/diagnostic/test_hook_log_extractor.py +0 -1518
  242. package/hooks/diagnostic/test_hook_log_init.py +0 -227
  243. package/hooks/diagnostic/test_hook_log_stop_wrapper.py +0 -17
  244. package/hooks/hooks_constants/eli11_reply_enforcer_constants.py +0 -94
  245. package/hooks/hooks_constants/hook_log_extractor_constants.py +0 -233
  246. package/hooks/hooks_constants/plain_language_blocker_constants.py +0 -366
  247. package/hooks/hooks_constants/test_hook_log_extractor_constants.py +0 -123
  248. package/rules/doc-prose-cuts.md +0 -58
  249. package/rules/eli11-replies.md +0 -36
  250. package/rules/opus5-communication-contract.md +0 -45
  251. package/rules/plain-language.md +0 -9
  252. /package/.agents/{skills → skills-archived}/anthropic-plan/.claude/CLAUDE.md +0 -0
  253. /package/.agents/{skills → skills-archived}/anthropic-plan/SKILL.md +0 -0
  254. /package/.agents/{skills → skills-archived}/anthropic-plan/scripts/.claude/CLAUDE.md +0 -0
  255. /package/.agents/{skills → skills-archived}/anthropic-plan/scripts/AGENTS.md +0 -0
  256. /package/.agents/{skills → skills-archived}/anthropic-plan/scripts/anthropic_plan_scripts_constants/.claude/CLAUDE.md +0 -0
  257. /package/.agents/{skills → skills-archived}/anthropic-plan/scripts/anthropic_plan_scripts_constants/AGENTS.md +0 -0
  258. /package/.agents/{skills → skills-archived}/anthropic-plan/scripts/anthropic_plan_scripts_constants/__init__.py +0 -0
  259. /package/.agents/{skills → skills-archived}/anthropic-plan/scripts/anthropic_plan_scripts_constants/validate_packet_constants.py +0 -0
  260. /package/.agents/{skills → skills-archived}/anthropic-plan/scripts/test_validate_packet.py +0 -0
  261. /package/.agents/{skills → skills-archived}/anthropic-plan/scripts/validate_packet.py +0 -0
  262. /package/.agents/{skills → skills-archived}/anthropic-plan/templates/.claude/CLAUDE.md +0 -0
  263. /package/.agents/{skills → skills-archived}/anthropic-plan/templates/AGENTS.md +0 -0
  264. /package/.agents/{skills → skills-archived}/anthropic-plan/templates/README.md +0 -0
  265. /package/.agents/{skills → skills-archived}/anthropic-plan/templates/build-prompt.md +0 -0
  266. /package/.agents/{skills → skills-archived}/anthropic-plan/templates/reuse-audit.md +0 -0
  267. /package/.agents/{skills → skills-archived}/anthropic-plan/templates/source-map.md +0 -0
  268. /package/.agents/{skills → skills-archived}/anthropic-plan/templates/visual-plan.template.html +0 -0
  269. /package/.agents/{skills → skills-archived}/anthropic-plan/test_skill_contract.py +0 -0
  270. /package/.agents/{skills → skills-archived}/anthropic-plan/workflow/.claude/CLAUDE.md +0 -0
  271. /package/.agents/{skills → skills-archived}/anthropic-plan/workflow/AGENTS.md +0 -0
  272. /package/.agents/{skills → skills-archived}/anthropic-plan/workflow/plan-packet.contract.test.mjs +0 -0
  273. /package/.agents/{skills → skills-archived}/anthropic-plan/workflow/plan-packet.mjs +0 -0
  274. /package/.agents/{skills → skills-archived}/auditing-claude-config/.claude/CLAUDE.md +0 -0
  275. /package/.agents/{skills → skills-archived}/auditing-claude-config/AGENTS.md +0 -0
  276. /package/.agents/{skills → skills-archived}/auditing-claude-config/SKILL.md +0 -0
  277. /package/.agents/{skills → skills-archived}/auditing-claude-config/reference/probe-hook.md +0 -0
  278. /package/.agents/{skills → skills-archived}/beat-sheet/SKILL.md +0 -0
  279. /package/.agents/{skills → skills-archived}/beat-sheet/reference/visual-beats.md +0 -0
  280. /package/.agents/{skills → skills-archived}/bugteam/.claude/CLAUDE.md +0 -0
  281. /package/.agents/{skills → skills-archived}/bugteam/AGENTS.md +0 -0
  282. /package/.agents/{skills → skills-archived}/bugteam/CONSTRAINTS.md +0 -0
  283. /package/.agents/{skills → skills-archived}/bugteam/EXAMPLES.md +0 -0
  284. /package/.agents/{skills → skills-archived}/bugteam/PROMPTS.md +0 -0
  285. /package/.agents/{skills → skills-archived}/bugteam/SKILL.md +0 -0
  286. /package/.agents/{skills → skills-archived}/bugteam/reference/.claude/CLAUDE.md +0 -0
  287. /package/.agents/{skills → skills-archived}/bugteam/reference/AGENTS.md +0 -0
  288. /package/.agents/{skills → skills-archived}/bugteam/reference/README.md +0 -0
  289. /package/.agents/{skills → skills-archived}/bugteam/reference/audit-and-teammates.md +0 -0
  290. /package/.agents/{skills → skills-archived}/bugteam/reference/copilot-gap-analysis.md +0 -0
  291. /package/.agents/{skills → skills-archived}/bugteam/reference/design-rationale.md +0 -0
  292. /package/.agents/{skills → skills-archived}/bugteam/reference/github-pr-reviews.md +0 -0
  293. /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/.claude/CLAUDE.md +0 -0
  294. /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/AGENTS.md +0 -0
  295. /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/audit-assign-ids.md +0 -0
  296. /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/audit-capture-excerpts.md +0 -0
  297. /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/audit-walk-categories.md +0 -0
  298. /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/audit-write-xml.md +0 -0
  299. /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/fix-append-summary.md +0 -0
  300. /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/fix-apply-fixes.md +0 -0
  301. /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/fix-git-add-commit.md +0 -0
  302. /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/fix-git-push.md +0 -0
  303. /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/fix-post-reply.md +0 -0
  304. /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/fix-publish-summary.md +0 -0
  305. /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/fix-py-compile.md +0 -0
  306. /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/fix-read-files.md +0 -0
  307. /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/fix-resolve-thread.md +0 -0
  308. /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/fix-test-suite.md +0 -0
  309. /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/fix-violation-count.md +0 -0
  310. /package/.agents/{skills → skills-archived}/bugteam/reference/obstacles/fix-write-xml.md +0 -0
  311. /package/.agents/{skills → skills-archived}/bugteam/reference/team-setup.md +0 -0
  312. /package/.agents/{skills → skills-archived}/bugteam/scripts/.claude/CLAUDE.md +0 -0
  313. /package/.agents/{skills → skills-archived}/bugteam/scripts/AGENTS.md +0 -0
  314. /package/.agents/{skills → skills-archived}/bugteam/scripts/README.md +0 -0
  315. /package/.agents/{skills → skills-archived}/bugteam/scripts/bugteam_code_rules_gate.py +0 -0
  316. /package/.agents/{skills → skills-archived}/bugteam/scripts/bugteam_fix_hookspath.py +0 -0
  317. /package/.agents/{skills → skills-archived}/bugteam/scripts/bugteam_preflight.py +0 -0
  318. /package/.agents/{skills → skills-archived}/bugteam/scripts/bugteam_scripts_constants/.claude/CLAUDE.md +0 -0
  319. /package/.agents/{skills → skills-archived}/bugteam/scripts/bugteam_scripts_constants/AGENTS.md +0 -0
  320. /package/.agents/{skills → skills-archived}/bugteam/scripts/bugteam_scripts_constants/__init__.py +0 -0
  321. /package/.agents/{skills → skills-archived}/bugteam/scripts/bugteam_scripts_constants/probe_code_rules_enforcer_check_constants.py +0 -0
  322. /package/.agents/{skills → skills-archived}/bugteam/scripts/bugteam_scripts_constants/reflow_skill_md_constants.py +0 -0
  323. /package/.agents/{skills → skills-archived}/bugteam/scripts/bugteam_scripts_constants/windows_safe_rmtree_constants.py +0 -0
  324. /package/.agents/{skills → skills-archived}/bugteam/scripts/probe_code_rules_enforcer_check.py +0 -0
  325. /package/.agents/{skills → skills-archived}/bugteam/scripts/test_bugteam_code_rules_gate.py +0 -0
  326. /package/.agents/{skills → skills-archived}/bugteam/scripts/test_bugteam_fix_hookspath.py +0 -0
  327. /package/.agents/{skills → skills-archived}/bugteam/scripts/test_bugteam_preflight.py +0 -0
  328. /package/.agents/{skills → skills-archived}/bugteam/scripts/test_probe_code_rules_enforcer_check.py +0 -0
  329. /package/.agents/{skills → skills-archived}/bugteam/scripts/test_windows_safe_rmtree.py +0 -0
  330. /package/.agents/{skills → skills-archived}/bugteam/scripts/windows_safe_rmtree.py +0 -0
  331. /package/.agents/{skills → skills-archived}/bugteam/sources.md +0 -0
  332. /package/.agents/{skills → skills-archived}/bugteam/test_skill_additions.py +0 -0
  333. /package/.agents/{skills → skills-archived}/closeout/SKILL.md +0 -0
  334. /package/.agents/{skills → skills-archived}/closeout/reference/handoff-prompt-template.md +0 -0
  335. /package/.agents/{skills → skills-archived}/closeout/reference/pii-redaction-checklist.md +0 -0
  336. /package/.agents/{skills → skills-archived}/codex-review/.claude/CLAUDE.md +0 -0
  337. /package/.agents/{skills → skills-archived}/codex-review/AGENTS.md +0 -0
  338. /package/.agents/{skills → skills-archived}/codex-review/SKILL.md +0 -0
  339. /package/.agents/{skills → skills-archived}/codex-review/reference/.claude/CLAUDE.md +0 -0
  340. /package/.agents/{skills → skills-archived}/codex-review/reference/AGENTS.md +0 -0
  341. /package/.agents/{skills → skills-archived}/codex-review/reference/cli-contract.md +0 -0
  342. /package/.agents/{skills → skills-archived}/codex-review/reference/loop-integration.md +0 -0
  343. /package/.agents/{skills → skills-archived}/codex-review/scripts/codex_down_classifier.py +0 -0
  344. /package/.agents/{skills → skills-archived}/codex-review/scripts/codex_review_scripts_constants/.claude/CLAUDE.md +0 -0
  345. /package/.agents/{skills → skills-archived}/codex-review/scripts/codex_review_scripts_constants/AGENTS.md +0 -0
  346. /package/.agents/{skills → skills-archived}/codex-review/scripts/codex_review_scripts_constants/__init__.py +0 -0
  347. /package/.agents/{skills → skills-archived}/codex-review/scripts/codex_review_scripts_constants/classifier_constants.py +0 -0
  348. /package/.agents/{skills → skills-archived}/codex-review/scripts/codex_review_scripts_constants/codex_usage_probe_constants.py +0 -0
  349. /package/.agents/{skills → skills-archived}/codex-review/scripts/codex_review_scripts_constants/findings_constants.py +0 -0
  350. /package/.agents/{skills → skills-archived}/codex-review/scripts/codex_review_scripts_constants/run_constants.py +0 -0
  351. /package/.agents/{skills → skills-archived}/codex-review/scripts/codex_usage_probe.py +0 -0
  352. /package/.agents/{skills → skills-archived}/codex-review/scripts/fixtures/auth_failure_synthetic.txt +0 -0
  353. /package/.agents/{skills → skills-archived}/codex-review/scripts/fixtures/config_load_failure_v0.125.0.txt +0 -0
  354. /package/.agents/{skills → skills-archived}/codex-review/scripts/fixtures/freeform_findings_v0.144.3.txt +0 -0
  355. /package/.agents/{skills → skills-archived}/codex-review/scripts/fixtures/model_rejection_v0.125.0.jsonl +0 -0
  356. /package/.agents/{skills → skills-archived}/codex-review/scripts/fixtures/structured_findings.txt +0 -0
  357. /package/.agents/{skills → skills-archived}/codex-review/scripts/fixtures/success_stream_v0.144.3.jsonl +0 -0
  358. /package/.agents/{skills → skills-archived}/codex-review/scripts/fixtures/unknown_failure_synthetic.txt +0 -0
  359. /package/.agents/{skills → skills-archived}/codex-review/scripts/fixtures/usage_limit_synthetic.txt +0 -0
  360. /package/.agents/{skills → skills-archived}/codex-review/scripts/parse_codex_findings.py +0 -0
  361. /package/.agents/{skills → skills-archived}/codex-review/scripts/run_codex_review.py +0 -0
  362. /package/.agents/{skills → skills-archived}/codex-review/scripts/test_codex_down_classifier.py +0 -0
  363. /package/.agents/{skills → skills-archived}/codex-review/scripts/test_codex_usage_probe.py +0 -0
  364. /package/.agents/{skills → skills-archived}/codex-review/scripts/test_parse_codex_findings.py +0 -0
  365. /package/.agents/{skills → skills-archived}/codex-review/scripts/test_run_codex_review.py +0 -0
  366. /package/.agents/{skills → skills-archived}/comments/SKILL.md +0 -0
  367. /package/.agents/{skills → skills-archived}/condensing-instructions/SKILL.md +0 -0
  368. /package/.agents/{skills → skills-archived}/copilot-finding-triage/reference/tier-rubric.md +0 -0
  369. /package/.agents/{skills → skills-archived}/copilot-finding-triage/scripts/conftest.py +0 -0
  370. /package/.agents/{skills → skills-archived}/copilot-finding-triage/scripts/copilot_finding_triage_constants/__init__.py +0 -0
  371. /package/.agents/{skills → skills-archived}/copilot-finding-triage/scripts/copilot_finding_triage_constants/config/__init__.py +0 -0
  372. /package/.agents/{skills → skills-archived}/copilot-finding-triage/scripts/copilot_finding_triage_constants/config/notify_ntfy_constants.py +0 -0
  373. /package/.agents/{skills → skills-archived}/copilot-finding-triage/scripts/notify_ntfy.py +0 -0
  374. /package/.agents/{skills → skills-archived}/copilot-finding-triage/scripts/test_notify_ntfy.py +0 -0
  375. /package/.agents/{skills → skills-archived}/copilot-finding-triage/templates/notification.md +0 -0
  376. /package/.agents/{skills → skills-archived}/copilot-review/.claude/CLAUDE.md +0 -0
  377. /package/.agents/{skills → skills-archived}/copilot-review/AGENTS.md +0 -0
  378. /package/.agents/{skills → skills-archived}/copilot-review/SKILL.md +0 -0
  379. /package/.agents/{skills → skills-archived}/copilot-review/templates/subagent-prompt.md +0 -0
  380. /package/.agents/{skills → skills-archived}/descriptions/SKILL.md +0 -0
  381. /package/.agents/{skills → skills-archived}/emergencies/SKILL.md +0 -0
  382. /package/.agents/{skills → skills-archived}/grokify/SKILL.md +0 -0
  383. /package/.agents/{skills → skills-archived}/grokify/capability-claims.test.mjs +0 -0
  384. /package/.agents/{skills → skills-archived}/grokify/templates/handoff-template.md +0 -0
  385. /package/.agents/{skills → skills-archived}/plan-to-pr/SKILL.md +0 -0
  386. /package/.agents/{skills → skills-archived}/plan-to-pr/reference/final-validation-tasks.md +0 -0
  387. /package/.agents/{skills → skills-archived}/plan-to-pr/reference/model-routing.md +0 -0
  388. /package/.agents/{skills → skills-archived}/plan-to-pr/reference/packet-contract.md +0 -0
  389. /package/.agents/{skills → skills-archived}/plan-to-pr/reference/packet-schema.json +0 -0
  390. /package/.agents/{skills → skills-archived}/plan-to-pr/reference/process-inventory.md +0 -0
  391. /package/.agents/{skills → skills-archived}/plan-to-pr/reference/review-loop.md +0 -0
  392. /package/.agents/{skills → skills-archived}/plan-to-pr/reference/run-record.schema.json +0 -0
  393. /package/.agents/{skills → skills-archived}/plan-to-pr/reference/self-audit-tasks.md +0 -0
  394. /package/.agents/{skills → skills-archived}/plan-to-pr/reference/task-seeds.md +0 -0
  395. /package/.agents/{skills → skills-archived}/plan-to-pr/reference/task-ticket.md +0 -0
  396. /package/.agents/{skills → skills-archived}/plan-to-pr/scripts/config/__init__.py +0 -0
  397. /package/.agents/{skills → skills-archived}/plan-to-pr/scripts/config/constants.py +0 -0
  398. /package/.agents/{skills → skills-archived}/plan-to-pr/scripts/create_packet.py +0 -0
  399. /package/.agents/{skills → skills-archived}/plan-to-pr/scripts/load_skill_constants.py +0 -0
  400. /package/.agents/{skills → skills-archived}/plan-to-pr/scripts/test_create_packet.py +0 -0
  401. /package/.agents/{skills → skills-archived}/plan-to-pr/scripts/test_validate_packet.py +0 -0
  402. /package/.agents/{skills → skills-archived}/plan-to-pr/scripts/test_validate_protocol.py +0 -0
  403. /package/.agents/{skills → skills-archived}/plan-to-pr/scripts/test_validate_run.py +0 -0
  404. /package/.agents/{skills → skills-archived}/plan-to-pr/scripts/validate_packet.py +0 -0
  405. /package/.agents/{skills → skills-archived}/plan-to-pr/scripts/validate_protocol.py +0 -0
  406. /package/.agents/{skills → skills-archived}/plan-to-pr/scripts/validate_run.py +0 -0
  407. /package/.agents/{skills → skills-archived}/plan-to-pr/test_skill_contract.py +0 -0
  408. /package/.agents/{skills → skills-archived}/plan-to-pr/test_task_ticket_contract.py +0 -0
  409. /package/.agents/{skills → skills-archived}/pr-converge/.claude/CLAUDE.md +0 -0
  410. /package/.agents/{skills → skills-archived}/pr-converge/AGENTS.md +0 -0
  411. /package/.agents/{skills → skills-archived}/pr-converge/pr_converge_skill_constants/.claude/CLAUDE.md +0 -0
  412. /package/.agents/{skills → skills-archived}/pr-converge/pr_converge_skill_constants/__init__.py +0 -0
  413. /package/.agents/{skills → skills-archived}/pr-converge/reference/.claude/CLAUDE.md +0 -0
  414. /package/.agents/{skills → skills-archived}/pr-converge/reference/AGENTS.md +0 -0
  415. /package/.agents/{skills → skills-archived}/pr-converge/reference/convergence-gates.md +0 -0
  416. /package/.agents/{skills → skills-archived}/pr-converge/reference/examples.md +0 -0
  417. /package/.agents/{skills → skills-archived}/pr-converge/reference/fix-protocol.md +0 -0
  418. /package/.agents/{skills → skills-archived}/pr-converge/reference/ground-rules.md +0 -0
  419. /package/.agents/{skills → skills-archived}/pr-converge/reference/obstacles/.claude/CLAUDE.md +0 -0
  420. /package/.agents/{skills → skills-archived}/pr-converge/reference/obstacles/AGENTS.md +0 -0
  421. /package/.agents/{skills → skills-archived}/pr-converge/reference/obstacles/fix-post-replies.md +0 -0
  422. /package/.agents/{skills → skills-archived}/pr-converge/reference/obstacles/fix-publish-summary.md +0 -0
  423. /package/.agents/{skills → skills-archived}/pr-converge/reference/obstacles/fix-push.md +0 -0
  424. /package/.agents/{skills → skills-archived}/pr-converge/reference/obstacles/fix-read-filelines.md +0 -0
  425. /package/.agents/{skills → skills-archived}/pr-converge/reference/obstacles/fix-reset-state.md +0 -0
  426. /package/.agents/{skills → skills-archived}/pr-converge/reference/obstacles/fix-resolve-threads.md +0 -0
  427. /package/.agents/{skills → skills-archived}/pr-converge/reference/obstacles/fix-spawn-clean-coder.md +0 -0
  428. /package/.agents/{skills → skills-archived}/pr-converge/reference/obstacles/fix-stage-commit.md +0 -0
  429. /package/.agents/{skills → skills-archived}/pr-converge/reference/obstacles/fix-trigger-bugbot.md +0 -0
  430. /package/.agents/{skills → skills-archived}/pr-converge/reference/obstacles/fix-write-test.md +0 -0
  431. /package/.agents/{skills → skills-archived}/pr-converge/reference/progress-checklist.md +0 -0
  432. /package/.agents/{skills → skills-archived}/pr-converge/reference/state-schema.md +0 -0
  433. /package/.agents/{skills → skills-archived}/pr-converge/reference/stop-conditions.md +0 -0
  434. /package/.agents/{skills → skills-archived}/pr-converge/scripts/.claude/CLAUDE.md +0 -0
  435. /package/.agents/{skills → skills-archived}/pr-converge/scripts/AGENTS.md +0 -0
  436. /package/.agents/{skills → skills-archived}/pr-converge/scripts/README.md +0 -0
  437. /package/.agents/{skills → skills-archived}/pr-converge/scripts/_pr_converge_path_setup.py +0 -0
  438. /package/.agents/{skills → skills-archived}/pr-converge/scripts/caller-window-pid.ps1 +0 -0
  439. /package/.agents/{skills → skills-archived}/pr-converge/scripts/check_bugbot_ci.py +0 -0
  440. /package/.agents/{skills → skills-archived}/pr-converge/scripts/check_convergence.py +0 -0
  441. /package/.agents/{skills → skills-archived}/pr-converge/scripts/check_convergence_availability.py +0 -0
  442. /package/.agents/{skills → skills-archived}/pr-converge/scripts/check_convergence_gates.py +0 -0
  443. /package/.agents/{skills → skills-archived}/pr-converge/scripts/check_convergence_thread_gates.py +0 -0
  444. /package/.agents/{skills → skills-archived}/pr-converge/scripts/check_pending_reviews.py +0 -0
  445. /package/.agents/{skills → skills-archived}/pr-converge/scripts/conftest.py +0 -0
  446. /package/.agents/{skills → skills-archived}/pr-converge/scripts/cursor-agents-continue-caller.cmd +0 -0
  447. /package/.agents/{skills → skills-archived}/pr-converge/scripts/cursor-agents-continue-stop-others.ps1 +0 -0
  448. /package/.agents/{skills → skills-archived}/pr-converge/scripts/cursor-agents-continue.ahk +0 -0
  449. /package/.agents/{skills → skills-archived}/pr-converge/scripts/cursor-agents-continue.cmd +0 -0
  450. /package/.agents/{skills → skills-archived}/pr-converge/scripts/fetch_copilot_reviews.py +0 -0
  451. /package/.agents/{skills → skills-archived}/pr-converge/scripts/post_fix_reply.py +0 -0
  452. /package/.agents/{skills → skills-archived}/pr-converge/scripts/pr_converge_scripts_constants/.claude/CLAUDE.md +0 -0
  453. /package/.agents/{skills → skills-archived}/pr-converge/scripts/pr_converge_scripts_constants/AGENTS.md +0 -0
  454. /package/.agents/{skills → skills-archived}/pr-converge/scripts/pr_converge_scripts_constants/__init__.py +0 -0
  455. /package/.agents/{skills → skills-archived}/pr-converge/scripts/pr_converge_scripts_constants/convergence_gate_constants.py +0 -0
  456. /package/.agents/{skills → skills-archived}/pr-converge/scripts/pr_converge_scripts_constants/pr_converge_constants.py +0 -0
  457. /package/.agents/{skills → skills-archived}/pr-converge/scripts/pr_converge_scripts_constants/reflow_skill_md_constants.py +0 -0
  458. /package/.agents/{skills → skills-archived}/pr-converge/scripts/test__pr_converge_path_setup.py +0 -0
  459. /package/.agents/{skills → skills-archived}/pr-converge/scripts/test_check_bugbot_ci.py +0 -0
  460. /package/.agents/{skills → skills-archived}/pr-converge/scripts/test_check_convergence.py +0 -0
  461. /package/.agents/{skills → skills-archived}/pr-converge/scripts/test_check_convergence_availability.py +0 -0
  462. /package/.agents/{skills → skills-archived}/pr-converge/scripts/test_check_convergence_codex.py +0 -0
  463. /package/.agents/{skills → skills-archived}/pr-converge/scripts/test_check_convergence_contract.py +0 -0
  464. /package/.agents/{skills → skills-archived}/pr-converge/scripts/test_check_convergence_fixture.py +0 -0
  465. /package/.agents/{skills → skills-archived}/pr-converge/scripts/test_check_convergence_gates.py +0 -0
  466. /package/.agents/{skills → skills-archived}/pr-converge/scripts/test_check_convergence_thread_gates.py +0 -0
  467. /package/.agents/{skills → skills-archived}/pr-converge/scripts/test_cursor_agents_continue.py +0 -0
  468. /package/.agents/{skills → skills-archived}/pr-converge/scripts/test_reflow_skill_md.py +0 -0
  469. /package/.agents/{skills → skills-archived}/pr-converge/test_step5_host_branch.py +0 -0
  470. /package/.agents/{skills → skills-archived}/pr-converge/workflows/.claude/CLAUDE.md +0 -0
  471. /package/.agents/{skills → skills-archived}/pr-converge/workflows/AGENTS.md +0 -0
  472. /package/.agents/{skills → skills-archived}/pr-fix-protocol/SKILL.md +0 -0
  473. /package/.agents/{skills → skills-archived}/pr-loop-cloud-transport/SKILL.md +0 -0
  474. /package/.agents/{skills → skills-archived}/pr-loop-cloud-transport/reference/identity-and-hooks.md +0 -0
  475. /package/.agents/{skills → skills-archived}/pr-loop-cloud-transport/reference/substitution-matrix.md +0 -0
  476. /package/.agents/{skills → skills-archived}/pr-loop-lifecycle/SKILL.md +0 -0
  477. /package/.agents/{skills → skills-archived}/pr-loop-lifecycle/reference/teardown-publish-permissions.md +0 -0
  478. /package/.agents/{skills → skills-archived}/recall/.claude/CLAUDE.md +0 -0
  479. /package/.agents/{skills → skills-archived}/recall/AGENTS.md +0 -0
  480. /package/.agents/{skills → skills-archived}/recall/SKILL.md +0 -0
  481. /package/.agents/{skills → skills-archived}/release-notes-html/SKILL.md +0 -0
  482. /package/.agents/{skills → skills-archived}/remember/.claude/CLAUDE.md +0 -0
  483. /package/.agents/{skills → skills-archived}/remember/AGENTS.md +0 -0
  484. /package/.agents/{skills → skills-archived}/remember/SKILL.md +0 -0
  485. /package/.agents/{skills → skills-archived}/reviewer-gates/SKILL.md +0 -0
  486. /package/.agents/{skills → skills-archived}/reviews/SKILL.md +0 -0
  487. /package/.agents/{skills → skills-archived}/show/SKILL.md +0 -0
  488. /package/.agents/{skills → skills-archived}/show/references/accessibility.md +0 -0
  489. /package/.agents/{skills → skills-archived}/show/references/art.md +0 -0
  490. /package/.agents/{skills → skills-archived}/show/references/charts.md +0 -0
  491. /package/.agents/{skills → skills-archived}/show/references/core-design.md +0 -0
  492. /package/.agents/{skills → skills-archived}/show/references/erds.md +0 -0
  493. /package/.agents/{skills → skills-archived}/show/references/flowcharts.md +0 -0
  494. /package/.agents/{skills → skills-archived}/show/references/host-and-html.md +0 -0
  495. /package/.agents/{skills → skills-archived}/show/references/illustrative-diagrams.md +0 -0
  496. /package/.agents/{skills → skills-archived}/show/references/interaction.md +0 -0
  497. /package/.agents/{skills → skills-archived}/show/references/mockups.md +0 -0
  498. /package/.agents/{skills → skills-archived}/show/references/quality-gates.md +0 -0
  499. /package/.agents/{skills → skills-archived}/show/references/structural-diagrams.md +0 -0
  500. /package/.agents/{skills → skills-archived}/show/references/subject-inventory.md +0 -0
  501. /package/.agents/{skills → skills-archived}/show/references/svg-contract.md +0 -0
  502. /package/.agents/{skills → skills-archived}/show/routing.yaml +0 -0
  503. /package/.agents/{skills → skills-archived}/show/samples/pr1262-v2.svg +0 -0
  504. /package/.agents/{skills → skills-archived}/show/scripts/README.md +0 -0
  505. /package/.agents/{skills → skills-archived}/show/scripts/validate-artifact.py +0 -0
  506. /package/.agents/{skills → skills-archived}/show/scripts/validate-package.py +0 -0
  507. /package/.agents/{skills → skills-archived}/show/templates/html-widget.html +0 -0
  508. /package/.agents/{skills → skills-archived}/show/templates/svg-base.svg +0 -0
  509. /package/.agents/{skills → skills-archived}/show/tests/fixtures/css-var.svg +0 -0
  510. /package/.agents/{skills → skills-archived}/show/tests/fixtures/dead-ref.svg +0 -0
  511. /package/.agents/{skills → skills-archived}/show/tests/fixtures/filled-glyph.svg +0 -0
  512. /package/.agents/{skills → skills-archived}/show/tests/fixtures/inherited-fill.svg +0 -0
  513. /package/.agents/{skills → skills-archived}/show/tests/fixtures/invalid.svg +0 -0
  514. /package/.agents/{skills → skills-archived}/show/tests/fixtures/large-canvas.svg +0 -0
  515. /package/.agents/{skills → skills-archived}/show/tests/fixtures/unfilled-connector.svg +0 -0
  516. /package/.agents/{skills → skills-archived}/show/tests/fixtures/valid.html +0 -0
  517. /package/.agents/{skills → skills-archived}/show/tests/test_validate-artifact.py +0 -0
  518. /package/.agents/{skills → skills-archived}/show/tests/test_validators.py +0 -0
  519. /package/.agents/{skills → skills-archived}/show/workflows/create-visual.md +0 -0
  520. /package/.agents/{skills → skills-archived}/show/workflows/review-visual.md +0 -0
  521. /package/.agents/{skills → skills-archived}/split-pr/SKILL.md +0 -0
  522. /package/.agents/{skills → skills-archived}/split-pr/reference/path-layers.md +0 -0
  523. /package/.agents/{skills → skills-archived}/split-pr/reference/split-further-loop.md +0 -0
  524. /package/.agents/{skills → skills-archived}/split-pr/reference/splitting-principles.md +0 -0
  525. /package/.agents/{skills → skills-archived}/split-pr/scripts/analyze_pr.py +0 -0
  526. /package/.agents/{skills → skills-archived}/split-pr/scripts/categorize_files.py +0 -0
  527. /package/.agents/{skills → skills-archived}/split-pr/scripts/config/__init__.py +0 -0
  528. /package/.agents/{skills → skills-archived}/split-pr/scripts/config/dependency_constants.py +0 -0
  529. /package/.agents/{skills → skills-archived}/split-pr/scripts/config/git_operations_constants.py +0 -0
  530. /package/.agents/{skills → skills-archived}/split-pr/scripts/config/packing_constants.py +0 -0
  531. /package/.agents/{skills → skills-archived}/split-pr/scripts/config/plan_constants.py +0 -0
  532. /package/.agents/{skills → skills-archived}/split-pr/scripts/config/split_pr_constants.py +0 -0
  533. /package/.agents/{skills → skills-archived}/split-pr/scripts/execute_split_slices.py +0 -0
  534. /package/.agents/{skills → skills-archived}/split-pr/scripts/pack_files_into_slices.py +0 -0
  535. /package/.agents/{skills → skills-archived}/split-pr/scripts/split_pr_dependency_graph.py +0 -0
  536. /package/.agents/{skills → skills-archived}/split-pr/scripts/split_pr_git_operations.py +0 -0
  537. /package/.agents/{skills → skills-archived}/split-pr/scripts/split_pr_layer_order.py +0 -0
  538. /package/.agents/{skills → skills-archived}/split-pr/scripts/split_pr_paginate.py +0 -0
  539. /package/.agents/{skills → skills-archived}/split-pr/scripts/split_pr_process_runner.py +0 -0
  540. /package/.agents/{skills → skills-archived}/split-pr/scripts/split_pr_script_types.py +0 -0
  541. /package/.agents/{skills → skills-archived}/split-pr/scripts/split_pr_title.py +0 -0
  542. /package/.agents/{skills → skills-archived}/split-pr/scripts/test_analyze_pr.py +0 -0
  543. /package/.agents/{skills → skills-archived}/split-pr/scripts/test_categorize_files.py +0 -0
  544. /package/.agents/{skills → skills-archived}/split-pr/scripts/test_categorize_files_packing.py +0 -0
  545. /package/.agents/{skills → skills-archived}/split-pr/scripts/test_execute_split_slices.py +0 -0
  546. /package/.agents/{skills → skills-archived}/split-pr/scripts/test_split_pr_dependency_graph.py +0 -0
  547. /package/.agents/{skills → skills-archived}/split-pr/scripts/test_split_pr_git_operations.py +0 -0
  548. /package/.agents/{skills → skills-archived}/split-pr/scripts/test_split_pr_layer_order.py +0 -0
  549. /package/.agents/{skills → skills-archived}/split-pr/scripts/test_split_pr_paginate.py +0 -0
  550. /package/.agents/{skills → skills-archived}/split-pr/scripts/test_split_pr_script_types.py +0 -0
  551. /package/.agents/{skills → skills-archived}/split-pr/scripts/test_split_pr_title.py +0 -0
  552. /package/.agents/{skills → skills-archived}/split-pr/scripts/test_verify_dependency_graph.py +0 -0
  553. /package/.agents/{skills → skills-archived}/split-pr/scripts/test_verify_plan.py +0 -0
  554. /package/.agents/{skills → skills-archived}/split-pr/scripts/test_verify_plan_contract.py +0 -0
  555. /package/.agents/{skills → skills-archived}/split-pr/scripts/test_verify_plan_path_normalization.py +0 -0
  556. /package/.agents/{skills → skills-archived}/split-pr/scripts/verify_dependency_graph.py +0 -0
  557. /package/.agents/{skills → skills-archived}/split-pr/scripts/verify_plan.py +0 -0
@@ -1,4 +1,4 @@
1
- """Tests for _shared permission helpers extracted from skills/bugteam/scripts/."""
1
+ """Tests for _shared permission helpers (historically extracted from bugteam scripts)."""
2
2
 
3
3
  import importlib.util
4
4
  import inspect
@@ -1,4 +1,4 @@
1
- """Tests for shared code_rules_gate.py extracted from skills/bugteam/scripts/.
1
+ """Tests for shared code_rules_gate.py (historically extracted from bugteam scripts).
2
2
 
3
3
  Covers:
4
4
  - Module loads from _shared/pr-loop/scripts/ location
@@ -1,4 +1,4 @@
1
- """Tests for shared fix_hookspath.py extracted from skills/bugteam/scripts/.
1
+ """Tests for shared fix_hookspath.py (historically extracted from bugteam scripts).
2
2
 
3
3
  Covers:
4
4
  - removes a local-scope core.hooksPath override and re-runs preflight
@@ -13,41 +13,33 @@ State each PR-loop workflow tracks across iterations. Workflows differ on persis
13
13
  | `starting_sha` | str | `git rev-parse HEAD` at workflow start |
14
14
  | `loop_comment_index` | dict | `{finding_id: {finding_comment_id, finding_comment_url, thread_node_id, fix_status, ...}}` (`thread_node_id` is the PR review thread node id — `PRRT_kwDOxxx` — captured at audit time when calling `get_review_comments`, used by `resolve_thread` at FIX time) |
15
15
 
16
- ## Workflow-specific extensions
16
+ ## autoconverge (workflow and portable pacer)
17
17
 
18
- ### bugteam
18
+ Workflow runs hold round state in the workflow journal. On `pacer=portable`, the
19
+ continuous driver seeds `pr-converge-state.json` under the job directory and
20
+ advances phases through `portable_converge_driver.py`. Portable state carries
21
+ `current_head`, `phase`, `codex_clean_at`, `codex_down`, `codex_required`, and
22
+ pending `next` / `wait_seconds` stamps. Round shape and terminal gates are
23
+ documented in
24
+ [`../../.agents/skills/autoconverge/reference/convergence.md`](../../.agents/skills/autoconverge/reference/convergence.md).
25
+ The machine readiness checklist is
26
+ [`../../.agents/skills/autoconverge/reference/convergence-gates.md`](../../.agents/skills/autoconverge/reference/convergence-gates.md).
19
27
 
20
- Adds:
21
- - `team_name` — `bugteam-pr-<N>-<YYYYMMDDHHMMSS>` or `bugteam-<YYYYMMDDHHMMSS>` for multi-PR
22
- - `team_temp_dir` — absolute path resolved from `tempfile.gettempdir()`
23
- - `pre_fix_sha` — `git rev-parse HEAD` immediately before each FIX
24
- - `gate_round_count` — consecutive pre-audit gate failures (cap: 5 → exit `error`)
28
+ ## Archived workflow extensions
25
29
 
26
- State lives inline in the lead session (orchestrator). Cleared on TeamDelete. A single-subagent cycle returns its loop counter and findings in the exit payload (`{exit_reason, loop_count, final_commit_sha, audit_log, unresolved}`); the orchestrator discards intermediate state.
30
+ Historical field lists for retired entry skills live under
31
+ `packages/claude-dev-env/.agents/skills-archived/`:
27
32
 
28
- ### pr-converge
29
-
30
- Normative field list, phase enum, dual persistence, and reset semantics: [`../../skills/pr-converge/reference/state-schema.md`](../../skills/pr-converge/reference/state-schema.md). File-backed multi-PR `status` enum: [`../../skills/pr-converge/reference/multi-pr-orchestration.md`](../../skills/pr-converge/reference/multi-pr-orchestration.md).
31
-
32
- Multi-PR runs also keep a per-PR JSON state file at `~/.claude/skills/pr-converge/state/<owner>-<repo>-<pr_number>.json`:
33
-
34
- | Field | Type | Description |
35
- |---|---|---|
36
- | `repo_name` | str | Full `owner/repo` |
37
- | `pr_number` | int | PR number |
38
- | `status` | enum | `open`, `blocked_escalation`, `fixing`, `ready_candidate`, `closed` |
39
- | `copilot_review` | enum | `none`, `requested`, `pending`, `commented`, `approved` |
40
- | `bugbot_review` | enum | Same vocabulary as `copilot_review`; one of `none`, `requested`, `pending`, `commented`, `approved` |
41
- | `last_seen_comment_id` | int \| null | Highest processed review-comment id (incremental polling watermark) |
42
- | `review_comments` | list[object] | Optional cache; `{id, author, path, line}` per entry |
43
- | `escalation_queue` | list[object] | Pending human-judgment items: `{comment_id, summary, created_at}` |
33
+ - **bugteam** — inline orchestrator state, `team_name`, `gate_round_count`, exit payload fields. See [`../../.agents/skills-archived/bugteam/SKILL.md`](../../.agents/skills-archived/bugteam/SKILL.md).
34
+ - **pr-converge** — file-backed multi-PR state, phase enum, dual persistence. See [`../../.agents/skills-archived/pr-converge/reference/state-schema.md`](../../.agents/skills-archived/pr-converge/reference/state-schema.md) and [`../../.agents/skills-archived/pr-converge/reference/multi-pr-orchestration.md`](../../.agents/skills-archived/pr-converge/reference/multi-pr-orchestration.md).
44
35
 
45
36
  ## Reset semantics
46
37
 
47
- - bugteam: cleared on each new `/bugteam` invocation
48
- - pr-converge: see [`../../skills/pr-converge/reference/state-schema.md`](../../skills/pr-converge/reference/state-schema.md); multi-PR file state persists across orchestrator runs and only `last_seen_comment_id` advances monotonically
38
+ - **autoconverge** portable state resets on a fresh `open-run`; workflow journal is per run id.
39
+ - **Archived bugteam** cleared on each new invocation; see archived skill body.
40
+ - **Archived pr-converge** — see archived [`state-schema.md`](../../.agents/skills-archived/pr-converge/reference/state-schema.md); multi-PR file state persists across orchestrator runs and only `last_seen_comment_id` advances monotonically.
49
41
 
50
42
  ## Convergence checks
51
43
 
52
- - bugteam: `last_action == "audited"` AND `last_findings.total == 0` `converged`
53
- - pr-converge: see [`../../skills/pr-converge/reference/convergence-gates.md`](../../skills/pr-converge/reference/convergence-gates.md); multi-PR ready when no unresolved comments require code changes, required checks are green, and review policy is satisfied → `gh pr ready`
44
+ - **autoconverge** `packages/claude-dev-env/_shared/pr-loop/scripts/check_convergence.py` is the single readiness source; gate labels are listed in [`../../.agents/skills/autoconverge/reference/convergence-gates.md`](../../.agents/skills/autoconverge/reference/convergence-gates.md). On pass, mark the PR ready (`gh pr ready`).
45
+ - **Archived pr-converge** same script and archived [`convergence-gates.md`](../../.agents/skills-archived/pr-converge/reference/convergence-gates.md) reference.
@@ -121,13 +121,14 @@ preflight/runner classification strings (for example `grok_binary_missing`,
121
121
  After a grok fallthrough the dispatcher calls `detect_host_profile()` from
122
122
  `tier_model_ids` (advisor scripts). Detection order:
123
123
 
124
- 1. `ADVISOR_HOST_PROFILE` when set — must be `Claude` or `ThirdParty` (any letter case).
124
+ 1. `ADVISOR_HOST_PROFILE` when set — must be `Claude`, `Codex`, or `ThirdParty` (any letter case).
125
125
  2. `THIRD_PARTY` when truthy — `1`, `true`, `yes`, or `on`.
126
126
  3. Default: `Claude`.
127
127
 
128
- Profiles are the real names `Claude` and `ThirdParty` (not a separate Grok host
128
+ Profiles are the real names `Claude`, `Codex`, and `ThirdParty` (not a separate Grok host
129
129
  profile). Grok is tier 1 on every host; host profile only chooses the post-grok
130
- branch (Agent-tool handoff vs headless claude chain).
130
+ branch (Agent-tool handoff vs headless claude chain). A Codex profile takes the
131
+ non-Claude branch.
131
132
 
132
133
  ## Code-review host routing
133
134
 
@@ -9,10 +9,10 @@ never outlive the run and hold the capture pipe open.
9
9
  | Caller | Use |
10
10
  |---|---|
11
11
  | `scripts/grok_headless_runner.py` | Kills a timed-out worker's tree between drain attempts |
12
- | `skills/codex-review/scripts/run_codex_review.py` | Kills the review tree on timeout, then drains |
13
- | `skills/codex-review/scripts/codex_usage_probe.py` | Tears the app-server tree down after the rate-limits exchange |
12
+ | `_shared/pr-loop/scripts/run_codex_review.py` | Kills the review tree on timeout, then drains |
13
+ | `_shared/pr-loop/scripts/codex_usage_probe.py` | Tears the app-server tree down after the rate-limits exchange |
14
14
 
15
- A skill script reaches this home the way the bugteam scripts reach
15
+ A PR-loop script reaches this home the way convergence scripts reach
16
16
  `_shared/pr-loop/scripts`: it puts the directory on `sys.path` and imports by
17
17
  module name. `bin/install.mjs` copies `_shared` and `scripts` together, and
18
18
  every install group that carries a consumer carries `_shared`, so the import
@@ -19,36 +19,57 @@
19
19
  * and pasting each distinct top-level skill directory name below.
20
20
  */
21
21
  export const EVER_SHIPPED_SKILL_NAMES = new Set([
22
+ 'agent-prompt',
22
23
  'anthropic-plan',
23
24
  'auditing-claude-config',
24
25
  'autoconverge',
26
+ 'balatro',
25
27
  'bdd-protocol',
26
28
  'beat-sheet',
27
29
  'bg-agent',
30
+ 'build-goal-prompt',
28
31
  'bugteam',
29
32
  'caveman',
30
33
  'closeout',
31
34
  'code',
35
+ 'comments',
36
+ 'condensing-instructions',
32
37
  'codex-review',
38
+ 'context7-mcp',
33
39
  'copilot-finding-triage',
34
40
  'copilot-review',
35
41
  'deep-research',
42
+ 'descriptions',
43
+ 'emergencies',
36
44
  'everything-search',
37
45
  'findbugs',
38
46
  'fixbugs',
39
47
  'fresh-branch',
48
+ 'gen-9-patch-icons',
49
+ 'gen-all-icons',
50
+ 'gen-clock-numbers',
51
+ 'gen-icon-tray',
52
+ 'gen-main-icons',
53
+ 'gen-misc-icons',
40
54
  'gh-paginate',
41
55
  'gotcha',
42
56
  'grok-spawn',
43
57
  'grokify',
58
+ 'icon-review-sheet',
44
59
  'imagegen',
45
60
  'implement',
46
61
  'issue-tracker',
47
62
  'log-audit',
48
63
  'logifix',
64
+ 'midjourney-prompt',
65
+ 'midjourney-submit',
49
66
  'monitor-open-prs',
50
67
  'orchestrator',
51
68
  'orchestrator-refresh',
69
+ 'plan-to-pr',
70
+ 'pmax',
71
+ 'pmid',
72
+ 'pmin',
52
73
  'post-audit-findings',
53
74
  'pr-consistency-audit',
54
75
  'pr-converge',
@@ -59,22 +80,29 @@ export const EVER_SHIPPED_SKILL_NAMES = new Set([
59
80
  'pr-scope-resolve',
60
81
  'pre-compact',
61
82
  'privacy-hygiene',
83
+ 'prompt-generator',
62
84
  'qbug',
63
85
  'rebase',
64
86
  'recall',
87
+ 'reconcile-account',
88
+ 'reddit-post-optimizer',
65
89
  'refine',
90
+ 'release-notes-html',
66
91
  'remember',
67
92
  'research-mode',
68
93
  'reviewer-gates',
94
+ 'reviews',
69
95
  'run-claude-dev-env',
70
96
  'session-log',
71
97
  'session-tidy',
98
+ 'show',
72
99
  'skill-builder',
100
+ 'small-cl',
101
+ 'split-pr',
73
102
  'structure-prompt',
74
103
  'task-build',
75
104
  'team-advisor',
76
105
  'update',
77
106
  'usage-pause',
78
107
  'verified-build',
79
- 'split-pr',
80
108
  ]);
@@ -83,16 +83,25 @@ export const MANAGED_AGENTS_DIRECTORY_NAME = 'agents';
83
83
 
84
84
  /**
85
85
  * The directory name hook scripts carry in a package source and under
86
- * `~/.claude`.
86
+ * the agents home.
87
87
  *
88
- * The copy loop reads `<package-root>/hooks` and writes `~/.claude/hooks`, the
89
- * hooks.json reads sit under the same name in each package source, the git-hook
90
- * shims and the mypy configuration point at the installed directory, the
91
- * retired-hook diff takes its relative paths against it, and the per-root
92
- * stale-file prune names it as one of its roots.
88
+ * The copy loop reads `<package-root>/.agents/hooks` (or `<package-root>/hooks`
89
+ * for a dependency with the legacy layout) and writes `~/.agents/hooks`.
90
+ * Claude and Codex lookup paths point at that canonical directory.
93
91
  */
94
92
  export const MANAGED_HOOKS_DIRECTORY_NAME = 'hooks';
95
93
 
94
+ /**
95
+ * The directory name reusable scripts carry in a package source and under the
96
+ * agents home.
97
+ */
98
+ export const MANAGED_SCRIPTS_DIRECTORY_NAME = 'scripts';
99
+
100
+ /**
101
+ * Directory name Codex uses for installed hook scripts.
102
+ */
103
+ export const CODEX_HOOKS_DIRECTORY_NAME = 'hooks';
104
+
96
105
  /**
97
106
  * The `~/.claude` file name that holds the user's harness settings.
98
107
  *
@@ -30,6 +30,7 @@ const THIS_DIRECTORY = dirname(fileURLToPath(import.meta.url));
30
30
  const INSTALLER_PATH = join(THIS_DIRECTORY, 'install.mjs');
31
31
  const PACKAGE_DIRECTORY = dirname(THIS_DIRECTORY);
32
32
  const SHIPPED_SKILL_NAME = 'privacy-hygiene';
33
+ const ELI5_SKILL_NAME = 'eli5';
33
34
  const SHIPPED_AGENT_FILE_NAME = 'clean-coder.md';
34
35
  const PERSONAL_SKILL_NAME = 'my-notes';
35
36
 
@@ -70,13 +71,20 @@ test('a full install writes skills and agents under .agents and points .claude a
70
71
  const canonicalSkillFile = join(
71
72
  skillsInstallDirectory, SHIPPED_SKILL_NAME, 'SKILL.md',
72
73
  );
74
+ const canonicalEli5SkillFile = join(
75
+ skillsInstallDirectory, ELI5_SKILL_NAME, 'SKILL.md',
76
+ );
73
77
  const lookupSkillFile = join(
74
78
  skillsLookupDirectory, SHIPPED_SKILL_NAME, 'SKILL.md',
75
79
  );
80
+ const lookupEli5SkillFile = join(
81
+ skillsLookupDirectory, ELI5_SKILL_NAME, 'SKILL.md',
82
+ );
76
83
  const canonicalAgentFile = join(agentsInstallDirectory, SHIPPED_AGENT_FILE_NAME);
77
84
  const lookupAgentFile = join(agentsLookupDirectory, SHIPPED_AGENT_FILE_NAME);
78
85
 
79
86
  assert.equal(existsSync(canonicalSkillFile), true, 'skill file lives under .agents/skills');
87
+ assert.equal(existsSync(canonicalEli5SkillFile), true, 'ELI5 skill file lives under .agents/skills');
80
88
  assert.equal(existsSync(canonicalAgentFile), true, 'agent file lives under .agents/agents');
81
89
  assert.equal(lstatSync(skillsLookupDirectory).isSymbolicLink(), true);
82
90
  assert.equal(lstatSync(agentsLookupDirectory).isSymbolicLink(), true);
@@ -92,7 +100,12 @@ test('a full install writes skills and agents under .agents and points .claude a
92
100
  readFileSync(lookupSkillFile, 'utf8'),
93
101
  readFileSync(canonicalSkillFile, 'utf8'),
94
102
  );
103
+ assert.equal(
104
+ readFileSync(lookupEli5SkillFile, 'utf8'),
105
+ readFileSync(canonicalEli5SkillFile, 'utf8'),
106
+ );
95
107
  assert.equal(realpathSync(lookupSkillFile), realpathSync(canonicalSkillFile));
108
+ assert.equal(realpathSync(lookupEli5SkillFile), realpathSync(canonicalEli5SkillFile));
96
109
  assert.equal(
97
110
  readFileSync(lookupAgentFile, 'utf8'),
98
111
  readFileSync(canonicalAgentFile, 'utf8'),
@@ -45,7 +45,7 @@ test('resolveInstallRoot names ~/.cursor/rules and allows generated mdc files un
45
45
  );
46
46
  assert.equal(resolution.cursorRulesInstallDirectory, expectedDirectory);
47
47
  assert.equal(
48
- isAllowedInstallDestination(join(expectedDirectory, 'plain-language.mdc'), resolution),
48
+ isAllowedInstallDestination(join(expectedDirectory, 'asd-ste100-language.mdc'), resolution),
49
49
  true,
50
50
  );
51
51
  assert.equal(
@@ -72,7 +72,7 @@ test('a full install writes stem-named Cursor rules and leaves a local extra mdc
72
72
  homeDirectory,
73
73
  DEFAULT_CURSOR_DIRECTORY_NAME,
74
74
  CURSOR_RULES_DIRECTORY_NAME,
75
- 'plain-language.mdc',
75
+ 'asd-ste100-language.mdc',
76
76
  );
77
77
  assert.equal(existsSync(generatedPath), true);
78
78
  const generatedText = readFileSync(generatedPath, 'utf8');
@@ -90,7 +90,7 @@ test('--only journal skips Cursor rule generation; --only core writes them', ()
90
90
  homeDirectory,
91
91
  DEFAULT_CURSOR_DIRECTORY_NAME,
92
92
  CURSOR_RULES_DIRECTORY_NAME,
93
- 'plain-language.mdc',
93
+ 'asd-ste100-language.mdc',
94
94
  );
95
95
  runInstaller(homeDirectory, ['--only', 'journal']);
96
96
  assert.equal(existsSync(generatedPath), false);
package/bin/install.mjs CHANGED
@@ -22,6 +22,7 @@ import {
22
22
  MANAGED_SKILLS_DIRECTORY_NAME,
23
23
  MANAGED_AGENTS_DIRECTORY_NAME,
24
24
  MANAGED_HOOKS_DIRECTORY_NAME,
25
+ MANAGED_SCRIPTS_DIRECTORY_NAME,
25
26
  SETTINGS_FILE_NAME,
26
27
  CODEX_RULES_PACKAGE_DIRECTORY_NAME,
27
28
  CURSOR_SYNC_SCRIPT_FILE_NAME,
@@ -100,7 +101,7 @@ const INSTALL_TARGET_IDENTITY = (() => {
100
101
  }
101
102
  })();
102
103
 
103
- export const CONTENT_DIRECTORIES = ['rules', 'docs', 'commands', 'system-prompts', 'scripts', '_shared', 'audit-rubrics'];
104
+ export const CONTENT_DIRECTORIES = ['rules', 'docs', 'commands', 'system-prompts', '_shared', 'audit-rubrics'];
104
105
 
105
106
  /**
106
107
  * Every top-level lookup directory the installer writes into under ~/.claude:
@@ -115,6 +116,7 @@ export const MANAGED_TOP_LEVEL_DIRECTORY_NAMES = [
115
116
  ...CONTENT_DIRECTORIES,
116
117
  MANAGED_SKILLS_DIRECTORY_NAME,
117
118
  MANAGED_AGENTS_DIRECTORY_NAME,
119
+ MANAGED_SCRIPTS_DIRECTORY_NAME,
118
120
  MANAGED_HOOKS_DIRECTORY_NAME,
119
121
  ];
120
122
 
@@ -159,14 +161,14 @@ export const CORE_INCLUDE_DIRECTORIES = [
159
161
  ];
160
162
 
161
163
  export const CORE_SKILLS = [
162
- 'orchestrator', 'orchestrator-refresh', 'team-advisor', 'grokify',
164
+ 'orchestrator', 'orchestrator-refresh', 'team-advisor',
163
165
  'grok-spawn',
164
- 'small-cl', 'comments', 'reviews', 'descriptions', 'emergencies',
165
- 'anthropic-plan', 'everything-search',
166
+ 'small-cl',
167
+ 'everything-search',
166
168
  'privacy-hygiene',
167
169
  'issue-tracker',
168
- 'recall', 'remember', 'task-build',
169
- 'show',
170
+ 'task-build',
171
+ 'eli5',
170
172
  ];
171
173
 
172
174
  export function collectPackageSourceConflicts(packageDirectory) {
@@ -766,34 +768,61 @@ function owningManagedRoot(installedFilePath) {
766
768
  const managedRoot = join(CLAUDE_HOME, directoryName);
767
769
  if (isInsideDirectory(resolvedPath, managedRoot)) return managedRoot;
768
770
  }
769
- for (const directoryName of [MANAGED_SKILLS_DIRECTORY_NAME, MANAGED_AGENTS_DIRECTORY_NAME]) {
771
+ for (const directoryName of [
772
+ MANAGED_SKILLS_DIRECTORY_NAME,
773
+ MANAGED_AGENTS_DIRECTORY_NAME,
774
+ MANAGED_HOOKS_DIRECTORY_NAME,
775
+ MANAGED_SCRIPTS_DIRECTORY_NAME,
776
+ ]) {
770
777
  const agentsRoot = join(AGENTS_HOME, directoryName);
771
778
  if (isInsideDirectory(resolvedPath, agentsRoot)) return agentsRoot;
772
779
  }
773
780
  const codexRulesDirectory = INSTALL_ROOT_RESOLUTION.codexRulesInstallDirectory;
774
781
  if (isInsideDirectory(resolvedPath, codexRulesDirectory)) return codexRulesDirectory;
782
+ const codexHooksDirectory = INSTALL_ROOT_RESOLUTION.codexHooksInstallDirectory;
783
+ if (isInsideDirectory(resolvedPath, codexHooksDirectory)) return codexHooksDirectory;
775
784
  const cursorInstallDirectory = INSTALL_ROOT_RESOLUTION.cursorInstallDirectory;
776
785
  if (isInsideDirectory(resolvedPath, cursorInstallDirectory)) return cursorInstallDirectory;
777
786
  return null;
778
787
  }
779
788
 
780
789
  /**
781
- * Publish `~/.claude/skills` and `~/.claude/agents` as directory pointers to
782
- * the agents home.
790
+ * Publish harness lookup paths as directory pointers to the agents home.
783
791
  *
784
792
  * Skills and agents live under `~/.agents` (or the per-root agents home).
785
793
  * Claude Code discovers them at the lookup paths under the managed Claude root,
786
794
  * so those two paths are pointers. A real directory from an older install at a
787
795
  * lookup path is merged into the agents home before the pointer is written.
788
796
  *
789
- * @returns {string[]} The two lookup paths this run published.
797
+ * @returns {string[]} The lookup paths this run published.
790
798
  */
791
- function publishSkillAndAgentLookupPointers() {
792
- const skillsPointer = INSTALL_ROOT_RESOLUTION.skillsLookupDirectory;
793
- const agentsPointer = INSTALL_ROOT_RESOLUTION.agentsLookupDirectory;
794
- ensureDirectoryPointer(skillsPointer, INSTALL_ROOT_RESOLUTION.skillsInstallDirectory);
795
- ensureDirectoryPointer(agentsPointer, INSTALL_ROOT_RESOLUTION.agentsInstallDirectory);
796
- return [skillsPointer, agentsPointer];
799
+ function publishManagedLookupPointers() {
800
+ const pointerPairs = [
801
+ [
802
+ INSTALL_ROOT_RESOLUTION.skillsLookupDirectory,
803
+ INSTALL_ROOT_RESOLUTION.skillsInstallDirectory,
804
+ ],
805
+ [
806
+ INSTALL_ROOT_RESOLUTION.agentsLookupDirectory,
807
+ INSTALL_ROOT_RESOLUTION.agentsInstallDirectory,
808
+ ],
809
+ [
810
+ INSTALL_ROOT_RESOLUTION.hooksLookupDirectory,
811
+ INSTALL_ROOT_RESOLUTION.hooksInstallDirectory,
812
+ ],
813
+ [
814
+ INSTALL_ROOT_RESOLUTION.scriptsLookupDirectory,
815
+ INSTALL_ROOT_RESOLUTION.scriptsInstallDirectory,
816
+ ],
817
+ [
818
+ INSTALL_ROOT_RESOLUTION.codexHooksInstallDirectory,
819
+ INSTALL_ROOT_RESOLUTION.hooksInstallDirectory,
820
+ ],
821
+ ];
822
+ for (const [pointerPath, targetPath] of pointerPairs) {
823
+ ensureDirectoryPointer(pointerPath, targetPath);
824
+ }
825
+ return pointerPairs.map(([pointerPath]) => pointerPath);
797
826
  }
798
827
 
799
828
  /**
@@ -1083,7 +1112,6 @@ export const FOLDED_HOOK_RELATIVE_PATHS = new Set([
1083
1112
  'blocking/env_var_table_code_drift_blocker.py',
1084
1113
  'blocking/pytest_testpaths_orphan_blocker.py',
1085
1114
  'blocking/open_questions_in_plans_blocker.py',
1086
- 'blocking/plain_language_blocker.py',
1087
1115
  'blocking/md_to_html_blocker.py',
1088
1116
  ]);
1089
1117
 
@@ -1591,7 +1619,11 @@ function loadClaudeSettingsObjectOrExit(settingsPath) {
1591
1619
  * @returns {number} Count of matcher groups merged.
1592
1620
  */
1593
1621
  function mergeHooks(hooksSourceRoot, pythonCommand) {
1594
- const hooksJsonPath = join(hooksSourceRoot, MANAGED_HOOKS_DIRECTORY_NAME, 'hooks.json');
1622
+ const hooksSource = resolvePackageManagedDirectory(
1623
+ hooksSourceRoot,
1624
+ MANAGED_HOOKS_DIRECTORY_NAME,
1625
+ );
1626
+ const hooksJsonPath = join(hooksSource, 'hooks.json');
1595
1627
  if (!existsSync(hooksJsonPath)) return 0;
1596
1628
  const hooksConfig = JSON.parse(readFileSync(hooksJsonPath, 'utf8'));
1597
1629
  const settingsPath = join(CLAUDE_HOME, SETTINGS_FILE_NAME);
@@ -2011,7 +2043,7 @@ function executeInstallPlanMutations(plan, transactionHelpers) {
2011
2043
  console.log(`\nInstalling ${PACKAGE_NAME} (${groupLabel})...\n`);
2012
2044
  console.log(` Python: ${pythonCommand}`);
2013
2045
  mkdirSync(CLAUDE_HOME, { recursive: true });
2014
- const publishedPointerPaths = publishSkillAndAgentLookupPointers();
2046
+ const publishedPointerPaths = publishManagedLookupPointers();
2015
2047
 
2016
2048
  const activeGroups = selectedGroups
2017
2049
  ? selectedGroups.map(groupName => ({ groupName, ...INSTALL_GROUPS[groupName] }))
@@ -2106,6 +2138,27 @@ function executeInstallPlanMutations(plan, transactionHelpers) {
2106
2138
  allInstalledFiles.push(...stats.paths);
2107
2139
  }
2108
2140
  }
2141
+ const shouldCopyScripts = !allowedDirectories
2142
+ || allowedDirectories.has(MANAGED_SCRIPTS_DIRECTORY_NAME);
2143
+ if (shouldCopyScripts) {
2144
+ for (const sourceRoot of allSourceRoots) {
2145
+ const scriptsSource = resolvePackageManagedDirectory(
2146
+ sourceRoot,
2147
+ MANAGED_SCRIPTS_DIRECTORY_NAME,
2148
+ );
2149
+ if (!existsSync(scriptsSource)) continue;
2150
+ const scriptsDestination = INSTALL_ROOT_RESOLUTION.scriptsLookupDirectory;
2151
+ const stats = copyTree(scriptsSource, scriptsDestination);
2152
+ if (!summary[MANAGED_SCRIPTS_DIRECTORY_NAME]) {
2153
+ summary[MANAGED_SCRIPTS_DIRECTORY_NAME] = stats;
2154
+ } else {
2155
+ summary[MANAGED_SCRIPTS_DIRECTORY_NAME].created += stats.created;
2156
+ summary[MANAGED_SCRIPTS_DIRECTORY_NAME].updated += stats.updated;
2157
+ summary[MANAGED_SCRIPTS_DIRECTORY_NAME].paths.push(...stats.paths);
2158
+ }
2159
+ allInstalledFiles.push(...stats.paths);
2160
+ }
2161
+ }
2109
2162
  const shouldInstallCodexRules = !selectedGroups
2110
2163
  || activeGroups.some((eachGroup) => eachGroup.includeCodexRules);
2111
2164
  if (shouldInstallCodexRules) {
@@ -2167,7 +2220,10 @@ function executeInstallPlanMutations(plan, transactionHelpers) {
2167
2220
  let totalHooksUpdated = 0;
2168
2221
  let totalHookGroups = 0;
2169
2222
  for (const sourceRoot of allSourceRoots) {
2170
- const hooksSource = join(sourceRoot, MANAGED_HOOKS_DIRECTORY_NAME);
2223
+ const hooksSource = resolvePackageManagedDirectory(
2224
+ sourceRoot,
2225
+ MANAGED_HOOKS_DIRECTORY_NAME,
2226
+ );
2171
2227
  if (!existsSync(hooksSource)) continue;
2172
2228
  const hooksDestination = join(CLAUDE_HOME, MANAGED_HOOKS_DIRECTORY_NAME);
2173
2229
  const filesToCopy = collectFiles(hooksSource)
@@ -2341,6 +2397,10 @@ function executeInstallPlanMutations(plan, transactionHelpers) {
2341
2397
  const { created, updated } = summary[MANAGED_AGENTS_DIRECTORY_NAME];
2342
2398
  console.log(` ${MANAGED_AGENTS_DIRECTORY_NAME}: ${created + updated} files (${created} new, ${updated} updated)`);
2343
2399
  }
2400
+ if (summary[MANAGED_SCRIPTS_DIRECTORY_NAME]) {
2401
+ const { created, updated } = summary[MANAGED_SCRIPTS_DIRECTORY_NAME];
2402
+ console.log(` ${MANAGED_SCRIPTS_DIRECTORY_NAME}: ${created + updated} files (${created} new, ${updated} updated)`);
2403
+ }
2344
2404
  if (summary.skills) {
2345
2405
  const { created, updated, pruned } = summary.skills;
2346
2406
  const staleClause = pruned > 0 ? `, ${pruned} stale moved aside` : '';
@@ -82,7 +82,7 @@ test('explicit target has precedence over CLAUDE_CONFIG_DIR and the home default
82
82
 
83
83
  test('isPathWithinManagedRoot requires a separator boundary', () => {
84
84
  const managedRoot = resolve(join(tmpdir(), 'containment-root', '.claude'));
85
- const insideFile = join(managedRoot, 'rules', 'plain-language.md');
85
+ const insideFile = join(managedRoot, 'rules', 'asd-ste100-language.md');
86
86
  const evilSibling = `${managedRoot}-evil`;
87
87
  const evilChild = join(`${managedRoot}-evil`, 'rules', 'x.md');
88
88