deepwork 0.1.0__tar.gz → 0.2.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 (171) hide show
  1. {deepwork-0.1.0 → deepwork-0.2.0}/.claude/commands/deepwork_jobs.define.md +56 -81
  2. {deepwork-0.1.0 → deepwork-0.2.0}/.claude/commands/deepwork_jobs.implement.md +60 -256
  3. deepwork-0.2.0/.claude/commands/deepwork_jobs.learn.md +441 -0
  4. {deepwork-0.1.0 → deepwork-0.2.0}/.claude/commands/deepwork_policy.define.md +27 -3
  5. deepwork-0.2.0/.claude/commands/update.job.md +206 -0
  6. deepwork-0.2.0/.deepwork/jobs/deepwork_jobs/AGENTS.md +60 -0
  7. deepwork-0.2.0/.deepwork/jobs/deepwork_jobs/job.yml +114 -0
  8. deepwork-0.2.0/.deepwork/jobs/deepwork_jobs/make_new_job.sh +134 -0
  9. {deepwork-0.1.0 → deepwork-0.2.0}/.deepwork/jobs/deepwork_jobs/steps/define.md +35 -63
  10. {deepwork-0.1.0 → deepwork-0.2.0}/.deepwork/jobs/deepwork_jobs/steps/implement.md +45 -242
  11. deepwork-0.2.0/.deepwork/jobs/deepwork_jobs/steps/learn.md +288 -0
  12. deepwork-0.2.0/.deepwork/jobs/deepwork_jobs/steps/supplemental_file_references.md +40 -0
  13. deepwork-0.2.0/.deepwork/jobs/deepwork_jobs/templates/agents.md.template +32 -0
  14. deepwork-0.2.0/.deepwork/jobs/deepwork_jobs/templates/job.yml.example +73 -0
  15. deepwork-0.2.0/.deepwork/jobs/deepwork_jobs/templates/job.yml.template +56 -0
  16. deepwork-0.2.0/.deepwork/jobs/deepwork_jobs/templates/step_instruction.md.example +82 -0
  17. deepwork-0.2.0/.deepwork/jobs/deepwork_jobs/templates/step_instruction.md.template +58 -0
  18. deepwork-0.1.0/src/deepwork/standard_jobs/deepwork_policy/hooks/capture_work_tree.sh → deepwork-0.2.0/.deepwork/jobs/deepwork_policy/hooks/capture_prompt_work_tree.sh +3 -2
  19. {deepwork-0.1.0/src/deepwork/standard_jobs → deepwork-0.2.0/.deepwork/jobs}/deepwork_policy/hooks/policy_stop_hook.sh +3 -19
  20. deepwork-0.2.0/.deepwork/jobs/deepwork_policy/hooks/user_prompt_submit.sh +16 -0
  21. {deepwork-0.1.0/src/deepwork/standard_jobs → deepwork-0.2.0/.deepwork/jobs}/deepwork_policy/job.yml +3 -1
  22. {deepwork-0.1.0/src/deepwork/standard_jobs → deepwork-0.2.0/.deepwork/jobs}/deepwork_policy/steps/define.md +27 -3
  23. deepwork-0.2.0/.deepwork/jobs/update/job.yml +42 -0
  24. deepwork-0.2.0/.deepwork/jobs/update/steps/job.md +73 -0
  25. {deepwork-0.1.0 → deepwork-0.2.0}/.deepwork.policy.yml +29 -1
  26. {deepwork-0.1.0 → deepwork-0.2.0}/.gemini/commands/deepwork_jobs/define.toml +40 -67
  27. {deepwork-0.1.0 → deepwork-0.2.0}/.gemini/commands/deepwork_jobs/implement.toml +54 -250
  28. deepwork-0.2.0/.gemini/commands/deepwork_jobs/learn.toml +380 -0
  29. {deepwork-0.1.0 → deepwork-0.2.0}/.gemini/commands/deepwork_jobs/refine.toml +2 -2
  30. {deepwork-0.1.0 → deepwork-0.2.0}/.gemini/commands/deepwork_policy/define.toml +27 -3
  31. deepwork-0.2.0/.gemini/commands/update/job.toml +162 -0
  32. deepwork-0.2.0/.github/workflows/README.md +100 -0
  33. {deepwork-0.1.0 → deepwork-0.2.0}/.github/workflows/cla.yml +19 -9
  34. deepwork-0.2.0/.github/workflows/claude-code-test.yml +364 -0
  35. {deepwork-0.1.0 → deepwork-0.2.0}/.github/workflows/validate.yml +8 -1
  36. deepwork-0.2.0/CHANGELOG.md +63 -0
  37. {deepwork-0.1.0 → deepwork-0.2.0/CLA/version_1}/CLA.md +1 -1
  38. deepwork-0.2.0/CLA/version_1/CLA_SIGNATORIES.md +20 -0
  39. {deepwork-0.1.0 → deepwork-0.2.0}/CONTRIBUTING.md +4 -4
  40. {deepwork-0.1.0 → deepwork-0.2.0}/PKG-INFO +52 -128
  41. {deepwork-0.1.0 → deepwork-0.2.0}/README.md +51 -127
  42. {deepwork-0.1.0 → deepwork-0.2.0}/claude.md +15 -0
  43. {deepwork-0.1.0 → deepwork-0.2.0}/doc/architecture.md +10 -9
  44. {deepwork-0.1.0 → deepwork-0.2.0}/pyproject.toml +1 -1
  45. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/cli/install.py +48 -0
  46. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/cli/sync.py +9 -0
  47. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/core/adapters.py +17 -0
  48. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/core/policy_parser.py +10 -0
  49. deepwork-0.2.0/src/deepwork/hooks/evaluate_policies.py +376 -0
  50. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/schemas/policy_schema.py +10 -0
  51. deepwork-0.2.0/src/deepwork/standard_jobs/deepwork_jobs/AGENTS.md +60 -0
  52. {deepwork-0.1.0/.deepwork/jobs → deepwork-0.2.0/src/deepwork/standard_jobs}/deepwork_jobs/job.yml +30 -22
  53. deepwork-0.2.0/src/deepwork/standard_jobs/deepwork_jobs/make_new_job.sh +134 -0
  54. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/standard_jobs/deepwork_jobs/steps/define.md +26 -57
  55. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/standard_jobs/deepwork_jobs/steps/implement.md +43 -242
  56. deepwork-0.2.0/src/deepwork/standard_jobs/deepwork_jobs/steps/learn.md +288 -0
  57. deepwork-0.2.0/src/deepwork/standard_jobs/deepwork_jobs/steps/supplemental_file_references.md +40 -0
  58. deepwork-0.2.0/src/deepwork/standard_jobs/deepwork_jobs/templates/agents.md.template +32 -0
  59. deepwork-0.2.0/src/deepwork/standard_jobs/deepwork_jobs/templates/job.yml.example +73 -0
  60. deepwork-0.2.0/src/deepwork/standard_jobs/deepwork_jobs/templates/job.yml.template +56 -0
  61. deepwork-0.2.0/src/deepwork/standard_jobs/deepwork_jobs/templates/step_instruction.md.example +82 -0
  62. deepwork-0.2.0/src/deepwork/standard_jobs/deepwork_jobs/templates/step_instruction.md.template +58 -0
  63. deepwork-0.1.0/.deepwork/jobs/deepwork_policy/hooks/capture_work_tree.sh → deepwork-0.2.0/src/deepwork/standard_jobs/deepwork_policy/hooks/capture_prompt_work_tree.sh +3 -2
  64. {deepwork-0.1.0/.deepwork/jobs → deepwork-0.2.0/src/deepwork/standard_jobs}/deepwork_policy/hooks/policy_stop_hook.sh +3 -19
  65. deepwork-0.2.0/src/deepwork/standard_jobs/deepwork_policy/hooks/user_prompt_submit.sh +16 -0
  66. {deepwork-0.1.0/.deepwork/jobs → deepwork-0.2.0/src/deepwork/standard_jobs}/deepwork_policy/steps/define.md +22 -1
  67. deepwork-0.2.0/src/deepwork/templates/default_policy.yml +53 -0
  68. deepwork-0.2.0/tests/e2e/__init__.py +1 -0
  69. deepwork-0.2.0/tests/e2e/test_claude_code_integration.py +325 -0
  70. deepwork-0.2.0/tests/fixtures/jobs/fruits/job.yml +40 -0
  71. deepwork-0.2.0/tests/fixtures/jobs/fruits/steps/classify.md +83 -0
  72. deepwork-0.2.0/tests/fixtures/jobs/fruits/steps/identify.md +64 -0
  73. deepwork-0.2.0/tests/integration/test_fruits_workflow.py +189 -0
  74. {deepwork-0.1.0 → deepwork-0.2.0}/tests/integration/test_install_flow.py +54 -2
  75. deepwork-0.2.0/tests/shell_script_tests/README.md +76 -0
  76. deepwork-0.2.0/tests/shell_script_tests/__init__.py +1 -0
  77. deepwork-0.2.0/tests/shell_script_tests/conftest.py +115 -0
  78. deepwork-0.2.0/tests/shell_script_tests/test_capture_prompt_work_tree.py +257 -0
  79. deepwork-0.2.0/tests/shell_script_tests/test_hooks_json_format.py +363 -0
  80. deepwork-0.2.0/tests/shell_script_tests/test_make_new_job.py +313 -0
  81. deepwork-0.2.0/tests/shell_script_tests/test_policy_stop_hook.py +287 -0
  82. deepwork-0.2.0/tests/shell_script_tests/test_user_prompt_submit.py +166 -0
  83. {deepwork-0.1.0 → deepwork-0.2.0}/tests/unit/test_policy_parser.py +49 -0
  84. {deepwork-0.1.0 → deepwork-0.2.0}/uv.lock +1 -1
  85. deepwork-0.1.0/.claude/commands/deepwork_jobs.refine.md +0 -595
  86. deepwork-0.1.0/.deepwork/jobs/deepwork_jobs/steps/refine.md +0 -447
  87. deepwork-0.1.0/.deepwork/jobs/deepwork_policy/hooks/get_changed_files.sh +0 -30
  88. deepwork-0.1.0/.deepwork/jobs/deepwork_policy/hooks/user_prompt_submit.sh +0 -17
  89. deepwork-0.1.0/.github/CLA_SETUP.md +0 -171
  90. deepwork-0.1.0/.github/CLA_SIGNATORIES.md +0 -27
  91. deepwork-0.1.0/CHANGELOG.md +0 -12
  92. deepwork-0.1.0/src/deepwork/hooks/evaluate_policies.py +0 -159
  93. deepwork-0.1.0/src/deepwork/standard_jobs/deepwork_jobs/job.yml +0 -102
  94. deepwork-0.1.0/src/deepwork/standard_jobs/deepwork_jobs/steps/refine.md +0 -447
  95. deepwork-0.1.0/src/deepwork/standard_jobs/deepwork_policy/hooks/get_changed_files.sh +0 -30
  96. deepwork-0.1.0/src/deepwork/standard_jobs/deepwork_policy/hooks/user_prompt_submit.sh +0 -17
  97. {deepwork-0.1.0 → deepwork-0.2.0}/.claude/commands/AGENTS.md +0 -0
  98. {deepwork-0.1.0 → deepwork-0.2.0}/.claude/commands/add_platform.add_capabilities.md +0 -0
  99. {deepwork-0.1.0 → deepwork-0.2.0}/.claude/commands/add_platform.implement.md +0 -0
  100. {deepwork-0.1.0 → deepwork-0.2.0}/.claude/commands/add_platform.research.md +0 -0
  101. {deepwork-0.1.0 → deepwork-0.2.0}/.claude/commands/add_platform.verify.md +0 -0
  102. {deepwork-0.1.0 → deepwork-0.2.0}/.claude/settings.json +0 -0
  103. {deepwork-0.1.0 → deepwork-0.2.0}/.deepwork/.gitignore +0 -0
  104. {deepwork-0.1.0 → deepwork-0.2.0}/.deepwork/config.yml +0 -0
  105. {deepwork-0.1.0 → deepwork-0.2.0}/.deepwork/jobs/add_platform/job.yml +0 -0
  106. {deepwork-0.1.0 → deepwork-0.2.0}/.deepwork/jobs/add_platform/steps/add_capabilities.md +0 -0
  107. {deepwork-0.1.0 → deepwork-0.2.0}/.deepwork/jobs/add_platform/steps/implement.md +0 -0
  108. {deepwork-0.1.0 → deepwork-0.2.0}/.deepwork/jobs/add_platform/steps/research.md +0 -0
  109. {deepwork-0.1.0 → deepwork-0.2.0}/.deepwork/jobs/add_platform/steps/verify.md +0 -0
  110. {deepwork-0.1.0 → deepwork-0.2.0}/.deepwork/jobs/deepwork_policy/hooks/global_hooks.yml +0 -0
  111. {deepwork-0.1.0 → deepwork-0.2.0}/.gemini/commands/add_platform/add_capabilities.toml +0 -0
  112. {deepwork-0.1.0 → deepwork-0.2.0}/.gemini/commands/add_platform/implement.toml +0 -0
  113. {deepwork-0.1.0 → deepwork-0.2.0}/.gemini/commands/add_platform/research.toml +0 -0
  114. {deepwork-0.1.0 → deepwork-0.2.0}/.gemini/commands/add_platform/verify.toml +0 -0
  115. {deepwork-0.1.0 → deepwork-0.2.0}/.github/workflows/release.yml +0 -0
  116. {deepwork-0.1.0 → deepwork-0.2.0}/.gitignore +0 -0
  117. {deepwork-0.1.0 → deepwork-0.2.0}/LICENSE.md +0 -0
  118. {deepwork-0.1.0 → deepwork-0.2.0}/doc/platforms/gemini/cli_configuration.md +0 -0
  119. {deepwork-0.1.0 → deepwork-0.2.0}/doc/platforms/gemini/hooks_system.md +0 -0
  120. {deepwork-0.1.0 → deepwork-0.2.0}/job_library/README.md +0 -0
  121. {deepwork-0.1.0 → deepwork-0.2.0}/shell.nix +0 -0
  122. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/__init__.py +0 -0
  123. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/cli/__init__.py +0 -0
  124. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/cli/main.py +0 -0
  125. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/core/__init__.py +0 -0
  126. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/core/detector.py +0 -0
  127. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/core/generator.py +0 -0
  128. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/core/hooks_syncer.py +0 -0
  129. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/core/parser.py +0 -0
  130. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/hooks/__init__.py +0 -0
  131. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/schemas/__init__.py +0 -0
  132. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/schemas/job_schema.py +0 -0
  133. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/standard_jobs/deepwork_policy/hooks/global_hooks.yml +0 -0
  134. {deepwork-0.1.0/.deepwork/jobs → deepwork-0.2.0/src/deepwork/standard_jobs}/deepwork_policy/job.yml +0 -0
  135. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/templates/__init__.py +0 -0
  136. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/templates/claude/command-job-step.md.jinja +0 -0
  137. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/templates/gemini/command-job-step.toml.jinja +0 -0
  138. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/utils/__init__.py +0 -0
  139. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/utils/fs.py +0 -0
  140. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/utils/git.py +0 -0
  141. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/utils/validation.py +0 -0
  142. {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/utils/yaml_utils.py +0 -0
  143. {deepwork-0.1.0 → deepwork-0.2.0}/tests/__init__.py +0 -0
  144. {deepwork-0.1.0 → deepwork-0.2.0}/tests/conftest.py +0 -0
  145. {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/jobs/complex_job/job.yml +0 -0
  146. {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/jobs/complex_job/steps/comparative_report.md +0 -0
  147. {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/jobs/complex_job/steps/identify_competitors.md +0 -0
  148. {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/jobs/complex_job/steps/primary_research.md +0 -0
  149. {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/jobs/complex_job/steps/secondary_research.md +0 -0
  150. {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/jobs/invalid_job/job.yml +0 -0
  151. {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/jobs/simple_job/job.yml +0 -0
  152. {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/jobs/simple_job/steps/single_step.md +0 -0
  153. {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/policies/empty_policy.yml +0 -0
  154. {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/policies/instructions/security_review.md +0 -0
  155. {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/policies/invalid_missing_instructions.yml +0 -0
  156. {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/policies/invalid_missing_trigger.yml +0 -0
  157. {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/policies/multiple_policies.yml +0 -0
  158. {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/policies/policy_with_instructions_file.yml +0 -0
  159. {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/policies/valid_policy.yml +0 -0
  160. {deepwork-0.1.0 → deepwork-0.2.0}/tests/integration/test_full_workflow.py +0 -0
  161. {deepwork-0.1.0 → deepwork-0.2.0}/tests/unit/test_adapters.py +0 -0
  162. {deepwork-0.1.0 → deepwork-0.2.0}/tests/unit/test_detector.py +0 -0
  163. {deepwork-0.1.0 → deepwork-0.2.0}/tests/unit/test_evaluate_policies.py +0 -0
  164. {deepwork-0.1.0 → deepwork-0.2.0}/tests/unit/test_fs.py +0 -0
  165. {deepwork-0.1.0 → deepwork-0.2.0}/tests/unit/test_generator.py +0 -0
  166. {deepwork-0.1.0 → deepwork-0.2.0}/tests/unit/test_git.py +0 -0
  167. {deepwork-0.1.0 → deepwork-0.2.0}/tests/unit/test_hooks_syncer.py +0 -0
  168. {deepwork-0.1.0 → deepwork-0.2.0}/tests/unit/test_parser.py +0 -0
  169. {deepwork-0.1.0 → deepwork-0.2.0}/tests/unit/test_stop_hooks.py +0 -0
  170. {deepwork-0.1.0 → deepwork-0.2.0}/tests/unit/test_validation.py +0 -0
  171. {deepwork-0.1.0 → deepwork-0.2.0}/tests/unit/test_yaml_utils.py +0 -0
@@ -11,13 +11,14 @@ hooks:
11
11
 
12
12
  Verify the job.yml output meets ALL quality criteria before completing:
13
13
 
14
- 1. **User Understanding**: Did you fully understand the user's workflow through interactive Q&A?
15
- 2. **Clear Inputs/Outputs**: Does every step have clearly defined inputs and outputs?
16
- 3. **Logical Dependencies**: Do step dependencies make sense and avoid circular references?
17
- 4. **Concise Summary**: Is the summary under 200 characters and descriptive?
18
- 5. **Rich Description**: Does the description provide enough context for future refinement?
19
- 6. **Valid Schema**: Does the job.yml follow the required schema (name, version, summary, steps)?
20
- 7. **File Created**: Has the job.yml file been created in `.deepwork/jobs/[job_name]/job.yml`?
14
+ 1. **User Understanding**: Did you fully understand the user's workflow by asking structured questions?
15
+ 2. **Structured Questions Used**: Did you ask structured questions (using the AskUserQuestion tool) to gather user input?
16
+ 3. **Clear Inputs/Outputs**: Does every step have clearly defined inputs and outputs?
17
+ 4. **Logical Dependencies**: Do step dependencies make sense and avoid circular references?
18
+ 5. **Concise Summary**: Is the summary under 200 characters and descriptive?
19
+ 6. **Rich Description**: Does the description provide enough context for future refinement?
20
+ 7. **Valid Schema**: Does the job.yml follow the required schema (name, version, summary, steps)?
21
+ 8. **File Created**: Has the job.yml file been created in `.deepwork/jobs/[job_name]/job.yml`?
21
22
 
22
23
  If ANY criterion is not met, continue working to address it.
23
24
  If ALL criteria are satisfied, include `<promise>✓ Quality Criteria Met</promise>` in your response.
@@ -44,14 +45,15 @@ hooks:
44
45
  ## Job Overview
45
46
 
46
47
  Core commands for managing DeepWork jobs. These commands help you define new multi-step
47
- workflows and refine existing ones.
48
+ workflows and learn from running them.
48
49
 
49
50
  The `define` command guides you through an interactive process to create a new job by
50
- asking detailed questions about your workflow, understanding each step's inputs and outputs,
51
+ asking structured questions about your workflow, understanding each step's inputs and outputs,
51
52
  and generating all necessary files.
52
53
 
53
- The `refine` command helps you modify existing jobs safely by understanding what you want
54
- to change, validating the impact, and ensuring consistency across your workflow.
54
+ The `learn` command reflects on conversations where DeepWork jobs were run, identifies
55
+ confusion or inefficiencies, and improves job instructions. It also captures bespoke
56
+ learnings specific to the current run into AGENTS.md files in the working folder.
55
57
 
56
58
 
57
59
 
@@ -65,13 +67,15 @@ Create a `job.yml` specification file that defines the structure of a new DeepWo
65
67
 
66
68
  ## Task
67
69
 
68
- Guide the user through defining a job specification by asking clarifying questions. **Do not attempt to create the specification without first fully understanding the user's needs.**
70
+ Guide the user through defining a job specification by asking structured questions. **Do not attempt to create the specification without first fully understanding the user's needs.**
71
+
72
+ **Important**: Use the AskUserQuestion tool to ask structured questions when gathering information from the user. This provides a better user experience with clear options and guided choices.
69
73
 
70
74
  The output of this step is **only** the `job.yml` file - a complete specification of the workflow. The actual step instruction files will be created in the next step (`implement`).
71
75
 
72
76
  ### Step 1: Understand the Job Purpose
73
77
 
74
- Start by asking questions to understand what the user wants to accomplish:
78
+ Start by asking structured questions to understand what the user wants to accomplish:
75
79
 
76
80
  1. **What is the overall goal of this workflow?**
77
81
  - What complex task are they trying to accomplish?
@@ -90,7 +94,7 @@ Start by asking questions to understand what the user wants to accomplish:
90
94
 
91
95
  ### Step 2: Define Each Step
92
96
 
93
- For each major phase they mentioned, ask detailed questions:
97
+ For each major phase they mentioned, ask structured questions to gather details:
94
98
 
95
99
  1. **Step Purpose**
96
100
  - What exactly does this step accomplish?
@@ -121,6 +125,12 @@ For each major phase they mentioned, ask detailed questions:
121
125
 
122
126
  **Note**: You're gathering this information to understand what instructions will be needed, but you won't create the instruction files yet - that happens in the `implement` step.
123
127
 
128
+ ### Capability Considerations
129
+
130
+ When defining steps, identify any that require specialized tools:
131
+
132
+ **Browser Automation**: If any step involves web scraping, form filling, interactive browsing, UI testing, or research requiring website visits, ask the user what browser tools they have available. For Claude Code users, **Claude in Chrome** (Anthropic's browser extension) has been tested with DeepWork and is recommended for new users. Don't assume a default—confirm the tool before designing browser-dependent steps.
133
+
124
134
  ### Step 3: Validate the Workflow
125
135
 
126
136
  After gathering information about all steps:
@@ -145,7 +155,7 @@ After gathering information about all steps:
145
155
 
146
156
  For each step, consider whether it would benefit from **quality validation loops**. Stop hooks allow the AI agent to iteratively refine its work until quality criteria are met.
147
157
 
148
- **Ask the user about quality validation:**
158
+ **Ask structured questions about quality validation:**
149
159
  - "Are there specific quality criteria that must be met for this step?"
150
160
  - "Would you like the agent to validate its work before completing?"
151
161
  - "What would make you send the work back for revision?"
@@ -188,68 +198,31 @@ stop_hooks:
188
198
 
189
199
  **Encourage prompt-based hooks** - They leverage the AI's ability to understand context and make nuanced quality judgments. Script hooks are best for objective checks (syntax, format, tests).
190
200
 
191
- ### Step 5: Create the job.yml Specification
192
-
193
- Only after you have complete understanding, create the `job.yml` file:
201
+ ### Step 5: Create the Job Directory and Specification
194
202
 
195
- **File Location**: `.deepwork/jobs/[job_name]/job.yml`
203
+ Only after you have complete understanding, create the job directory and `job.yml` file:
196
204
 
197
- (Where `[job_name]` is the name of the NEW job you're creating, e.g., `.deepwork/jobs/competitive_research/job.yml`)
205
+ **First, create the directory structure** using the `make_new_job.sh` script:
198
206
 
199
- **Format**:
200
- ```yaml
201
- name: [job_name]
202
- version: "1.0.0"
203
- summary: "[Brief one-line summary of what this job accomplishes]"
204
- description: |
205
- [Detailed multi-line description of the job's purpose, process, and goals.
206
-
207
- This should explain:
208
- - What problem this workflow solves
209
- - What the overall process looks like
210
- - What the end result will be
211
- - Who the intended users are
212
- - Any important context about the workflow]
213
-
214
- changelog:
215
- - version: "1.0.0"
216
- changes: "Initial job creation"
217
-
218
- steps:
219
- - id: [step_id]
220
- name: "[Step Name]"
221
- description: "[What this step does]"
222
- instructions_file: steps/[step_id].md
223
- inputs:
224
- - name: [param_name]
225
- description: "[What user needs to provide]"
226
- # OR for file inputs from previous steps:
227
- # - file: [filename_or_path]
228
- # from_step: [previous_step_id]
229
- outputs:
230
- - [output_filename_or_path] # e.g., "report.md" or "reports/analysis.md"
231
- dependencies: [] # List of step IDs that must complete first
232
- # Optional: Quality validation hooks
233
- stop_hooks:
234
- - prompt: |
235
- Verify this step's output meets quality criteria:
236
- 1. [Criterion 1]
237
- 2. [Criterion 2]
238
- If ALL criteria are met, include `<promise>✓ Quality Criteria Met</promise>`.
239
-
240
- - id: [another_step]
241
- name: "[Another Step]"
242
- description: "[What this step does]"
243
- instructions_file: steps/[another_step].md
244
- inputs:
245
- - file: [output_filename_or_path]
246
- from_step: [step_id]
247
- outputs:
248
- - [another_output_path]
249
- dependencies:
250
- - [step_id] # This step requires the previous step
207
+ ```bash
208
+ .deepwork/jobs/deepwork_jobs/make_new_job.sh [job_name]
251
209
  ```
252
210
 
211
+ This creates:
212
+ - `.deepwork/jobs/[job_name]/` - Main job directory
213
+ - `.deepwork/jobs/[job_name]/steps/` - For step instruction files
214
+ - `.deepwork/jobs/[job_name]/hooks/` - For custom validation scripts
215
+ - `.deepwork/jobs/[job_name]/templates/` - For example file formats
216
+ - `.deepwork/jobs/[job_name]/AGENTS.md` - Job management guidance
217
+
218
+ **Then create the job.yml file** at `.deepwork/jobs/[job_name]/job.yml`
219
+
220
+ (Where `[job_name]` is the name of the NEW job you're creating, e.g., `competitive_research`)
221
+
222
+ **Template reference**: See `.deepwork/jobs/deepwork_jobs/templates/job.yml.template` for the standard structure.
223
+
224
+ **Complete example**: See `.deepwork/jobs/deepwork_jobs/templates/job.yml.example` for a fully worked example.
225
+
253
226
  **Important**:
254
227
  - Use lowercase with underscores for job name and step IDs
255
228
  - Ensure file inputs reference steps in dependencies
@@ -371,11 +344,11 @@ Run `/deepwork_jobs.implement` to generate the instruction files for each step b
371
344
  ## Important Guidelines
372
345
 
373
346
  1. **Focus on specification only** - Don't create instruction files yet
374
- 2. **Ask clarifying questions** - Never skip the discovery phase
347
+ 2. **Ask structured questions** - Never skip the discovery phase; use the AskUserQuestion tool
375
348
  3. **Rich context in description** - This helps with future refinement
376
349
  4. **Validate understanding** - Summarize and confirm before creating
377
350
  5. **Use examples** - Help users understand what good specifications look like
378
- 6. **Understand file organization** - Always ask where outputs should be saved and if subdirectories are needed
351
+ 6. **Understand file organization** - Always ask structured questions about where outputs should be saved and if subdirectories are needed
379
352
 
380
353
  ## Validation Rules
381
354
 
@@ -409,6 +382,7 @@ After creating the file:
409
382
 
410
383
  ## Quality Criteria
411
384
 
385
+ - Asked structured questions to fully understand user requirements
412
386
  - User fully understands what job they're creating
413
387
  - All steps have clear inputs and outputs
414
388
  - Dependencies make logical sense
@@ -455,13 +429,14 @@ This step uses an iterative quality validation loop. After completing your work,
455
429
  ### Quality Criteria
456
430
  Verify the job.yml output meets ALL quality criteria before completing:
457
431
 
458
- 1. **User Understanding**: Did you fully understand the user's workflow through interactive Q&A?
459
- 2. **Clear Inputs/Outputs**: Does every step have clearly defined inputs and outputs?
460
- 3. **Logical Dependencies**: Do step dependencies make sense and avoid circular references?
461
- 4. **Concise Summary**: Is the summary under 200 characters and descriptive?
462
- 5. **Rich Description**: Does the description provide enough context for future refinement?
463
- 6. **Valid Schema**: Does the job.yml follow the required schema (name, version, summary, steps)?
464
- 7. **File Created**: Has the job.yml file been created in `.deepwork/jobs/[job_name]/job.yml`?
432
+ 1. **User Understanding**: Did you fully understand the user's workflow by asking structured questions?
433
+ 2. **Structured Questions Used**: Did you ask structured questions (using the AskUserQuestion tool) to gather user input?
434
+ 3. **Clear Inputs/Outputs**: Does every step have clearly defined inputs and outputs?
435
+ 4. **Logical Dependencies**: Do step dependencies make sense and avoid circular references?
436
+ 5. **Concise Summary**: Is the summary under 200 characters and descriptive?
437
+ 6. **Rich Description**: Does the description provide enough context for future refinement?
438
+ 7. **Valid Schema**: Does the job.yml follow the required schema (name, version, summary, steps)?
439
+ 8. **File Created**: Has the job.yml file been created in `.deepwork/jobs/[job_name]/job.yml`?
465
440
 
466
441
  If ANY criterion is not met, continue working to address it.
467
442
  If ALL criteria are satisfied, include `<promise>✓ Quality Criteria Met</promise>` in your response.
@@ -16,9 +16,9 @@ hooks:
16
16
  3. **Specific & Actionable**: Are instructions tailored to each step's purpose, not generic?
17
17
  4. **Output Examples**: Does each instruction file show what good output looks like?
18
18
  5. **Quality Criteria**: Does each instruction file define quality criteria for its outputs?
19
- 6. **Sync Complete**: Has `deepwork sync` been run successfully?
20
- 7. **Commands Available**: Are the slash-commands generated in `.claude/commands/`?
21
- 8. **Summary Created**: Has `implementation_summary.md` been created?
19
+ 6. **Ask Structured Questions**: Do step instructions that gather user input explicitly use the phrase "ask structured questions"?
20
+ 7. **Sync Complete**: Has `deepwork sync` been run successfully?
21
+ 8. **Commands Available**: Are the slash-commands generated in `.claude/commands/`?
22
22
  9. **Policies Considered**: Have you thought about whether policies would benefit this job?
23
23
  - If relevant policies were identified, did you explain them and offer to run `/deepwork_policy.define`?
24
24
  - Not every job needs policies - only suggest when genuinely helpful.
@@ -48,14 +48,15 @@ hooks:
48
48
  ## Job Overview
49
49
 
50
50
  Core commands for managing DeepWork jobs. These commands help you define new multi-step
51
- workflows and refine existing ones.
51
+ workflows and learn from running them.
52
52
 
53
53
  The `define` command guides you through an interactive process to create a new job by
54
- asking detailed questions about your workflow, understanding each step's inputs and outputs,
54
+ asking structured questions about your workflow, understanding each step's inputs and outputs,
55
55
  and generating all necessary files.
56
56
 
57
- The `refine` command helps you modify existing jobs safely by understanding what you want
58
- to change, validating the impact, and ensuring consistency across your workflow.
57
+ The `learn` command reflects on conversations where DeepWork jobs were run, identifies
58
+ confusion or inefficiencies, and improves job instructions. It also captures bespoke
59
+ learnings specific to the current run into AGENTS.md files in the working folder.
59
60
 
60
61
 
61
62
  ## Prerequisites
@@ -77,10 +78,31 @@ Generate the DeepWork job directory structure and instruction files for each ste
77
78
 
78
79
  Read the `job.yml` specification file and create all the necessary files to make the job functional, including directory structure and step instruction files. Then sync the commands to make them available.
79
80
 
80
- ### Step 1: Read and Validate the Specification
81
+ ### Step 1: Create Directory Structure Using Script
82
+
83
+ Run the `make_new_job.sh` script to create the standard directory structure:
84
+
85
+ ```bash
86
+ .deepwork/jobs/deepwork_jobs/make_new_job.sh [job_name]
87
+ ```
88
+
89
+ This creates:
90
+ - `.deepwork/jobs/[job_name]/` - Main job directory
91
+ - `.deepwork/jobs/[job_name]/steps/` - Step instruction files
92
+ - `.deepwork/jobs/[job_name]/hooks/` - Custom validation scripts (with .gitkeep)
93
+ - `.deepwork/jobs/[job_name]/templates/` - Example file formats (with .gitkeep)
94
+ - `.deepwork/jobs/[job_name]/AGENTS.md` - Job management guidance
95
+
96
+ **Note**: If the directory already exists (e.g., job.yml was created by define step), you can skip this step or manually create the additional directories:
97
+ ```bash
98
+ mkdir -p .deepwork/jobs/[job_name]/hooks .deepwork/jobs/[job_name]/templates
99
+ touch .deepwork/jobs/[job_name]/hooks/.gitkeep .deepwork/jobs/[job_name]/templates/.gitkeep
100
+ ```
101
+
102
+ ### Step 2: Read and Validate the Specification
81
103
 
82
104
  1. **Locate the job.yml file**
83
- - Read `.deepwork/jobs/[job_name]/job.yml` from the define step (Where `[job_name]` is the name of the new job that was created in the define step)
105
+ - Read `.deepwork/jobs/[job_name]/job.yml` from the define step
84
106
  - Parse the YAML content
85
107
 
86
108
  2. **Validate the specification**
@@ -94,83 +116,20 @@ Read the `job.yml` specification file and create all the necessary files to make
94
116
  - List of all steps with their details
95
117
  - Understand the workflow structure
96
118
 
97
- ### Step 2: Create Directory Structure
98
-
99
- Create the job directory in `.deepwork/jobs/[job_name]/`:
100
-
101
- ```bash
102
- mkdir -p .deepwork/jobs/[job_name]/steps
103
- ```
104
-
105
- Files to create:
106
- - `.deepwork/jobs/[job_name]/job.yml`
107
- - `.deepwork/jobs/[job_name]/steps/[step_id].md` - One for each step
108
-
109
119
  ### Step 3: Generate Step Instruction Files
110
120
 
111
121
  For each step in the job.yml, create a comprehensive instruction file at `.deepwork/jobs/[job_name]/steps/[step_id].md`.
112
122
 
113
- Each instruction file should follow this structure:
114
-
115
- ```markdown
116
- # [Step Name]
117
-
118
- ## Objective
119
-
120
- [Clear statement of what this step accomplishes, derived from the step's description]
121
-
122
- ## Task
123
-
124
- [Detailed instructions for completing this step, based on:
125
- - The step's purpose
126
- - Expected inputs and outputs
127
- - The job's overall context
128
- ]
129
-
130
- ### Process
131
-
132
- [Break down the step into substeps. Use the information gathered during define about:
133
- - What needs to be done
134
- - What makes a good output
135
- - Any quality criteria
136
- ]
123
+ **Template reference**: See `.deepwork/jobs/deepwork_jobs/templates/step_instruction.md.template` for the standard structure.
137
124
 
138
- 1. [Substep 1]
139
- 2. [Substep 2]
140
- 3. [Substep 3]
125
+ **Complete example**: See `.deepwork/jobs/deepwork_jobs/templates/step_instruction.md.example` for a fully worked example.
141
126
 
142
- [If this step has user inputs, explain how to gather them]
143
- [If this step has file inputs, explain how to use them]
144
-
145
- ## Output Format
146
-
147
- ### [output_filename_1]
148
-
149
- [Description of what should be in this output file]
150
-
151
- **Structure**:
152
- ```[file format]
153
- [Example or template of what the output should look like]
154
- ```
155
-
156
- [Repeat for each output file]
157
-
158
- ## Quality Criteria
159
-
160
- [List what makes this step's output high quality:
161
- - Completeness checks
162
- - Format requirements
163
- - Content requirements
164
- ]
165
-
166
- - [Quality criterion 1]
167
- - [Quality criterion 2]
168
- - [Quality criterion 3]
169
-
170
- ## Context
171
-
172
- [Provide context from the job's overall description to help understand why this step matters and how it fits into the bigger picture]
173
- ```
127
+ **Available templates in `.deepwork/jobs/deepwork_jobs/templates/`:**
128
+ - `job.yml.template` - Job specification structure
129
+ - `step_instruction.md.template` - Step instruction file structure
130
+ - `agents.md.template` - AGENTS.md file structure
131
+ - `job.yml.example` - Complete job specification example
132
+ - `step_instruction.md.example` - Complete step instruction example
174
133
 
175
134
  **Guidelines for generating instructions:**
176
135
 
@@ -180,6 +139,7 @@ Each instruction file should follow this structure:
180
139
  4. **Explain the "why"** - Help the user understand the step's role in the workflow
181
140
  5. **Quality over quantity** - Detailed, actionable instructions are better than vague ones
182
141
  6. **Align with stop hooks** - If the step has `stop_hooks` defined, ensure the quality criteria in the instruction file match the validation criteria in the hooks
142
+ 7. **Ask structured questions** - When a step has user inputs, the instructions MUST explicitly tell the agent to "ask structured questions" using the AskUserQuestion tool to gather that information. Never use generic phrasing like "ask the user" - always use "ask structured questions"
183
143
 
184
144
  ### Handling Stop Hooks
185
145
 
@@ -213,6 +173,12 @@ If a step in the job.yml has `stop_hooks` defined, the generated instruction fil
213
173
 
214
174
  This alignment ensures the AI agent knows exactly what will be validated and can self-check before completing.
215
175
 
176
+ ### Using Supplementary Reference Files
177
+
178
+ Step instructions can include additional `.md` files in the `steps/` directory for detailed examples, templates, or reference material. Reference them using the full path from the project root.
179
+
180
+ See `.deepwork/jobs/deepwork_jobs/steps/supplemental_file_references.md` for detailed documentation and examples.
181
+
216
182
  ### Step 4: Verify job.yml Location
217
183
 
218
184
  Verify that `job.yml` is in the correct location at `.deepwork/jobs/[job_name]/job.yml`. The define step should have created it there. If for some reason it's not there, you may need to create or move it.
@@ -230,11 +196,9 @@ This will:
230
196
  - Generate slash-commands for each step
231
197
  - Make the commands available in `.claude/commands/` (or appropriate platform directory)
232
198
 
233
- ### Step 6: Reload Commands
199
+ ### Step 6: Relay Reload Instructions
234
200
 
235
- Instruct the user to reload commands in their current session:
236
- - Run `/reload` command (if available)
237
- - Or restart the Claude session
201
+ After running `deepwork sync`, look at the "To use the new commands" section in the output. **Relay these exact reload instructions to the user** so they know how to pick up the new commands. Don't just reference the sync output - tell them directly what they need to do (e.g., "Type 'exit' then run 'claude --resume'" for Claude Code, or "Run '/memory refresh'" for Gemini CLI).
238
202
 
239
203
  ### Step 7: Consider Policies for the New Job
240
204
 
@@ -298,112 +262,9 @@ Would you like me to create this policy? I can run `/deepwork_policy.define` to
298
262
 
299
263
  ## Example Implementation
300
264
 
301
- **Given this job.yml:**
302
- ```yaml
303
- name: competitive_research
304
- version: "1.0.0"
305
- summary: "Systematic competitive analysis workflow"
306
- description: |
307
- A comprehensive workflow for analyzing competitors in your market segment.
308
- Helps product teams understand the competitive landscape through systematic
309
- identification, research, comparison, and positioning recommendations.
310
-
311
- steps:
312
- - id: identify_competitors
313
- name: "Identify Competitors"
314
- description: "Identify 5-7 key competitors in the target market"
315
- instructions_file: steps/identify_competitors.md
316
- inputs:
317
- - name: market_segment
318
- description: "The market segment to analyze"
319
- - name: product_category
320
- description: "The product category"
321
- outputs:
322
- - competitors_list.md
323
- dependencies: []
324
- ```
325
-
326
- **Generate this instruction file** (`.deepwork/jobs/competitive_research/steps/identify_competitors.md`):
327
-
328
- ```markdown
329
- # Identify Competitors
330
-
331
- ## Objective
332
-
333
- Identify 5-7 key competitors in the target market segment to analyze for competitive positioning.
334
-
335
- ## Task
336
-
337
- Research and identify the most relevant competitors in the specified market segment and product category. Focus on companies that directly compete for the same customer base and solve similar problems.
338
-
339
- ### Process
340
-
341
- 1. **Understand the market context**
342
- - Review the market segment provided by the user
343
- - Understand the product category boundaries
344
- - Consider direct and indirect competitors
345
-
346
- 2. **Research competitors**
347
- - Search for companies in this space
348
- - Look for market leaders and emerging players
349
- - Consider different competitive dimensions (features, price, target market)
350
-
351
- 3. **Select 5-7 key competitors**
352
- - Prioritize direct competitors
353
- - Include at least one market leader
354
- - Include 1-2 emerging/innovative players
355
- - Ensure diversity in the competitive set
356
-
357
- 4. **Document each competitor**
358
- - Company name
359
- - Brief description (2-3 sentences)
360
- - Why they're a relevant competitor
361
- - Primary competitive dimension
362
-
363
- ## Output Format
364
-
365
- ### competitors_list.md
366
-
367
- A markdown document listing each competitor with context.
368
-
369
- **Structure**:
370
- ```markdown
371
- # Competitor Analysis: [Market Segment]
372
-
373
- ## Market Context
374
- - **Segment**: [market segment]
375
- - **Category**: [product category]
376
- - **Analysis Date**: [current date]
377
-
378
- ## Identified Competitors
379
-
380
- ### 1. [Competitor Name]
381
- **Description**: [2-3 sentence description of what they do]
382
-
383
- **Why Relevant**: [Why they're a key competitor in this space]
384
-
385
- **Competitive Dimension**: [What they compete on - e.g., price, features, market segment]
386
-
387
- [Repeat for each competitor, 5-7 total]
388
-
389
- ## Selection Rationale
390
-
391
- [Brief paragraph explaining why these specific competitors were chosen and what dimensions of competition they represent]
392
- ```
393
-
394
- ## Quality Criteria
395
-
396
- - 5-7 competitors identified (not too few, not too many)
397
- - Mix of established and emerging players
398
- - All competitors are genuinely relevant to the market segment
399
- - Each competitor has clear, specific description
400
- - Selection rationale explains the competitive landscape
401
- - Output is well-formatted and ready for use by next step
402
-
403
- ## Context
404
-
405
- This is the foundation step for competitive analysis. The competitors identified here will be deeply researched in subsequent steps, so it's important to choose the right set. Focus on competitors that will provide strategic insights for positioning decisions.
406
- ```
265
+ For a complete worked example showing a job.yml and corresponding step instruction file, see:
266
+ - **Job specification**: `.deepwork/jobs/deepwork_jobs/templates/job.yml.example`
267
+ - **Step instruction**: `.deepwork/jobs/deepwork_jobs/templates/step_instruction.md.example`
407
268
 
408
269
  ## Important Guidelines
409
270
 
@@ -422,63 +283,6 @@ Before running `deepwork sync`, verify:
422
283
  - All step instruction files exist (one per step)
423
284
  - No file system errors
424
285
 
425
- ## Output Format
426
-
427
- ### implementation_summary.md
428
-
429
- After successful implementation, create a summary:
430
-
431
- ```markdown
432
- # Job Implementation Complete: [job_name]
433
-
434
- ## Overview
435
-
436
- Successfully implemented the **[job_name]** workflow with [N] steps.
437
-
438
- **Summary**: [job summary]
439
-
440
- **Version**: [version]
441
-
442
- ## Files Created
443
-
444
- ### Job Definition
445
- - `.deepwork/jobs/[job_name]/job.yml`
446
-
447
- ### Step Instructions
448
- - `.deepwork/jobs/[job_name]/steps/[step1_id].md`
449
- - `.deepwork/jobs/[job_name]/steps/[step2_id].md`
450
- [... list all step files ...]
451
-
452
-
453
- ## Generated Commands
454
-
455
- After running `deepwork sync`, the following slash-commands are now available:
456
-
457
- - `/[job_name].[step1_id]` - [step description]
458
- - `/[job_name].[step2_id]` - [step description]
459
- [... list all commands ...]
460
-
461
- ## Next Steps
462
-
463
- 1. **Reload commands**: Run `/reload` or restart your Claude session
464
- 2. **Start the workflow**: Run `/[job_name].[first_step_id]` to begin
465
- 3. **Test the job**: Try executing the first step to ensure everything works
466
-
467
- ## Job Structure
468
-
469
- [Show the workflow diagram with step names and dependencies]
470
-
471
- Step 1: [step_name]
472
-
473
- Step 2: [step_name]
474
-
475
- Step 3: [step_name]
476
-
477
- [Final output]
478
-
479
- The job is now ready for use!
480
- ```
481
-
482
286
  ## Completion Checklist
483
287
 
484
288
  Before marking this step complete, ensure:
@@ -487,8 +291,7 @@ Before marking this step complete, ensure:
487
291
  - [ ] Each instruction file is complete and actionable
488
292
  - [ ] `deepwork sync` executed successfully
489
293
  - [ ] Commands generated in platform directory
490
- - [ ] User informed of next steps (reload commands)
491
- - [ ] implementation_summary.md created
294
+ - [ ] User informed to follow reload instructions from `deepwork sync`
492
295
  - [ ] Considered whether policies would benefit this job (Step 7)
493
296
  - [ ] If policies suggested, offered to run `/deepwork_policy.define`
494
297
 
@@ -499,6 +302,7 @@ Before marking this step complete, ensure:
499
302
  - Instructions are specific and actionable
500
303
  - Output examples are provided in each instruction file
501
304
  - Quality criteria defined for each step
305
+ - Steps with user inputs explicitly use "ask structured questions" phrasing
502
306
  - Sync completed successfully
503
307
  - Commands available for use
504
308
  - Thoughtfully considered relevant policies for the job domain
@@ -531,7 +335,7 @@ All work for this job should be done on a dedicated work branch:
531
335
  ## Output Requirements
532
336
 
533
337
  Create the following output(s):
534
- - `implementation_summary.md`
338
+ - `steps/` (directory)
535
339
  Ensure all outputs are:
536
340
  - Well-formatted and complete
537
341
  - Ready for review or use by subsequent steps
@@ -548,9 +352,9 @@ Verify the implementation meets ALL quality criteria before completing:
548
352
  3. **Specific & Actionable**: Are instructions tailored to each step's purpose, not generic?
549
353
  4. **Output Examples**: Does each instruction file show what good output looks like?
550
354
  5. **Quality Criteria**: Does each instruction file define quality criteria for its outputs?
551
- 6. **Sync Complete**: Has `deepwork sync` been run successfully?
552
- 7. **Commands Available**: Are the slash-commands generated in `.claude/commands/`?
553
- 8. **Summary Created**: Has `implementation_summary.md` been created?
355
+ 6. **Ask Structured Questions**: Do step instructions that gather user input explicitly use the phrase "ask structured questions"?
356
+ 7. **Sync Complete**: Has `deepwork sync` been run successfully?
357
+ 8. **Commands Available**: Are the slash-commands generated in `.claude/commands/`?
554
358
  9. **Policies Considered**: Have you thought about whether policies would benefit this job?
555
359
  - If relevant policies were identified, did you explain them and offer to run `/deepwork_policy.define`?
556
360
  - Not every job needs policies - only suggest when genuinely helpful.
@@ -577,14 +381,14 @@ After completing this step:
577
381
 
578
382
  2. **Inform the user**:
579
383
  - Step 2 of 3 is complete
580
- - Outputs created: implementation_summary.md
581
- - Ready to proceed to next step: `/deepwork_jobs.refine`
384
+ - Outputs created: steps/
385
+ - Ready to proceed to next step: `/deepwork_jobs.learn`
582
386
 
583
387
  ## Next Step
584
388
 
585
389
  To continue the workflow, run:
586
390
  ```
587
- /deepwork_jobs.refine
391
+ /deepwork_jobs.learn
588
392
  ```
589
393
 
590
394
  ---