deepwork 0.1.1__tar.gz → 0.3.0__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 (272) hide show
  1. {deepwork-0.1.1 → deepwork-0.3.0}/.claude/settings.json +7 -2
  2. deepwork-0.3.0/.claude/skills/add_platform/SKILL.md +69 -0
  3. deepwork-0.1.1/.claude/commands/add_platform.add_capabilities.md → deepwork-0.3.0/.claude/skills/add_platform.add_capabilities/SKILL.md +41 -103
  4. deepwork-0.1.1/.claude/commands/add_platform.implement.md → deepwork-0.3.0/.claude/skills/add_platform.implement/SKILL.md +44 -110
  5. deepwork-0.1.1/.claude/commands/add_platform.research.md → deepwork-0.3.0/.claude/skills/add_platform.research/SKILL.md +39 -98
  6. deepwork-0.1.1/.claude/commands/add_platform.verify.md → deepwork-0.3.0/.claude/skills/add_platform.verify/SKILL.md +43 -101
  7. deepwork-0.3.0/.claude/skills/commit/SKILL.md +61 -0
  8. deepwork-0.3.0/.claude/skills/commit.commit_and_push/SKILL.md +159 -0
  9. deepwork-0.3.0/.claude/skills/commit.lint/SKILL.md +149 -0
  10. deepwork-0.3.0/.claude/skills/commit.test/SKILL.md +132 -0
  11. deepwork-0.3.0/.claude/skills/deepwork_jobs/SKILL.md +61 -0
  12. deepwork-0.1.1/.claude/commands/deepwork_jobs.define.md → deepwork-0.3.0/.claude/skills/deepwork_jobs.define/SKILL.md +88 -157
  13. deepwork-0.3.0/.claude/skills/deepwork_jobs.implement/SKILL.md +348 -0
  14. deepwork-0.1.1/.claude/commands/deepwork_jobs.learn.md → deepwork-0.3.0/.claude/skills/deepwork_jobs.learn/SKILL.md +45 -148
  15. deepwork-0.3.0/.claude/skills/deepwork_rules/SKILL.md +62 -0
  16. deepwork-0.3.0/.claude/skills/deepwork_rules.define/SKILL.md +314 -0
  17. deepwork-0.3.0/.claude/skills/update/SKILL.md +60 -0
  18. deepwork-0.3.0/.claude/skills/update.job/SKILL.md +156 -0
  19. deepwork-0.3.0/.deepwork/.gitignore +3 -0
  20. {deepwork-0.1.1 → deepwork-0.3.0}/.deepwork/jobs/add_platform/job.yml +1 -1
  21. {deepwork-0.1.1 → deepwork-0.3.0}/.deepwork/jobs/add_platform/steps/verify.md +2 -2
  22. deepwork-0.3.0/.deepwork/jobs/commit/job.yml +73 -0
  23. deepwork-0.3.0/.deepwork/jobs/commit/steps/commit_and_push.md +81 -0
  24. deepwork-0.3.0/.deepwork/jobs/commit/steps/lint.md +72 -0
  25. deepwork-0.3.0/.deepwork/jobs/commit/steps/test.md +53 -0
  26. deepwork-0.3.0/.deepwork/jobs/deepwork_jobs/AGENTS.md +60 -0
  27. deepwork-0.3.0/.deepwork/jobs/deepwork_jobs/job.yml +92 -0
  28. deepwork-0.3.0/.deepwork/jobs/deepwork_jobs/make_new_job.sh +134 -0
  29. {deepwork-0.1.1/src/deepwork/standard_jobs → deepwork-0.3.0/.deepwork/jobs}/deepwork_jobs/steps/define.md +29 -63
  30. deepwork-0.3.0/.deepwork/jobs/deepwork_jobs/steps/implement.md +238 -0
  31. {deepwork-0.1.1/src/deepwork/standard_jobs → deepwork-0.3.0/.deepwork/jobs}/deepwork_jobs/steps/learn.md +4 -62
  32. deepwork-0.3.0/.deepwork/jobs/deepwork_jobs/templates/agents.md.template +32 -0
  33. deepwork-0.3.0/.deepwork/jobs/deepwork_jobs/templates/job.yml.example +73 -0
  34. deepwork-0.3.0/.deepwork/jobs/deepwork_jobs/templates/job.yml.template +56 -0
  35. deepwork-0.3.0/.deepwork/jobs/deepwork_jobs/templates/step_instruction.md.example +82 -0
  36. deepwork-0.3.0/.deepwork/jobs/deepwork_jobs/templates/step_instruction.md.template +58 -0
  37. deepwork-0.3.0/.deepwork/jobs/deepwork_rules/hooks/global_hooks.yml +8 -0
  38. deepwork-0.3.0/.deepwork/jobs/deepwork_rules/job.yml +39 -0
  39. deepwork-0.3.0/.deepwork/jobs/deepwork_rules/rules/.gitkeep +13 -0
  40. deepwork-0.3.0/.deepwork/jobs/deepwork_rules/rules/api-documentation-sync.md.example +10 -0
  41. deepwork-0.3.0/.deepwork/jobs/deepwork_rules/rules/readme-documentation.md.example +10 -0
  42. deepwork-0.3.0/.deepwork/jobs/deepwork_rules/rules/security-review.md.example +11 -0
  43. deepwork-0.3.0/.deepwork/jobs/deepwork_rules/rules/skill-md-validation.md +45 -0
  44. deepwork-0.3.0/.deepwork/jobs/deepwork_rules/rules/source-test-pairing.md.example +13 -0
  45. deepwork-0.3.0/.deepwork/jobs/deepwork_rules/steps/define.md +249 -0
  46. deepwork-0.3.0/.deepwork/jobs/update/job.yml +42 -0
  47. deepwork-0.3.0/.deepwork/jobs/update/steps/job.md +73 -0
  48. deepwork-0.3.0/.deepwork/rules/architecture-documentation-accuracy.md +10 -0
  49. deepwork-0.3.0/.deepwork/rules/manual-test-command-action.md +19 -0
  50. deepwork-0.3.0/.deepwork/rules/manual-test-infinite-block-command.md +41 -0
  51. deepwork-0.3.0/.deepwork/rules/manual-test-infinite-block-prompt.md +34 -0
  52. deepwork-0.3.0/.deepwork/rules/manual-test-multi-safety.md +25 -0
  53. deepwork-0.3.0/.deepwork/rules/manual-test-pair-mode.md +26 -0
  54. deepwork-0.3.0/.deepwork/rules/manual-test-set-mode.md +26 -0
  55. deepwork-0.3.0/.deepwork/rules/manual-test-trigger-safety.md +21 -0
  56. deepwork-0.3.0/.deepwork/rules/readme-accuracy.md +10 -0
  57. deepwork-0.3.0/.deepwork/rules/skill-template-best-practices.md +46 -0
  58. deepwork-0.3.0/.deepwork/rules/standard-jobs-source-of-truth.md +24 -0
  59. deepwork-0.3.0/.deepwork/rules/version-and-changelog-update.md +28 -0
  60. {deepwork-0.1.1/.gemini/commands → deepwork-0.3.0/.gemini/skills}/add_platform/add_capabilities.toml +35 -67
  61. {deepwork-0.1.1/.gemini/commands → deepwork-0.3.0/.gemini/skills}/add_platform/implement.toml +37 -70
  62. deepwork-0.3.0/.gemini/skills/add_platform/index.toml +75 -0
  63. {deepwork-0.1.1/.gemini/commands → deepwork-0.3.0/.gemini/skills}/add_platform/research.toml +33 -61
  64. {deepwork-0.1.1/.gemini/commands → deepwork-0.3.0/.gemini/skills}/add_platform/verify.toml +36 -63
  65. deepwork-0.3.0/.gemini/skills/commit/commit_and_push.toml +143 -0
  66. deepwork-0.3.0/.gemini/skills/commit/index.toml +66 -0
  67. deepwork-0.3.0/.gemini/skills/commit/lint.toml +134 -0
  68. deepwork-0.3.0/.gemini/skills/commit/test.toml +116 -0
  69. {deepwork-0.1.1/.gemini/commands → deepwork-0.3.0/.gemini/skills}/deepwork_jobs/define.toml +74 -116
  70. deepwork-0.3.0/.gemini/skills/deepwork_jobs/implement.toml +319 -0
  71. deepwork-0.3.0/.gemini/skills/deepwork_jobs/index.toml +66 -0
  72. {deepwork-0.1.1/.gemini/commands → deepwork-0.3.0/.gemini/skills}/deepwork_jobs/learn.toml +45 -116
  73. deepwork-0.3.0/.gemini/skills/deepwork_rules/define.toml +318 -0
  74. deepwork-0.3.0/.gemini/skills/deepwork_rules/index.toml +65 -0
  75. deepwork-0.3.0/.gemini/skills/update/index.toml +63 -0
  76. deepwork-0.3.0/.gemini/skills/update/job.toml +140 -0
  77. deepwork-0.3.0/.github/workflows/README.md +101 -0
  78. {deepwork-0.1.1 → deepwork-0.3.0}/.github/workflows/cla.yml +18 -5
  79. deepwork-0.3.0/.github/workflows/claude-code-test.yml +374 -0
  80. {deepwork-0.1.1 → deepwork-0.3.0}/.github/workflows/validate.yml +8 -1
  81. deepwork-0.3.0/CHANGELOG.md +105 -0
  82. deepwork-0.3.0/CLA/version_1/CLA_SIGNATORIES.md +20 -0
  83. {deepwork-0.1.1 → deepwork-0.3.0}/PKG-INFO +54 -24
  84. {deepwork-0.1.1 → deepwork-0.3.0}/README.md +53 -23
  85. {deepwork-0.1.1 → deepwork-0.3.0}/claude.md +24 -9
  86. {deepwork-0.1.1 → deepwork-0.3.0}/doc/architecture.md +245 -117
  87. deepwork-0.3.0/doc/platforms/README.md +57 -0
  88. deepwork-0.3.0/doc/platforms/claude/cli_configuration.md +260 -0
  89. deepwork-0.3.0/doc/platforms/claude/hooks.md +327 -0
  90. deepwork-0.3.0/doc/platforms/claude/hooks_system.md +267 -0
  91. deepwork-0.3.0/doc/platforms/claude/learnings.md +57 -0
  92. deepwork-0.3.0/doc/platforms/gemini/hooks.md +446 -0
  93. deepwork-0.3.0/doc/platforms/gemini/learnings.md +82 -0
  94. deepwork-0.3.0/doc/rules_syntax.md +567 -0
  95. deepwork-0.3.0/doc/rules_system_design.md +547 -0
  96. deepwork-0.3.0/manual_tests/README.md +74 -0
  97. deepwork-0.3.0/manual_tests/test_command_action/test_command_action.txt +25 -0
  98. deepwork-0.3.0/manual_tests/test_command_action/test_command_action_log.txt +3 -0
  99. deepwork-0.3.0/manual_tests/test_infinite_block_command/test_infinite_block_command.py +42 -0
  100. deepwork-0.3.0/manual_tests/test_infinite_block_prompt/test_infinite_block_prompt.py +57 -0
  101. deepwork-0.3.0/manual_tests/test_multi_safety/test_multi_safety.py +42 -0
  102. deepwork-0.3.0/manual_tests/test_multi_safety/test_multi_safety_changelog.md +16 -0
  103. deepwork-0.3.0/manual_tests/test_multi_safety/test_multi_safety_version.txt +10 -0
  104. deepwork-0.3.0/manual_tests/test_pair_mode/test_pair_mode_expected.md +31 -0
  105. deepwork-0.3.0/manual_tests/test_pair_mode/test_pair_mode_trigger.py +47 -0
  106. deepwork-0.3.0/manual_tests/test_set_mode/test_set_mode_source.py +40 -0
  107. deepwork-0.3.0/manual_tests/test_set_mode/test_set_mode_test.py +37 -0
  108. deepwork-0.3.0/manual_tests/test_trigger_safety_mode/test_trigger_safety_mode.py +32 -0
  109. deepwork-0.3.0/manual_tests/test_trigger_safety_mode/test_trigger_safety_mode_doc.md +20 -0
  110. {deepwork-0.1.1 → deepwork-0.3.0}/pyproject.toml +1 -1
  111. {deepwork-0.1.1 → deepwork-0.3.0}/src/deepwork/cli/install.py +121 -32
  112. {deepwork-0.1.1 → deepwork-0.3.0}/src/deepwork/cli/sync.py +20 -20
  113. {deepwork-0.1.1 → deepwork-0.3.0}/src/deepwork/core/adapters.py +88 -51
  114. deepwork-0.3.0/src/deepwork/core/command_executor.py +173 -0
  115. {deepwork-0.1.1 → deepwork-0.3.0}/src/deepwork/core/generator.py +148 -31
  116. {deepwork-0.1.1 → deepwork-0.3.0}/src/deepwork/core/hooks_syncer.py +51 -25
  117. {deepwork-0.1.1 → deepwork-0.3.0}/src/deepwork/core/parser.py +8 -0
  118. deepwork-0.3.0/src/deepwork/core/pattern_matcher.py +271 -0
  119. deepwork-0.3.0/src/deepwork/core/rules_parser.py +511 -0
  120. deepwork-0.3.0/src/deepwork/core/rules_queue.py +321 -0
  121. deepwork-0.3.0/src/deepwork/hooks/README.md +181 -0
  122. deepwork-0.3.0/src/deepwork/hooks/__init__.py +77 -0
  123. deepwork-0.3.0/src/deepwork/hooks/claude_hook.sh +55 -0
  124. deepwork-0.3.0/src/deepwork/hooks/gemini_hook.sh +55 -0
  125. deepwork-0.3.0/src/deepwork/hooks/rules_check.py +514 -0
  126. deepwork-0.3.0/src/deepwork/hooks/wrapper.py +363 -0
  127. {deepwork-0.1.1 → deepwork-0.3.0}/src/deepwork/schemas/job_schema.py +14 -1
  128. deepwork-0.3.0/src/deepwork/schemas/rules_schema.py +103 -0
  129. deepwork-0.3.0/src/deepwork/standard_jobs/deepwork_jobs/AGENTS.md +60 -0
  130. deepwork-0.3.0/src/deepwork/standard_jobs/deepwork_jobs/job.yml +92 -0
  131. deepwork-0.3.0/src/deepwork/standard_jobs/deepwork_jobs/make_new_job.sh +134 -0
  132. {deepwork-0.1.1/.deepwork/jobs → deepwork-0.3.0/src/deepwork/standard_jobs}/deepwork_jobs/steps/define.md +35 -63
  133. deepwork-0.3.0/src/deepwork/standard_jobs/deepwork_jobs/steps/implement.md +238 -0
  134. {deepwork-0.1.1/.deepwork/jobs → deepwork-0.3.0/src/deepwork/standard_jobs}/deepwork_jobs/steps/learn.md +4 -62
  135. deepwork-0.3.0/src/deepwork/standard_jobs/deepwork_jobs/steps/supplemental_file_references.md +40 -0
  136. deepwork-0.3.0/src/deepwork/standard_jobs/deepwork_jobs/templates/agents.md.template +32 -0
  137. deepwork-0.3.0/src/deepwork/standard_jobs/deepwork_jobs/templates/job.yml.example +73 -0
  138. deepwork-0.3.0/src/deepwork/standard_jobs/deepwork_jobs/templates/job.yml.template +56 -0
  139. deepwork-0.3.0/src/deepwork/standard_jobs/deepwork_jobs/templates/step_instruction.md.example +82 -0
  140. deepwork-0.3.0/src/deepwork/standard_jobs/deepwork_jobs/templates/step_instruction.md.template +58 -0
  141. deepwork-0.1.1/.deepwork/jobs/deepwork_policy/hooks/capture_work_tree.sh → deepwork-0.3.0/src/deepwork/standard_jobs/deepwork_rules/hooks/capture_prompt_work_tree.sh +3 -2
  142. deepwork-0.3.0/src/deepwork/standard_jobs/deepwork_rules/hooks/global_hooks.yml +8 -0
  143. deepwork-0.3.0/src/deepwork/standard_jobs/deepwork_rules/hooks/user_prompt_submit.sh +16 -0
  144. deepwork-0.3.0/src/deepwork/standard_jobs/deepwork_rules/job.yml +39 -0
  145. deepwork-0.3.0/src/deepwork/standard_jobs/deepwork_rules/rules/.gitkeep +13 -0
  146. deepwork-0.3.0/src/deepwork/standard_jobs/deepwork_rules/rules/api-documentation-sync.md.example +10 -0
  147. deepwork-0.3.0/src/deepwork/standard_jobs/deepwork_rules/rules/readme-documentation.md.example +10 -0
  148. deepwork-0.3.0/src/deepwork/standard_jobs/deepwork_rules/rules/security-review.md.example +11 -0
  149. deepwork-0.3.0/src/deepwork/standard_jobs/deepwork_rules/rules/skill-md-validation.md +45 -0
  150. deepwork-0.3.0/src/deepwork/standard_jobs/deepwork_rules/rules/source-test-pairing.md.example +13 -0
  151. deepwork-0.3.0/src/deepwork/standard_jobs/deepwork_rules/steps/define.md +249 -0
  152. deepwork-0.3.0/src/deepwork/templates/claude/skill-job-meta.md.jinja +70 -0
  153. deepwork-0.3.0/src/deepwork/templates/claude/skill-job-step.md.jinja +198 -0
  154. deepwork-0.3.0/src/deepwork/templates/gemini/skill-job-meta.toml.jinja +76 -0
  155. deepwork-0.3.0/src/deepwork/templates/gemini/skill-job-step.toml.jinja +147 -0
  156. {deepwork-0.1.1 → deepwork-0.3.0}/tests/conftest.py +20 -0
  157. deepwork-0.3.0/tests/e2e/__init__.py +1 -0
  158. deepwork-0.3.0/tests/e2e/test_claude_code_integration.py +329 -0
  159. deepwork-0.3.0/tests/fixtures/jobs/exposed_step_job/job.yml +29 -0
  160. deepwork-0.3.0/tests/fixtures/jobs/exposed_step_job/steps/exposed_step.md +7 -0
  161. deepwork-0.3.0/tests/fixtures/jobs/exposed_step_job/steps/hidden_step.md +7 -0
  162. deepwork-0.3.0/tests/fixtures/jobs/fruits/job.yml +40 -0
  163. deepwork-0.3.0/tests/fixtures/jobs/fruits/steps/classify.md +83 -0
  164. deepwork-0.3.0/tests/fixtures/jobs/fruits/steps/identify.md +64 -0
  165. deepwork-0.3.0/tests/integration/test_fruits_workflow.py +194 -0
  166. deepwork-0.3.0/tests/integration/test_full_workflow.py +153 -0
  167. deepwork-0.3.0/tests/integration/test_install_flow.py +257 -0
  168. deepwork-0.3.0/tests/shell_script_tests/README.md +76 -0
  169. deepwork-0.3.0/tests/shell_script_tests/__init__.py +1 -0
  170. deepwork-0.3.0/tests/shell_script_tests/conftest.py +131 -0
  171. deepwork-0.3.0/tests/shell_script_tests/test_capture_prompt_work_tree.py +257 -0
  172. deepwork-0.3.0/tests/shell_script_tests/test_hooks.py +746 -0
  173. deepwork-0.3.0/tests/shell_script_tests/test_make_new_job.py +313 -0
  174. deepwork-0.3.0/tests/shell_script_tests/test_rules_stop_hook.py +299 -0
  175. deepwork-0.3.0/tests/shell_script_tests/test_user_prompt_submit.py +166 -0
  176. {deepwork-0.1.1 → deepwork-0.3.0}/tests/unit/test_adapters.py +75 -40
  177. deepwork-0.3.0/tests/unit/test_command_executor.py +197 -0
  178. deepwork-0.3.0/tests/unit/test_generator.py +269 -0
  179. deepwork-0.3.0/tests/unit/test_hook_wrapper.py +557 -0
  180. {deepwork-0.1.1 → deepwork-0.3.0}/tests/unit/test_hooks_syncer.py +59 -13
  181. {deepwork-0.1.1 → deepwork-0.3.0}/tests/unit/test_parser.py +40 -0
  182. deepwork-0.3.0/tests/unit/test_pattern_matcher.py +205 -0
  183. deepwork-0.3.0/tests/unit/test_rules_check.py +105 -0
  184. deepwork-0.3.0/tests/unit/test_rules_parser.py +733 -0
  185. deepwork-0.3.0/tests/unit/test_rules_queue.py +349 -0
  186. deepwork-0.3.0/tests/unit/test_schema_validation.py +323 -0
  187. {deepwork-0.1.1 → deepwork-0.3.0}/tests/unit/test_stop_hooks.py +10 -12
  188. {deepwork-0.1.1 → deepwork-0.3.0}/uv.lock +1 -1
  189. deepwork-0.1.1/.claude/commands/AGENTS.md +0 -5
  190. deepwork-0.1.1/.claude/commands/deepwork_jobs.implement.md +0 -594
  191. deepwork-0.1.1/.claude/commands/deepwork_policy.define.md +0 -264
  192. deepwork-0.1.1/.deepwork/.gitignore +0 -3
  193. deepwork-0.1.1/.deepwork/jobs/deepwork_jobs/job.yml +0 -107
  194. deepwork-0.1.1/.deepwork/jobs/deepwork_jobs/steps/implement.md +0 -433
  195. deepwork-0.1.1/.deepwork/jobs/deepwork_policy/hooks/get_changed_files.sh +0 -30
  196. deepwork-0.1.1/.deepwork/jobs/deepwork_policy/hooks/global_hooks.yml +0 -8
  197. deepwork-0.1.1/.deepwork/jobs/deepwork_policy/hooks/policy_stop_hook.sh +0 -72
  198. deepwork-0.1.1/.deepwork/jobs/deepwork_policy/hooks/user_prompt_submit.sh +0 -17
  199. deepwork-0.1.1/.deepwork/jobs/deepwork_policy/job.yml +0 -35
  200. deepwork-0.1.1/.deepwork/jobs/deepwork_policy/steps/define.md +0 -174
  201. deepwork-0.1.1/.deepwork.policy.yml +0 -71
  202. deepwork-0.1.1/.gemini/commands/deepwork_jobs/implement.toml +0 -531
  203. deepwork-0.1.1/.gemini/commands/deepwork_jobs/refine.toml +0 -538
  204. deepwork-0.1.1/.gemini/commands/deepwork_policy/define.toml +0 -271
  205. deepwork-0.1.1/CHANGELOG.md +0 -41
  206. deepwork-0.1.1/CLA/version_1/CLA_SIGNATORIES.md +0 -25
  207. deepwork-0.1.1/src/deepwork/core/policy_parser.py +0 -295
  208. deepwork-0.1.1/src/deepwork/hooks/__init__.py +0 -1
  209. deepwork-0.1.1/src/deepwork/hooks/evaluate_policies.py +0 -376
  210. deepwork-0.1.1/src/deepwork/schemas/policy_schema.py +0 -78
  211. deepwork-0.1.1/src/deepwork/standard_jobs/deepwork_jobs/job.yml +0 -107
  212. deepwork-0.1.1/src/deepwork/standard_jobs/deepwork_jobs/steps/implement.md +0 -439
  213. deepwork-0.1.1/src/deepwork/standard_jobs/deepwork_policy/hooks/global_hooks.yml +0 -8
  214. deepwork-0.1.1/src/deepwork/standard_jobs/deepwork_policy/hooks/policy_stop_hook.sh +0 -56
  215. deepwork-0.1.1/src/deepwork/standard_jobs/deepwork_policy/job.yml +0 -35
  216. deepwork-0.1.1/src/deepwork/standard_jobs/deepwork_policy/steps/define.md +0 -195
  217. deepwork-0.1.1/src/deepwork/templates/claude/command-job-step.md.jinja +0 -210
  218. deepwork-0.1.1/src/deepwork/templates/gemini/command-job-step.toml.jinja +0 -169
  219. deepwork-0.1.1/tests/fixtures/policies/empty_policy.yml +0 -1
  220. deepwork-0.1.1/tests/fixtures/policies/instructions/security_review.md +0 -8
  221. deepwork-0.1.1/tests/fixtures/policies/invalid_missing_instructions.yml +0 -2
  222. deepwork-0.1.1/tests/fixtures/policies/invalid_missing_trigger.yml +0 -3
  223. deepwork-0.1.1/tests/fixtures/policies/multiple_policies.yml +0 -21
  224. deepwork-0.1.1/tests/fixtures/policies/policy_with_instructions_file.yml +0 -3
  225. deepwork-0.1.1/tests/fixtures/policies/valid_policy.yml +0 -6
  226. deepwork-0.1.1/tests/integration/test_full_workflow.py +0 -139
  227. deepwork-0.1.1/tests/integration/test_install_flow.py +0 -156
  228. deepwork-0.1.1/tests/unit/test_evaluate_policies.py +0 -101
  229. deepwork-0.1.1/tests/unit/test_generator.py +0 -199
  230. deepwork-0.1.1/tests/unit/test_policy_parser.py +0 -404
  231. {deepwork-0.1.1 → deepwork-0.3.0}/.deepwork/config.yml +0 -0
  232. {deepwork-0.1.1 → deepwork-0.3.0}/.deepwork/jobs/add_platform/steps/add_capabilities.md +0 -0
  233. {deepwork-0.1.1 → deepwork-0.3.0}/.deepwork/jobs/add_platform/steps/implement.md +0 -0
  234. {deepwork-0.1.1 → deepwork-0.3.0}/.deepwork/jobs/add_platform/steps/research.md +0 -0
  235. {deepwork-0.1.1/src/deepwork/standard_jobs → deepwork-0.3.0/.deepwork/jobs}/deepwork_jobs/steps/supplemental_file_references.md +0 -0
  236. {deepwork-0.1.1/src/deepwork/standard_jobs/deepwork_policy → deepwork-0.3.0/.deepwork/jobs/deepwork_rules}/hooks/capture_prompt_work_tree.sh +0 -0
  237. {deepwork-0.1.1/src/deepwork/standard_jobs/deepwork_policy → deepwork-0.3.0/.deepwork/jobs/deepwork_rules}/hooks/user_prompt_submit.sh +0 -0
  238. {deepwork-0.1.1 → deepwork-0.3.0}/.github/workflows/release.yml +0 -0
  239. {deepwork-0.1.1 → deepwork-0.3.0}/.gitignore +0 -0
  240. {deepwork-0.1.1 → deepwork-0.3.0}/CLA/version_1/CLA.md +0 -0
  241. {deepwork-0.1.1 → deepwork-0.3.0}/CONTRIBUTING.md +0 -0
  242. {deepwork-0.1.1 → deepwork-0.3.0}/LICENSE.md +0 -0
  243. {deepwork-0.1.1 → deepwork-0.3.0}/doc/platforms/gemini/cli_configuration.md +0 -0
  244. {deepwork-0.1.1 → deepwork-0.3.0}/doc/platforms/gemini/hooks_system.md +0 -0
  245. {deepwork-0.1.1 → deepwork-0.3.0}/job_library/README.md +0 -0
  246. {deepwork-0.1.1 → deepwork-0.3.0}/shell.nix +0 -0
  247. {deepwork-0.1.1 → deepwork-0.3.0}/src/deepwork/__init__.py +0 -0
  248. {deepwork-0.1.1 → deepwork-0.3.0}/src/deepwork/cli/__init__.py +0 -0
  249. {deepwork-0.1.1 → deepwork-0.3.0}/src/deepwork/cli/main.py +0 -0
  250. {deepwork-0.1.1 → deepwork-0.3.0}/src/deepwork/core/__init__.py +0 -0
  251. {deepwork-0.1.1 → deepwork-0.3.0}/src/deepwork/core/detector.py +0 -0
  252. {deepwork-0.1.1 → deepwork-0.3.0}/src/deepwork/schemas/__init__.py +0 -0
  253. {deepwork-0.1.1 → deepwork-0.3.0}/src/deepwork/templates/__init__.py +0 -0
  254. {deepwork-0.1.1 → deepwork-0.3.0}/src/deepwork/utils/__init__.py +0 -0
  255. {deepwork-0.1.1 → deepwork-0.3.0}/src/deepwork/utils/fs.py +0 -0
  256. {deepwork-0.1.1 → deepwork-0.3.0}/src/deepwork/utils/git.py +0 -0
  257. {deepwork-0.1.1 → deepwork-0.3.0}/src/deepwork/utils/validation.py +0 -0
  258. {deepwork-0.1.1 → deepwork-0.3.0}/src/deepwork/utils/yaml_utils.py +0 -0
  259. {deepwork-0.1.1 → deepwork-0.3.0}/tests/__init__.py +0 -0
  260. {deepwork-0.1.1 → deepwork-0.3.0}/tests/fixtures/jobs/complex_job/job.yml +0 -0
  261. {deepwork-0.1.1 → deepwork-0.3.0}/tests/fixtures/jobs/complex_job/steps/comparative_report.md +0 -0
  262. {deepwork-0.1.1 → deepwork-0.3.0}/tests/fixtures/jobs/complex_job/steps/identify_competitors.md +0 -0
  263. {deepwork-0.1.1 → deepwork-0.3.0}/tests/fixtures/jobs/complex_job/steps/primary_research.md +0 -0
  264. {deepwork-0.1.1 → deepwork-0.3.0}/tests/fixtures/jobs/complex_job/steps/secondary_research.md +0 -0
  265. {deepwork-0.1.1 → deepwork-0.3.0}/tests/fixtures/jobs/invalid_job/job.yml +0 -0
  266. {deepwork-0.1.1 → deepwork-0.3.0}/tests/fixtures/jobs/simple_job/job.yml +0 -0
  267. {deepwork-0.1.1 → deepwork-0.3.0}/tests/fixtures/jobs/simple_job/steps/single_step.md +0 -0
  268. {deepwork-0.1.1 → deepwork-0.3.0}/tests/unit/test_detector.py +0 -0
  269. {deepwork-0.1.1 → deepwork-0.3.0}/tests/unit/test_fs.py +0 -0
  270. {deepwork-0.1.1 → deepwork-0.3.0}/tests/unit/test_git.py +0 -0
  271. {deepwork-0.1.1 → deepwork-0.3.0}/tests/unit/test_validation.py +0 -0
  272. {deepwork-0.1.1 → deepwork-0.3.0}/tests/unit/test_yaml_utils.py +0 -0
@@ -1,6 +1,11 @@
1
1
  {
2
2
  "permissions": {
3
3
  "allow": [
4
+ "WebFetch(domain:code.claude.com)",
5
+ "WebFetch(domain:www.anthropic.com)",
6
+ "WebFetch(domain:anthropic.com)",
7
+ "WebFetch(domain:platform.claude.com)",
8
+ "WebFetch(domain:docs.anthropic.com)",
4
9
  "Bash(ls:*)",
5
10
  "Bash(grep:*)",
6
11
  "Bash(find:*)",
@@ -97,7 +102,7 @@
97
102
  "hooks": [
98
103
  {
99
104
  "type": "command",
100
- "command": ".deepwork/jobs/deepwork_policy/hooks/user_prompt_submit.sh"
105
+ "command": ".deepwork/jobs/deepwork_rules/hooks/user_prompt_submit.sh"
101
106
  }
102
107
  ]
103
108
  }
@@ -108,7 +113,7 @@
108
113
  "hooks": [
109
114
  {
110
115
  "type": "command",
111
- "command": ".deepwork/jobs/deepwork_policy/hooks/policy_stop_hook.sh"
116
+ "command": "python -m deepwork.hooks.rules_check"
112
117
  }
113
118
  ]
114
119
  }
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: add_platform
3
+ description: "Add a new AI platform to DeepWork with adapter, templates, and tests"
4
+ ---
5
+
6
+ # add_platform
7
+
8
+ **Multi-step workflow**: Add a new AI platform to DeepWork with adapter, templates, and tests
9
+
10
+ > **CRITICAL**: Always invoke steps using the Skill tool. Never copy/paste step instructions directly.
11
+
12
+ A workflow for adding support for a new AI platform (like Cursor, Windsurf, etc.) to DeepWork.
13
+
14
+ This job guides you through four phases:
15
+ 1. **Research**: Capture the platform's CLI configuration and hooks system documentation
16
+ 2. **Add Capabilities**: Update the job schema and adapters with any new hook events
17
+ 3. **Implement**: Create the platform adapter, templates, tests (100% coverage), and README updates
18
+ 4. **Verify**: Ensure installation works correctly and produces expected files
19
+
20
+ The workflow ensures consistency across all supported platforms and maintains
21
+ comprehensive test coverage for new functionality.
22
+
23
+ **Important Notes**:
24
+ - Only hooks available on slash command definitions should be captured
25
+ - Each existing adapter must be updated when new hooks are added (typically with null values)
26
+ - Tests must achieve 100% coverage for any new functionality
27
+ - Installation verification confirms the platform integrates correctly with existing jobs
28
+
29
+
30
+ ## Available Steps
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)
36
+
37
+ ## Execution Instructions
38
+
39
+ ### Step 1: Analyze Intent
40
+
41
+ Parse any text following `/add_platform` to determine user intent:
42
+ - "research" or related terms → start at `add_platform.research`
43
+ - "add_capabilities" or related terms → start at `add_platform.add_capabilities`
44
+ - "implement" or related terms → start at `add_platform.implement`
45
+ - "verify" or related terms → start at `add_platform.verify`
46
+
47
+ ### Step 2: Invoke Starting Step
48
+
49
+ Use the Skill tool to invoke the identified starting step:
50
+ ```
51
+ Skill tool: add_platform.research
52
+ ```
53
+
54
+ ### Step 3: Continue Workflow Automatically
55
+
56
+ After each step completes:
57
+ 1. Check if there's a next step in the sequence
58
+ 2. Invoke the next step using the Skill tool
59
+ 3. Repeat until workflow is complete or user intervenes
60
+
61
+ ### Handling Ambiguous Intent
62
+
63
+ If user intent is unclear, use AskUserQuestion to clarify:
64
+ - Present available steps as numbered options
65
+ - Let user select the starting point
66
+
67
+ ## Context Files
68
+
69
+ - Job definition: `.deepwork/jobs/add_platform/job.yml`
@@ -1,14 +1,12 @@
1
1
  ---
2
- description: Update job schema and adapters with any new hook events the platform supports
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
3
5
  hooks:
4
6
  Stop:
5
7
  - hooks:
6
8
  - type: prompt
7
9
  prompt: |
8
- You must evaluate whether Claude has met all the below quality criteria for the request.
9
-
10
- ## Quality Criteria
11
-
12
10
  Verify the capability additions meet ALL criteria:
13
11
  1. Any new hooks from the platform (for slash commands only) are added to src/deepwork/schemas/job_schema.py
14
12
  2. All existing adapters in src/deepwork/adapters.py are updated with the new hook fields
@@ -20,54 +18,23 @@ hooks:
20
18
 
21
19
  If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
22
20
 
23
-
24
- ## Instructions
25
-
26
- Review the conversation and determine if ALL quality criteria above have been satisfied.
27
- Look for evidence that each criterion has been addressed.
28
-
29
- If the agent has included `<promise>✓ Quality Criteria Met</promise>` in their response AND
30
- all criteria appear to be met, respond with: {"ok": true}
31
-
32
- If criteria are NOT met AND the promise tag is missing, respond with:
33
- {"ok": false, "reason": "Continue working. [specific feedback on what's wrong]"}
34
21
  ---
35
22
 
36
23
  # add_platform.add_capabilities
37
24
 
38
- **Step 2 of 4** in the **add_platform** workflow
39
-
40
- **Summary**: Add a new AI platform to DeepWork with adapter, templates, and tests
25
+ **Step 2/4** in **add_platform** workflow
41
26
 
42
- ## Job Overview
27
+ > Add a new AI platform to DeepWork with adapter, templates, and tests
43
28
 
44
- A workflow for adding support for a new AI platform (like Cursor, Windsurf, etc.) to DeepWork.
45
-
46
- This job guides you through four phases:
47
- 1. **Research**: Capture the platform's CLI configuration and hooks system documentation
48
- 2. **Add Capabilities**: Update the job schema and adapters with any new hook events
49
- 3. **Implement**: Create the platform adapter, templates, tests (100% coverage), and README updates
50
- 4. **Verify**: Ensure installation works correctly and produces expected files
29
+ ## Prerequisites (Verify First)
51
30
 
52
- The workflow ensures consistency across all supported platforms and maintains
53
- comprehensive test coverage for new functionality.
54
-
55
- **Important Notes**:
56
- - Only hooks available on slash command definitions should be captured
57
- - Each existing adapter must be updated when new hooks are added (typically with null values)
58
- - Tests must achieve 100% coverage for any new functionality
59
- - Installation verification confirms the platform integrates correctly with existing jobs
60
-
61
-
62
- ## Prerequisites
63
-
64
- This step requires completion of the following step(s):
31
+ Before proceeding, confirm these steps are complete:
65
32
  - `/add_platform.research`
66
33
 
67
- Please ensure these steps have been completed before proceeding.
68
-
69
34
  ## Instructions
70
35
 
36
+ **Goal**: Update job schema and adapters with any new hook events the platform supports
37
+
71
38
  # Add Hook Capabilities
72
39
 
73
40
  ## Objective
@@ -205,86 +172,57 @@ For reference, here are common hook patterns across platforms:
205
172
  When you find a new hook type, consider whether it maps to an existing pattern or is genuinely new functionality.
206
173
 
207
174
 
208
- ## Inputs
175
+ ### Job Context
209
176
 
177
+ A workflow for adding support for a new AI platform (like Cursor, Windsurf, etc.) to DeepWork.
210
178
 
211
- ### Required Files
212
-
213
- This step requires the following files from previous steps:
214
- - `hooks_system.md` (from step `research`)
215
-
216
- Make sure to read and use these files as context for this step.
217
-
218
- ## Work Branch Management
219
-
220
- All work for this job should be done on a dedicated work branch:
221
-
222
- 1. **Check current branch**:
223
- - If already on a work branch for this job (format: `deepwork/add_platform-[instance]-[date]`), continue using it
224
- - If on main/master, create a new work branch
225
-
226
- 2. **Create work branch** (if needed):
227
- ```bash
228
- git checkout -b deepwork/add_platform-[instance]-$(date +%Y%m%d)
229
- ```
230
- Replace `[instance]` with a descriptive identifier (e.g., `acme`, `q1-launch`, etc.)
179
+ This job guides you through four phases:
180
+ 1. **Research**: Capture the platform's CLI configuration and hooks system documentation
181
+ 2. **Add Capabilities**: Update the job schema and adapters with any new hook events
182
+ 3. **Implement**: Create the platform adapter, templates, tests (100% coverage), and README updates
183
+ 4. **Verify**: Ensure installation works correctly and produces expected files
231
184
 
232
- ## Output Requirements
185
+ The workflow ensures consistency across all supported platforms and maintains
186
+ comprehensive test coverage for new functionality.
233
187
 
234
- Create the following output(s):
235
- - `job_schema.py`- `adapters.py`
236
- Ensure all outputs are:
237
- - Well-formatted and complete
238
- - Ready for review or use by subsequent steps
188
+ **Important Notes**:
189
+ - Only hooks available on slash command definitions should be captured
190
+ - Each existing adapter must be updated when new hooks are added (typically with null values)
191
+ - Tests must achieve 100% coverage for any new functionality
192
+ - Installation verification confirms the platform integrates correctly with existing jobs
239
193
 
240
- ## Quality Validation Loop
241
194
 
242
- This step uses an iterative quality validation loop. After completing your work, stop hook(s) will evaluate whether the outputs meet quality criteria. If criteria are not met, you will be prompted to continue refining.
195
+ ## Required Inputs
243
196
 
244
- ### Quality Criteria
245
- Verify the capability additions meet ALL criteria:
246
- 1. Any new hooks from the platform (for slash commands only) are added to src/deepwork/schemas/job_schema.py
247
- 2. All existing adapters in src/deepwork/adapters.py are updated with the new hook fields
248
- (set to None/null if the platform doesn't support that hook)
249
- 3. Only hooks available on slash command definitions are added (not general CLI hooks)
250
- 4. job_schema.py remains valid Python with no syntax errors
251
- 5. adapters.py remains consistent - all adapters have the same hook fields
252
- 6. If no new hooks are needed, document why in a comment
253
197
 
254
- If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
198
+ **Files from Previous Steps** - Read these first:
199
+ - `hooks_system.md` (from `research`)
255
200
 
201
+ ## Work Branch
256
202
 
257
- ### Completion Promise
203
+ Use branch format: `deepwork/add_platform-[instance]-YYYYMMDD`
258
204
 
259
- To signal that all quality criteria have been met, include this tag in your final response:
205
+ - If on a matching work branch: continue using it
206
+ - If on main/master: create new branch with `git checkout -b deepwork/add_platform-[instance]-$(date +%Y%m%d)`
260
207
 
261
- ```
262
- <promise>✓ Quality Criteria Met</promise>
263
- ```
208
+ ## Outputs
264
209
 
265
- **Important**: Only include this promise tag when you have verified that ALL quality criteria above are satisfied. The validation loop will continue until this promise is detected.
210
+ **Required outputs**:
211
+ - `job_schema.py`- `adapters.py`
212
+ ## Quality Validation
266
213
 
267
- ## Completion
214
+ Stop hooks will automatically validate your work. The loop continues until all criteria pass.
268
215
 
269
- After completing this step:
270
216
 
271
- 1. **Verify outputs**: Confirm all required files have been created
272
217
 
273
- 2. **Inform the user**:
274
- - Step 2 of 4 is complete
275
- - Outputs created: job_schema.py, adapters.py
276
- - Ready to proceed to next step: `/add_platform.implement`
218
+ **To complete**: Include `<promise>✓ Quality Criteria Met</promise>` in your final response only after verifying ALL criteria are satisfied.
277
219
 
278
- ## Next Step
220
+ ## On Completion
279
221
 
280
- To continue the workflow, run:
281
- ```
282
- /add_platform.implement
283
- ```
222
+ 1. Verify outputs are created
223
+ 2. Inform user: "Step 2/4 complete, outputs: job_schema.py, adapters.py"
224
+ 3. **Continue workflow**: Use Skill tool to invoke `/add_platform.implement`
284
225
 
285
226
  ---
286
227
 
287
- ## Context Files
288
-
289
- - Job definition: `.deepwork/jobs/add_platform/job.yml`
290
- - Step instructions: `.deepwork/jobs/add_platform/steps/add_capabilities.md`
228
+ **Reference files**: `.deepwork/jobs/add_platform/job.yml`, `.deepwork/jobs/add_platform/steps/add_capabilities.md`
@@ -1,5 +1,7 @@
1
1
  ---
2
- description: Add platform adapter, templates, tests with 100% coverage, and README documentation
2
+ name: add_platform.implement
3
+ description: "Add platform adapter, templates, tests with 100% coverage, and README documentation"
4
+ user-invocable: false
3
5
  hooks:
4
6
  Stop:
5
7
  - hooks:
@@ -7,10 +9,6 @@ hooks:
7
9
  command: ".deepwork/jobs/add_platform/hooks/run_tests.sh"
8
10
  - type: prompt
9
11
  prompt: |
10
- You must evaluate whether Claude has met all the below quality criteria for the request.
11
-
12
- ## Quality Criteria
13
-
14
12
  Verify the implementation meets ALL criteria:
15
13
  1. Platform adapter class is added to src/deepwork/adapters.py
16
14
  2. Templates exist in src/deepwork/templates/<platform>/ with appropriate command structure
@@ -24,55 +22,24 @@ hooks:
24
22
 
25
23
  If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
26
24
 
27
-
28
- ## Instructions
29
-
30
- Review the conversation and determine if ALL quality criteria above have been satisfied.
31
- Look for evidence that each criterion has been addressed.
32
-
33
- If the agent has included `<promise>✓ Quality Criteria Met</promise>` in their response AND
34
- all criteria appear to be met, respond with: {"ok": true}
35
-
36
- If criteria are NOT met AND the promise tag is missing, respond with:
37
- {"ok": false, "reason": "Continue working. [specific feedback on what's wrong]"}
38
25
  ---
39
26
 
40
27
  # add_platform.implement
41
28
 
42
- **Step 3 of 4** in the **add_platform** workflow
43
-
44
- **Summary**: Add a new AI platform to DeepWork with adapter, templates, and tests
45
-
46
- ## Job Overview
47
-
48
- A workflow for adding support for a new AI platform (like Cursor, Windsurf, etc.) to DeepWork.
49
-
50
- This job guides you through four phases:
51
- 1. **Research**: Capture the platform's CLI configuration and hooks system documentation
52
- 2. **Add Capabilities**: Update the job schema and adapters with any new hook events
53
- 3. **Implement**: Create the platform adapter, templates, tests (100% coverage), and README updates
54
- 4. **Verify**: Ensure installation works correctly and produces expected files
55
-
56
- The workflow ensures consistency across all supported platforms and maintains
57
- comprehensive test coverage for new functionality.
58
-
59
- **Important Notes**:
60
- - Only hooks available on slash command definitions should be captured
61
- - Each existing adapter must be updated when new hooks are added (typically with null values)
62
- - Tests must achieve 100% coverage for any new functionality
63
- - Installation verification confirms the platform integrates correctly with existing jobs
29
+ **Step 3/4** in **add_platform** workflow
64
30
 
31
+ > Add a new AI platform to DeepWork with adapter, templates, and tests
65
32
 
66
- ## Prerequisites
33
+ ## Prerequisites (Verify First)
67
34
 
68
- This step requires completion of the following step(s):
35
+ Before proceeding, confirm these steps are complete:
69
36
  - `/add_platform.research`
70
37
  - `/add_platform.add_capabilities`
71
38
 
72
- Please ensure these steps have been completed before proceeding.
73
-
74
39
  ## Instructions
75
40
 
41
+ **Goal**: Add platform adapter, templates, tests with 100% coverage, and README documentation
42
+
76
43
  # Implement Platform Support
77
44
 
78
45
  ## Objective
@@ -301,93 +268,60 @@ The templates use Jinja2 and should produce files that match exactly what the pl
301
268
  - Template syntax errors often show up at runtime - test early
302
269
 
303
270
 
304
- ## Inputs
305
-
271
+ ### Job Context
306
272
 
307
- ### Required Files
308
-
309
- This step requires the following files from previous steps:
310
- - `job_schema.py` (from step `add_capabilities`)
311
- - `adapters.py` (from step `add_capabilities`)
312
- - `cli_configuration.md` (from step `research`)
313
-
314
- Make sure to read and use these files as context for this step.
315
-
316
- ## Work Branch Management
317
-
318
- All work for this job should be done on a dedicated work branch:
319
-
320
- 1. **Check current branch**:
321
- - If already on a work branch for this job (format: `deepwork/add_platform-[instance]-[date]`), continue using it
322
- - If on main/master, create a new work branch
323
-
324
- 2. **Create work branch** (if needed):
325
- ```bash
326
- git checkout -b deepwork/add_platform-[instance]-$(date +%Y%m%d)
327
- ```
328
- Replace `[instance]` with a descriptive identifier (e.g., `acme`, `q1-launch`, etc.)
273
+ A workflow for adding support for a new AI platform (like Cursor, Windsurf, etc.) to DeepWork.
329
274
 
330
- ## Output Requirements
275
+ This job guides you through four phases:
276
+ 1. **Research**: Capture the platform's CLI configuration and hooks system documentation
277
+ 2. **Add Capabilities**: Update the job schema and adapters with any new hook events
278
+ 3. **Implement**: Create the platform adapter, templates, tests (100% coverage), and README updates
279
+ 4. **Verify**: Ensure installation works correctly and produces expected files
331
280
 
332
- Create the following output(s):
333
- - `templates/` (directory)- `tests/` (directory)- `README.md`
334
- Ensure all outputs are:
335
- - Well-formatted and complete
336
- - Ready for review or use by subsequent steps
281
+ The workflow ensures consistency across all supported platforms and maintains
282
+ comprehensive test coverage for new functionality.
337
283
 
338
- ## Quality Validation Loop
284
+ **Important Notes**:
285
+ - Only hooks available on slash command definitions should be captured
286
+ - Each existing adapter must be updated when new hooks are added (typically with null values)
287
+ - Tests must achieve 100% coverage for any new functionality
288
+ - Installation verification confirms the platform integrates correctly with existing jobs
339
289
 
340
- This step uses an iterative quality validation loop. After completing your work, stop hook(s) will evaluate whether the outputs meet quality criteria. If criteria are not met, you will be prompted to continue refining.
341
290
 
342
- **Validation Script**: `.deepwork/jobs/add_platform/hooks/run_tests.sh`
291
+ ## Required Inputs
343
292
 
344
- The validation script will be executed automatically when you attempt to complete this step.
345
- ### Quality Criteria (2)
346
- Verify the implementation meets ALL criteria:
347
- 1. Platform adapter class is added to src/deepwork/adapters.py
348
- 2. Templates exist in src/deepwork/templates/<platform>/ with appropriate command structure
349
- 3. Tests exist for all new functionality
350
- 4. Test coverage is 100% for new code (run: uv run pytest --cov)
351
- 5. All tests pass
352
- 6. README.md is updated with:
353
- - New platform listed in supported platforms
354
- - Installation instructions for the platform
355
- - Any platform-specific notes
356
293
 
357
- If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
294
+ **Files from Previous Steps** - Read these first:
295
+ - `job_schema.py` (from `add_capabilities`)
296
+ - `adapters.py` (from `add_capabilities`)
297
+ - `cli_configuration.md` (from `research`)
358
298
 
299
+ ## Work Branch
359
300
 
360
- ### Completion Promise
301
+ Use branch format: `deepwork/add_platform-[instance]-YYYYMMDD`
361
302
 
362
- To signal that all quality criteria have been met, include this tag in your final response:
303
+ - If on a matching work branch: continue using it
304
+ - If on main/master: create new branch with `git checkout -b deepwork/add_platform-[instance]-$(date +%Y%m%d)`
363
305
 
364
- ```
365
- <promise>✓ Quality Criteria Met</promise>
366
- ```
306
+ ## Outputs
367
307
 
368
- **Important**: Only include this promise tag when you have verified that ALL quality criteria above are satisfied. The validation loop will continue until this promise is detected.
308
+ **Required outputs**:
309
+ - `templates/` (directory)- `tests/` (directory)- `README.md`
310
+ ## Quality Validation
369
311
 
370
- ## Completion
312
+ Stop hooks will automatically validate your work. The loop continues until all criteria pass.
371
313
 
372
- After completing this step:
373
314
 
374
- 1. **Verify outputs**: Confirm all required files have been created
315
+ **Validation script**: `.deepwork/jobs/add_platform/hooks/run_tests.sh` (runs automatically)
375
316
 
376
- 2. **Inform the user**:
377
- - Step 3 of 4 is complete
378
- - Outputs created: templates/, tests/, README.md
379
- - Ready to proceed to next step: `/add_platform.verify`
317
+ **To complete**: Include `<promise>✓ Quality Criteria Met</promise>` in your final response only after verifying ALL criteria are satisfied.
380
318
 
381
- ## Next Step
319
+ ## On Completion
382
320
 
383
- To continue the workflow, run:
384
- ```
385
- /add_platform.verify
386
- ```
321
+ 1. Verify outputs are created
322
+ 2. Inform user: "Step 3/4 complete, outputs: templates/, tests/, README.md"
323
+ 3. **Continue workflow**: Use Skill tool to invoke `/add_platform.verify`
387
324
 
388
325
  ---
389
326
 
390
- ## Context Files
391
-
392
- - Job definition: `.deepwork/jobs/add_platform/job.yml`
393
- - Step instructions: `.deepwork/jobs/add_platform/steps/implement.md`
327
+ **Reference files**: `.deepwork/jobs/add_platform/job.yml`, `.deepwork/jobs/add_platform/steps/implement.md`