claude-dev-env 2.13.0 → 2.14.1

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 (263) hide show
  1. package/AGENTS.md +135 -0
  2. package/CLAUDE.md +1 -57
  3. package/_shared/AGENTS.md +15 -0
  4. package/_shared/CLAUDE.md +1 -15
  5. package/_shared/advisor/AGENTS.md +22 -0
  6. package/_shared/advisor/CLAUDE.md +1 -22
  7. package/_shared/pr-loop/AGENTS.md +27 -0
  8. package/_shared/pr-loop/CLAUDE.md +1 -27
  9. package/_shared/pr-loop/scripts/AGENTS.md +35 -0
  10. package/_shared/pr-loop/scripts/CLAUDE.md +1 -35
  11. package/_shared/pr-loop/scripts/code_rules_gate_parts/AGENTS.md +42 -0
  12. package/_shared/pr-loop/scripts/code_rules_gate_parts/CLAUDE.md +1 -42
  13. package/_shared/pr-loop/scripts/pr_loop_shared_constants/AGENTS.md +26 -0
  14. package/_shared/pr-loop/scripts/pr_loop_shared_constants/CLAUDE.md +1 -26
  15. package/_shared/pr-loop/scripts/tests/AGENTS.md +44 -0
  16. package/_shared/pr-loop/scripts/tests/CLAUDE.md +1 -44
  17. package/_shared/process-tree/AGENTS.md +41 -0
  18. package/_shared/process-tree/CLAUDE.md +1 -41
  19. package/agents/AGENTS.md +26 -0
  20. package/agents/CLAUDE.md +1 -31
  21. package/agents/clean-coder.md +6 -6
  22. package/agents/test_agent_frontmatter.py +11 -11
  23. package/audit-rubrics/AGENTS.md +43 -0
  24. package/audit-rubrics/CLAUDE.md +1 -43
  25. package/audit-rubrics/category_rubrics/AGENTS.md +37 -0
  26. package/audit-rubrics/category_rubrics/CLAUDE.md +1 -37
  27. package/audit-rubrics/prompts/AGENTS.md +37 -0
  28. package/audit-rubrics/prompts/CLAUDE.md +1 -37
  29. package/bin/AGENTS.md +112 -0
  30. package/bin/CLAUDE.md +1 -112
  31. package/bin/ever-shipped-skills.mjs +1 -0
  32. package/bin/install-constants.mjs +6 -7
  33. package/bin/install.mjs +24 -5
  34. package/bin/install.test.mjs +34 -0
  35. package/commands/AGENTS.md +13 -0
  36. package/commands/CLAUDE.md +1 -23
  37. package/docs/AGENTS.md +32 -0
  38. package/docs/CLAUDE.md +1 -32
  39. package/docs/CODE_RULES.md +1 -1
  40. package/docs/imagegen.md +22 -0
  41. package/docs/references/AGENTS.md +17 -0
  42. package/docs/references/CLAUDE.md +1 -17
  43. package/hooks/AGENTS.md +31 -0
  44. package/hooks/CLAUDE.md +1 -31
  45. package/hooks/_gh_pr_author_swap_utils.py +14 -0
  46. package/hooks/advisory/AGENTS.md +16 -0
  47. package/hooks/advisory/CLAUDE.md +1 -16
  48. package/hooks/blocking/AGENTS.md +123 -0
  49. package/hooks/blocking/CLAUDE.md +1 -123
  50. package/hooks/blocking/claude_md_orphan_file_blocker_parts/AGENTS.md +28 -0
  51. package/hooks/blocking/claude_md_orphan_file_blocker_parts/CLAUDE.md +1 -28
  52. package/hooks/blocking/code_rules_banned_identifiers.py +1 -1
  53. package/hooks/blocking/code_rules_dead_module_constant.py +149 -37
  54. package/hooks/blocking/code_rules_probe_chains.py +6 -2
  55. package/hooks/blocking/config/AGENTS.md +10 -0
  56. package/hooks/blocking/config/CLAUDE.md +1 -10
  57. package/hooks/blocking/gh_pr_author_restore.py +7 -2
  58. package/hooks/blocking/intent_only_ending_blocker.py +11 -16
  59. package/hooks/blocking/inventory_intent_records/AGENTS.md +26 -0
  60. package/hooks/blocking/inventory_intent_records/CLAUDE.md +1 -26
  61. package/hooks/blocking/package_inventory_stale_blocker_parts/AGENTS.md +26 -0
  62. package/hooks/blocking/package_inventory_stale_blocker_parts/CLAUDE.md +1 -26
  63. package/hooks/blocking/pii_prevention_blocker_parts/AGENTS.md +24 -0
  64. package/hooks/blocking/pii_prevention_blocker_parts/CLAUDE.md +1 -24
  65. package/hooks/blocking/tdd_enforcer_parts/AGENTS.md +30 -0
  66. package/hooks/blocking/tdd_enforcer_parts/CLAUDE.md +1 -30
  67. package/hooks/blocking/test_claude_md_orphan_file_blocker.py +1 -1
  68. package/hooks/blocking/test_code_rules_enforcer_banned_prefixes.py +1 -1
  69. package/hooks/blocking/test_code_rules_enforcer_dead_module_constant.py +171 -0
  70. package/hooks/blocking/test_code_rules_enforcer_magic_allowlist.py +1 -1
  71. package/hooks/blocking/test_gh_pr_author_restore.py +2 -1
  72. package/hooks/blocking/test_intent_only_ending_blocker.py +4 -0
  73. package/hooks/diagnostic/AGENTS.md +75 -0
  74. package/hooks/diagnostic/CLAUDE.md +1 -43
  75. package/hooks/diagnostic/hook_log_extractor.py +2 -2
  76. package/hooks/diagnostic/hook_log_init.py +2 -2
  77. package/hooks/diagnostic/migrations/AGENTS.md +16 -0
  78. package/hooks/diagnostic/migrations/CLAUDE.md +1 -16
  79. package/hooks/diagnostic/queries/AGENTS.md +19 -0
  80. package/hooks/diagnostic/queries/CLAUDE.md +1 -19
  81. package/hooks/diagnostic/test_hook_log_extractor.py +2 -2
  82. package/hooks/git-hooks/AGENTS.md +31 -0
  83. package/hooks/git-hooks/CLAUDE.md +1 -31
  84. package/hooks/git-hooks/git_hooks_constants/AGENTS.md +21 -0
  85. package/hooks/git-hooks/git_hooks_constants/CLAUDE.md +1 -21
  86. package/hooks/git-hooks/git_hooks_constants/__init__.py +4 -6
  87. package/hooks/git-hooks/pre_push.py +47 -34
  88. package/hooks/git-hooks/test_pre_push.py +111 -7
  89. package/hooks/hooks_constants/AGENTS.md +104 -0
  90. package/hooks/hooks_constants/CLAUDE.md +1 -104
  91. package/hooks/hooks_constants/hook_log_extractor_constants.py +1 -2
  92. package/hooks/hooks_constants/task_list_loop_starter_constants.py +4 -3
  93. package/hooks/hooks_constants/working_style_prompt_constants.py +29 -20
  94. package/hooks/lifecycle/AGENTS.md +18 -0
  95. package/hooks/lifecycle/CLAUDE.md +1 -18
  96. package/hooks/observability/AGENTS.md +20 -0
  97. package/hooks/observability/CLAUDE.md +1 -20
  98. package/hooks/session/AGENTS.md +33 -0
  99. package/hooks/session/CLAUDE.md +1 -33
  100. package/hooks/session/gh_pr_author_session_cleanup.py +7 -2
  101. package/hooks/session/task_list_loop_starter.py +3 -3
  102. package/hooks/session/test_gh_pr_author_session_cleanup.py +2 -1
  103. package/hooks/session/test_task_list_loop_starter.py +10 -2
  104. package/hooks/session/test_working_style_prompt.py +9 -4
  105. package/hooks/validation/AGENTS.md +20 -0
  106. package/hooks/validation/CLAUDE.md +1 -20
  107. package/hooks/validators/AGENTS.md +51 -0
  108. package/hooks/validators/CLAUDE.md +1 -51
  109. package/hooks/validators/health_check.py +52 -19
  110. package/hooks/validators/python_style_checks.py +1 -1
  111. package/hooks/validators/test_health_check.py +112 -27
  112. package/hooks/workflow/AGENTS.md +16 -0
  113. package/hooks/workflow/CLAUDE.md +1 -16
  114. package/installable-surfaces.manifest.json +1 -0
  115. package/output-styles/AGENTS.md +15 -0
  116. package/output-styles/CLAUDE.md +1 -15
  117. package/package.json +2 -1
  118. package/rules/AGENTS.md +61 -0
  119. package/rules/CLAUDE.md +1 -61
  120. package/rules/code-standards.md +5 -9
  121. package/rules/doc-prose-cuts.md +1 -1
  122. package/scripts/AGENTS.md +62 -0
  123. package/scripts/CLAUDE.md +1 -62
  124. package/scripts/codex_compat_materializer.py +4 -0
  125. package/scripts/dev_env_scripts_constants/AGENTS.md +21 -0
  126. package/scripts/dev_env_scripts_constants/CLAUDE.md +1 -21
  127. package/scripts/sync_to_cursor/AGENTS.md +23 -0
  128. package/scripts/sync_to_cursor/CLAUDE.md +1 -23
  129. package/scripts/test_active_capability_references.py +2 -2
  130. package/scripts/test_validate_instruction_pairs.py +90 -0
  131. package/scripts/test_verify_installable_package.py +5 -1
  132. package/scripts/tests/AGENTS.md +33 -0
  133. package/scripts/tests/CLAUDE.md +1 -33
  134. package/scripts/tests/test_codex_compat_materializer.py +36 -1
  135. package/scripts/validate_instruction_pairs.py +183 -0
  136. package/skills/AGENTS.md +72 -0
  137. package/skills/CLAUDE.md +1 -72
  138. package/skills/_shared/AGENTS.md +44 -0
  139. package/skills/_shared/CLAUDE.md +1 -44
  140. package/skills/_shared/advisor/AGENTS.md +9 -0
  141. package/skills/_shared/advisor/CLAUDE.md +1 -9
  142. package/skills/_shared/pr-loop/AGENTS.md +50 -0
  143. package/skills/_shared/pr-loop/CLAUDE.md +1 -50
  144. package/skills/_shared/pr-loop/prompts/AGENTS.md +9 -0
  145. package/skills/_shared/pr-loop/prompts/CLAUDE.md +1 -9
  146. package/skills/_shared/pr-loop/scripts/AGENTS.md +35 -0
  147. package/skills/_shared/pr-loop/scripts/CLAUDE.md +1 -35
  148. package/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/AGENTS.md +24 -0
  149. package/skills/_shared/pr-loop/scripts/skills_pr_loop_constants/CLAUDE.md +1 -24
  150. package/skills/anthropic-plan/AGENTS.md +34 -0
  151. package/skills/anthropic-plan/CLAUDE.md +1 -34
  152. package/skills/anthropic-plan/SKILL.md +1 -1
  153. package/skills/anthropic-plan/scripts/AGENTS.md +11 -0
  154. package/skills/anthropic-plan/scripts/CLAUDE.md +1 -11
  155. package/skills/anthropic-plan/scripts/anthropic_plan_scripts_constants/AGENTS.md +16 -0
  156. package/skills/anthropic-plan/scripts/anthropic_plan_scripts_constants/CLAUDE.md +1 -16
  157. package/skills/anthropic-plan/templates/AGENTS.md +13 -0
  158. package/skills/anthropic-plan/templates/CLAUDE.md +1 -13
  159. package/skills/anthropic-plan/test_skill_contract.py +8 -6
  160. package/skills/anthropic-plan/workflow/AGENTS.md +14 -0
  161. package/skills/anthropic-plan/workflow/CLAUDE.md +1 -14
  162. package/skills/auditing-claude-config/AGENTS.md +21 -0
  163. package/skills/auditing-claude-config/CLAUDE.md +1 -21
  164. package/skills/autoconverge/AGENTS.md +36 -0
  165. package/skills/autoconverge/CLAUDE.md +1 -36
  166. package/skills/autoconverge/reference/AGENTS.md +16 -0
  167. package/skills/autoconverge/reference/CLAUDE.md +1 -16
  168. package/skills/autoconverge/workflow/AGENTS.md +26 -0
  169. package/skills/autoconverge/workflow/CLAUDE.md +1 -26
  170. package/skills/autoconverge/workflow/autoconverge_report_constants/AGENTS.md +16 -0
  171. package/skills/autoconverge/workflow/autoconverge_report_constants/CLAUDE.md +1 -16
  172. package/skills/bugteam/AGENTS.md +30 -0
  173. package/skills/bugteam/CLAUDE.md +1 -30
  174. package/skills/bugteam/reference/AGENTS.md +20 -0
  175. package/skills/bugteam/reference/CLAUDE.md +1 -20
  176. package/skills/bugteam/reference/obstacles/AGENTS.md +24 -0
  177. package/skills/bugteam/reference/obstacles/CLAUDE.md +1 -24
  178. package/skills/bugteam/scripts/AGENTS.md +30 -0
  179. package/skills/bugteam/scripts/CLAUDE.md +1 -30
  180. package/skills/bugteam/scripts/bugteam_scripts_constants/AGENTS.md +18 -0
  181. package/skills/bugteam/scripts/bugteam_scripts_constants/CLAUDE.md +1 -18
  182. package/skills/closeout/reference/handoff-prompt-template.md +1 -1
  183. package/skills/codex-review/AGENTS.md +46 -0
  184. package/skills/codex-review/CLAUDE.md +1 -46
  185. package/skills/codex-review/reference/AGENTS.md +15 -0
  186. package/skills/codex-review/reference/CLAUDE.md +1 -15
  187. package/skills/codex-review/scripts/codex_review_scripts_constants/AGENTS.md +18 -0
  188. package/skills/codex-review/scripts/codex_review_scripts_constants/CLAUDE.md +1 -18
  189. package/skills/codex-review/test_skill_scaffold.py +3 -3
  190. package/skills/copilot-review/AGENTS.md +18 -0
  191. package/skills/copilot-review/CLAUDE.md +1 -18
  192. package/skills/everything-search/AGENTS.md +17 -0
  193. package/skills/everything-search/CLAUDE.md +1 -17
  194. package/skills/fresh-branch/AGENTS.md +14 -0
  195. package/skills/fresh-branch/CLAUDE.md +1 -14
  196. package/skills/grok-spawn/AGENTS.md +28 -0
  197. package/skills/grok-spawn/CLAUDE.md +1 -28
  198. package/skills/pr-converge/AGENTS.md +32 -0
  199. package/skills/pr-converge/CLAUDE.md +1 -32
  200. package/skills/pr-converge/pr_converge_skill_constants/AGENTS.md +26 -0
  201. package/skills/pr-converge/pr_converge_skill_constants/CLAUDE.md +1 -26
  202. package/skills/pr-converge/reference/AGENTS.md +28 -0
  203. package/skills/pr-converge/reference/CLAUDE.md +1 -28
  204. package/skills/pr-converge/reference/obstacles/AGENTS.md +23 -0
  205. package/skills/pr-converge/reference/obstacles/CLAUDE.md +1 -23
  206. package/skills/pr-converge/scripts/AGENTS.md +46 -0
  207. package/skills/pr-converge/scripts/CLAUDE.md +1 -46
  208. package/skills/pr-converge/scripts/pr_converge_scripts_constants/AGENTS.md +18 -0
  209. package/skills/pr-converge/scripts/pr_converge_scripts_constants/CLAUDE.md +1 -18
  210. package/skills/pr-converge/workflows/AGENTS.md +16 -0
  211. package/skills/pr-converge/workflows/CLAUDE.md +1 -16
  212. package/skills/prototype/SKILL.md +1 -2
  213. package/skills/prototype/reference/honest-limitations.md +1 -1
  214. package/skills/prototype/reference/promotion-tasks.md +1 -1
  215. package/skills/prototype/workflows/promotion.md +1 -1
  216. package/skills/rebase/AGENTS.md +32 -0
  217. package/skills/rebase/CLAUDE.md +1 -32
  218. package/skills/recall/AGENTS.md +30 -0
  219. package/skills/recall/CLAUDE.md +1 -30
  220. package/skills/remember/AGENTS.md +31 -0
  221. package/skills/remember/CLAUDE.md +1 -31
  222. package/skills/reviews/SKILL.md +1 -1
  223. package/skills/session-log/AGENTS.md +32 -0
  224. package/skills/session-log/CLAUDE.md +1 -32
  225. package/skills/session-tidy/AGENTS.md +36 -0
  226. package/skills/session-tidy/CLAUDE.md +1 -36
  227. package/skills/skill-builder/AGENTS.md +49 -0
  228. package/skills/skill-builder/CLAUDE.md +1 -49
  229. package/skills/skill-builder/references/AGENTS.md +25 -0
  230. package/skills/skill-builder/references/CLAUDE.md +1 -25
  231. package/skills/skill-builder/references/deterministic-elements.md +1 -1
  232. package/skills/skill-builder/templates/AGENTS.md +14 -0
  233. package/skills/skill-builder/templates/CLAUDE.md +1 -14
  234. package/skills/skill-builder/workflows/AGENTS.md +19 -0
  235. package/skills/skill-builder/workflows/CLAUDE.md +1 -19
  236. package/skills/task-build/AGENTS.md +29 -0
  237. package/skills/task-build/CLAUDE.md +1 -29
  238. package/skills/update/AGENTS.md +38 -0
  239. package/skills/update/CLAUDE.md +1 -38
  240. package/system-prompts/AGENTS.md +17 -0
  241. package/system-prompts/CLAUDE.md +1 -17
  242. package/system-prompts/software-engineer.xml +3 -3
  243. package/agents/caveman.md +0 -73
  244. package/agents/clasp-deployment-orchestrator.md +0 -608
  245. package/agents/code-advisor.md +0 -23
  246. package/agents/deep-research.md +0 -152
  247. package/agents/docs-agent.md +0 -85
  248. package/commands/commit.md +0 -28
  249. package/commands/docupdate.md +0 -322
  250. package/commands/hook-log-extract.md +0 -70
  251. package/commands/hook-log-init.md +0 -76
  252. package/commands/implement.md +0 -102
  253. package/commands/plan.md +0 -14
  254. package/commands/pr-comments.md +0 -47
  255. package/commands/review-plan.md +0 -5
  256. package/commands/right-size.md +0 -15
  257. package/commands/sum.md +0 -30
  258. package/skills/imagegen/SKILL.md +0 -21
  259. package/skills/imagegen/scripts/config/__init__.py +0 -1
  260. package/skills/imagegen/scripts/config/constants.py +0 -28
  261. package/skills/imagegen/scripts/imagegen.py +0 -45
  262. package/skills/imagegen/scripts/imagegen_core.py +0 -528
  263. package/skills/imagegen/scripts/test_imagegen.py +0 -204
@@ -0,0 +1,46 @@
1
+ # pr-converge/scripts
2
+
3
+ Python helper scripts for the `pr-converge` skill, plus their tests and a PowerShell/AutoHotkey toolset for advancing Cursor agents.
4
+
5
+ ## Key files
6
+
7
+ | File | Purpose |
8
+ |---|---|
9
+ | `check_bugbot_ci.py` | Checks bugbot CI check-run status on a given SHA |
10
+ | `check_convergence.py` | Evaluates whether all convergence gates pass on the current HEAD |
11
+ | `check_convergence_availability.py` | Resolves reviewer waivers from flag, disk-authoritative settings (env fallback), and the availability/quota probe, with waived / enforced / probe_error_reason states |
12
+ | `check_convergence_gates.py` | GitHub REST leaf checks (review and Bugbot) the convergence gates call |
13
+ | `check_convergence_thread_gates.py` | GitHub GraphQL and REST leaf checks (review threads and pending reviewers) the convergence gates call |
14
+ | `check_pending_reviews.py` | Fetches pending review requests and reviewer states |
15
+ | `fetch_copilot_reviews.py` | Fetches Copilot reviewer reviews filtered to the current HEAD |
16
+ | `post_fix_reply.py` | Posts an inline reply to a review comment thread |
17
+ | `reflow_skill_md.py` | Reformats `SKILL.md` to enforce a line width limit |
18
+ | `README.md` | MCP tool reference for PR operations used by the scripts |
19
+ | `_pr_converge_path_setup.py` | Adds the scripts directory to `sys.path` for direct script imports |
20
+ | `conftest.py` | Puts the scripts directory on `sys.path` so pytest collects the suite |
21
+ | `test_check_bugbot_ci.py` | Tests for `check_bugbot_ci.py` |
22
+ | `test_check_convergence.py` | Tests for `check_convergence.py` |
23
+ | `test_check_convergence_availability.py` | Tests for `check_convergence_availability.py` |
24
+ | `test_check_convergence_contract.py` | Contract pins for `check_convergence.py` gate wiring |
25
+ | `test_check_convergence_gates.py` | Tests for `check_convergence_gates.py` |
26
+ | `test_check_convergence_thread_gates.py` | Tests for `check_convergence_thread_gates.py` |
27
+ | `test__pr_converge_path_setup.py` | Tests for `_pr_converge_path_setup.py` |
28
+ | `test_cursor_agents_continue.py` | Tests for the cursor-agents-continue toolset |
29
+ | `test_reflow_skill_md.py` | Tests for `reflow_skill_md.py` |
30
+ | `caller-window-pid.ps1` | Gets the PID of the calling terminal window |
31
+ | `cursor-agents-continue.ahk` | AutoHotkey script to advance Cursor agent prompts |
32
+ | `cursor-agents-continue.cmd` | CMD wrapper for the AHK script |
33
+ | `cursor-agents-continue-stop-others.ps1` | Stops other Cursor agents before advancing one |
34
+ | `cursor-agents-continue-caller.cmd` | Caller-side CMD wrapper |
35
+
36
+ ## Subdirectories
37
+
38
+ | Directory | Role |
39
+ |---|---|
40
+ | `pr_converge_scripts_constants/` | Script-specific constants (re-exports skill constants plus adds reflow/CLI constants) |
41
+
42
+ ## Conventions
43
+
44
+ - Scripts import constants from `pr_converge_scripts_constants.pr_converge_constants`, which re-exports everything from `pr_converge_skill_constants.constants`.
45
+ - Run scripts as `python ~/.claude/skills/pr-converge/scripts/<script>.py --owner <O> --repo <R> --pr-number <N>`.
46
+ - The `reflow_skill_md.py` script targets `SKILL.md` in the parent skill directory (resolved via `TARGET_SKILL_PATH` in `pr_converge_scripts_constants/reflow_skill_md_constants.py`).
@@ -1,46 +1 @@
1
- # pr-converge/scripts
2
-
3
- Python helper scripts for the `pr-converge` skill, plus their tests and a PowerShell/AutoHotkey toolset for advancing Cursor agents.
4
-
5
- ## Key files
6
-
7
- | File | Purpose |
8
- |---|---|
9
- | `check_bugbot_ci.py` | Checks bugbot CI check-run status on a given SHA |
10
- | `check_convergence.py` | Evaluates whether all convergence gates pass on the current HEAD |
11
- | `check_convergence_availability.py` | Resolves reviewer waivers from flag, disk-authoritative settings (env fallback), and the availability/quota probe, with waived / enforced / probe_error_reason states |
12
- | `check_convergence_gates.py` | GitHub REST leaf checks (review and Bugbot) the convergence gates call |
13
- | `check_convergence_thread_gates.py` | GitHub GraphQL and REST leaf checks (review threads and pending reviewers) the convergence gates call |
14
- | `check_pending_reviews.py` | Fetches pending review requests and reviewer states |
15
- | `fetch_copilot_reviews.py` | Fetches Copilot reviewer reviews filtered to the current HEAD |
16
- | `post_fix_reply.py` | Posts an inline reply to a review comment thread |
17
- | `reflow_skill_md.py` | Reformats `SKILL.md` to enforce a line width limit |
18
- | `README.md` | MCP tool reference for PR operations used by the scripts |
19
- | `_pr_converge_path_setup.py` | Adds the scripts directory to `sys.path` for direct script imports |
20
- | `conftest.py` | Puts the scripts directory on `sys.path` so pytest collects the suite |
21
- | `test_check_bugbot_ci.py` | Tests for `check_bugbot_ci.py` |
22
- | `test_check_convergence.py` | Tests for `check_convergence.py` |
23
- | `test_check_convergence_availability.py` | Tests for `check_convergence_availability.py` |
24
- | `test_check_convergence_contract.py` | Contract pins for `check_convergence.py` gate wiring |
25
- | `test_check_convergence_gates.py` | Tests for `check_convergence_gates.py` |
26
- | `test_check_convergence_thread_gates.py` | Tests for `check_convergence_thread_gates.py` |
27
- | `test__pr_converge_path_setup.py` | Tests for `_pr_converge_path_setup.py` |
28
- | `test_cursor_agents_continue.py` | Tests for the cursor-agents-continue toolset |
29
- | `test_reflow_skill_md.py` | Tests for `reflow_skill_md.py` |
30
- | `caller-window-pid.ps1` | Gets the PID of the calling terminal window |
31
- | `cursor-agents-continue.ahk` | AutoHotkey script to advance Cursor agent prompts |
32
- | `cursor-agents-continue.cmd` | CMD wrapper for the AHK script |
33
- | `cursor-agents-continue-stop-others.ps1` | Stops other Cursor agents before advancing one |
34
- | `cursor-agents-continue-caller.cmd` | Caller-side CMD wrapper |
35
-
36
- ## Subdirectories
37
-
38
- | Directory | Role |
39
- |---|---|
40
- | `pr_converge_scripts_constants/` | Script-specific constants (re-exports skill constants plus adds reflow/CLI constants) |
41
-
42
- ## Conventions
43
-
44
- - Scripts import constants from `pr_converge_scripts_constants.pr_converge_constants`, which re-exports everything from `pr_converge_skill_constants.constants`.
45
- - Run scripts as `python ~/.claude/skills/pr-converge/scripts/<script>.py --owner <O> --repo <R> --pr-number <N>`.
46
- - The `reflow_skill_md.py` script targets `SKILL.md` in the parent skill directory (resolved via `TARGET_SKILL_PATH` in `pr_converge_scripts_constants/reflow_skill_md_constants.py`).
1
+ @AGENTS.md
@@ -0,0 +1,18 @@
1
+ # pr_converge_scripts_constants
2
+
3
+ Constants module for the `pr-converge` skill's Python scripts. Re-exports all runtime/API constants from the skill-level module and adds script-specific constants for CLI arguments, markdown patterns, and reflow settings.
4
+
5
+ ## Key files
6
+
7
+ | File | Purpose |
8
+ |---|---|
9
+ | `__init__.py` | Package marker |
10
+ | `pr_converge_constants.py` | Re-exports all constants from `pr_converge_skill_constants.constants` plus adds script-specific values |
11
+ | `reflow_skill_md_constants.py` | Constants for `reflow_skill_md.py`: line width limit, list item patterns, `TARGET_SKILL_PATH` |
12
+ | `convergence_gate_constants.py` | Constants for `check_convergence_gates.py`: short-SHA length, join separators, and the review-threads GraphQL query |
13
+
14
+ ## Conventions
15
+
16
+ - `pr_converge_constants.py` uses `from pr_converge_skill_constants.constants import ...` (with `# noqa: F401`) to re-export everything so script files can import from one location.
17
+ - `reflow_skill_md_constants.py` resolves `TARGET_SKILL_PATH` from its own `__file__` path, pointing to `SKILL.md` three directories up.
18
+ - Script-specific regex patterns (ordered list items, bullet list items, unfinished markdown link targets, markdown reference definitions) live in `reflow_skill_md_constants.py`.
@@ -1,18 +1 @@
1
- # pr_converge_scripts_constants
2
-
3
- Constants module for the `pr-converge` skill's Python scripts. Re-exports all runtime/API constants from the skill-level module and adds script-specific constants for CLI arguments, markdown patterns, and reflow settings.
4
-
5
- ## Key files
6
-
7
- | File | Purpose |
8
- |---|---|
9
- | `__init__.py` | Package marker |
10
- | `pr_converge_constants.py` | Re-exports all constants from `pr_converge_skill_constants.constants` plus adds script-specific values |
11
- | `reflow_skill_md_constants.py` | Constants for `reflow_skill_md.py`: line width limit, list item patterns, `TARGET_SKILL_PATH` |
12
- | `convergence_gate_constants.py` | Constants for `check_convergence_gates.py`: short-SHA length, join separators, and the review-threads GraphQL query |
13
-
14
- ## Conventions
15
-
16
- - `pr_converge_constants.py` uses `from pr_converge_skill_constants.constants import ...` (with `# noqa: F401`) to re-export everything so script files can import from one location.
17
- - `reflow_skill_md_constants.py` resolves `TARGET_SKILL_PATH` from its own `__file__` path, pointing to `SKILL.md` three directories up.
18
- - Script-specific regex patterns (ordered list items, bullet list items, unfinished markdown link targets, markdown reference definitions) live in `reflow_skill_md_constants.py`.
1
+ @AGENTS.md
@@ -0,0 +1,16 @@
1
+ # pr-converge/workflows
2
+
3
+ Pacing workflow specification for the `pr-converge` loop.
4
+
5
+ ## Key files
6
+
7
+ | File | Purpose |
8
+ |---|---|
9
+ | `schedule-wakeup-loop.md` | Specifies `ScheduleWakeup` call parameters, delays, and stop/convergence conditions for each tick |
10
+
11
+ ## Conventions
12
+
13
+ - `per-tick.md` (in `../reference/`) references this file for Step 4 (schedule next wakeup). Read it before running Step 4.
14
+ - Default delay: `delaySeconds: 360`. Exception: BUGBOT inline-lag branch uses `delaySeconds: 90`.
15
+ - On convergence or a hard stop condition, omit the `ScheduleWakeup` call entirely.
16
+ - The `reason` field in each `ScheduleWakeup` call names what is being awaited, including the current `phase` and `bugbot_clean_at` SHA when set.
@@ -1,16 +1 @@
1
- # pr-converge/workflows
2
-
3
- Pacing workflow specification for the `pr-converge` loop.
4
-
5
- ## Key files
6
-
7
- | File | Purpose |
8
- |---|---|
9
- | `schedule-wakeup-loop.md` | Specifies `ScheduleWakeup` call parameters, delays, and stop/convergence conditions for each tick |
10
-
11
- ## Conventions
12
-
13
- - `per-tick.md` (in `../reference/`) references this file for Step 4 (schedule next wakeup). Read it before running Step 4.
14
- - Default delay: `delaySeconds: 360`. Exception: BUGBOT inline-lag branch uses `delaySeconds: 90`.
15
- - On convergence or a hard stop condition, omit the `ScheduleWakeup` call entirely.
16
- - The `reason` field in each `ScheduleWakeup` call names what is being awaited, including the current `phase` and `bugbot_clean_at` SHA when set.
1
+ @AGENTS.md
@@ -45,7 +45,7 @@ Follow `workflows/sandbox.md`. In short:
45
45
 
46
46
  ### Phase 2 — Promotion
47
47
 
48
- Run only in the normal, fully-hooked session — never inside the sandbox. Follow `workflows/promotion.md`, which drives the clean-room task seeds in `reference/promotion-tasks.md`: fresh branch off live `origin/main`, POC content as an uncommitted diff, cleanup and privacy sweep, review and verification under the [review guide](../reviews/SKILL.md#review-workflow), then `/commit` and a draft PR handed to a PR-loop skill. State the two honest limitations from `reference/honest-limitations.md`.
48
+ Run only in the normal, fully-hooked session — never inside the sandbox. Follow `workflows/promotion.md`, which drives the clean-room task seeds in `reference/promotion-tasks.md`: fresh branch off live `origin/main`, POC content as an uncommitted diff, cleanup and privacy sweep, review and verification under the [review guide](../reviews/SKILL.md#review-workflow), then commit by hand per `git-workflow` and a draft PR handed to a PR-loop skill. State the two honest limitations from `reference/honest-limitations.md`.
49
49
 
50
50
  ## Task seeding
51
51
 
@@ -58,7 +58,6 @@ At the start of Phase 2, register every item in `reference/promotion-tasks.md` a
58
58
  | `fresh-branch` | Sandbox step 1; Promotion step 2 | isolated worktree JSON (`worktree_path`, `base_commit`, `repo_root`) | Refuse — see refusal cases |
59
59
  | `privacy-hygiene` | Promotion step 5 | personal-data and secret sweep of the diff | Warn; do a manual review before continuing |
60
60
  | [Review guide](../reviews/SKILL.md#review-workflow) | Promotion step 6 | review and verification of the real diff | Stop and report the incomplete promotion |
61
- | `/commit` (command) | Promotion step 7 | conventional commit + push | Commit and push by hand per `git-workflow` |
62
61
  | `autoconverge` (default; `pr-converge` or `bugteam` as alternatives) | Promotion step 9 | the PR converged to ready | Stop after the draft PR; tell the user to converge manually |
63
62
 
64
63
  ## Degree of freedom
@@ -10,7 +10,7 @@ Promotion records the controls applied to the real diff:
10
10
 
11
11
  - review and verification under the [review guide](../../reviews/SKILL.md#review-workflow);
12
12
  - the `privacy-hygiene` sweep for personal data and secrets;
13
- - the pull-request review (AGENTS.md criteria and any PR-loop reviewers).
13
+ - the pull-request review criteria and any PR-loop reviewers.
14
14
 
15
15
  Say plainly: the write-time rule engine did not see this code; the verifier and review are what cover it.
16
16
 
@@ -16,7 +16,7 @@ Promotion runs in the **normal, fully-hooked session** — never inside the `--b
16
16
 
17
17
  6. **Review and verify the real diff.** Apply the [review guide](../../reviews/SKILL.md#review-workflow). Evidence: the checks run and each required finding repaired. Do not rely on sandbox testing as promotion evidence.
18
18
 
19
- 7. **Commit and open a draft PR.** After the review and verification record is complete, run `/commit`, then open a draft PR per the `git-workflow` rule. Evidence: the commit hash and the PR URL.
19
+ 7. **Commit and open a draft PR.** After the review and verification record is complete, commit by hand per the `git-workflow` rule, then open a draft PR. Evidence: the commit hash and the PR URL.
20
20
 
21
21
  8. **State the honest limitations.** Post the two statements from `reference/honest-limitations.md` — write-time rules never ran; TDD ordering waived — in the PR body or to the user. Evidence: the text was included.
22
22
 
@@ -16,7 +16,7 @@ The task seeds carry the full ordered detail. The shape:
16
16
  4. **Cleanup.** Remove scratch files, debug dumps, and temp helpers the POC created (`cleanup-temp-files` rule).
17
17
  5. **Privacy sweep** via `privacy-hygiene` over the diff.
18
18
  6. **Review and verify** the real diff against the [review guide](../../reviews/SKILL.md#review-workflow). Record the checks run and repair every required finding.
19
- 7. **Commit and PR.** After the review and verification record is complete, run `/commit`, then open a draft PR per the `git-workflow` rule.
19
+ 7. **Commit and PR.** After the review and verification record is complete, commit by hand per the `git-workflow` rule, then open a draft PR.
20
20
  8. **State the honest limitations** from `reference/honest-limitations.md` in the PR body or to the user.
21
21
  9. **Converge** by handing the PR to `autoconverge` by default; use `pr-converge` for paced ticks or `bugteam` for an open-loop audit.
22
22
 
@@ -0,0 +1,32 @@
1
+ # rebase
2
+
3
+ Rebase a branch onto its base ref with verification gates that catch logically broken results before pushing.
4
+
5
+ **Trigger:** `/rebase`, "rebase this branch", "PR has merge conflicts", "rebase onto main", force-push to update remote branch history.
6
+
7
+ ## Purpose
8
+
9
+ The default failure mode for a rebase is shipping code that compiled but does not run. This skill prevents that by running real import checks, test collection, and symbol scans after every rebase — not just syntax validation.
10
+
11
+ ## Key files
12
+
13
+ | File | Purpose |
14
+ |---|---|
15
+ | `SKILL.md` | The complete skill — four phases (pre-rebase analysis, during rebase, verification gates, push). No companion files. |
16
+
17
+ ## Four phases
18
+
19
+ | Phase | Key actions |
20
+ |---|---|
21
+ | 1 — Pre-rebase analysis | Resolve base via `gh pr view`, classify scenario (stacked/squash/long-lived), fetch fresh, scan commit messages for deleted/renamed symbols |
22
+ | 2 — During rebase | Verify `--skip` with a diff, audit auto-merged files with `git diff --name-only --diff-filter=M ORIG_HEAD` |
23
+ | 3 — Verification gates | `python -m compileall`, `pytest --collect-only -q`, targeted test run, reference scan for removals |
24
+ | 4 — Push | Explicit authorization required; `--force-with-lease=<branch>:<sha>` only; verify mergeability after push |
25
+
26
+ ## Conventions
27
+
28
+ - Force-push requires explicit operator authorization every time — auto mode does not bypass this.
29
+ - `--force-with-lease=<branch>:<sha>` only; bare `--force` is refused.
30
+ - Never force-push `main`, `master`, `release/*`, `production`, or any multi-author branch.
31
+ - Symbol scans prefer Serena (`find_referencing_symbols`) then the Grep tool, then shell grep as a last resort.
32
+ - `ORIG_HEAD` is the correct ref for auto-merged file audits mid-rebase; `HEAD@{1}` shifts per step.
@@ -1,32 +1 @@
1
- # rebase
2
-
3
- Rebase a branch onto its base ref with verification gates that catch logically broken results before pushing.
4
-
5
- **Trigger:** `/rebase`, "rebase this branch", "PR has merge conflicts", "rebase onto main", force-push to update remote branch history.
6
-
7
- ## Purpose
8
-
9
- The default failure mode for a rebase is shipping code that compiled but does not run. This skill prevents that by running real import checks, test collection, and symbol scans after every rebase — not just syntax validation.
10
-
11
- ## Key files
12
-
13
- | File | Purpose |
14
- |---|---|
15
- | `SKILL.md` | The complete skill — four phases (pre-rebase analysis, during rebase, verification gates, push). No companion files. |
16
-
17
- ## Four phases
18
-
19
- | Phase | Key actions |
20
- |---|---|
21
- | 1 — Pre-rebase analysis | Resolve base via `gh pr view`, classify scenario (stacked/squash/long-lived), fetch fresh, scan commit messages for deleted/renamed symbols |
22
- | 2 — During rebase | Verify `--skip` with a diff, audit auto-merged files with `git diff --name-only --diff-filter=M ORIG_HEAD` |
23
- | 3 — Verification gates | `python -m compileall`, `pytest --collect-only -q`, targeted test run, reference scan for removals |
24
- | 4 — Push | Explicit authorization required; `--force-with-lease=<branch>:<sha>` only; verify mergeability after push |
25
-
26
- ## Conventions
27
-
28
- - Force-push requires explicit operator authorization every time — auto mode does not bypass this.
29
- - `--force-with-lease=<branch>:<sha>` only; bare `--force` is refused.
30
- - Never force-push `main`, `master`, `release/*`, `production`, or any multi-author branch.
31
- - Symbol scans prefer Serena (`find_referencing_symbols`) then the Grep tool, then shell grep as a last resort.
32
- - `ORIG_HEAD` is the correct ref for auto-merged file audits mid-rebase; `HEAD@{1}` shifts per step.
1
+ @AGENTS.md
@@ -0,0 +1,30 @@
1
+ # recall
2
+
3
+ Retrieves prior session context and decisions from the Obsidian vault for the current project.
4
+
5
+ **Trigger:** `/recall [search query or project name]`.
6
+
7
+ ## Purpose
8
+
9
+ Surfaces relevant session reports, decision notes, and research from the Obsidian vault before starting work. Prevents repeating decisions already made or missing known gotchas.
10
+
11
+ ## Key files
12
+
13
+ | File | Purpose |
14
+ |---|---|
15
+ | `SKILL.md` | The complete skill — six steps (resolve query, frontmatter search, content search, read top matches, present with attribution, handle no results). No companion files. |
16
+
17
+ ## How the skill runs
18
+
19
+ 1. Uses `$ARGUMENTS` as the search query, or infers the project name from conversation context.
20
+ 2. Searches by frontmatter first (`mcp__obsidian__search_notes` with `searchFrontmatter: true`) to catch session reports and decision notes tagged with the project.
21
+ 3. Falls back to content keyword search when frontmatter search returns few results.
22
+ 4. Reads the top 3 most relevant notes via `mcp__obsidian__read_note`, preferring recent notes and decision summaries over raw research.
23
+ 5. Reports each note with its path, date, relevant excerpts, and whether any decisions are marked `status: Superseded`.
24
+ 6. States clearly when no vault history exists — never infers or invents history.
25
+
26
+ ## Conventions
27
+
28
+ - `disable-model-invocation: true` is not set; this skill does invoke the model to synthesize results.
29
+ - The skill is read-only: it never writes to the vault.
30
+ - Companion to `/remember` (which writes decisions) and `/session-log` (which writes session reports).
@@ -1,30 +1 @@
1
- # recall
2
-
3
- Retrieves prior session context and decisions from the Obsidian vault for the current project.
4
-
5
- **Trigger:** `/recall [search query or project name]`.
6
-
7
- ## Purpose
8
-
9
- Surfaces relevant session reports, decision notes, and research from the Obsidian vault before starting work. Prevents repeating decisions already made or missing known gotchas.
10
-
11
- ## Key files
12
-
13
- | File | Purpose |
14
- |---|---|
15
- | `SKILL.md` | The complete skill — six steps (resolve query, frontmatter search, content search, read top matches, present with attribution, handle no results). No companion files. |
16
-
17
- ## How the skill runs
18
-
19
- 1. Uses `$ARGUMENTS` as the search query, or infers the project name from conversation context.
20
- 2. Searches by frontmatter first (`mcp__obsidian__search_notes` with `searchFrontmatter: true`) to catch session reports and decision notes tagged with the project.
21
- 3. Falls back to content keyword search when frontmatter search returns few results.
22
- 4. Reads the top 3 most relevant notes via `mcp__obsidian__read_note`, preferring recent notes and decision summaries over raw research.
23
- 5. Reports each note with its path, date, relevant excerpts, and whether any decisions are marked `status: Superseded`.
24
- 6. States clearly when no vault history exists — never infers or invents history.
25
-
26
- ## Conventions
27
-
28
- - `disable-model-invocation: true` is not set; this skill does invoke the model to synthesize results.
29
- - The skill is read-only: it never writes to the vault.
30
- - Companion to `/remember` (which writes decisions) and `/session-log` (which writes session reports).
1
+ @AGENTS.md
@@ -0,0 +1,31 @@
1
+ # remember
2
+
3
+ Saves a decision, gotcha, or architectural choice to the Obsidian vault as a structured note.
4
+
5
+ **Trigger:** User-initiated only. `/remember [what to remember]`.
6
+
7
+ ## Purpose
8
+
9
+ Writes a decision, fact, procedure, or gotcha to `decisions/[Project] - [Short Title].md` in the Obsidian vault. Each note carries structured frontmatter and a body shaped by its type, making it searchable and readable via `/recall`.
10
+
11
+ ## Key files
12
+
13
+ | File | Purpose |
14
+ |---|---|
15
+ | `SKILL.md` | The complete skill — six steps (parse input, classify type, infer project, generate title, write to vault, confirm). No companion files. |
16
+
17
+ ## Four note types
18
+
19
+ | Type | Body format |
20
+ |---|---|
21
+ | `decision` | Decision + Reasoning + Alternatives + Consequences |
22
+ | `gotcha` | Gotcha + Symptom + Fix |
23
+ | `procedural` | 1–3 clear sentences describing the how-to |
24
+ | `fact` | 1–3 clear sentences stating the fact |
25
+
26
+ ## Conventions
27
+
28
+ - `disable-model-invocation: true` is set — runs without a secondary LLM call.
29
+ - Writes via `mcp__obsidian__write_note` only; never edits existing notes.
30
+ - Path pattern: `decisions/[Project] - [Short Title].md`.
31
+ - Companion to `/recall` (reads vault) and `/session-log` (triggers decision extraction at session end).
@@ -1,31 +1 @@
1
- # remember
2
-
3
- Saves a decision, gotcha, or architectural choice to the Obsidian vault as a structured note.
4
-
5
- **Trigger:** User-initiated only. `/remember [what to remember]`.
6
-
7
- ## Purpose
8
-
9
- Writes a decision, fact, procedure, or gotcha to `decisions/[Project] - [Short Title].md` in the Obsidian vault. Each note carries structured frontmatter and a body shaped by its type, making it searchable and readable via `/recall`.
10
-
11
- ## Key files
12
-
13
- | File | Purpose |
14
- |---|---|
15
- | `SKILL.md` | The complete skill — six steps (parse input, classify type, infer project, generate title, write to vault, confirm). No companion files. |
16
-
17
- ## Four note types
18
-
19
- | Type | Body format |
20
- |---|---|
21
- | `decision` | Decision + Reasoning + Alternatives + Consequences |
22
- | `gotcha` | Gotcha + Symptom + Fix |
23
- | `procedural` | 1–3 clear sentences describing the how-to |
24
- | `fact` | 1–3 clear sentences stating the fact |
25
-
26
- ## Conventions
27
-
28
- - `disable-model-invocation: true` is set — runs without a secondary LLM call.
29
- - Writes via `mcp__obsidian__write_note` only; never edits existing notes.
30
- - Path pattern: `decisions/[Project] - [Short Title].md`.
31
- - Companion to `/recall` (reads vault) and `/session-log` (triggers decision extraction at session end).
1
+ @AGENTS.md
@@ -8,7 +8,7 @@ description: >-
8
8
  # Code Review Guide
9
9
 
10
10
  Use this guide to evaluate a pull request or code change. Apply the repository's
11
- `AGENTS.md` and `CODE_RULES.md` as its project-specific quality rubric.
11
+ the repository's checked-in review contract and `CODE_RULES.md` as its project-specific quality rubric.
12
12
 
13
13
  ## Review Judgment
14
14
 
@@ -0,0 +1,32 @@
1
+ # session-log
2
+
3
+ Logs a session report as a self-contained HTML page in the Obsidian vault, publishes it with the `Artifact` tool, extracts unrecorded decisions, tidies the project session folder, and outputs a `/rename` command.
4
+
5
+ **Trigger:** `/session-log`, "journal this session", "log this work", "session report", "save session", "capture session", "document what we did".
6
+
7
+ ## Purpose
8
+
9
+ Produces a self-contained HTML session report shaped to the session's character (feature build, incident, research, etc.) rather than a fixed template. The skill owns the vault path, session numbering, frontmatter contract, HTML composition and publishing, decision extraction, and folder hygiene.
10
+
11
+ ## Key files
12
+
13
+ | File | Purpose |
14
+ |---|---|
15
+ | `SKILL.md` | Hub — six steps, gotchas, backend detection, run-and-report checklist. |
16
+ | `templates/frontmatter.md` | The session-page frontmatter contract and the Step 3 notes block. |
17
+
18
+ ## Six steps
19
+
20
+ 1. **Backend detection** — headless vault (`ob --version` + `OBSIDIAN_VAULT_PATH`) then local vault (`~/.claude/vault/`). Session number from `[N]. *.html` and `[N]. *.md` files in the project folder.
21
+ 2. **Session metadata** — project name, session number, session ID from `CLAUDE_CODE_SESSION_ID`, date, title.
22
+ 3. **Compose and publish via the Artifact tool** — loads the `artifact-design` skill first, designs the shape for the session's character (e.g., a PR-writeup shape for feature builds, a timeline shape for incidents), writes the HTML, then publishes it with the `Artifact` tool using the fixed favicon `📓`.
23
+ 4. **Vault context tracking** — two Edit calls set `vault_context_retrieved` and append a vault-context line, then redeploy via `Artifact` on the same `file_path` so the URL stays the same.
24
+ 5. **Decision extraction** — scans conversation for unrecorded decisions; prompts user via `AskUserQuestion` before invoking `/remember`.
25
+ 6. **Session tidy** — audits `.html` files in the project folder for naming and frontmatter; auto-fixes minor issues and redeploys via `Artifact`.
26
+
27
+ ## Conventions
28
+
29
+ - Session reports use HTML — the Artifact tool publishes HTML or Markdown, and HTML gives the report designer more visual structure.
30
+ - `write_existing_file_blocker` rejects Write on existing paths — use Edit for all vault-context updates.
31
+ - The `Artifact` tool redeploys to the same URL on repeat calls with the same `file_path` within the current run — edits made in steps 3 and 5 to the session created this run never mint a new URL.
32
+ - Final step copies `/rename [Project] - [Primary Outcome]` to the clipboard via `pwsh Set-Clipboard`.
@@ -1,32 +1 @@
1
- # session-log
2
-
3
- Logs a session report as a self-contained HTML page in the Obsidian vault, publishes it with the `Artifact` tool, extracts unrecorded decisions, tidies the project session folder, and outputs a `/rename` command.
4
-
5
- **Trigger:** `/session-log`, "journal this session", "log this work", "session report", "save session", "capture session", "document what we did".
6
-
7
- ## Purpose
8
-
9
- Produces a self-contained HTML session report shaped to the session's character (feature build, incident, research, etc.) rather than a fixed template. The skill owns the vault path, session numbering, frontmatter contract, HTML composition and publishing, decision extraction, and folder hygiene.
10
-
11
- ## Key files
12
-
13
- | File | Purpose |
14
- |---|---|
15
- | `SKILL.md` | Hub — six steps, gotchas, backend detection, run-and-report checklist. |
16
- | `templates/frontmatter.md` | The session-page frontmatter contract and the Step 3 notes block. |
17
-
18
- ## Six steps
19
-
20
- 1. **Backend detection** — headless vault (`ob --version` + `OBSIDIAN_VAULT_PATH`) then local vault (`~/.claude/vault/`). Session number from `[N]. *.html` and `[N]. *.md` files in the project folder.
21
- 2. **Session metadata** — project name, session number, session ID from `CLAUDE_CODE_SESSION_ID`, date, title.
22
- 3. **Compose and publish via the Artifact tool** — loads the `artifact-design` skill first, designs the shape for the session's character (e.g., a PR-writeup shape for feature builds, a timeline shape for incidents), writes the HTML, then publishes it with the `Artifact` tool using the fixed favicon `📓`.
23
- 4. **Vault context tracking** — two Edit calls set `vault_context_retrieved` and append a vault-context line, then redeploy via `Artifact` on the same `file_path` so the URL stays the same.
24
- 5. **Decision extraction** — scans conversation for unrecorded decisions; prompts user via `AskUserQuestion` before invoking `/remember`.
25
- 6. **Session tidy** — audits `.html` files in the project folder for naming and frontmatter; auto-fixes minor issues and redeploys via `Artifact`.
26
-
27
- ## Conventions
28
-
29
- - Session reports use HTML — the Artifact tool publishes HTML or Markdown, and HTML gives the report designer more visual structure.
30
- - `write_existing_file_blocker` rejects Write on existing paths — use Edit for all vault-context updates.
31
- - The `Artifact` tool redeploys to the same URL on repeat calls with the same `file_path` within the current run — edits made in steps 3 and 5 to the session created this run never mint a new URL.
32
- - Final step copies `/rename [Project] - [Primary Outcome]` to the clipboard via `pwsh Set-Clipboard`.
1
+ @AGENTS.md
@@ -0,0 +1,36 @@
1
+ # session-tidy
2
+
3
+ Audits, cleans, and consolidates session logs in the Obsidian vault — fixes format drift, resolves orphaned next-steps, updates stale statuses, and generates project rollup summaries.
4
+
5
+ **Trigger:** `/session-tidy`, "tidy sessions", "clean up session logs", "session audit".
6
+
7
+ ## Purpose
8
+
9
+ Maintenance utility for the `sessions/[Project]/` vault directories. Enforces the session-log format contract, moves uncategorized files into project subfolders, and generates `Summary.md` rollup files for projects with 3+ sessions.
10
+
11
+ ## Key files
12
+
13
+ | File | Purpose |
14
+ |---|---|
15
+ | `SKILL.md` | The complete skill — four phases (preflight, audit, propose changes, execute + verify). No companion files. |
16
+
17
+ ## Format contract enforced
18
+
19
+ - **Path:** `sessions/[Project]/[N]. [Title].md`
20
+ - **Frontmatter:** `type`, `project`, `session`, `date`, `status`, `blocked`, `tags` — all needed.
21
+ - **Status rules:** `completed` + `blocked: true` is contradictory; `in-progress` or `blocked` older than 7 days is stale.
22
+ - **Content:** outcome-oriented `###` headers with one emoji; no play-by-play narration.
23
+
24
+ ## Four phases
25
+
26
+ 1. **Preflight** — resolve backend (headless vault, Obsidian MCP, or local vault).
27
+ 2. **Audit** — check each file for naming, frontmatter completeness, status coherence, orphaned next-steps, and categorization.
28
+ 3. **Propose changes** — report findings; wait for user approval before changing anything.
29
+ 4. **Execute + verify** — rename files, fix frontmatter, update statuses, clean orphaned next-steps, generate `Summary.md` rollups.
30
+
31
+ ## Conventions
32
+
33
+ - `disable-model-invocation: true` is set.
34
+ - Changes need explicit user approval from Phase 2's report — the skill never auto-applies without approval.
35
+ - Companion to `/session-log` (creates sessions) and `/recall` (reads vault).
36
+ - `/session-tidy` targets Markdown session format; HTML sessions from `/session-log` may be mis-audited or get incorrect rename proposals.
@@ -1,36 +1 @@
1
- # session-tidy
2
-
3
- Audits, cleans, and consolidates session logs in the Obsidian vault — fixes format drift, resolves orphaned next-steps, updates stale statuses, and generates project rollup summaries.
4
-
5
- **Trigger:** `/session-tidy`, "tidy sessions", "clean up session logs", "session audit".
6
-
7
- ## Purpose
8
-
9
- Maintenance utility for the `sessions/[Project]/` vault directories. Enforces the session-log format contract, moves uncategorized files into project subfolders, and generates `Summary.md` rollup files for projects with 3+ sessions.
10
-
11
- ## Key files
12
-
13
- | File | Purpose |
14
- |---|---|
15
- | `SKILL.md` | The complete skill — four phases (preflight, audit, propose changes, execute + verify). No companion files. |
16
-
17
- ## Format contract enforced
18
-
19
- - **Path:** `sessions/[Project]/[N]. [Title].md`
20
- - **Frontmatter:** `type`, `project`, `session`, `date`, `status`, `blocked`, `tags` — all needed.
21
- - **Status rules:** `completed` + `blocked: true` is contradictory; `in-progress` or `blocked` older than 7 days is stale.
22
- - **Content:** outcome-oriented `###` headers with one emoji; no play-by-play narration.
23
-
24
- ## Four phases
25
-
26
- 1. **Preflight** — resolve backend (headless vault, Obsidian MCP, or local vault).
27
- 2. **Audit** — check each file for naming, frontmatter completeness, status coherence, orphaned next-steps, and categorization.
28
- 3. **Propose changes** — report findings; wait for user approval before changing anything.
29
- 4. **Execute + verify** — rename files, fix frontmatter, update statuses, clean orphaned next-steps, generate `Summary.md` rollups.
30
-
31
- ## Conventions
32
-
33
- - `disable-model-invocation: true` is set.
34
- - Changes need explicit user approval from Phase 2's report — the skill never auto-applies without approval.
35
- - Companion to `/session-log` (creates sessions) and `/recall` (reads vault).
36
- - `/session-tidy` targets Markdown session format; HTML sessions from `/session-log` may be mis-audited or get incorrect rename proposals.
1
+ @AGENTS.md
@@ -0,0 +1,49 @@
1
+ # skill-builder
2
+
3
+ Orchestrates the skill-building lifecycle: classify type, scaffold folders, write via the `skill-writer-agent` agent, enforce modularity (sub-skills / composition), write description as a trigger catalog, require deterministic steps as code, self-audit, and refine from real usage.
4
+
5
+ **Trigger:** build a skill, new skill workflow, improve this skill, optimize skill description, skill development lifecycle, skill modularity, description trigger catalog, deterministic skill scripts.
6
+
7
+ ## Purpose
8
+
9
+ Enforces craft standards for new and existing skills. For quick one-off SKILL.md edits, spawn the `skill-writer-agent` agent directly. This skill classifies, scaffolds, gathers context (composition plan, description triggers, deterministic inventory), delegates writing, and self-audits.
10
+
11
+ ## Key files
12
+
13
+ | File | Purpose |
14
+ |---|---|
15
+ | `SKILL.md` | Hub — routing, principles, file index |
16
+ | `references/skill-types.md` | 9-type taxonomy with folder structures per type |
17
+ | `references/progressive-disclosure.md` | Hub pattern, folder conventions, hard rules |
18
+ | `references/skill-modularity.md` | Cross-skill modularity, sub-skills, composition plan |
19
+ | `references/description-field.md` | Description as trigger catalog (not story prose) |
20
+ | `references/deterministic-elements.md` | Deterministic steps as code/task seeds; no markdown checkbox boards |
21
+ | `references/self-audit-checklist.md` | Post-build audit task seeds (TaskCreate / TodoWrite) |
22
+ | `references/delegation-map.md` | Subagent handoff patterns and transcript guidance |
23
+ | `references/thariq-x-post-skills.json` | Source reference — lessons from building Claude Code skills |
24
+ | `workflows/new-skill.md` | Full lifecycle for new skills (6 steps) |
25
+ | `workflows/improve-skill.md` | Observation-first flow for existing skills (6 steps) |
26
+ | `workflows/polish-skill.md` | Description trigger-catalog audit and final validation (5 steps) |
27
+ | `templates/gap-analysis.md` | Gaps, composition plan, description triggers, deterministic inventory |
28
+
29
+ ## Subdirectories
30
+
31
+ | Directory | Purpose |
32
+ |---|---|
33
+ | `references/` | Best-practice specs and the audit checklist |
34
+ | `workflows/` | Step-by-step workflows for each lifecycle phase |
35
+ | `templates/` | Reusable templates for skill artifacts |
36
+
37
+ ## Routing
38
+
39
+ - **New skill** → `workflows/new-skill.md`
40
+ - **Improve existing** → `workflows/improve-skill.md`
41
+ - **Final polish only** → `workflows/polish-skill.md`
42
+ - **Ambiguous** → ask the user which one applies
43
+
44
+ ## Conventions
45
+
46
+ - Every build ends with the self-audit at `references/self-audit-checklist.md`; fix failures before delivery.
47
+ - Modularity items, description trigger-catalog items, and deterministic-element classification are mandatory on every delivery.
48
+ - `skill-builder` orchestrates; the `skill-writer-agent` agent authors. Handoff packet must include type, gap analysis, composition plan, description trigger catalog, deterministic inventory, degree-of-freedom assessment, and constraints.
49
+ - Claude A / Claude B: Claude A (this session) designs; Claude B (subagents) tests the built skill on real tasks.