deepwork 0.3.1__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 (309) 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.3.1 → deepwork-0.5.1}/.claude/settings.json +72 -2
  4. {deepwork-0.3.1 → deepwork-0.5.1}/.claude/skills/add_platform/SKILL.md +13 -6
  5. {deepwork-0.3.1 → deepwork-0.5.1}/.claude/skills/add_platform.add_capabilities/SKILL.md +10 -27
  6. {deepwork-0.3.1 → deepwork-0.5.1}/.claude/skills/add_platform.implement/SKILL.md +15 -31
  7. {deepwork-0.3.1 → deepwork-0.5.1}/.claude/skills/add_platform.research/SKILL.md +10 -28
  8. {deepwork-0.3.1 → deepwork-0.5.1}/.claude/skills/add_platform.verify/SKILL.md +11 -28
  9. deepwork-0.5.1/.claude/skills/commit/SKILL.md +72 -0
  10. {deepwork-0.3.1 → deepwork-0.5.1}/.claude/skills/commit.commit_and_push/SKILL.md +39 -35
  11. {deepwork-0.3.1 → deepwork-0.5.1}/.claude/skills/commit.lint/SKILL.md +20 -31
  12. deepwork-0.5.1/.claude/skills/commit.review/SKILL.md +167 -0
  13. {deepwork-0.3.1 → deepwork-0.5.1}/.claude/skills/commit.test/SKILL.md +25 -33
  14. {deepwork-0.3.1 → deepwork-0.5.1}/.claude/skills/deepwork_jobs/SKILL.md +14 -5
  15. deepwork-0.5.1/.claude/skills/deepwork_jobs.define/SKILL.md +671 -0
  16. {deepwork-0.3.1 → deepwork-0.5.1}/.claude/skills/deepwork_jobs.implement/SKILL.md +27 -45
  17. {deepwork-0.3.1 → deepwork-0.5.1}/.claude/skills/deepwork_jobs.learn/SKILL.md +101 -48
  18. deepwork-0.5.1/.claude/skills/deepwork_jobs.review_job_spec/SKILL.md +478 -0
  19. {deepwork-0.3.1 → deepwork-0.5.1}/.claude/skills/deepwork_rules/SKILL.md +10 -3
  20. {deepwork-0.3.1 → deepwork-0.5.1}/.claude/skills/deepwork_rules.define/SKILL.md +11 -5
  21. deepwork-0.5.1/.claude/skills/manual_tests/SKILL.md +95 -0
  22. deepwork-0.5.1/.claude/skills/manual_tests.infinite_block_tests/SKILL.md +248 -0
  23. deepwork-0.5.1/.claude/skills/manual_tests.reset/SKILL.md +138 -0
  24. deepwork-0.5.1/.claude/skills/manual_tests.run_fire_tests/SKILL.md +247 -0
  25. deepwork-0.5.1/.claude/skills/manual_tests.run_not_fire_tests/SKILL.md +233 -0
  26. {deepwork-0.3.1 → deepwork-0.5.1}/.claude/skills/update/SKILL.md +10 -3
  27. {deepwork-0.3.1 → deepwork-0.5.1}/.claude/skills/update.job/SKILL.md +11 -25
  28. deepwork-0.5.1/.deepwork/.gitignore +8 -0
  29. deepwork-0.5.1/.deepwork/doc_specs/claude_code_skill.md +183 -0
  30. deepwork-0.5.1/.deepwork/doc_specs/job_spec.md +190 -0
  31. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/add_platform/job.yml +12 -7
  32. deepwork-0.5.1/.deepwork/jobs/commit/AGENTS.md +19 -0
  33. deepwork-0.5.1/.deepwork/jobs/commit/job.yml +108 -0
  34. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/commit/steps/commit_and_push.md +19 -3
  35. deepwork-0.5.1/.deepwork/jobs/commit/steps/review.md +105 -0
  36. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/commit/steps/test.md +1 -1
  37. deepwork-0.5.1/.deepwork/jobs/deepwork_jobs/doc_specs/job_spec.md +190 -0
  38. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/job.yml +41 -8
  39. deepwork-0.3.1/.gemini/skills/deepwork_jobs/define.toml → deepwork-0.5.1/.deepwork/jobs/deepwork_jobs/steps/define.md +68 -78
  40. {deepwork-0.3.1/src/deepwork/standard_jobs → deepwork-0.5.1/.deepwork/jobs}/deepwork_jobs/steps/implement.md +3 -3
  41. {deepwork-0.3.1/src/deepwork/standard_jobs → deepwork-0.5.1/.deepwork/jobs}/deepwork_jobs/steps/learn.md +74 -5
  42. deepwork-0.5.1/.deepwork/jobs/deepwork_jobs/steps/review_job_spec.md +208 -0
  43. deepwork-0.5.1/.deepwork/jobs/deepwork_jobs/templates/doc_spec.md.example +86 -0
  44. deepwork-0.5.1/.deepwork/jobs/deepwork_jobs/templates/doc_spec.md.template +26 -0
  45. {deepwork-0.3.1/src/deepwork/standard_jobs → deepwork-0.5.1/.deepwork/jobs}/deepwork_rules/job.yml +5 -3
  46. deepwork-0.5.1/.deepwork/jobs/manual_tests/job.yml +120 -0
  47. deepwork-0.5.1/.deepwork/jobs/manual_tests/steps/infinite_block_tests.md +136 -0
  48. deepwork-0.5.1/.deepwork/jobs/manual_tests/steps/reset.md +38 -0
  49. deepwork-0.5.1/.deepwork/jobs/manual_tests/steps/run_fire_tests.md +132 -0
  50. deepwork-0.5.1/.deepwork/jobs/manual_tests/steps/run_not_fire_tests.md +118 -0
  51. deepwork-0.3.1/manual_tests/README.md → deepwork-0.5.1/.deepwork/jobs/manual_tests/steps/test_reference.md +46 -32
  52. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/update/job.yml +9 -4
  53. deepwork-0.5.1/.deepwork/tmp/.gitkeep +3 -0
  54. deepwork-0.5.1/.envrc +1 -0
  55. {deepwork-0.3.1 → deepwork-0.5.1}/.gemini/skills/add_platform/add_capabilities.toml +7 -5
  56. {deepwork-0.3.1 → deepwork-0.5.1}/.gemini/skills/add_platform/implement.toml +8 -5
  57. {deepwork-0.3.1 → deepwork-0.5.1}/.gemini/skills/add_platform/index.toml +7 -7
  58. {deepwork-0.3.1 → deepwork-0.5.1}/.gemini/skills/add_platform/research.toml +7 -5
  59. {deepwork-0.3.1 → deepwork-0.5.1}/.gemini/skills/add_platform/verify.toml +7 -6
  60. {deepwork-0.3.1 → deepwork-0.5.1}/.gemini/skills/commit/commit_and_push.toml +35 -16
  61. deepwork-0.5.1/.gemini/skills/commit/index.toml +71 -0
  62. {deepwork-0.3.1 → deepwork-0.5.1}/.gemini/skills/commit/lint.toml +16 -13
  63. deepwork-0.5.1/.gemini/skills/commit/review.toml +166 -0
  64. {deepwork-0.3.1 → deepwork-0.5.1}/.gemini/skills/commit/test.toml +21 -14
  65. deepwork-0.3.1/.claude/skills/deepwork_jobs.define/SKILL.md → deepwork-0.5.1/.gemini/skills/deepwork_jobs/define.toml +113 -55
  66. {deepwork-0.3.1 → deepwork-0.5.1}/.gemini/skills/deepwork_jobs/implement.toml +12 -11
  67. {deepwork-0.3.1 → deepwork-0.5.1}/.gemini/skills/deepwork_jobs/index.toml +9 -6
  68. {deepwork-0.3.1 → deepwork-0.5.1}/.gemini/skills/deepwork_jobs/learn.toml +86 -14
  69. deepwork-0.5.1/.gemini/skills/deepwork_jobs/review_job_spec.toml +300 -0
  70. {deepwork-0.3.1 → deepwork-0.5.1}/.gemini/skills/deepwork_rules/define.toml +5 -4
  71. {deepwork-0.3.1 → deepwork-0.5.1}/.gemini/skills/deepwork_rules/index.toml +4 -4
  72. deepwork-0.5.1/.gemini/skills/manual_tests/index.toml +94 -0
  73. deepwork-0.5.1/.gemini/skills/manual_tests/infinite_block_tests.toml +238 -0
  74. deepwork-0.5.1/.gemini/skills/manual_tests/reset.toml +128 -0
  75. deepwork-0.5.1/.gemini/skills/manual_tests/run_fire_tests.toml +237 -0
  76. deepwork-0.5.1/.gemini/skills/manual_tests/run_not_fire_tests.toml +223 -0
  77. {deepwork-0.3.1 → deepwork-0.5.1}/.gemini/skills/update/index.toml +4 -4
  78. {deepwork-0.3.1 → deepwork-0.5.1}/.gemini/skills/update/job.toml +7 -6
  79. deepwork-0.5.1/.github/copilot-instructions.md +35 -0
  80. {deepwork-0.3.1 → deepwork-0.5.1}/.github/workflows/cla.yml +1 -1
  81. deepwork-0.5.1/.github/workflows/copilot-setup-steps.yml +63 -0
  82. deepwork-0.5.1/.github/workflows/prepare-release.yml +152 -0
  83. deepwork-0.5.1/.github/workflows/publish-release.yml +78 -0
  84. {deepwork-0.3.1 → deepwork-0.5.1}/.github/workflows/release.yml +18 -0
  85. deepwork-0.5.1/.github/workflows/update-claude-code.yml +63 -0
  86. deepwork-0.5.1/.github/workflows/validate.yml +44 -0
  87. {deepwork-0.3.1 → deepwork-0.5.1}/.gitignore +7 -6
  88. {deepwork-0.3.1 → deepwork-0.5.1}/AGENTS.md +31 -0
  89. {deepwork-0.3.1 → deepwork-0.5.1}/CHANGELOG.md +109 -0
  90. {deepwork-0.3.1 → deepwork-0.5.1}/CONTRIBUTING.md +178 -61
  91. {deepwork-0.3.1 → deepwork-0.5.1}/PKG-INFO +39 -2
  92. {deepwork-0.3.1 → deepwork-0.5.1}/README.md +38 -1
  93. {deepwork-0.3.1 → deepwork-0.5.1}/doc/architecture.md +93 -2
  94. deepwork-0.5.1/doc/debugging_history/AGENTS.md +54 -0
  95. deepwork-0.5.1/doc/debugging_history/hooks.md +125 -0
  96. deepwork-0.5.1/doc/doc-specs.md +249 -0
  97. deepwork-0.5.1/doc/nix-flake.md +479 -0
  98. {deepwork-0.3.1 → deepwork-0.5.1}/doc/platforms/claude/hooks.md +19 -1
  99. {deepwork-0.3.1 → deepwork-0.5.1}/doc/platforms/claude/hooks_system.md +73 -36
  100. deepwork-0.5.1/flake.lock +61 -0
  101. deepwork-0.5.1/flake.nix +119 -0
  102. deepwork-0.5.1/manual_tests/README.md +43 -0
  103. deepwork-0.5.1/nix/claude-code/package-lock.json +314 -0
  104. deepwork-0.5.1/nix/claude-code/package.nix +78 -0
  105. deepwork-0.5.1/nix/claude-code/update.sh +49 -0
  106. deepwork-0.5.1/nix/update +18 -0
  107. {deepwork-0.3.1 → deepwork-0.5.1}/pyproject.toml +1 -1
  108. deepwork-0.5.1/src/deepwork/cli/hook.py +70 -0
  109. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/cli/install.py +58 -14
  110. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/cli/main.py +4 -0
  111. deepwork-0.5.1/src/deepwork/cli/rules.py +32 -0
  112. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/cli/sync.py +27 -1
  113. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/core/adapters.py +213 -0
  114. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/core/command_executor.py +26 -9
  115. deepwork-0.5.1/src/deepwork/core/doc_spec_parser.py +205 -0
  116. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/core/generator.py +79 -4
  117. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/core/hooks_syncer.py +15 -2
  118. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/core/parser.py +64 -2
  119. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/hooks/__init__.py +9 -3
  120. deepwork-0.5.1/src/deepwork/hooks/check_version.sh +230 -0
  121. deepwork-0.5.1/src/deepwork/hooks/claude_hook.sh +51 -0
  122. deepwork-0.5.1/src/deepwork/hooks/gemini_hook.sh +51 -0
  123. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/hooks/rules_check.py +71 -12
  124. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/hooks/wrapper.py +66 -16
  125. deepwork-0.5.1/src/deepwork/schemas/doc_spec_schema.py +64 -0
  126. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/schemas/job_schema.py +25 -3
  127. deepwork-0.5.1/src/deepwork/standard_jobs/deepwork_jobs/doc_specs/job_spec.md +190 -0
  128. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/job.yml +41 -8
  129. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/steps/define.md +68 -2
  130. {deepwork-0.3.1/.deepwork/jobs → deepwork-0.5.1/src/deepwork/standard_jobs}/deepwork_jobs/steps/implement.md +3 -3
  131. {deepwork-0.3.1/.deepwork/jobs → deepwork-0.5.1/src/deepwork/standard_jobs}/deepwork_jobs/steps/learn.md +74 -5
  132. deepwork-0.5.1/src/deepwork/standard_jobs/deepwork_jobs/steps/review_job_spec.md +208 -0
  133. deepwork-0.5.1/src/deepwork/standard_jobs/deepwork_jobs/templates/doc_spec.md.example +86 -0
  134. deepwork-0.5.1/src/deepwork/standard_jobs/deepwork_jobs/templates/doc_spec.md.template +26 -0
  135. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/hooks/capture_prompt_work_tree.sh +8 -0
  136. {deepwork-0.3.1/.deepwork/jobs → deepwork-0.5.1/src/deepwork/standard_jobs}/deepwork_rules/job.yml +5 -3
  137. deepwork-0.5.1/src/deepwork/templates/claude/AGENTS.md +38 -0
  138. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/templates/claude/skill-job-meta.md.jinja +7 -0
  139. deepwork-0.5.1/src/deepwork/templates/claude/skill-job-step.md.jinja +235 -0
  140. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/templates/gemini/skill-job-step.toml.jinja +18 -3
  141. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/utils/fs.py +36 -0
  142. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/utils/yaml_utils.py +24 -0
  143. deepwork-0.5.1/tests/fixtures/doc_specs/minimal_doc_spec.md +9 -0
  144. deepwork-0.5.1/tests/fixtures/doc_specs/valid_report.md +23 -0
  145. deepwork-0.5.1/tests/fixtures/jobs/job_with_doc_spec/job.yml +18 -0
  146. deepwork-0.5.1/tests/fixtures/jobs/job_with_doc_spec/steps/generate_report.md +7 -0
  147. {deepwork-0.3.1 → deepwork-0.5.1}/tests/integration/test_fruits_workflow.py +8 -4
  148. deepwork-0.5.1/tests/integration/test_install_requirements.py +343 -0
  149. deepwork-0.5.1/tests/shell_script_tests/test_check_version.py +292 -0
  150. {deepwork-0.3.1 → deepwork-0.5.1}/tests/shell_script_tests/test_rules_stop_hook.py +182 -0
  151. {deepwork-0.3.1 → deepwork-0.5.1}/tests/unit/test_adapters.py +165 -0
  152. {deepwork-0.3.1 → deepwork-0.5.1}/tests/unit/test_command_executor.py +68 -1
  153. deepwork-0.5.1/tests/unit/test_doc_spec_parser.py +214 -0
  154. deepwork-0.5.1/tests/unit/test_doc_spec_schema.py +129 -0
  155. {deepwork-0.3.1 → deepwork-0.5.1}/tests/unit/test_generator.py +188 -2
  156. {deepwork-0.3.1 → deepwork-0.5.1}/tests/unit/test_hook_wrapper.py +76 -0
  157. {deepwork-0.3.1 → deepwork-0.5.1}/tests/unit/test_hooks_syncer.py +55 -2
  158. {deepwork-0.3.1 → deepwork-0.5.1}/tests/unit/test_parser.py +78 -2
  159. {deepwork-0.3.1 → deepwork-0.5.1}/tests/unit/test_stop_hooks.py +250 -10
  160. {deepwork-0.3.1 → deepwork-0.5.1}/uv.lock +1 -1
  161. deepwork-0.3.1/.claude/skills/commit/SKILL.md +0 -61
  162. deepwork-0.3.1/.deepwork/.gitignore +0 -3
  163. deepwork-0.3.1/.deepwork/jobs/commit/job.yml +0 -75
  164. deepwork-0.3.1/.deepwork/jobs/deepwork_jobs/steps/define.md +0 -331
  165. deepwork-0.3.1/.gemini/skills/commit/index.toml +0 -66
  166. deepwork-0.3.1/.github/workflows/validate.yml +0 -40
  167. deepwork-0.3.1/shell.nix +0 -67
  168. deepwork-0.3.1/src/deepwork/hooks/claude_hook.sh +0 -55
  169. deepwork-0.3.1/src/deepwork/hooks/gemini_hook.sh +0 -55
  170. deepwork-0.3.1/src/deepwork/templates/claude/skill-job-step.md.jinja +0 -198
  171. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/config.yml +0 -0
  172. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/add_platform/steps/add_capabilities.md +0 -0
  173. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/add_platform/steps/implement.md +0 -0
  174. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/add_platform/steps/research.md +0 -0
  175. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/add_platform/steps/verify.md +0 -0
  176. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/commit/steps/lint.md +0 -0
  177. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/AGENTS.md +0 -0
  178. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/make_new_job.sh +0 -0
  179. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/steps/supplemental_file_references.md +0 -0
  180. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/templates/agents.md.template +0 -0
  181. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/templates/job.yml.example +0 -0
  182. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/templates/job.yml.template +0 -0
  183. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/templates/step_instruction.md.example +0 -0
  184. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/deepwork_jobs/templates/step_instruction.md.template +0 -0
  185. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/hooks/capture_prompt_work_tree.sh +0 -0
  186. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/hooks/global_hooks.yml +0 -0
  187. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/hooks/user_prompt_submit.sh +0 -0
  188. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/rules/.gitkeep +0 -0
  189. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/rules/api-documentation-sync.md.example +0 -0
  190. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/rules/readme-documentation.md.example +0 -0
  191. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/rules/security-review.md.example +0 -0
  192. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/rules/skill-md-validation.md +0 -0
  193. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/rules/source-test-pairing.md.example +0 -0
  194. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/deepwork_rules/steps/define.md +0 -0
  195. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/jobs/update/steps/job.md +0 -0
  196. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/rules/architecture-documentation-accuracy.md +0 -0
  197. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/rules/manual-test-command-action.md +0 -0
  198. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/rules/manual-test-created-mode.md +0 -0
  199. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/rules/manual-test-infinite-block-command.md +0 -0
  200. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/rules/manual-test-infinite-block-prompt.md +0 -0
  201. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/rules/manual-test-multi-safety.md +0 -0
  202. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/rules/manual-test-pair-mode.md +0 -0
  203. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/rules/manual-test-set-mode.md +0 -0
  204. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/rules/manual-test-trigger-safety.md +0 -0
  205. /deepwork-0.3.1/.deepwork/rules/new-standard-job-warning.md → /deepwork-0.5.1/.deepwork/rules/new-standard-job-warning.md.disabled +0 -0
  206. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/rules/readme-accuracy.md +0 -0
  207. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/rules/skill-template-best-practices.md +0 -0
  208. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/rules/standard-jobs-source-of-truth.md +0 -0
  209. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/rules/uv-lock-sync.md +0 -0
  210. {deepwork-0.3.1 → deepwork-0.5.1}/.deepwork/rules/version-and-changelog-update.md +0 -0
  211. {deepwork-0.3.1 → deepwork-0.5.1}/.github/workflows/README.md +0 -0
  212. {deepwork-0.3.1 → deepwork-0.5.1}/.github/workflows/claude-code-test.yml +0 -0
  213. {deepwork-0.3.1 → deepwork-0.5.1}/CLA/version_1/CLA.md +0 -0
  214. {deepwork-0.3.1 → deepwork-0.5.1}/CLA/version_1/CLA_SIGNATORIES.md +0 -0
  215. {deepwork-0.3.1 → deepwork-0.5.1}/LICENSE.md +0 -0
  216. {deepwork-0.3.1 → deepwork-0.5.1}/claude.md +0 -0
  217. {deepwork-0.3.1 → deepwork-0.5.1}/doc/platforms/README.md +0 -0
  218. {deepwork-0.3.1 → deepwork-0.5.1}/doc/platforms/claude/cli_configuration.md +0 -0
  219. {deepwork-0.3.1 → deepwork-0.5.1}/doc/platforms/claude/learnings.md +0 -0
  220. {deepwork-0.3.1 → deepwork-0.5.1}/doc/platforms/gemini/cli_configuration.md +0 -0
  221. {deepwork-0.3.1 → deepwork-0.5.1}/doc/platforms/gemini/hooks.md +0 -0
  222. {deepwork-0.3.1 → deepwork-0.5.1}/doc/platforms/gemini/hooks_system.md +0 -0
  223. {deepwork-0.3.1 → deepwork-0.5.1}/doc/platforms/gemini/learnings.md +0 -0
  224. {deepwork-0.3.1 → deepwork-0.5.1}/doc/rules_syntax.md +0 -0
  225. {deepwork-0.3.1 → deepwork-0.5.1}/doc/rules_system_design.md +0 -0
  226. {deepwork-0.3.1 → deepwork-0.5.1}/job_library/README.md +0 -0
  227. {deepwork-0.3.1 → deepwork-0.5.1}/manual_tests/test_command_action/test_command_action.txt +0 -0
  228. {deepwork-0.3.1 → deepwork-0.5.1}/manual_tests/test_command_action/test_command_action_log.txt +0 -0
  229. {deepwork-0.3.1 → deepwork-0.5.1}/manual_tests/test_created_mode/existing_file.yml +0 -0
  230. {deepwork-0.3.1 → deepwork-0.5.1}/manual_tests/test_infinite_block_command/test_infinite_block_command.py +0 -0
  231. {deepwork-0.3.1 → deepwork-0.5.1}/manual_tests/test_infinite_block_prompt/test_infinite_block_prompt.py +0 -0
  232. {deepwork-0.3.1 → deepwork-0.5.1}/manual_tests/test_multi_safety/test_multi_safety.py +0 -0
  233. {deepwork-0.3.1 → deepwork-0.5.1}/manual_tests/test_multi_safety/test_multi_safety_changelog.md +0 -0
  234. {deepwork-0.3.1 → deepwork-0.5.1}/manual_tests/test_multi_safety/test_multi_safety_version.txt +0 -0
  235. {deepwork-0.3.1 → deepwork-0.5.1}/manual_tests/test_pair_mode/test_pair_mode_expected.md +0 -0
  236. {deepwork-0.3.1 → deepwork-0.5.1}/manual_tests/test_pair_mode/test_pair_mode_trigger.py +0 -0
  237. {deepwork-0.3.1 → deepwork-0.5.1}/manual_tests/test_set_mode/test_set_mode_source.py +0 -0
  238. {deepwork-0.3.1 → deepwork-0.5.1}/manual_tests/test_set_mode/test_set_mode_test.py +0 -0
  239. {deepwork-0.3.1 → deepwork-0.5.1}/manual_tests/test_trigger_safety_mode/test_trigger_safety_mode.py +0 -0
  240. {deepwork-0.3.1 → deepwork-0.5.1}/manual_tests/test_trigger_safety_mode/test_trigger_safety_mode_doc.md +0 -0
  241. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/__init__.py +0 -0
  242. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/cli/__init__.py +0 -0
  243. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/core/__init__.py +0 -0
  244. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/core/detector.py +0 -0
  245. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/core/pattern_matcher.py +0 -0
  246. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/core/rules_parser.py +0 -0
  247. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/core/rules_queue.py +0 -0
  248. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/hooks/README.md +0 -0
  249. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/schemas/__init__.py +0 -0
  250. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/schemas/rules_schema.py +0 -0
  251. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/AGENTS.md +0 -0
  252. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/make_new_job.sh +0 -0
  253. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/steps/supplemental_file_references.md +0 -0
  254. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/templates/agents.md.template +0 -0
  255. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/templates/job.yml.example +0 -0
  256. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/templates/job.yml.template +0 -0
  257. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/templates/step_instruction.md.example +0 -0
  258. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_jobs/templates/step_instruction.md.template +0 -0
  259. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/hooks/global_hooks.yml +0 -0
  260. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/hooks/user_prompt_submit.sh +0 -0
  261. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/rules/.gitkeep +0 -0
  262. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/rules/api-documentation-sync.md.example +0 -0
  263. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/rules/readme-documentation.md.example +0 -0
  264. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/rules/security-review.md.example +0 -0
  265. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/rules/skill-md-validation.md +0 -0
  266. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/rules/source-test-pairing.md.example +0 -0
  267. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/standard_jobs/deepwork_rules/steps/define.md +0 -0
  268. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/templates/__init__.py +0 -0
  269. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/templates/gemini/skill-job-meta.toml.jinja +0 -0
  270. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/utils/__init__.py +0 -0
  271. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/utils/git.py +0 -0
  272. {deepwork-0.3.1 → deepwork-0.5.1}/src/deepwork/utils/validation.py +0 -0
  273. {deepwork-0.3.1 → deepwork-0.5.1}/tests/__init__.py +0 -0
  274. {deepwork-0.3.1 → deepwork-0.5.1}/tests/conftest.py +0 -0
  275. {deepwork-0.3.1 → deepwork-0.5.1}/tests/e2e/__init__.py +0 -0
  276. {deepwork-0.3.1 → deepwork-0.5.1}/tests/e2e/test_claude_code_integration.py +0 -0
  277. {deepwork-0.3.1 → deepwork-0.5.1}/tests/fixtures/jobs/complex_job/job.yml +0 -0
  278. {deepwork-0.3.1 → deepwork-0.5.1}/tests/fixtures/jobs/complex_job/steps/comparative_report.md +0 -0
  279. {deepwork-0.3.1 → deepwork-0.5.1}/tests/fixtures/jobs/complex_job/steps/identify_competitors.md +0 -0
  280. {deepwork-0.3.1 → deepwork-0.5.1}/tests/fixtures/jobs/complex_job/steps/primary_research.md +0 -0
  281. {deepwork-0.3.1 → deepwork-0.5.1}/tests/fixtures/jobs/complex_job/steps/secondary_research.md +0 -0
  282. {deepwork-0.3.1 → deepwork-0.5.1}/tests/fixtures/jobs/exposed_step_job/job.yml +0 -0
  283. {deepwork-0.3.1 → deepwork-0.5.1}/tests/fixtures/jobs/exposed_step_job/steps/exposed_step.md +0 -0
  284. {deepwork-0.3.1 → deepwork-0.5.1}/tests/fixtures/jobs/exposed_step_job/steps/hidden_step.md +0 -0
  285. {deepwork-0.3.1 → deepwork-0.5.1}/tests/fixtures/jobs/fruits/job.yml +0 -0
  286. {deepwork-0.3.1 → deepwork-0.5.1}/tests/fixtures/jobs/fruits/steps/classify.md +0 -0
  287. {deepwork-0.3.1 → deepwork-0.5.1}/tests/fixtures/jobs/fruits/steps/identify.md +0 -0
  288. {deepwork-0.3.1 → deepwork-0.5.1}/tests/fixtures/jobs/invalid_job/job.yml +0 -0
  289. {deepwork-0.3.1 → deepwork-0.5.1}/tests/fixtures/jobs/simple_job/job.yml +0 -0
  290. {deepwork-0.3.1 → deepwork-0.5.1}/tests/fixtures/jobs/simple_job/steps/single_step.md +0 -0
  291. {deepwork-0.3.1 → deepwork-0.5.1}/tests/integration/test_full_workflow.py +0 -0
  292. {deepwork-0.3.1 → deepwork-0.5.1}/tests/integration/test_install_flow.py +0 -0
  293. {deepwork-0.3.1 → deepwork-0.5.1}/tests/shell_script_tests/README.md +0 -0
  294. {deepwork-0.3.1 → deepwork-0.5.1}/tests/shell_script_tests/__init__.py +0 -0
  295. {deepwork-0.3.1 → deepwork-0.5.1}/tests/shell_script_tests/conftest.py +0 -0
  296. {deepwork-0.3.1 → deepwork-0.5.1}/tests/shell_script_tests/test_capture_prompt_work_tree.py +0 -0
  297. {deepwork-0.3.1 → deepwork-0.5.1}/tests/shell_script_tests/test_hooks.py +0 -0
  298. {deepwork-0.3.1 → deepwork-0.5.1}/tests/shell_script_tests/test_make_new_job.py +0 -0
  299. {deepwork-0.3.1 → deepwork-0.5.1}/tests/shell_script_tests/test_user_prompt_submit.py +0 -0
  300. {deepwork-0.3.1 → deepwork-0.5.1}/tests/unit/test_detector.py +0 -0
  301. {deepwork-0.3.1 → deepwork-0.5.1}/tests/unit/test_fs.py +0 -0
  302. {deepwork-0.3.1 → deepwork-0.5.1}/tests/unit/test_git.py +0 -0
  303. {deepwork-0.3.1 → deepwork-0.5.1}/tests/unit/test_pattern_matcher.py +0 -0
  304. {deepwork-0.3.1 → deepwork-0.5.1}/tests/unit/test_rules_check.py +0 -0
  305. {deepwork-0.3.1 → deepwork-0.5.1}/tests/unit/test_rules_parser.py +0 -0
  306. {deepwork-0.3.1 → deepwork-0.5.1}/tests/unit/test_rules_queue.py +0 -0
  307. {deepwork-0.3.1 → deepwork-0.5.1}/tests/unit/test_schema_validation.py +0 -0
  308. {deepwork-0.3.1 → deepwork-0.5.1}/tests/unit/test_validation.py +0 -0
  309. {deepwork-0.3.1 → 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 "$@"
@@ -89,13 +89,72 @@
89
89
  "Bash(python3:*)",
90
90
  "Bash(pip:*)",
91
91
  "Bash(pip3:*)",
92
+ "Bash(pytest:*)",
93
+ "Bash(uv:*)",
92
94
  "Bash(node:*)",
93
95
  "Bash(npm:*)",
94
96
  "Bash(npx:*)",
95
- "Edit(./**)"
97
+ "Edit(./**)",
98
+ "Read(./.deepwork/tmp/**)",
99
+ "Edit(./.deepwork/tmp/**)",
100
+ "Write(./.deepwork/tmp/**)",
101
+ "Skill(commit)",
102
+ "Skill(commit.review)",
103
+ "Skill(commit.test)",
104
+ "Skill(commit.lint)",
105
+ "Skill(commit.commit_and_push)",
106
+ "Skill(deepwork_jobs)",
107
+ "Skill(deepwork_jobs.define)",
108
+ "Skill(deepwork_jobs.review_job_spec)",
109
+ "Skill(deepwork_jobs.implement)",
110
+ "Skill(deepwork_jobs.learn)",
111
+ "Skill(add_platform)",
112
+ "Skill(add_platform.research)",
113
+ "Skill(add_platform.add_capabilities)",
114
+ "Skill(add_platform.implement)",
115
+ "Skill(add_platform.verify)",
116
+ "Skill(update)",
117
+ "Skill(update.job)",
118
+ "Skill(manual_tests)",
119
+ "Skill(manual_tests.run_not_fire_tests)",
120
+ "Skill(manual_tests.run_fire_tests)",
121
+ "Skill(deepwork_rules)",
122
+ "Skill(deepwork_rules.define)",
123
+ "Bash(deepwork rules clear_queue)",
124
+ "Bash(rm -rf .deepwork/tmp/rules/queue/*.json)",
125
+ "Skill(manual_tests.reset)",
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:*)"
96
133
  ]
97
134
  },
98
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
+ ],
147
+ "SessionStart": [
148
+ {
149
+ "matcher": "",
150
+ "hooks": [
151
+ {
152
+ "type": "command",
153
+ "command": "src/deepwork/hooks/check_version.sh"
154
+ }
155
+ ]
156
+ }
157
+ ],
99
158
  "UserPromptSubmit": [
100
159
  {
101
160
  "matcher": "",
@@ -113,7 +172,18 @@
113
172
  "hooks": [
114
173
  {
115
174
  "type": "command",
116
- "command": "python -m deepwork.hooks.rules_check"
175
+ "command": "deepwork hook rules_check"
176
+ }
177
+ ]
178
+ }
179
+ ],
180
+ "SubagentStop": [
181
+ {
182
+ "matcher": "",
183
+ "hooks": [
184
+ {
185
+ "type": "command",
186
+ "command": "deepwork hook rules_check"
117
187
  }
118
188
  ]
119
189
  }
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: add_platform
3
- description: "Add a new AI platform to DeepWork with adapter, templates, and tests"
3
+ description: "Adds a new AI platform to DeepWork with adapter, templates, and tests. Use when integrating Cursor, Windsurf, or other AI coding tools."
4
4
  ---
5
5
 
6
6
  # add_platform
7
7
 
8
- **Multi-step workflow**: Add a new AI platform to DeepWork with adapter, templates, and tests
8
+ **Multi-step workflow**: Adds a new AI platform to DeepWork with adapter, templates, and tests. Use when integrating Cursor, Windsurf, or other AI coding tools.
9
9
 
10
10
  > **CRITICAL**: Always invoke steps using the Skill tool. Never copy/paste step instructions directly.
11
11
 
@@ -29,10 +29,10 @@ comprehensive test coverage for new functionality.
29
29
 
30
30
  ## Available Steps
31
31
 
32
- 1. **research** - Capture CLI configuration and hooks system documentation for the new platform
33
- 2. **add_capabilities** - Update job schema and adapters with any new hook events the platform supports (requires: research)
34
- 3. **implement** - Add platform adapter, templates, tests with 100% coverage, and README documentation (requires: research, add_capabilities)
35
- 4. **verify** - Set up platform directories and verify deepwork install works correctly (requires: implement)
32
+ 1. **research** - Captures CLI configuration and hooks system documentation for the new platform. Use when starting platform integration.
33
+ 2. **add_capabilities** - Updates job schema and adapters with any new hook events the platform supports. Use after research to extend DeepWork's hook system. (requires: research)
34
+ 3. **implement** - Creates platform adapter, templates, tests with 100% coverage, and README documentation. Use after adding hook capabilities. (requires: research, add_capabilities)
35
+ 4. **verify** - Sets up platform directories and verifies deepwork install works correctly. Use after implementation to confirm integration. (requires: implement)
36
36
 
37
37
  ## Execution Instructions
38
38
 
@@ -64,6 +64,13 @@ If user intent is unclear, use AskUserQuestion to clarify:
64
64
  - Present available steps as numbered options
65
65
  - Let user select the starting point
66
66
 
67
+ ## Guardrails
68
+
69
+ - Do NOT copy/paste step instructions directly; always use the Skill tool to invoke steps
70
+ - Do NOT skip steps in the workflow unless the user explicitly requests it
71
+ - Do NOT proceed to the next step if the current step's outputs are incomplete
72
+ - Do NOT make assumptions about user intent; ask for clarification when ambiguous
73
+
67
74
  ## Context Files
68
75
 
69
76
  - Job definition: `.deepwork/jobs/add_platform/job.yml`
@@ -1,30 +1,12 @@
1
1
  ---
2
2
  name: add_platform.add_capabilities
3
- description: "Update job schema and adapters with any new hook events the platform supports"
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
- ---
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---
22
4
 
23
5
  # add_platform.add_capabilities
24
6
 
25
7
  **Step 2/4** in **add_platform** workflow
26
8
 
27
- > Add a new AI platform to DeepWork with adapter, templates, and tests
9
+ > Adds a new AI platform to DeepWork with adapter, templates, and tests. Use when integrating Cursor, Windsurf, or other AI coding tools.
28
10
 
29
11
  ## Prerequisites (Verify First)
30
12
 
@@ -33,7 +15,7 @@ Before proceeding, confirm these steps are complete:
33
15
 
34
16
  ## Instructions
35
17
 
36
- **Goal**: Update job schema and adapters with any new hook events the platform supports
18
+ **Goal**: Updates job schema and adapters with any new hook events the platform supports. Use after research to extend DeepWork's hook system.
37
19
 
38
20
  # Add Hook Capabilities
39
21
 
@@ -208,14 +190,15 @@ Use branch format: `deepwork/add_platform-[instance]-YYYYMMDD`
208
190
  ## Outputs
209
191
 
210
192
  **Required outputs**:
211
- - `job_schema.py`- `adapters.py`
212
- ## Quality Validation
213
-
214
- Stop hooks will automatically validate your work. The loop continues until all criteria pass.
215
-
193
+ - `job_schema.py`
194
+ - `adapters.py`
216
195
 
196
+ ## Guardrails
217
197
 
218
- **To complete**: Include `<promise>✓ Quality Criteria Met</promise>` in your final response only after verifying ALL criteria are satisfied.
198
+ - Do NOT skip prerequisite verification if this step has dependencies
199
+ - Do NOT produce partial outputs; complete all required outputs before finishing
200
+ - Do NOT proceed without required inputs; ask the user if any are missing
201
+ - Do NOT modify files outside the scope of this step's defined outputs
219
202
 
220
203
  ## On Completion
221
204
 
@@ -1,34 +1,16 @@
1
1
  ---
2
2
  name: add_platform.implement
3
- description: "Add platform adapter, templates, tests with 100% coverage, and README documentation"
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
- ---
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"---
26
8
 
27
9
  # add_platform.implement
28
10
 
29
11
  **Step 3/4** in **add_platform** workflow
30
12
 
31
- > Add a new AI platform to DeepWork with adapter, templates, and tests
13
+ > Adds a new AI platform to DeepWork with adapter, templates, and tests. Use when integrating Cursor, Windsurf, or other AI coding tools.
32
14
 
33
15
  ## Prerequisites (Verify First)
34
16
 
@@ -38,7 +20,7 @@ Before proceeding, confirm these steps are complete:
38
20
 
39
21
  ## Instructions
40
22
 
41
- **Goal**: Add platform adapter, templates, tests with 100% coverage, and README documentation
23
+ **Goal**: Creates platform adapter, templates, tests with 100% coverage, and README documentation. Use after adding hook capabilities.
42
24
 
43
25
  # Implement Platform Support
44
26
 
@@ -306,16 +288,18 @@ Use branch format: `deepwork/add_platform-[instance]-YYYYMMDD`
306
288
  ## Outputs
307
289
 
308
290
  **Required outputs**:
309
- - `templates/` (directory)- `tests/` (directory)- `README.md`
310
- ## Quality Validation
291
+ - `templates/` (directory)
292
+ - `tests/` (directory)
293
+ - `README.md`
311
294
 
312
- Stop hooks will automatically validate your work. The loop continues until all criteria pass.
295
+ ## Guardrails
313
296
 
297
+ - Do NOT skip prerequisite verification if this step has dependencies
298
+ - Do NOT produce partial outputs; complete all required outputs before finishing
299
+ - Do NOT proceed without required inputs; ask the user if any are missing
300
+ - Do NOT modify files outside the scope of this step's defined outputs
314
301
 
315
302
  **Validation script**: `.deepwork/jobs/add_platform/hooks/run_tests.sh` (runs automatically)
316
-
317
- **To complete**: Include `<promise>✓ Quality Criteria Met</promise>` in your final response only after verifying ALL criteria are satisfied.
318
-
319
303
  ## On Completion
320
304
 
321
305
  1. Verify outputs are created
@@ -1,36 +1,17 @@
1
1
  ---
2
2
  name: add_platform.research
3
- description: "Capture CLI configuration and hooks system documentation for the new platform"
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
- ---
3
+ description: "Captures CLI configuration and hooks system documentation for the new platform. Use when starting platform integration."user-invocable: false---
23
4
 
24
5
  # add_platform.research
25
6
 
26
7
  **Step 1/4** in **add_platform** workflow
27
8
 
28
- > Add a new AI platform to DeepWork with adapter, templates, and tests
9
+ > Adds a new AI platform to DeepWork with adapter, templates, and tests. Use when integrating Cursor, Windsurf, or other AI coding tools.
29
10
 
30
11
 
31
12
  ## Instructions
32
13
 
33
- **Goal**: Capture CLI configuration and hooks system documentation for the new platform
14
+ **Goal**: Captures CLI configuration and hooks system documentation for the new platform. Use when starting platform integration.
34
15
 
35
16
  # Research Platform Documentation
36
17
 
@@ -258,14 +239,15 @@ Use branch format: `deepwork/add_platform-[instance]-YYYYMMDD`
258
239
  ## Outputs
259
240
 
260
241
  **Required outputs**:
261
- - `cli_configuration.md`- `hooks_system.md`
262
- ## Quality Validation
263
-
264
- Stop hooks will automatically validate your work. The loop continues until all criteria pass.
265
-
242
+ - `cli_configuration.md`
243
+ - `hooks_system.md`
266
244
 
245
+ ## Guardrails
267
246
 
268
- **To complete**: Include `<promise>✓ Quality Criteria Met</promise>` in your final response only after verifying ALL criteria are satisfied.
247
+ - Do NOT skip prerequisite verification if this step has dependencies
248
+ - Do NOT produce partial outputs; complete all required outputs before finishing
249
+ - Do NOT proceed without required inputs; ask the user if any are missing
250
+ - Do NOT modify files outside the scope of this step's defined outputs
269
251
 
270
252
  ## On Completion
271
253
 
@@ -1,29 +1,12 @@
1
1
  ---
2
2
  name: add_platform.verify
3
- description: "Set up platform directories and verify deepwork install works correctly"
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
- ---
3
+ description: "Sets up platform directories and verifies deepwork install works correctly. Use after implementation to confirm integration."user-invocable: false---
21
4
 
22
5
  # add_platform.verify
23
6
 
24
7
  **Step 4/4** in **add_platform** workflow
25
8
 
26
- > Add a new AI platform to DeepWork with adapter, templates, and tests
9
+ > Adds a new AI platform to DeepWork with adapter, templates, and tests. Use when integrating Cursor, Windsurf, or other AI coding tools.
27
10
 
28
11
  ## Prerequisites (Verify First)
29
12
 
@@ -32,7 +15,7 @@ Before proceeding, confirm these steps are complete:
32
15
 
33
16
  ## Instructions
34
17
 
35
- **Goal**: Set up platform directories and verify deepwork install works correctly
18
+ **Goal**: Sets up platform directories and verifies deepwork install works correctly. Use after implementation to confirm integration.
36
19
 
37
20
  # Verify Installation
38
21
 
@@ -182,20 +165,20 @@ Use branch format: `deepwork/add_platform-[instance]-YYYYMMDD`
182
165
 
183
166
  ## Outputs
184
167
 
185
- No specific file outputs required.
186
-
187
- ## Quality Validation
188
-
189
- Stop hooks will automatically validate your work. The loop continues until all criteria pass.
190
-
168
+ **Required outputs**:
169
+ - `verification_checklist.md`
191
170
 
171
+ ## Guardrails
192
172
 
193
- **To complete**: Include `<promise>✓ Quality Criteria Met</promise>` in your final response only after verifying ALL criteria are satisfied.
173
+ - Do NOT skip prerequisite verification if this step has dependencies
174
+ - Do NOT produce partial outputs; complete all required outputs before finishing
175
+ - Do NOT proceed without required inputs; ask the user if any are missing
176
+ - Do NOT modify files outside the scope of this step's defined outputs
194
177
 
195
178
  ## On Completion
196
179
 
197
180
  1. Verify outputs are created
198
- 2. Inform user: "Step 4/4 complete"
181
+ 2. Inform user: "Step 4/4 complete, outputs: verification_checklist.md"
199
182
  3. **Workflow complete**: All steps finished. Consider creating a PR to merge the work branch.
200
183
 
201
184
  ---
@@ -0,0 +1,72 @@
1
+ ---
2
+ name: commit
3
+ description: "Reviews code, runs tests, lints, and commits changes. Use when ready to commit work with quality checks."
4
+ ---
5
+
6
+ # commit
7
+
8
+ **Multi-step workflow**: Reviews code, runs tests, lints, and commits changes. Use when ready to commit work with quality checks.
9
+
10
+ > **CRITICAL**: Always invoke steps using the Skill tool. Never copy/paste step instructions directly.
11
+
12
+ A workflow for preparing and committing code changes with quality checks.
13
+
14
+ This job starts with a code review to catch issues early, runs tests until
15
+ they pass, formats and lints code with ruff, then reviews changed files
16
+ before committing and pushing. The review and lint steps use sub-agents
17
+ to reduce context usage.
18
+
19
+ Steps:
20
+ 1. review - Code review for issues, DRY opportunities, naming, and test coverage (runs in sub-agent)
21
+ 2. test - Pull latest code and run tests until they pass
22
+ 3. lint - Format and lint code with ruff (runs in sub-agent)
23
+ 4. commit_and_push - Review changes and commit/push
24
+
25
+
26
+ ## Available Steps
27
+
28
+ 1. **review** - Reviews changed code for issues, DRY opportunities, naming clarity, and test coverage using a sub-agent. Use as the first step before testing.
29
+ 2. **test** - Pulls latest code and runs tests until all pass. Use after code review passes to verify changes work correctly. (requires: review)
30
+ 3. **lint** - Formats and lints code with ruff using a sub-agent. Use after tests pass to ensure code style compliance. (requires: test)
31
+ 4. **commit_and_push** - Verifies changed files, creates commit, and pushes to remote. Use after linting passes to finalize changes. (requires: lint)
32
+
33
+ ## Execution Instructions
34
+
35
+ ### Step 1: Analyze Intent
36
+
37
+ Parse any text following `/commit` to determine user intent:
38
+ - "review" or related terms → start at `commit.review`
39
+ - "test" or related terms → start at `commit.test`
40
+ - "lint" or related terms → start at `commit.lint`
41
+ - "commit_and_push" or related terms → start at `commit.commit_and_push`
42
+
43
+ ### Step 2: Invoke Starting Step
44
+
45
+ Use the Skill tool to invoke the identified starting step:
46
+ ```
47
+ Skill tool: commit.review
48
+ ```
49
+
50
+ ### Step 3: Continue Workflow Automatically
51
+
52
+ After each step completes:
53
+ 1. Check if there's a next step in the sequence
54
+ 2. Invoke the next step using the Skill tool
55
+ 3. Repeat until workflow is complete or user intervenes
56
+
57
+ ### Handling Ambiguous Intent
58
+
59
+ If user intent is unclear, use AskUserQuestion to clarify:
60
+ - Present available steps as numbered options
61
+ - Let user select the starting point
62
+
63
+ ## Guardrails
64
+
65
+ - Do NOT copy/paste step instructions directly; always use the Skill tool to invoke steps
66
+ - Do NOT skip steps in the workflow unless the user explicitly requests it
67
+ - Do NOT proceed to the next step if the current step's outputs are incomplete
68
+ - Do NOT make assumptions about user intent; ask for clarification when ambiguous
69
+
70
+ ## Context Files
71
+
72
+ - Job definition: `.deepwork/jobs/commit/job.yml`