deepwork 0.7.0__py3-none-any.whl → 0.7.0a2__py3-none-any.whl

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.
deepwork/__init__.py CHANGED
@@ -1,6 +1,6 @@
1
1
  """DeepWork - Framework for enabling AI agents to perform complex, multi-step work tasks."""
2
2
 
3
- __version__ = "0.7.0"
3
+ __version__ = "0.7.0a2"
4
4
  __author__ = "DeepWork Contributors"
5
5
 
6
6
  __all__ = [
deepwork/mcp/tools.py CHANGED
@@ -132,6 +132,9 @@ class WorkflowTools:
132
132
  def _get_workflow(self, job: JobDefinition, workflow_name: str) -> Workflow:
133
133
  """Get a specific workflow from a job.
134
134
 
135
+ If the workflow name doesn't match any workflow but the job has exactly
136
+ one workflow, that workflow is returned automatically.
137
+
135
138
  Args:
136
139
  job: Job definition
137
140
  workflow_name: Workflow name to find
@@ -140,12 +143,16 @@ class WorkflowTools:
140
143
  Workflow
141
144
 
142
145
  Raises:
143
- ToolError: If workflow not found
146
+ ToolError: If workflow not found and job has multiple workflows
144
147
  """
145
148
  for wf in job.workflows:
146
149
  if wf.name == workflow_name:
147
150
  return wf
148
151
 
152
+ # Auto-select if there's only one workflow
153
+ if len(job.workflows) == 1:
154
+ return job.workflows[0]
155
+
149
156
  available = [wf.name for wf in job.workflows]
150
157
  raise ToolError(
151
158
  f"Workflow '{workflow_name}' not found in job '{job.name}'. "
@@ -214,10 +221,10 @@ class WorkflowTools:
214
221
  if first_step is None:
215
222
  raise ToolError(f"First step not found: {first_step_id}")
216
223
 
217
- # Create session
224
+ # Create session (use resolved workflow name in case it was auto-selected)
218
225
  session = await self.state_manager.create_session(
219
226
  job_name=input_data.job_name,
220
- workflow_name=input_data.workflow_name,
227
+ workflow_name=workflow.name,
221
228
  goal=input_data.goal,
222
229
  first_step_id=first_step_id,
223
230
  instance_id=input_data.instance_id,
@@ -150,8 +150,7 @@
150
150
  },
151
151
  "outputs": {
152
152
  "type": "array",
153
- "minItems": 1,
154
- "description": "List of output files/directories produced by this step",
153
+ "description": "List of output files/directories produced by this step. May be empty for cleanup or validation steps.",
155
154
  "items": {
156
155
  "$ref": "#/$defs/stepOutput"
157
156
  }
@@ -58,12 +58,6 @@ changelog:
58
58
  changes: "Removed implementation_summary and learning_summary outputs; simplified step outputs"
59
59
  - version: "0.5.0"
60
60
  changes: "Standardized on 'ask structured questions' phrasing for user input; Updated quality criteria hooks to verify phrase usage; Added guidance in implement.md to use phrase in generated instructions"
61
- - version: "0.6.0"
62
- changes: "Added doc spec support; define.md now detects document-oriented workflows and guides doc spec creation; learn.md now identifies and applies doc spec-related improvements"
63
- - version: "0.7.0"
64
- changes: "Added job.yml doc spec; define step now outputs job.yml with doc_spec reference for quality validation"
65
- - version: "0.8.0"
66
- changes: "Added review_job_spec step between define and implement for doc spec-based quality validation using sub-agent review"
67
61
  - version: "0.9.0"
68
62
  changes: "Improved skill descriptions with third-person voice and 'Use when...' triggers for better discoverability"
69
63
 
@@ -76,8 +70,7 @@ steps:
76
70
  - name: job_purpose
77
71
  description: "What complex task or workflow are you trying to accomplish?"
78
72
  outputs:
79
- - file: job.yml
80
- doc_spec: .deepwork/doc_specs/job_spec.md
73
+ - job.yml
81
74
  dependencies: []
82
75
  - id: implement
83
76
  name: "Implement Job Steps"
@@ -158,8 +151,6 @@ steps:
158
151
  - "**Instructions Improved**: Were job instructions updated to address identified issues?"
159
152
  - "**Instructions Concise**: Are instructions free of redundancy and unnecessary verbosity?"
160
153
  - "**Shared Content Extracted**: Is lengthy/duplicated content extracted into referenced files?"
161
- - "**doc spec Reviewed (if applicable)**: For jobs with doc spec outputs, were doc spec-related learnings identified?"
162
- - "**doc spec Updated (if applicable)**: Were doc spec files updated with improved quality criteria or structure?"
163
154
  - "**Bespoke Learnings Captured**: Were run-specific learnings added to AGENTS.md?"
164
155
  - "**File References Used**: Do AGENTS.md entries reference other files where appropriate?"
165
156
  - "**Working Folder Correct**: Is AGENTS.md in the correct working folder for the job?"
@@ -206,11 +197,10 @@ steps:
206
197
  name: "Clean Up Errata"
207
198
  description: "Removes obsolete files and folders from prior DeepWork versions, including old skill directories, temp files, and deprecated configurations."
208
199
  instructions_file: steps/errata.md
200
+ outputs: []
209
201
  inputs:
210
202
  - file: .deepwork/jobs/
211
203
  from_step: fix_jobs
212
- outputs:
213
- - repair_summary.md
214
204
  dependencies:
215
205
  - fix_settings
216
206
  - fix_jobs
@@ -221,5 +211,5 @@ steps:
221
211
  - "**Rules Folder Removed**: Is `.deepwork/rules/` folder backed up and removed (fully deprecated)?"
222
212
  - "**Rules Job Removed**: Is `.deepwork/jobs/deepwork_rules/` removed if present?"
223
213
  - "**Config Version Updated**: Is `.deepwork/config.yml` using current version format?"
224
- - "**Summary Provided**: Is a repair_summary.md file created documenting all changes made?"
214
+ - "**DeepWork Re-installed**: Was `deepwork install` run after cleanup, and does it complete without errors?"
225
215
  - "**Git Status Clean**: Are changes ready to be committed (no untracked garbage files)?"
@@ -78,43 +78,47 @@ main() {
78
78
  mkdir -p "$job_path/steps"
79
79
  mkdir -p "$job_path/hooks"
80
80
  mkdir -p "$job_path/templates"
81
+ mkdir -p "$job_path/scripts"
81
82
 
82
83
  # Add .gitkeep files to empty directories
83
84
  touch "$job_path/hooks/.gitkeep"
84
85
  touch "$job_path/templates/.gitkeep"
86
+ touch "$job_path/scripts/.gitkeep"
85
87
 
86
88
  # Create AGENTS.md file
87
89
  cat > "$job_path/AGENTS.md" << 'EOF'
88
90
  # Job Management
89
91
 
90
- This folder and its subfolders are managed using the `deepwork_jobs` slash commands.
92
+ This folder and its subfolders are managed using `deepwork_jobs` workflows.
91
93
 
92
- ## Recommended Commands
94
+ ## Recommended Workflows
93
95
 
94
- - `/deepwork_jobs.define` - Create or modify the job.yml specification
95
- - `/deepwork_jobs.implement` - Generate step instruction files from the specification
96
- - `/deepwork_jobs.learn` - Improve instructions based on execution learnings
96
+ - `deepwork_jobs/new_job` - Full lifecycle: define implement → test → iterate
97
+ - `deepwork_jobs/learn` - Improve instructions based on execution learnings
98
+ - `deepwork_jobs/repair` - Clean up and migrate from prior DeepWork versions
97
99
 
98
100
  ## Directory Structure
99
101
 
100
102
  ```
101
103
  .
102
104
  ├── AGENTS.md # This file - project context and guidance
103
- ├── job.yml # Job specification (created by /deepwork_jobs.define)
104
- ├── steps/ # Step instruction files (created by /deepwork_jobs.implement)
105
+ ├── job.yml # Job specification (created by define step)
106
+ ├── steps/ # Step instruction files (created by implement step)
105
107
  │ └── *.md # One file per step
106
108
  ├── hooks/ # Custom validation scripts and prompts
107
109
  │ └── *.md|*.sh # Hook files referenced in job.yml
110
+ ├── scripts/ # Reusable scripts and utilities created during job execution
111
+ │ └── *.sh|*.py # Helper scripts referenced in step instructions
108
112
  └── templates/ # Example file formats and templates
109
113
  └── *.md|*.yml # Templates referenced in step instructions
110
114
  ```
111
115
 
112
116
  ## Editing Guidelines
113
117
 
114
- 1. **Use slash commands** for structural changes (adding steps, modifying job.yml)
118
+ 1. **Use workflows** for structural changes (adding steps, modifying job.yml)
115
119
  2. **Direct edits** are fine for minor instruction tweaks
116
- 3. **Run `/deepwork_jobs.learn`** after executing job steps to capture improvements
117
- 4. **Run `deepwork sync`** after any changes to regenerate commands
120
+ 3. **Run `deepwork_jobs/learn`** after executing job steps to capture improvements
121
+ 4. **Run `deepwork install`** after any changes to regenerate commands
118
122
  EOF
119
123
 
120
124
  info "Created directory structure:"
@@ -122,13 +126,8 @@ EOF
122
126
  echo " ├── AGENTS.md"
123
127
  echo " ├── steps/"
124
128
  echo " ├── hooks/.gitkeep"
129
+ echo " ├── scripts/.gitkeep"
125
130
  echo " └── templates/.gitkeep"
126
-
127
- echo ""
128
- info "Next steps:"
129
- echo " 1. Run '/deepwork_jobs.define' to create the job.yml specification"
130
- echo " 2. Run '/deepwork_jobs.implement' to generate step instructions"
131
- echo " 3. Run 'deepwork sync' to create slash commands"
132
131
  }
133
132
 
134
133
  main "$@"
@@ -31,60 +31,6 @@ Start by asking structured questions to understand what the user wants to accomp
31
31
  - What are the distinct stages from start to finish?
32
32
  - Are there any dependencies between phases?
33
33
 
34
- ### Step 1.5: Detect Document-Oriented Workflows
35
-
36
- **Check for document-focused patterns** in the user's description:
37
- - Keywords: "report", "summary", "document", "create", "monthly", "quarterly", "for stakeholders", "for leadership"
38
- - Final deliverable is a specific document (e.g., "AWS spending report", "competitive analysis", "sprint summary")
39
- - Recurring documents with consistent structure
40
-
41
- **If a document-oriented workflow is detected:**
42
-
43
- 1. Inform the user: "This workflow produces a specific document type. I recommend defining a doc spec first to ensure consistent quality."
44
-
45
- 2. Ask structured questions to understand if they want to:
46
- - Create a doc spec for this document
47
- - Use an existing doc spec (if any exist in `.deepwork/doc_specs/`)
48
- - Skip doc spec and proceed with simple outputs
49
-
50
- ### Step 1.6: Define the Doc Spec (if needed)
51
-
52
- When creating a doc spec, gather the following information:
53
-
54
- 1. **Document Identity**
55
- - What is the document called? (e.g., "Monthly AWS Spending Report")
56
- - Brief description of its purpose
57
- - Where should these documents be stored? (path patterns like `finance/aws-reports/*.md`)
58
-
59
- 2. **Audience and Context**
60
- - Who reads this document? (target audience)
61
- - How often is it produced? (frequency)
62
-
63
- 3. **Quality Criteria** (3-5 criteria, each with name and description)
64
-
65
- **Important**: Doc spec quality criteria define requirements for the **output document itself**, not the process of creating it. Focus on what the finished document must contain or achieve.
66
-
67
- Examples for a spending report:
68
- - **Visualization**: Must include charts showing spend breakdown by service
69
- - **Variance Analysis**: Must compare current month against previous with percentages
70
- - **Action Items**: Must include recommended cost optimization actions
71
-
72
- **Note**: When a doc spec is created for a step's output, the step should generally NOT have separate `quality_criteria` in the job.yml. The doc spec's criteria cover output quality. Only add step-level quality_criteria if there are essential process requirements (e.g., "must use specific tool"), and minimize these when possible.
73
-
74
- 4. **Document Structure**
75
- - What sections should it have?
76
- - Any required elements (tables, charts, summaries)?
77
-
78
- ### Step 1.7: Create the doc spec File (if needed)
79
-
80
- Create the doc spec file at `.deepwork/doc_specs/[doc_spec_name].md`:
81
-
82
- **Template reference**: See `.deepwork/jobs/deepwork_jobs/templates/doc_spec.md.template` for the standard structure.
83
-
84
- **Complete example**: See `.deepwork/doc_specs/job_spec.md` for a fully worked example (the doc spec for job.yml files).
85
-
86
- After creating the doc spec, proceed to Step 2 with the doc spec reference for the final step's output.
87
-
88
34
  ### Step 2: Define Each Step
89
35
 
90
36
  For each major phase they mentioned, ask structured questions to gather details:
@@ -106,8 +52,6 @@ For each major phase they mentioned, ask structured questions to gather details:
106
52
  - Where should each output be saved? (filename/path)
107
53
  - Should outputs be organized in subdirectories? (e.g., `reports/`, `data/`, `drafts/`)
108
54
  - Will other steps need this output?
109
- - **Does this output have a doc spec?** If a doc spec was created in Step 1.6/1.7, reference it for the appropriate output
110
-
111
55
  #### Work Product Storage Guidelines
112
56
 
113
57
  **Key principle**: Job outputs belong in the main repository directory structure, not in dot-directories. The `.deepwork/` directory is for job definitions and configuration only.
@@ -189,18 +133,6 @@ For each major phase they mentioned, ask structured questions to gather details:
189
133
 
190
134
  **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.
191
135
 
192
- #### Doc Spec-Aware Output Format
193
-
194
- When a step produces a document with a doc spec reference, use this format in job.yml:
195
-
196
- ```yaml
197
- outputs:
198
- - file: reports/monthly_spending.md
199
- doc_spec: .deepwork/doc_specs/monthly_aws_report.md
200
- ```
201
-
202
- The doc spec's quality criteria will automatically be included in the generated skill, ensuring consistent document quality.
203
-
204
136
  ### Capability Considerations
205
137
 
206
138
  When defining steps, identify any that require specialized tools:
@@ -299,8 +231,6 @@ This creates:
299
231
 
300
232
  (Where `[job_name]` is the name of the NEW job you're creating, e.g., `competitive_research`)
301
233
 
302
- **Doc Spec**: See `.deepwork/doc_specs/job_spec.md` for the complete specification with quality criteria.
303
-
304
234
  **Template reference**: See `.deepwork/jobs/deepwork_jobs/templates/job.yml.template` for the standard structure.
305
235
 
306
236
  **Complete example**: See `.deepwork/jobs/deepwork_jobs/templates/job.yml.example` for a fully worked example.
@@ -134,7 +134,23 @@ Check for and remove other obsolete files:
134
134
  | `.claude/commands/` | Generated commands | Keep (current system) |
135
135
  | `.claude/settings.local.json` | Local overrides | Keep (user settings) |
136
136
 
137
- ### Step 6: Verify Git Status
137
+ ### Step 6: Re-install DeepWork
138
+
139
+ After all cleanup is complete, re-run `deepwork install` to ensure configurations are current and consistent:
140
+
141
+ ```bash
142
+ deepwork install
143
+ ```
144
+
145
+ **Then verify:**
146
+ 1. Check that `.deepwork/config.yml` is valid and up to date
147
+ 2. Check that `.claude/skills/deepwork/` exists and contains the expected skill entry point
148
+ 3. Check that all jobs in `.deepwork/jobs/` have valid `job.yml` files
149
+ 4. Run `deepwork install` a second time and confirm the output is clean (no errors or warnings)
150
+
151
+ If any issues are found, fix them before proceeding. The goal is a clean, working DeepWork installation with no residual problems from the repair process.
152
+
153
+ ### Step 7: Verify Git Status
138
154
 
139
155
  Check that the cleanup hasn't left untracked garbage:
140
156
 
@@ -66,15 +66,6 @@ For each learning identified, determine if it is:
66
66
  - "Quality criteria should include checking for Y"
67
67
  - "Add example of correct output format"
68
68
 
69
- **doc spec-Related** (should improve doc spec files):
70
- - Improvements to document quality criteria
71
- - Changes to document structure or format
72
- - Updated audience or frequency information
73
- - Examples:
74
- - "The report should include a summary table"
75
- - "Quality criterion 'Visualization' needs clearer requirements"
76
- - "Documents need a section for action items"
77
-
78
69
  **Bespoke** (should go in AGENTS.md):
79
70
  - Specific to THIS project/codebase/run
80
71
  - Depends on local conventions or structure
@@ -85,30 +76,6 @@ For each learning identified, determine if it is:
85
76
  - "This project uses camelCase for function names"
86
77
  - "The main config file is at `config/settings.yml`"
87
78
 
88
- ### Step 3.5: Identify doc spec-Related Learnings
89
-
90
- Review the conversation for doc spec-related improvements:
91
-
92
- 1. **Quality Criteria Changes**
93
- - Were any quality criteria unclear or insufficient?
94
- - Did the agent repeatedly fail certain criteria?
95
- - Are there new criteria that should be added?
96
-
97
- 2. **Document Structure Changes**
98
- - Did the user request different sections?
99
- - Were parts of the document format confusing?
100
- - Should the example document be updated?
101
-
102
- 3. **Metadata Updates**
103
- - Has the target audience changed?
104
- - Should frequency or path patterns be updated?
105
-
106
- **Signals for doc spec improvements:**
107
- - User asked for changes to document format
108
- - Repeated validation failures on specific criteria
109
- - Feedback about missing sections or information
110
- - Changes to how documents are organized/stored
111
-
112
79
  ### Step 4: Update Job Instructions (Generalizable Learnings)
113
80
 
114
81
  For each generalizable learning:
@@ -162,41 +129,6 @@ Review all instruction files for the job and identify content that:
162
129
  - Shorter instruction files - easier to read and maintain
163
130
  - Consistent guidance across steps
164
131
 
165
- ### Step 4.5: Update doc spec Files (doc spec-Related Learnings)
166
-
167
- If doc spec-related learnings were identified:
168
-
169
- 1. **Locate the doc spec file**
170
- - Find doc spec references in job.yml outputs (look for `doc_spec: .deepwork/doc_specs/[doc_spec_name].md`)
171
- - doc spec files are at `.deepwork/doc_specs/[doc_spec_name].md`
172
-
173
- 2. **Update quality_criteria array**
174
- - Add new criteria with name and description
175
- - Modify existing criteria descriptions for clarity
176
- - Remove criteria that are no longer relevant
177
-
178
- 3. **Update example document**
179
- - Modify the markdown body to reflect structure changes
180
- - Ensure the example matches updated criteria
181
-
182
- 4. **Update metadata as needed**
183
- - target_audience: If audience has changed
184
- - frequency: If production cadence has changed
185
- - path_patterns: If storage location has changed
186
-
187
- **Example doc spec update:**
188
- ```yaml
189
- # Before
190
- quality_criteria:
191
- - name: Visualization
192
- description: Include charts
193
-
194
- # After
195
- quality_criteria:
196
- - name: Visualization
197
- description: Include Mermaid.js charts showing spend breakdown by service and month-over-month trend
198
- ```
199
-
200
132
  ### Step 5: Create/Update AGENTS.md (Bespoke Learnings)
201
133
 
202
134
  The AGENTS.md file captures project-specific knowledge that helps future agent runs.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: deepwork
3
- Version: 0.7.0
3
+ Version: 0.7.0a2
4
4
  Summary: Framework for enabling AI agents to perform complex, multi-step work tasks
5
5
  Project-URL: Homepage, https://github.com/deepwork/deepwork
6
6
  Project-URL: Documentation, https://github.com/deepwork/deepwork#readme
@@ -1,4 +1,4 @@
1
- deepwork/__init__.py,sha256=0Hf2rcJ94XxP2GKJUYlgAhlfagnYfpRIaqt-nM7kzgQ,748
1
+ deepwork/__init__.py,sha256=AV8GZ4MCtUnIUSTGlzmnJPnw1nI5qgHiv80uyRX2YJ4,750
2
2
  deepwork/cli/__init__.py,sha256=3SqmfcP2xqutiCYAbajFDJTjr2pOLydqTN0NN-FTsIE,33
3
3
  deepwork/cli/hook.py,sha256=ATZJLV-J_GAHyly24lVIMvpsEY1o_-njbFrqrYg1NoM,2059
4
4
  deepwork/cli/install.py,sha256=yrtT5k8x2CgUtdvNwjPJcSbaqKblC9cF1kGspYJXjTQ,13846
@@ -23,26 +23,24 @@ deepwork/mcp/quality_gate.py,sha256=sURtwC3CaoWEZXHK_d68B__WEnyaPKIEZgPM9Hg3VQc,
23
23
  deepwork/mcp/schemas.py,sha256=IusmeXK8TMLbiuxbIaYBMQy4zBvGveDWqOi-TJpftIY,10124
24
24
  deepwork/mcp/server.py,sha256=iXw35DW9dUhXhleY0LV2yP3wbNS_aRY1uIZu9SNrSB8,9228
25
25
  deepwork/mcp/state.py,sha256=DcUt6j6zczfMTihkwDamFkHjouROCHiX31lSYZSaD0M,13721
26
- deepwork/mcp/tools.py,sha256=-pROXOeK1Gc7UgZ-TZH1yo49z6Rr0ZoND7yCGOZDso4,13449
26
+ deepwork/mcp/tools.py,sha256=BOdne_pLL0ymnUIhcGma-M-zP1vNuJcdMHATmoyqgTo,13795
27
27
  deepwork/schemas/__init__.py,sha256=PpydKb_oaTv8lYapN_nV-Tl_OUCoSM_okvsEJ8gNTpI,41
28
28
  deepwork/schemas/doc_spec_schema.py,sha256=qByBtd86vQaLNsLfMr4iwVdpmyowvVLzYOnXY7RnqLY,2049
29
- deepwork/schemas/job.schema.json,sha256=a5gPAyoaBtVnu7U7aNa9iL2g5Bwa1S8Atjo6rD10l50,11095
29
+ deepwork/schemas/job.schema.json,sha256=FcBuiIO3vd50oTEdohWqC_Qq8nenrJA5NH_91WPpwog,11117
30
30
  deepwork/schemas/job_schema.py,sha256=FT9Xn3Em85YEc2aTu71TGzdmunNhIztRymSG5N4vuhs,925
31
31
  deepwork/standard_jobs/deepwork_jobs/AGENTS.md,sha256=Y6I4jZ8DfN0RFY3UF5bgQRZvL7wQD9P0lgE7EZM6CGI,2252
32
- deepwork/standard_jobs/deepwork_jobs/job.yml,sha256=wQgbjblsDCWmaKWoBM81HuFX0aBsWtXv8c-dKTfQ-6g,12268
33
- deepwork/standard_jobs/deepwork_jobs/make_new_job.sh,sha256=JArfFU9lEaJPRsXRL3rU1IMt2p6Bq0s2C9f98aJ7Mxg,3878
34
- deepwork/standard_jobs/deepwork_jobs/doc_specs/job_spec.md,sha256=n9s70pSOjG1p6YX_72-TZ16pKIHaljeM2LnwOlrAfo0,7317
35
- deepwork/standard_jobs/deepwork_jobs/steps/define.md,sha256=K0eKBDze7CKwC8uKBwTOXLT7Ya46g3GdGxyqyn3CfVI,19856
36
- deepwork/standard_jobs/deepwork_jobs/steps/errata.md,sha256=1SjLCLc8xHlxGzFXZHn9Ch2tDTxZOyKKQ-B7RI651jw,4807
32
+ deepwork/standard_jobs/deepwork_jobs/job.yml,sha256=Ul7lQU6AKbfTbnO5JfXGhRmO4NfJjQbVdyOlxo-Isds,11463
33
+ deepwork/standard_jobs/deepwork_jobs/make_new_job.sh,sha256=zKgoqvGagPD5tTHka9gNcaeZxeOAa-ln96NuSvCPvzw,3881
34
+ deepwork/standard_jobs/deepwork_jobs/steps/define.md,sha256=1UesrrPiRfPNJSqQeyfPRlAg4HS294EdoINsYG-xZTc,16523
35
+ deepwork/standard_jobs/deepwork_jobs/steps/errata.md,sha256=3ZA2bTGGXwkcXqmB_HoFyjwvW4vf_ve-QEcM5Pllad8,5475
37
36
  deepwork/standard_jobs/deepwork_jobs/steps/fix_jobs.md,sha256=OHFX1ZuBjo_gWyFfC_HICay6J6eNZrm2IxzGT3IPxec,6074
38
37
  deepwork/standard_jobs/deepwork_jobs/steps/fix_settings.md,sha256=SJqeO_wuxcr7IzwFSlf3CmZ5ILivbvQK8YyYUc-FD4E,5361
39
38
  deepwork/standard_jobs/deepwork_jobs/steps/implement.md,sha256=6RVnS5sJpyrtGFhti5c2Dfzy6obvGJHWPHe3Hrc9SbM,5731
40
39
  deepwork/standard_jobs/deepwork_jobs/steps/iterate.md,sha256=JQkP-RMlbsnLpA3YH_yULUgHTOQx2ilSqI2gRsjPBhc,8405
41
- deepwork/standard_jobs/deepwork_jobs/steps/learn.md,sha256=moPKLTtYK4TGMTWmBKZO-OX__l52Cri3B6ecMoFB9kM,11630
40
+ deepwork/standard_jobs/deepwork_jobs/steps/learn.md,sha256=1gF9t4QcyWxLWk9OzX4S6vDOu6CCOXDOI3kxCs3r1AE,9325
42
41
  deepwork/standard_jobs/deepwork_jobs/steps/supplemental_file_references.md,sha256=uKDEwB3TxMLK-Zim3QQfkvaW5W6AVWHjWnH25aY6wCw,1478
43
42
  deepwork/standard_jobs/deepwork_jobs/steps/test.md,sha256=MNoVqo9CC-lnvWvllkOtIRopHvYMSR8yJrMZa02x1i0,6816
44
43
  deepwork/standard_jobs/deepwork_jobs/templates/agents.md.template,sha256=SUJL862C6-DnT9lK3sNIZ5T2wVgXN4YRph4FrKtFnLo,739
45
- deepwork/standard_jobs/deepwork_jobs/templates/doc_spec.md.template,sha256=OXpkFTsEm4CVkJQmx7f6rUZ9My5rHeY_ncaygARjEpA,764
46
44
  deepwork/standard_jobs/deepwork_jobs/templates/job.yml.example,sha256=roRi6sIGFGmPCkoVW26HfuTBjAO8-pPsxI5-Gfg3rc0,2361
47
45
  deepwork/standard_jobs/deepwork_jobs/templates/job.yml.template,sha256=rlanRupKN73XUR48nF93Mm4pdL35Wa4IeZSKQs7QEWo,1912
48
46
  deepwork/standard_jobs/deepwork_jobs/templates/step_instruction.md.example,sha256=HXcjVaQz2HsDiA4ClnIeLvysVOGrFJ_5Tr-pm6dhdwc,2706
@@ -57,8 +55,8 @@ deepwork/utils/fs.py,sha256=TbkcGGqck4lborFerbBLrpVMDUz3E5ZaW6X0_B2t76k,4821
57
55
  deepwork/utils/git.py,sha256=J4tAB1zE6-WMAEHbarevhmSvvPLkeKBpiRv1UxUVwYk,3748
58
56
  deepwork/utils/validation.py,sha256=SyFg9fIu1JCDMbssQgJRCTUNToDNcINccn8lje-tjts,851
59
57
  deepwork/utils/yaml_utils.py,sha256=INHhOmzC38fh7HYKLrq7vmS3dcuNsigH7_U71erS-hw,3127
60
- deepwork-0.7.0.dist-info/METADATA,sha256=DXJFmPAwoz51ydikLv-kQEiKFf6NOFeeqr0oxeAeb3k,12368
61
- deepwork-0.7.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
62
- deepwork-0.7.0.dist-info/entry_points.txt,sha256=RhJBySzm619kh-yIdsAyfFXInAlY8Jm-39FLIBcOj2s,51
63
- deepwork-0.7.0.dist-info/licenses/LICENSE.md,sha256=W0EtJVYf0cQ_awukOCW1ETwNSpV2RKqnAGfoOjyz_K8,4126
64
- deepwork-0.7.0.dist-info/RECORD,,
58
+ deepwork-0.7.0a2.dist-info/METADATA,sha256=24BEzKTwedhl5kQSEnle1BWoBXssLFtYoc7yQpjYOCM,12370
59
+ deepwork-0.7.0a2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
60
+ deepwork-0.7.0a2.dist-info/entry_points.txt,sha256=RhJBySzm619kh-yIdsAyfFXInAlY8Jm-39FLIBcOj2s,51
61
+ deepwork-0.7.0a2.dist-info/licenses/LICENSE.md,sha256=W0EtJVYf0cQ_awukOCW1ETwNSpV2RKqnAGfoOjyz_K8,4126
62
+ deepwork-0.7.0a2.dist-info/RECORD,,
@@ -1,184 +0,0 @@
1
- ---
2
- name: "DeepWork Job Specification"
3
- description: "YAML specification file that defines a multi-step workflow job for AI agents"
4
- path_patterns:
5
- - ".deepwork/jobs/*/job.yml"
6
- target_audience: "AI agents executing jobs and developers defining workflows"
7
- frequency: "Created once per job, updated as workflow evolves"
8
- quality_criteria:
9
- - name: Valid Identifier
10
- description: "Job name must be lowercase with underscores, no spaces or special characters (e.g., `competitive_research`, `monthly_report`)"
11
- - name: Semantic Version
12
- description: "Version must follow semantic versioning format X.Y.Z (e.g., `1.0.0`, `2.1.3`)"
13
- - name: Concise Summary
14
- description: "Summary must be under 200 characters and clearly describe what the job accomplishes"
15
- - name: Rich Description
16
- description: "Description must be multi-line and explain: the problem solved, the process, expected outcomes, and target users"
17
- - name: Changelog Present
18
- description: "Must include a changelog array with at least the initial version entry. Changelog should only include one entry per branch at most"
19
- - name: Complete Steps
20
- description: "Each step must have: id (lowercase_underscores), name, description, instructions_file, outputs (at least one), and dependencies array"
21
- - name: Valid Dependencies
22
- description: "Dependencies must reference existing step IDs with no circular references"
23
- - name: Input Consistency
24
- description: "File inputs with `from_step` must reference a step that is in the dependencies array"
25
- - name: Output Paths
26
- description: "Outputs must be valid filenames or paths within the main repo directory structure, never in dot-directories like `.deepwork/`. Use specific, descriptive paths that lend themselves to glob patterns (e.g., `competitive_research/acme_corp/swot.md` or `operations/reports/2026-01/spending_analysis.md`). Parameterized paths like `[competitor_name]/` are encouraged for per-entity outputs. Avoid generic names (`output.md`, `analysis.md`) and transient-sounding paths (`temp/`, `draft.md`). Supporting materials for a final output should go in a peer `_dataroom` folder (e.g., `spending_analysis_dataroom/`)."
27
- - name: Concise Instructions
28
- description: "The content of the file, particularly the description, must not have excessively redundant information. It should be concise and to the point given that extra tokens will confuse the AI."
29
- ---
30
-
31
- # DeepWork Job Specification: [job_name]
32
-
33
- A `job.yml` file defines a complete multi-step workflow that AI agents can execute. Each job breaks down a complex task into reviewable steps with clear inputs and outputs.
34
-
35
- ## Required Fields
36
-
37
- ### Top-Level Metadata
38
-
39
- ```yaml
40
- name: job_name # lowercase, underscores only
41
- version: "1.0.0" # semantic versioning
42
- summary: "Brief description" # max 200 characters
43
- description: | # detailed multi-line explanation
44
- [Explain what this workflow does, why it exists,
45
- what outputs it produces, and who should use it]
46
- ```
47
-
48
- ### Changelog
49
-
50
- ```yaml
51
- changelog:
52
- - version: "1.0.0"
53
- changes: "Initial job creation"
54
- - version: "1.1.0"
55
- changes: "Added quality validation hooks"
56
- ```
57
-
58
- ### Steps Array
59
-
60
- ```yaml
61
- steps:
62
- - id: step_id # unique, lowercase_underscores
63
- name: "Human Readable Name"
64
- description: "What this step accomplishes"
65
- instructions_file: steps/step_id.md
66
- inputs:
67
- # User-provided inputs:
68
- - name: param_name
69
- description: "What the user provides"
70
- # File inputs from previous steps:
71
- - file: output.md
72
- from_step: previous_step_id
73
- outputs:
74
- - competitive_research/competitors_list.md # descriptive path
75
- - competitive_research/[competitor_name]/research.md # parameterized path
76
- # With doc spec reference:
77
- - file: competitive_research/final_report.md
78
- doc_spec: .deepwork/doc_specs/report_type.md
79
- dependencies:
80
- - previous_step_id # steps that must complete first
81
- ```
82
-
83
- ## Optional Fields
84
-
85
- ### Agent Delegation
86
-
87
- When a step should be executed by a specific agent type, use the `agent` field. This automatically sets `context: fork` in the generated skill.
88
-
89
- ```yaml
90
- steps:
91
- - id: research_step
92
- agent: general-purpose # Delegates to the general-purpose agent
93
- ```
94
-
95
- Available agent types:
96
- - `general-purpose` - Standard agent for multi-step tasks
97
-
98
- ### Quality Hooks
99
-
100
- ```yaml
101
- steps:
102
- - id: step_id
103
- hooks:
104
- after_agent:
105
- # Inline prompt for quality validation:
106
- - prompt: |
107
- Verify the output meets criteria:
108
- 1. [Criterion 1]
109
- 2. [Criterion 2]
110
- If ALL criteria are met, include `<promise>...</promise>`.
111
- # External prompt file:
112
- - prompt_file: hooks/quality_check.md
113
- # Script for programmatic validation:
114
- - script: hooks/run_tests.sh
115
- ```
116
-
117
- ## Validation Rules
118
-
119
- 1. **No circular dependencies**: Step A cannot depend on Step B if Step B depends on Step A
120
- 2. **File inputs require dependencies**: If a step uses `from_step: X`, then X must be in its dependencies
121
- 3. **Unique step IDs**: No two steps can have the same id
122
- 4. **Valid file paths**: Output paths must not contain invalid characters and should be in the main repo (not dot-directories)
123
- 5. **Instructions files exist**: Each `instructions_file` path should have a corresponding file created
124
-
125
- ## Example: Complete Job Specification
126
-
127
- ```yaml
128
- name: competitive_research
129
- version: "1.0.0"
130
- summary: "Systematic competitive analysis workflow"
131
- description: |
132
- A comprehensive workflow for analyzing competitors in your market segment.
133
- Helps product teams understand the competitive landscape through systematic
134
- identification, research, comparison, and positioning recommendations.
135
-
136
- Produces:
137
- - Vetted competitor list
138
- - Research notes per competitor
139
- - Comparison matrix
140
- - Strategic positioning report
141
-
142
- changelog:
143
- - version: "1.0.0"
144
- changes: "Initial job creation"
145
-
146
- steps:
147
- - id: identify_competitors
148
- name: "Identify Competitors"
149
- description: "Identify 5-7 key competitors in the target market"
150
- instructions_file: steps/identify_competitors.md
151
- inputs:
152
- - name: market_segment
153
- description: "The market segment to analyze"
154
- - name: product_category
155
- description: "The product category"
156
- outputs:
157
- - competitive_research/competitors_list.md
158
- dependencies: []
159
-
160
- - id: research_competitors
161
- name: "Research Competitors"
162
- description: "Deep dive research on each identified competitor"
163
- instructions_file: steps/research_competitors.md
164
- inputs:
165
- - file: competitive_research/competitors_list.md
166
- from_step: identify_competitors
167
- outputs:
168
- - competitive_research/[competitor_name]/research.md
169
- dependencies:
170
- - identify_competitors
171
-
172
- - id: positioning_report
173
- name: "Positioning Report"
174
- description: "Strategic positioning recommendations"
175
- instructions_file: steps/positioning_report.md
176
- inputs:
177
- - file: competitive_research/[competitor_name]/research.md
178
- from_step: research_competitors
179
- outputs:
180
- - file: competitive_research/positioning_report.md
181
- doc_spec: .deepwork/doc_specs/positioning_report.md
182
- dependencies:
183
- - research_competitors
184
- ```
@@ -1,26 +0,0 @@
1
- ---
2
- name: "[Document Name]"
3
- description: "[Brief description of the document's purpose]"
4
- path_patterns:
5
- - "[path/to/documents/*.md]"
6
- target_audience: "[Who reads this document]"
7
- frequency: "[How often produced, e.g., Monthly, Per sprint, On demand]"
8
- quality_criteria:
9
- - name: "[Criterion Name]"
10
- description: "[What this criterion requires - be specific]"
11
- - name: "[Criterion Name]"
12
- description: "[What this criterion requires - be specific]"
13
- - name: "[Criterion Name]"
14
- description: "[What this criterion requires - be specific]"
15
- ---
16
-
17
- # [Document Title]: [Variables like Month, Year, Sprint]
18
-
19
- ## Section 1
20
- [Describe what goes in this section]
21
-
22
- ## Section 2
23
- [Describe what goes in this section]
24
-
25
- ## Section 3
26
- [Describe what goes in this section]