deepwork 0.4.0__tar.gz → 0.5.1__tar.gz

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 (299) hide show
  1. deepwork-0.5.1/.claude/hooks/block_bash_with_instructions.sh +76 -0
  2. deepwork-0.5.1/.claude/hooks/commit_job_git_commit.sh +4 -0
  3. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/settings.json +18 -1
  4. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/add_platform.add_capabilities/SKILL.md +1 -42
  5. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/add_platform.implement/SKILL.md +5 -50
  6. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/add_platform.research/SKILL.md +1 -44
  7. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/add_platform.verify/SKILL.md +1 -40
  8. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/commit.commit_and_push/SKILL.md +20 -37
  9. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/commit.lint/SKILL.md +1 -32
  10. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/commit.review/SKILL.md +1 -32
  11. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/commit.test/SKILL.md +1 -34
  12. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/deepwork_jobs.define/SKILL.md +10 -70
  13. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/deepwork_jobs.implement/SKILL.md +10 -64
  14. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/deepwork_jobs.learn/SKILL.md +10 -69
  15. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/deepwork_jobs.review_job_spec/SKILL.md +10 -54
  16. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/deepwork_rules.define/SKILL.md +1 -3
  17. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/manual_tests.infinite_block_tests/SKILL.md +10 -54
  18. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/manual_tests.reset/SKILL.md +10 -48
  19. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/manual_tests.run_fire_tests/SKILL.md +10 -60
  20. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/manual_tests.run_not_fire_tests/SKILL.md +10 -60
  21. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/update.job/SKILL.md +1 -34
  22. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/commit/job.yml +7 -3
  23. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/commit/steps/commit_and_push.md +19 -3
  24. {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/commit/commit_and_push.toml +19 -3
  25. deepwork-0.5.1/.github/workflows/prepare-release.yml +152 -0
  26. deepwork-0.5.1/.github/workflows/publish-release.yml +78 -0
  27. {deepwork-0.4.0 → deepwork-0.5.1}/CHANGELOG.md +42 -1
  28. {deepwork-0.4.0 → deepwork-0.5.1}/PKG-INFO +1 -1
  29. {deepwork-0.4.0 → deepwork-0.5.1}/doc/platforms/claude/hooks.md +19 -1
  30. {deepwork-0.4.0 → deepwork-0.5.1}/doc/platforms/claude/hooks_system.md +73 -36
  31. {deepwork-0.4.0 → deepwork-0.5.1}/pyproject.toml +1 -1
  32. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/core/adapters.py +4 -0
  33. deepwork-0.5.1/src/deepwork/templates/claude/AGENTS.md +38 -0
  34. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/templates/claude/skill-job-step.md.jinja +73 -89
  35. {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_adapters.py +6 -2
  36. {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_stop_hooks.py +85 -25
  37. {deepwork-0.4.0 → deepwork-0.5.1}/uv.lock +1 -1
  38. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/add_platform/SKILL.md +0 -0
  39. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/commit/SKILL.md +0 -0
  40. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/deepwork_jobs/SKILL.md +0 -0
  41. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/deepwork_rules/SKILL.md +0 -0
  42. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/manual_tests/SKILL.md +0 -0
  43. {deepwork-0.4.0 → deepwork-0.5.1}/.claude/skills/update/SKILL.md +0 -0
  44. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/.gitignore +0 -0
  45. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/config.yml +0 -0
  46. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/doc_specs/claude_code_skill.md +0 -0
  47. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/doc_specs/job_spec.md +0 -0
  48. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/add_platform/job.yml +0 -0
  49. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/add_platform/steps/add_capabilities.md +0 -0
  50. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/add_platform/steps/implement.md +0 -0
  51. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/add_platform/steps/research.md +0 -0
  52. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/add_platform/steps/verify.md +0 -0
  53. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/commit/AGENTS.md +0 -0
  54. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/commit/steps/lint.md +0 -0
  55. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/commit/steps/review.md +0 -0
  56. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/commit/steps/test.md +0 -0
  57. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/AGENTS.md +0 -0
  58. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/doc_specs/job_spec.md +0 -0
  59. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/job.yml +0 -0
  60. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/make_new_job.sh +0 -0
  61. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/steps/define.md +0 -0
  62. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/steps/implement.md +0 -0
  63. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/steps/learn.md +0 -0
  64. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/steps/review_job_spec.md +0 -0
  65. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/steps/supplemental_file_references.md +0 -0
  66. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/templates/agents.md.template +0 -0
  67. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/templates/doc_spec.md.example +0 -0
  68. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/templates/doc_spec.md.template +0 -0
  69. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/templates/job.yml.example +0 -0
  70. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/templates/job.yml.template +0 -0
  71. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/templates/step_instruction.md.example +0 -0
  72. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/templates/step_instruction.md.template +0 -0
  73. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/hooks/capture_prompt_work_tree.sh +0 -0
  74. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/hooks/global_hooks.yml +0 -0
  75. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/hooks/user_prompt_submit.sh +0 -0
  76. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/job.yml +0 -0
  77. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/rules/.gitkeep +0 -0
  78. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/rules/api-documentation-sync.md.example +0 -0
  79. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/rules/readme-documentation.md.example +0 -0
  80. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/rules/security-review.md.example +0 -0
  81. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/rules/skill-md-validation.md +0 -0
  82. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/rules/source-test-pairing.md.example +0 -0
  83. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/steps/define.md +0 -0
  84. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/manual_tests/job.yml +0 -0
  85. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/manual_tests/steps/infinite_block_tests.md +0 -0
  86. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/manual_tests/steps/reset.md +0 -0
  87. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/manual_tests/steps/run_fire_tests.md +0 -0
  88. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/manual_tests/steps/run_not_fire_tests.md +0 -0
  89. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/manual_tests/steps/test_reference.md +0 -0
  90. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/update/job.yml +0 -0
  91. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/jobs/update/steps/job.md +0 -0
  92. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/architecture-documentation-accuracy.md +0 -0
  93. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/manual-test-command-action.md +0 -0
  94. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/manual-test-created-mode.md +0 -0
  95. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/manual-test-infinite-block-command.md +0 -0
  96. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/manual-test-infinite-block-prompt.md +0 -0
  97. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/manual-test-multi-safety.md +0 -0
  98. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/manual-test-pair-mode.md +0 -0
  99. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/manual-test-set-mode.md +0 -0
  100. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/manual-test-trigger-safety.md +0 -0
  101. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/new-standard-job-warning.md.disabled +0 -0
  102. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/readme-accuracy.md +0 -0
  103. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/skill-template-best-practices.md +0 -0
  104. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/standard-jobs-source-of-truth.md +0 -0
  105. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/uv-lock-sync.md +0 -0
  106. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/rules/version-and-changelog-update.md +0 -0
  107. {deepwork-0.4.0 → deepwork-0.5.1}/.deepwork/tmp/.gitkeep +0 -0
  108. {deepwork-0.4.0 → deepwork-0.5.1}/.envrc +0 -0
  109. {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/add_platform/add_capabilities.toml +0 -0
  110. {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/add_platform/implement.toml +0 -0
  111. {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/add_platform/index.toml +0 -0
  112. {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/add_platform/research.toml +0 -0
  113. {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/add_platform/verify.toml +0 -0
  114. {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/commit/index.toml +0 -0
  115. {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/commit/lint.toml +0 -0
  116. {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/commit/review.toml +0 -0
  117. {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/commit/test.toml +0 -0
  118. {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/deepwork_jobs/define.toml +0 -0
  119. {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/deepwork_jobs/implement.toml +0 -0
  120. {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/deepwork_jobs/index.toml +0 -0
  121. {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/deepwork_jobs/learn.toml +0 -0
  122. {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/deepwork_jobs/review_job_spec.toml +0 -0
  123. {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/deepwork_rules/define.toml +0 -0
  124. {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/deepwork_rules/index.toml +0 -0
  125. {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/manual_tests/index.toml +0 -0
  126. {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/manual_tests/infinite_block_tests.toml +0 -0
  127. {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/manual_tests/reset.toml +0 -0
  128. {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/manual_tests/run_fire_tests.toml +0 -0
  129. {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/manual_tests/run_not_fire_tests.toml +0 -0
  130. {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/update/index.toml +0 -0
  131. {deepwork-0.4.0 → deepwork-0.5.1}/.gemini/skills/update/job.toml +0 -0
  132. {deepwork-0.4.0 → deepwork-0.5.1}/.github/copilot-instructions.md +0 -0
  133. {deepwork-0.4.0 → deepwork-0.5.1}/.github/workflows/README.md +0 -0
  134. {deepwork-0.4.0 → deepwork-0.5.1}/.github/workflows/cla.yml +0 -0
  135. {deepwork-0.4.0 → deepwork-0.5.1}/.github/workflows/claude-code-test.yml +0 -0
  136. {deepwork-0.4.0 → deepwork-0.5.1}/.github/workflows/copilot-setup-steps.yml +0 -0
  137. {deepwork-0.4.0 → deepwork-0.5.1}/.github/workflows/release.yml +0 -0
  138. {deepwork-0.4.0 → deepwork-0.5.1}/.github/workflows/update-claude-code.yml +0 -0
  139. {deepwork-0.4.0 → deepwork-0.5.1}/.github/workflows/validate.yml +0 -0
  140. {deepwork-0.4.0 → deepwork-0.5.1}/.gitignore +0 -0
  141. {deepwork-0.4.0 → deepwork-0.5.1}/AGENTS.md +0 -0
  142. {deepwork-0.4.0 → deepwork-0.5.1}/CLA/version_1/CLA.md +0 -0
  143. {deepwork-0.4.0 → deepwork-0.5.1}/CLA/version_1/CLA_SIGNATORIES.md +0 -0
  144. {deepwork-0.4.0 → deepwork-0.5.1}/CONTRIBUTING.md +0 -0
  145. {deepwork-0.4.0 → deepwork-0.5.1}/LICENSE.md +0 -0
  146. {deepwork-0.4.0 → deepwork-0.5.1}/README.md +0 -0
  147. {deepwork-0.4.0 → deepwork-0.5.1}/claude.md +0 -0
  148. {deepwork-0.4.0 → deepwork-0.5.1}/doc/architecture.md +0 -0
  149. {deepwork-0.4.0 → deepwork-0.5.1}/doc/debugging_history/AGENTS.md +0 -0
  150. {deepwork-0.4.0 → deepwork-0.5.1}/doc/debugging_history/hooks.md +0 -0
  151. {deepwork-0.4.0 → deepwork-0.5.1}/doc/doc-specs.md +0 -0
  152. {deepwork-0.4.0 → deepwork-0.5.1}/doc/nix-flake.md +0 -0
  153. {deepwork-0.4.0 → deepwork-0.5.1}/doc/platforms/README.md +0 -0
  154. {deepwork-0.4.0 → deepwork-0.5.1}/doc/platforms/claude/cli_configuration.md +0 -0
  155. {deepwork-0.4.0 → deepwork-0.5.1}/doc/platforms/claude/learnings.md +0 -0
  156. {deepwork-0.4.0 → deepwork-0.5.1}/doc/platforms/gemini/cli_configuration.md +0 -0
  157. {deepwork-0.4.0 → deepwork-0.5.1}/doc/platforms/gemini/hooks.md +0 -0
  158. {deepwork-0.4.0 → deepwork-0.5.1}/doc/platforms/gemini/hooks_system.md +0 -0
  159. {deepwork-0.4.0 → deepwork-0.5.1}/doc/platforms/gemini/learnings.md +0 -0
  160. {deepwork-0.4.0 → deepwork-0.5.1}/doc/rules_syntax.md +0 -0
  161. {deepwork-0.4.0 → deepwork-0.5.1}/doc/rules_system_design.md +0 -0
  162. {deepwork-0.4.0 → deepwork-0.5.1}/flake.lock +0 -0
  163. {deepwork-0.4.0 → deepwork-0.5.1}/flake.nix +0 -0
  164. {deepwork-0.4.0 → deepwork-0.5.1}/job_library/README.md +0 -0
  165. {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/README.md +0 -0
  166. {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_command_action/test_command_action.txt +0 -0
  167. {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_command_action/test_command_action_log.txt +0 -0
  168. {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_created_mode/existing_file.yml +0 -0
  169. {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_infinite_block_command/test_infinite_block_command.py +0 -0
  170. {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_infinite_block_prompt/test_infinite_block_prompt.py +0 -0
  171. {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_multi_safety/test_multi_safety.py +0 -0
  172. {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_multi_safety/test_multi_safety_changelog.md +0 -0
  173. {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_multi_safety/test_multi_safety_version.txt +0 -0
  174. {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_pair_mode/test_pair_mode_expected.md +0 -0
  175. {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_pair_mode/test_pair_mode_trigger.py +0 -0
  176. {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_set_mode/test_set_mode_source.py +0 -0
  177. {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_set_mode/test_set_mode_test.py +0 -0
  178. {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_trigger_safety_mode/test_trigger_safety_mode.py +0 -0
  179. {deepwork-0.4.0 → deepwork-0.5.1}/manual_tests/test_trigger_safety_mode/test_trigger_safety_mode_doc.md +0 -0
  180. {deepwork-0.4.0 → deepwork-0.5.1}/nix/claude-code/package-lock.json +0 -0
  181. {deepwork-0.4.0 → deepwork-0.5.1}/nix/claude-code/package.nix +0 -0
  182. {deepwork-0.4.0 → deepwork-0.5.1}/nix/claude-code/update.sh +0 -0
  183. {deepwork-0.4.0 → deepwork-0.5.1}/nix/update +0 -0
  184. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/__init__.py +0 -0
  185. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/cli/__init__.py +0 -0
  186. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/cli/hook.py +0 -0
  187. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/cli/install.py +0 -0
  188. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/cli/main.py +0 -0
  189. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/cli/rules.py +0 -0
  190. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/cli/sync.py +0 -0
  191. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/core/__init__.py +0 -0
  192. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/core/command_executor.py +0 -0
  193. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/core/detector.py +0 -0
  194. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/core/doc_spec_parser.py +0 -0
  195. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/core/generator.py +0 -0
  196. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/core/hooks_syncer.py +0 -0
  197. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/core/parser.py +0 -0
  198. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/core/pattern_matcher.py +0 -0
  199. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/core/rules_parser.py +0 -0
  200. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/core/rules_queue.py +0 -0
  201. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/hooks/README.md +0 -0
  202. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/hooks/__init__.py +0 -0
  203. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/hooks/check_version.sh +0 -0
  204. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/hooks/claude_hook.sh +0 -0
  205. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/hooks/gemini_hook.sh +0 -0
  206. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/hooks/rules_check.py +0 -0
  207. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/hooks/wrapper.py +0 -0
  208. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/schemas/__init__.py +0 -0
  209. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/schemas/doc_spec_schema.py +0 -0
  210. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/schemas/job_schema.py +0 -0
  211. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/schemas/rules_schema.py +0 -0
  212. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/AGENTS.md +0 -0
  213. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/doc_specs/job_spec.md +0 -0
  214. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/job.yml +0 -0
  215. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/make_new_job.sh +0 -0
  216. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/steps/define.md +0 -0
  217. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/steps/implement.md +0 -0
  218. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/steps/learn.md +0 -0
  219. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/steps/review_job_spec.md +0 -0
  220. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/steps/supplemental_file_references.md +0 -0
  221. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/templates/agents.md.template +0 -0
  222. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/templates/doc_spec.md.example +0 -0
  223. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/templates/doc_spec.md.template +0 -0
  224. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/templates/job.yml.example +0 -0
  225. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/templates/job.yml.template +0 -0
  226. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/templates/step_instruction.md.example +0 -0
  227. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/templates/step_instruction.md.template +0 -0
  228. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/hooks/capture_prompt_work_tree.sh +0 -0
  229. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/hooks/global_hooks.yml +0 -0
  230. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/hooks/user_prompt_submit.sh +0 -0
  231. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/job.yml +0 -0
  232. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/rules/.gitkeep +0 -0
  233. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/rules/api-documentation-sync.md.example +0 -0
  234. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/rules/readme-documentation.md.example +0 -0
  235. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/rules/security-review.md.example +0 -0
  236. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/rules/skill-md-validation.md +0 -0
  237. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/rules/source-test-pairing.md.example +0 -0
  238. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/steps/define.md +0 -0
  239. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/templates/__init__.py +0 -0
  240. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/templates/claude/skill-job-meta.md.jinja +0 -0
  241. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/templates/gemini/skill-job-meta.toml.jinja +0 -0
  242. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/templates/gemini/skill-job-step.toml.jinja +0 -0
  243. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/utils/__init__.py +0 -0
  244. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/utils/fs.py +0 -0
  245. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/utils/git.py +0 -0
  246. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/utils/validation.py +0 -0
  247. {deepwork-0.4.0 → deepwork-0.5.1}/src/deepwork/utils/yaml_utils.py +0 -0
  248. {deepwork-0.4.0 → deepwork-0.5.1}/tests/__init__.py +0 -0
  249. {deepwork-0.4.0 → deepwork-0.5.1}/tests/conftest.py +0 -0
  250. {deepwork-0.4.0 → deepwork-0.5.1}/tests/e2e/__init__.py +0 -0
  251. {deepwork-0.4.0 → deepwork-0.5.1}/tests/e2e/test_claude_code_integration.py +0 -0
  252. {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/doc_specs/minimal_doc_spec.md +0 -0
  253. {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/doc_specs/valid_report.md +0 -0
  254. {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/complex_job/job.yml +0 -0
  255. {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/complex_job/steps/comparative_report.md +0 -0
  256. {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/complex_job/steps/identify_competitors.md +0 -0
  257. {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/complex_job/steps/primary_research.md +0 -0
  258. {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/complex_job/steps/secondary_research.md +0 -0
  259. {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/exposed_step_job/job.yml +0 -0
  260. {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/exposed_step_job/steps/exposed_step.md +0 -0
  261. {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/exposed_step_job/steps/hidden_step.md +0 -0
  262. {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/fruits/job.yml +0 -0
  263. {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/fruits/steps/classify.md +0 -0
  264. {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/fruits/steps/identify.md +0 -0
  265. {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/invalid_job/job.yml +0 -0
  266. {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/job_with_doc_spec/job.yml +0 -0
  267. {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/job_with_doc_spec/steps/generate_report.md +0 -0
  268. {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/simple_job/job.yml +0 -0
  269. {deepwork-0.4.0 → deepwork-0.5.1}/tests/fixtures/jobs/simple_job/steps/single_step.md +0 -0
  270. {deepwork-0.4.0 → deepwork-0.5.1}/tests/integration/test_fruits_workflow.py +0 -0
  271. {deepwork-0.4.0 → deepwork-0.5.1}/tests/integration/test_full_workflow.py +0 -0
  272. {deepwork-0.4.0 → deepwork-0.5.1}/tests/integration/test_install_flow.py +0 -0
  273. {deepwork-0.4.0 → deepwork-0.5.1}/tests/integration/test_install_requirements.py +0 -0
  274. {deepwork-0.4.0 → deepwork-0.5.1}/tests/shell_script_tests/README.md +0 -0
  275. {deepwork-0.4.0 → deepwork-0.5.1}/tests/shell_script_tests/__init__.py +0 -0
  276. {deepwork-0.4.0 → deepwork-0.5.1}/tests/shell_script_tests/conftest.py +0 -0
  277. {deepwork-0.4.0 → deepwork-0.5.1}/tests/shell_script_tests/test_capture_prompt_work_tree.py +0 -0
  278. {deepwork-0.4.0 → deepwork-0.5.1}/tests/shell_script_tests/test_check_version.py +0 -0
  279. {deepwork-0.4.0 → deepwork-0.5.1}/tests/shell_script_tests/test_hooks.py +0 -0
  280. {deepwork-0.4.0 → deepwork-0.5.1}/tests/shell_script_tests/test_make_new_job.py +0 -0
  281. {deepwork-0.4.0 → deepwork-0.5.1}/tests/shell_script_tests/test_rules_stop_hook.py +0 -0
  282. {deepwork-0.4.0 → deepwork-0.5.1}/tests/shell_script_tests/test_user_prompt_submit.py +0 -0
  283. {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_command_executor.py +0 -0
  284. {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_detector.py +0 -0
  285. {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_doc_spec_parser.py +0 -0
  286. {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_doc_spec_schema.py +0 -0
  287. {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_fs.py +0 -0
  288. {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_generator.py +0 -0
  289. {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_git.py +0 -0
  290. {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_hook_wrapper.py +0 -0
  291. {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_hooks_syncer.py +0 -0
  292. {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_parser.py +0 -0
  293. {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_pattern_matcher.py +0 -0
  294. {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_rules_check.py +0 -0
  295. {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_rules_parser.py +0 -0
  296. {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_rules_queue.py +0 -0
  297. {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_schema_validation.py +0 -0
  298. {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_validation.py +0 -0
  299. {deepwork-0.4.0 → deepwork-0.5.1}/tests/unit/test_yaml_utils.py +0 -0
@@ -0,0 +1,76 @@
1
+ #!/bin/bash
2
+ # block_bash_with_instructions.sh - Blocks specific bash commands and provides alternative instructions
3
+ #
4
+ # This hook intercepts Bash tool use calls and blocks commands that match
5
+ # specific patterns, providing alternative instructions to the agent.
6
+ #
7
+ # Usage: Registered as a PreToolUse hook in .claude/settings.json
8
+ #
9
+ # Input (stdin): JSON from Claude Code hook system containing tool_name and tool_input
10
+ # Output (stdout): JSON response with error message if blocked
11
+ # Exit codes:
12
+ # 0 - Success (allow action)
13
+ # 2 - Blocking error (prevent action with message)
14
+
15
+ set -e
16
+
17
+ # =============================================================================
18
+ # BLOCKED COMMANDS CONFIGURATION
19
+ # =============================================================================
20
+ # Format: Each entry is a regex pattern followed by a delimiter (|||) and instructions
21
+ # The regex is matched against the full bash command
22
+ # Add new blocked commands here:
23
+
24
+ BLOCKED_COMMANDS=(
25
+ 'git[[:space:]]+commit|||All commits must be done via the `/commit` skill. Do not use git commit directly. Instead, run `/commit` to start the commit workflow which includes code review, testing, and linting before committing.'
26
+ )
27
+
28
+ # =============================================================================
29
+ # HOOK LOGIC - DO NOT MODIFY BELOW UNLESS NECESSARY
30
+ # =============================================================================
31
+
32
+ # Read stdin into variable
33
+ HOOK_INPUT=""
34
+ if [ ! -t 0 ]; then
35
+ HOOK_INPUT=$(cat)
36
+ fi
37
+
38
+ # Exit early if no input
39
+ if [ -z "${HOOK_INPUT}" ]; then
40
+ exit 0
41
+ fi
42
+
43
+ # Extract tool_name from input
44
+ TOOL_NAME=$(echo "${HOOK_INPUT}" | jq -r '.tool_name // empty' 2>/dev/null)
45
+
46
+ # Only process Bash tool calls
47
+ if [ "${TOOL_NAME}" != "Bash" ]; then
48
+ exit 0
49
+ fi
50
+
51
+ # Extract the command from tool_input
52
+ COMMAND=$(echo "${HOOK_INPUT}" | jq -r '.tool_input.command // empty' 2>/dev/null)
53
+
54
+ # Exit if no command
55
+ if [ -z "${COMMAND}" ]; then
56
+ exit 0
57
+ fi
58
+
59
+ # Check each blocked pattern
60
+ for entry in "${BLOCKED_COMMANDS[@]}"; do
61
+ # Split entry by delimiter
62
+ pattern="${entry%%|||*}"
63
+ instructions="${entry##*|||}"
64
+
65
+ # Check if command matches pattern (using extended regex)
66
+ if echo "${COMMAND}" | grep -qE "${pattern}"; then
67
+ # Output error message as JSON
68
+ cat << EOF
69
+ {"error": "${instructions}"}
70
+ EOF
71
+ exit 2
72
+ fi
73
+ done
74
+
75
+ # Command is allowed
76
+ exit 0
@@ -0,0 +1,4 @@
1
+ #!/bin/bash
2
+ # commit_job_git_commit.sh - Wrapper for git commit invoked via the /commit skill
3
+
4
+ exec git commit "$@"
@@ -123,10 +123,27 @@
123
123
  "Bash(deepwork rules clear_queue)",
124
124
  "Bash(rm -rf .deepwork/tmp/rules/queue/*.json)",
125
125
  "Skill(manual_tests.reset)",
126
- "Skill(manual_tests.infinite_block_tests)"
126
+ "Skill(manual_tests.infinite_block_tests)",
127
+ "Read(./.deepwork/**)",
128
+ "Edit(./.deepwork/**)",
129
+ "Write(./.deepwork/**)",
130
+ "Bash(deepwork:*)",
131
+ "Bash(.claude/hooks/commit_job_git_commit.sh:*)",
132
+ "Bash(./.deepwork/jobs/deepwork_jobs/make_new_job.sh:*)"
127
133
  ]
128
134
  },
129
135
  "hooks": {
136
+ "PreToolUse": [
137
+ {
138
+ "matcher": "Bash",
139
+ "hooks": [
140
+ {
141
+ "type": "command",
142
+ "command": ".claude/hooks/block_bash_with_instructions.sh"
143
+ }
144
+ ]
145
+ }
146
+ ],
130
147
  "SessionStart": [
131
148
  {
132
149
  "matcher": "",
@@ -1,39 +1,6 @@
1
1
  ---
2
2
  name: add_platform.add_capabilities
3
- description: "Updates job schema and adapters with any new hook events the platform supports. Use after research to extend DeepWork's hook system."
4
- user-invocable: false
5
- hooks:
6
- Stop:
7
- - hooks:
8
- - type: prompt
9
- prompt: |
10
- Verify the capability additions meet ALL criteria:
11
- 1. Any new hooks from the platform (for slash commands only) are added to src/deepwork/schemas/job_schema.py
12
- 2. All existing adapters in src/deepwork/adapters.py are updated with the new hook fields
13
- (set to None/null if the platform doesn't support that hook)
14
- 3. Only hooks available on slash command definitions are added (not general CLI hooks)
15
- 4. job_schema.py remains valid Python with no syntax errors
16
- 5. adapters.py remains consistent - all adapters have the same hook fields
17
- 6. If no new hooks are needed, document why in a comment
18
-
19
- If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
20
-
21
- SubagentStop:
22
- - hooks:
23
- - type: prompt
24
- prompt: |
25
- Verify the capability additions meet ALL criteria:
26
- 1. Any new hooks from the platform (for slash commands only) are added to src/deepwork/schemas/job_schema.py
27
- 2. All existing adapters in src/deepwork/adapters.py are updated with the new hook fields
28
- (set to None/null if the platform doesn't support that hook)
29
- 3. Only hooks available on slash command definitions are added (not general CLI hooks)
30
- 4. job_schema.py remains valid Python with no syntax errors
31
- 5. adapters.py remains consistent - all adapters have the same hook fields
32
- 6. If no new hooks are needed, document why in a comment
33
-
34
- If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
35
-
36
- ---
3
+ description: "Updates job schema and adapters with any new hook events the platform supports. Use after research to extend DeepWork's hook system."user-invocable: false---
37
4
 
38
5
  # add_platform.add_capabilities
39
6
 
@@ -233,14 +200,6 @@ Use branch format: `deepwork/add_platform-[instance]-YYYYMMDD`
233
200
  - Do NOT proceed without required inputs; ask the user if any are missing
234
201
  - Do NOT modify files outside the scope of this step's defined outputs
235
202
 
236
- ## Quality Validation
237
-
238
- Stop hooks will automatically validate your work. The loop continues until all criteria pass.
239
-
240
-
241
-
242
- **To complete**: Include `<promise>✓ Quality Criteria Met</promise>` in your final response only after verifying ALL criteria are satisfied.
243
-
244
203
  ## On Completion
245
204
 
246
205
  1. Verify outputs are created
@@ -1,47 +1,10 @@
1
1
  ---
2
2
  name: add_platform.implement
3
- description: "Creates platform adapter, templates, tests with 100% coverage, and README documentation. Use after adding hook capabilities."
4
- user-invocable: false
5
- hooks:
6
- Stop:
7
- - hooks:
8
- - type: command
9
- command: ".deepwork/jobs/add_platform/hooks/run_tests.sh"
10
- - type: prompt
11
- prompt: |
12
- Verify the implementation meets ALL criteria:
13
- 1. Platform adapter class is added to src/deepwork/adapters.py
14
- 2. Templates exist in src/deepwork/templates/<platform>/ with appropriate command structure
15
- 3. Tests exist for all new functionality
16
- 4. Test coverage is 100% for new code (run: uv run pytest --cov)
17
- 5. All tests pass
18
- 6. README.md is updated with:
19
- - New platform listed in supported platforms
20
- - Installation instructions for the platform
21
- - Any platform-specific notes
22
-
23
- If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
24
-
25
- SubagentStop:
26
- - hooks:
27
- - type: command
28
- command: ".deepwork/jobs/add_platform/hooks/run_tests.sh"
29
- - type: prompt
30
- prompt: |
31
- Verify the implementation meets ALL criteria:
32
- 1. Platform adapter class is added to src/deepwork/adapters.py
33
- 2. Templates exist in src/deepwork/templates/<platform>/ with appropriate command structure
34
- 3. Tests exist for all new functionality
35
- 4. Test coverage is 100% for new code (run: uv run pytest --cov)
36
- 5. All tests pass
37
- 6. README.md is updated with:
38
- - New platform listed in supported platforms
39
- - Installation instructions for the platform
40
- - Any platform-specific notes
41
-
42
- If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
43
-
44
- ---
3
+ description: "Creates platform adapter, templates, tests with 100% coverage, and README documentation. Use after adding hook capabilities."user-invocable: falsehooks: Stop:
4
+ - hooks: - type: command
5
+ command: ".deepwork/jobs/add_platform/hooks/run_tests.sh" SubagentStop:
6
+ - hooks: - type: command
7
+ command: ".deepwork/jobs/add_platform/hooks/run_tests.sh"---
45
8
 
46
9
  # add_platform.implement
47
10
 
@@ -336,15 +299,7 @@ Use branch format: `deepwork/add_platform-[instance]-YYYYMMDD`
336
299
  - Do NOT proceed without required inputs; ask the user if any are missing
337
300
  - Do NOT modify files outside the scope of this step's defined outputs
338
301
 
339
- ## Quality Validation
340
-
341
- Stop hooks will automatically validate your work. The loop continues until all criteria pass.
342
-
343
-
344
302
  **Validation script**: `.deepwork/jobs/add_platform/hooks/run_tests.sh` (runs automatically)
345
-
346
- **To complete**: Include `<promise>✓ Quality Criteria Met</promise>` in your final response only after verifying ALL criteria are satisfied.
347
-
348
303
  ## On Completion
349
304
 
350
305
  1. Verify outputs are created
@@ -1,41 +1,6 @@
1
1
  ---
2
2
  name: add_platform.research
3
- description: "Captures CLI configuration and hooks system documentation for the new platform. Use when starting platform integration."
4
- user-invocable: false
5
- hooks:
6
- Stop:
7
- - hooks:
8
- - type: prompt
9
- prompt: |
10
- Verify the research output meets ALL criteria:
11
- 1. Both files exist in doc/platforms/<platform>/: cli_configuration.md and hooks_system.md
12
- 2. Each file has a comment at the top with:
13
- - Last updated date
14
- - Source URL where the documentation was obtained
15
- 3. cli_configuration.md covers how the platform's CLI is configured
16
- 4. hooks_system.md covers hooks available for slash command definitions ONLY
17
- 5. No extraneous documentation (only these two specific topics)
18
- 6. Documentation is comprehensive enough to implement the platform
19
-
20
- If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
21
-
22
- SubagentStop:
23
- - hooks:
24
- - type: prompt
25
- prompt: |
26
- Verify the research output meets ALL criteria:
27
- 1. Both files exist in doc/platforms/<platform>/: cli_configuration.md and hooks_system.md
28
- 2. Each file has a comment at the top with:
29
- - Last updated date
30
- - Source URL where the documentation was obtained
31
- 3. cli_configuration.md covers how the platform's CLI is configured
32
- 4. hooks_system.md covers hooks available for slash command definitions ONLY
33
- 5. No extraneous documentation (only these two specific topics)
34
- 6. Documentation is comprehensive enough to implement the platform
35
-
36
- If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
37
-
38
- ---
3
+ description: "Captures CLI configuration and hooks system documentation for the new platform. Use when starting platform integration."user-invocable: false---
39
4
 
40
5
  # add_platform.research
41
6
 
@@ -284,14 +249,6 @@ Use branch format: `deepwork/add_platform-[instance]-YYYYMMDD`
284
249
  - Do NOT proceed without required inputs; ask the user if any are missing
285
250
  - Do NOT modify files outside the scope of this step's defined outputs
286
251
 
287
- ## Quality Validation
288
-
289
- Stop hooks will automatically validate your work. The loop continues until all criteria pass.
290
-
291
-
292
-
293
- **To complete**: Include `<promise>✓ Quality Criteria Met</promise>` in your final response only after verifying ALL criteria are satisfied.
294
-
295
252
  ## On Completion
296
253
 
297
254
  1. Verify outputs are created
@@ -1,37 +1,6 @@
1
1
  ---
2
2
  name: add_platform.verify
3
- description: "Sets up platform directories and verifies deepwork install works correctly. Use after implementation to confirm integration."
4
- user-invocable: false
5
- hooks:
6
- Stop:
7
- - hooks:
8
- - type: prompt
9
- prompt: |
10
- Verify the installation meets ALL criteria:
11
- 1. Platform-specific directories/files are added to the deepwork repo as needed
12
- 2. Running `deepwork install --platform <platform>` completes without errors
13
- 3. Expected command files are created in the platform's command directory
14
- 4. Command file content matches the templates and job definitions
15
- 5. Established DeepWork jobs (deepwork_jobs, deepwork_rules) are installed correctly
16
- 6. The platform can be used alongside existing platforms without conflicts
17
-
18
- If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
19
-
20
- SubagentStop:
21
- - hooks:
22
- - type: prompt
23
- prompt: |
24
- Verify the installation meets ALL criteria:
25
- 1. Platform-specific directories/files are added to the deepwork repo as needed
26
- 2. Running `deepwork install --platform <platform>` completes without errors
27
- 3. Expected command files are created in the platform's command directory
28
- 4. Command file content matches the templates and job definitions
29
- 5. Established DeepWork jobs (deepwork_jobs, deepwork_rules) are installed correctly
30
- 6. The platform can be used alongside existing platforms without conflicts
31
-
32
- If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
33
-
34
- ---
3
+ description: "Sets up platform directories and verifies deepwork install works correctly. Use after implementation to confirm integration."user-invocable: false---
35
4
 
36
5
  # add_platform.verify
37
6
 
@@ -206,14 +175,6 @@ Use branch format: `deepwork/add_platform-[instance]-YYYYMMDD`
206
175
  - Do NOT proceed without required inputs; ask the user if any are missing
207
176
  - Do NOT modify files outside the scope of this step's defined outputs
208
177
 
209
- ## Quality Validation
210
-
211
- Stop hooks will automatically validate your work. The loop continues until all criteria pass.
212
-
213
-
214
-
215
- **To complete**: Include `<promise>✓ Quality Criteria Met</promise>` in your final response only after verifying ALL criteria are satisfied.
216
-
217
178
  ## On Completion
218
179
 
219
180
  1. Verify outputs are created
@@ -1,31 +1,6 @@
1
1
  ---
2
2
  name: commit.commit_and_push
3
- description: "Verifies changed files, creates commit, and pushes to remote. Use after linting passes to finalize changes."
4
- user-invocable: false
5
- hooks:
6
- Stop:
7
- - hooks:
8
- - type: prompt
9
- prompt: |
10
- Verify the commit is ready:
11
- 1. Changed files list was reviewed by the agent
12
- 2. Files match what was modified during this session (or unexpected changes were investigated)
13
- 3. Commit was created with appropriate message
14
- 4. Changes were pushed to remote
15
- If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
16
-
17
- SubagentStop:
18
- - hooks:
19
- - type: prompt
20
- prompt: |
21
- Verify the commit is ready:
22
- 1. Changed files list was reviewed by the agent
23
- 2. Files match what was modified during this session (or unexpected changes were investigated)
24
- 3. Commit was created with appropriate message
25
- 4. Changes were pushed to remote
26
- If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
27
-
28
- ---
3
+ description: "Verifies changed files, creates commit, and pushes to remote. Use after linting passes to finalize changes."user-invocable: false---
29
4
 
30
5
  # commit.commit_and_push
31
6
 
@@ -68,14 +43,27 @@ Check the list of changed files against what was modified during this session, e
68
43
  - Are there any unexpected deleted files?
69
44
  - Do the line counts seem reasonable for the changes you made?
70
45
 
71
- If changes match expectations, proceed to commit.
46
+ If changes match expectations, proceed to the next step.
72
47
 
73
48
  If there are unexpected changes:
74
49
  - Investigate why (e.g., lint auto-fixes, generated files)
75
50
  - If they're legitimate side effects of your work, include them
76
51
  - If they're unrelated or shouldn't be committed, use `git restore` to discard them
77
52
 
78
- 3. **Stage all appropriate changes**
53
+ 3. **Update CHANGELOG.md if needed**
54
+
55
+ If your changes include new features, bug fixes, or other notable changes:
56
+ - Add entries to the `## [Unreleased]` section of CHANGELOG.md
57
+ - Use the appropriate subsection: `### Added`, `### Changed`, `### Fixed`, or `### Removed`
58
+ - Write concise descriptions that explain the user-facing impact
59
+
60
+ **CRITICAL: NEVER modify version numbers**
61
+ - Do NOT change the version in `pyproject.toml`
62
+ - Do NOT change version headers in CHANGELOG.md (e.g., `## [0.4.2]`)
63
+ - Do NOT rename the `## [Unreleased]` section
64
+ - Version updates are handled by the release workflow, not commits
65
+
66
+ 4. **Stage all appropriate changes**
79
67
  ```bash
80
68
  git add -A
81
69
  ```
@@ -93,8 +81,9 @@ Check the list of changed files against what was modified during this session, e
93
81
  - The style of recent commits
94
82
  - Conventional commit format if the project uses it
95
83
 
84
+ **IMPORTANT:** Use the commit job script (not `git commit` directly):
96
85
  ```bash
97
- git commit -m "commit message here"
86
+ .claude/hooks/commit_job_git_commit.sh -m "commit message here"
98
87
  ```
99
88
 
100
89
  7. **Push to remote**
@@ -110,6 +99,8 @@ Check the list of changed files against what was modified during this session, e
110
99
 
111
100
  - Changed files list was reviewed by the agent
112
101
  - Files match what was modified during this session (or unexpected changes were investigated and handled)
102
+ - CHANGELOG.md was updated with entries in the `[Unreleased]` section (if changes warrant documentation)
103
+ - Version numbers were NOT modified (in pyproject.toml or CHANGELOG.md version headers)
113
104
  - Commit message follows project conventions
114
105
  - Commit was created successfully
115
106
  - Changes were pushed to remote
@@ -156,14 +147,6 @@ Use branch format: `deepwork/commit-[instance]-YYYYMMDD`
156
147
  - Do NOT proceed without required inputs; ask the user if any are missing
157
148
  - Do NOT modify files outside the scope of this step's defined outputs
158
149
 
159
- ## Quality Validation
160
-
161
- Stop hooks will automatically validate your work. The loop continues until all criteria pass.
162
-
163
-
164
-
165
- **To complete**: Include `<promise>✓ Quality Criteria Met</promise>` in your final response only after verifying ALL criteria are satisfied.
166
-
167
150
  ## On Completion
168
151
 
169
152
  1. Verify outputs are created
@@ -1,29 +1,6 @@
1
1
  ---
2
2
  name: commit.lint
3
- description: "Formats and lints code with ruff using a sub-agent. Use after tests pass to ensure code style compliance."
4
- user-invocable: false
5
- hooks:
6
- Stop:
7
- - hooks:
8
- - type: prompt
9
- prompt: |
10
- Verify the linting is complete:
11
- 1. ruff format was run successfully
12
- 2. ruff check was run successfully (with --fix)
13
- 3. No remaining lint errors
14
- If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
15
-
16
- SubagentStop:
17
- - hooks:
18
- - type: prompt
19
- prompt: |
20
- Verify the linting is complete:
21
- 1. ruff format was run successfully
22
- 2. ruff check was run successfully (with --fix)
23
- 3. No remaining lint errors
24
- If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
25
-
26
- ---
3
+ description: "Formats and lints code with ruff using a sub-agent. Use after tests pass to ensure code style compliance."user-invocable: false---
27
4
 
28
5
  # commit.lint
29
6
 
@@ -150,14 +127,6 @@ Use branch format: `deepwork/commit-[instance]-YYYYMMDD`
150
127
  - Do NOT proceed without required inputs; ask the user if any are missing
151
128
  - Do NOT modify files outside the scope of this step's defined outputs
152
129
 
153
- ## Quality Validation
154
-
155
- Stop hooks will automatically validate your work. The loop continues until all criteria pass.
156
-
157
-
158
-
159
- **To complete**: Include `<promise>✓ Quality Criteria Met</promise>` in your final response only after verifying ALL criteria are satisfied.
160
-
161
130
  ## On Completion
162
131
 
163
132
  1. Verify outputs are created
@@ -1,29 +1,6 @@
1
1
  ---
2
2
  name: commit.review
3
- description: "Reviews changed code for issues, DRY opportunities, naming clarity, and test coverage using a sub-agent. Use as the first step before testing."
4
- user-invocable: false
5
- hooks:
6
- Stop:
7
- - hooks:
8
- - type: prompt
9
- prompt: |
10
- Verify the code review is complete:
11
- 1. Changed files were identified
12
- 2. Sub-agent reviewed the code for general issues, DRY opportunities, naming clarity, and test coverage
13
- 3. All identified issues were addressed or documented as intentional
14
- If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
15
-
16
- SubagentStop:
17
- - hooks:
18
- - type: prompt
19
- prompt: |
20
- Verify the code review is complete:
21
- 1. Changed files were identified
22
- 2. Sub-agent reviewed the code for general issues, DRY opportunities, naming clarity, and test coverage
23
- 3. All identified issues were addressed or documented as intentional
24
- If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
25
-
26
- ---
3
+ description: "Reviews changed code for issues, DRY opportunities, naming clarity, and test coverage using a sub-agent. Use as the first step before testing."user-invocable: false---
27
4
 
28
5
  # commit.review
29
6
 
@@ -179,14 +156,6 @@ Use branch format: `deepwork/commit-[instance]-YYYYMMDD`
179
156
  - Do NOT proceed without required inputs; ask the user if any are missing
180
157
  - Do NOT modify files outside the scope of this step's defined outputs
181
158
 
182
- ## Quality Validation
183
-
184
- Stop hooks will automatically validate your work. The loop continues until all criteria pass.
185
-
186
-
187
-
188
- **To complete**: Include `<promise>✓ Quality Criteria Met</promise>` in your final response only after verifying ALL criteria are satisfied.
189
-
190
159
  ## On Completion
191
160
 
192
161
  1. Verify outputs are created
@@ -1,31 +1,6 @@
1
1
  ---
2
2
  name: commit.test
3
- description: "Pulls latest code and runs tests until all pass. Use after code review passes to verify changes work correctly."
4
- user-invocable: false
5
- hooks:
6
- Stop:
7
- - hooks:
8
- - type: prompt
9
- prompt: |
10
- Verify the tests are passing:
11
- 1. Latest code was pulled from the branch
12
- 2. All tests completed successfully
13
- 3. No test failures or errors remain
14
- 4. Test output shows passing status
15
- If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
16
-
17
- SubagentStop:
18
- - hooks:
19
- - type: prompt
20
- prompt: |
21
- Verify the tests are passing:
22
- 1. Latest code was pulled from the branch
23
- 2. All tests completed successfully
24
- 3. No test failures or errors remain
25
- 4. Test output shows passing status
26
- If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
27
-
28
- ---
3
+ description: "Pulls latest code and runs tests until all pass. Use after code review passes to verify changes work correctly."user-invocable: false---
29
4
 
30
5
  # commit.test
31
6
 
@@ -138,14 +113,6 @@ Use branch format: `deepwork/commit-[instance]-YYYYMMDD`
138
113
  - Do NOT proceed without required inputs; ask the user if any are missing
139
114
  - Do NOT modify files outside the scope of this step's defined outputs
140
115
 
141
- ## Quality Validation
142
-
143
- Stop hooks will automatically validate your work. The loop continues until all criteria pass.
144
-
145
-
146
-
147
- **To complete**: Include `<promise>✓ Quality Criteria Met</promise>` in your final response only after verifying ALL criteria are satisfied.
148
-
149
116
  ## On Completion
150
117
 
151
118
  1. Verify outputs are created