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.
- {deepwork-0.1.0 → deepwork-0.2.0}/.claude/commands/deepwork_jobs.define.md +56 -81
- {deepwork-0.1.0 → deepwork-0.2.0}/.claude/commands/deepwork_jobs.implement.md +60 -256
- deepwork-0.2.0/.claude/commands/deepwork_jobs.learn.md +441 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.claude/commands/deepwork_policy.define.md +27 -3
- deepwork-0.2.0/.claude/commands/update.job.md +206 -0
- deepwork-0.2.0/.deepwork/jobs/deepwork_jobs/AGENTS.md +60 -0
- deepwork-0.2.0/.deepwork/jobs/deepwork_jobs/job.yml +114 -0
- deepwork-0.2.0/.deepwork/jobs/deepwork_jobs/make_new_job.sh +134 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.deepwork/jobs/deepwork_jobs/steps/define.md +35 -63
- {deepwork-0.1.0 → deepwork-0.2.0}/.deepwork/jobs/deepwork_jobs/steps/implement.md +45 -242
- deepwork-0.2.0/.deepwork/jobs/deepwork_jobs/steps/learn.md +288 -0
- deepwork-0.2.0/.deepwork/jobs/deepwork_jobs/steps/supplemental_file_references.md +40 -0
- deepwork-0.2.0/.deepwork/jobs/deepwork_jobs/templates/agents.md.template +32 -0
- deepwork-0.2.0/.deepwork/jobs/deepwork_jobs/templates/job.yml.example +73 -0
- deepwork-0.2.0/.deepwork/jobs/deepwork_jobs/templates/job.yml.template +56 -0
- deepwork-0.2.0/.deepwork/jobs/deepwork_jobs/templates/step_instruction.md.example +82 -0
- deepwork-0.2.0/.deepwork/jobs/deepwork_jobs/templates/step_instruction.md.template +58 -0
- 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
- {deepwork-0.1.0/src/deepwork/standard_jobs → deepwork-0.2.0/.deepwork/jobs}/deepwork_policy/hooks/policy_stop_hook.sh +3 -19
- deepwork-0.2.0/.deepwork/jobs/deepwork_policy/hooks/user_prompt_submit.sh +16 -0
- {deepwork-0.1.0/src/deepwork/standard_jobs → deepwork-0.2.0/.deepwork/jobs}/deepwork_policy/job.yml +3 -1
- {deepwork-0.1.0/src/deepwork/standard_jobs → deepwork-0.2.0/.deepwork/jobs}/deepwork_policy/steps/define.md +27 -3
- deepwork-0.2.0/.deepwork/jobs/update/job.yml +42 -0
- deepwork-0.2.0/.deepwork/jobs/update/steps/job.md +73 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.deepwork.policy.yml +29 -1
- {deepwork-0.1.0 → deepwork-0.2.0}/.gemini/commands/deepwork_jobs/define.toml +40 -67
- {deepwork-0.1.0 → deepwork-0.2.0}/.gemini/commands/deepwork_jobs/implement.toml +54 -250
- deepwork-0.2.0/.gemini/commands/deepwork_jobs/learn.toml +380 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.gemini/commands/deepwork_jobs/refine.toml +2 -2
- {deepwork-0.1.0 → deepwork-0.2.0}/.gemini/commands/deepwork_policy/define.toml +27 -3
- deepwork-0.2.0/.gemini/commands/update/job.toml +162 -0
- deepwork-0.2.0/.github/workflows/README.md +100 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.github/workflows/cla.yml +19 -9
- deepwork-0.2.0/.github/workflows/claude-code-test.yml +364 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.github/workflows/validate.yml +8 -1
- deepwork-0.2.0/CHANGELOG.md +63 -0
- {deepwork-0.1.0 → deepwork-0.2.0/CLA/version_1}/CLA.md +1 -1
- deepwork-0.2.0/CLA/version_1/CLA_SIGNATORIES.md +20 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/CONTRIBUTING.md +4 -4
- {deepwork-0.1.0 → deepwork-0.2.0}/PKG-INFO +52 -128
- {deepwork-0.1.0 → deepwork-0.2.0}/README.md +51 -127
- {deepwork-0.1.0 → deepwork-0.2.0}/claude.md +15 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/doc/architecture.md +10 -9
- {deepwork-0.1.0 → deepwork-0.2.0}/pyproject.toml +1 -1
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/cli/install.py +48 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/cli/sync.py +9 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/core/adapters.py +17 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/core/policy_parser.py +10 -0
- deepwork-0.2.0/src/deepwork/hooks/evaluate_policies.py +376 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/schemas/policy_schema.py +10 -0
- deepwork-0.2.0/src/deepwork/standard_jobs/deepwork_jobs/AGENTS.md +60 -0
- {deepwork-0.1.0/.deepwork/jobs → deepwork-0.2.0/src/deepwork/standard_jobs}/deepwork_jobs/job.yml +30 -22
- deepwork-0.2.0/src/deepwork/standard_jobs/deepwork_jobs/make_new_job.sh +134 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/standard_jobs/deepwork_jobs/steps/define.md +26 -57
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/standard_jobs/deepwork_jobs/steps/implement.md +43 -242
- deepwork-0.2.0/src/deepwork/standard_jobs/deepwork_jobs/steps/learn.md +288 -0
- deepwork-0.2.0/src/deepwork/standard_jobs/deepwork_jobs/steps/supplemental_file_references.md +40 -0
- deepwork-0.2.0/src/deepwork/standard_jobs/deepwork_jobs/templates/agents.md.template +32 -0
- deepwork-0.2.0/src/deepwork/standard_jobs/deepwork_jobs/templates/job.yml.example +73 -0
- deepwork-0.2.0/src/deepwork/standard_jobs/deepwork_jobs/templates/job.yml.template +56 -0
- deepwork-0.2.0/src/deepwork/standard_jobs/deepwork_jobs/templates/step_instruction.md.example +82 -0
- deepwork-0.2.0/src/deepwork/standard_jobs/deepwork_jobs/templates/step_instruction.md.template +58 -0
- 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
- {deepwork-0.1.0/.deepwork/jobs → deepwork-0.2.0/src/deepwork/standard_jobs}/deepwork_policy/hooks/policy_stop_hook.sh +3 -19
- deepwork-0.2.0/src/deepwork/standard_jobs/deepwork_policy/hooks/user_prompt_submit.sh +16 -0
- {deepwork-0.1.0/.deepwork/jobs → deepwork-0.2.0/src/deepwork/standard_jobs}/deepwork_policy/steps/define.md +22 -1
- deepwork-0.2.0/src/deepwork/templates/default_policy.yml +53 -0
- deepwork-0.2.0/tests/e2e/__init__.py +1 -0
- deepwork-0.2.0/tests/e2e/test_claude_code_integration.py +325 -0
- deepwork-0.2.0/tests/fixtures/jobs/fruits/job.yml +40 -0
- deepwork-0.2.0/tests/fixtures/jobs/fruits/steps/classify.md +83 -0
- deepwork-0.2.0/tests/fixtures/jobs/fruits/steps/identify.md +64 -0
- deepwork-0.2.0/tests/integration/test_fruits_workflow.py +189 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/integration/test_install_flow.py +54 -2
- deepwork-0.2.0/tests/shell_script_tests/README.md +76 -0
- deepwork-0.2.0/tests/shell_script_tests/__init__.py +1 -0
- deepwork-0.2.0/tests/shell_script_tests/conftest.py +115 -0
- deepwork-0.2.0/tests/shell_script_tests/test_capture_prompt_work_tree.py +257 -0
- deepwork-0.2.0/tests/shell_script_tests/test_hooks_json_format.py +363 -0
- deepwork-0.2.0/tests/shell_script_tests/test_make_new_job.py +313 -0
- deepwork-0.2.0/tests/shell_script_tests/test_policy_stop_hook.py +287 -0
- deepwork-0.2.0/tests/shell_script_tests/test_user_prompt_submit.py +166 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/unit/test_policy_parser.py +49 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/uv.lock +1 -1
- deepwork-0.1.0/.claude/commands/deepwork_jobs.refine.md +0 -595
- deepwork-0.1.0/.deepwork/jobs/deepwork_jobs/steps/refine.md +0 -447
- deepwork-0.1.0/.deepwork/jobs/deepwork_policy/hooks/get_changed_files.sh +0 -30
- deepwork-0.1.0/.deepwork/jobs/deepwork_policy/hooks/user_prompt_submit.sh +0 -17
- deepwork-0.1.0/.github/CLA_SETUP.md +0 -171
- deepwork-0.1.0/.github/CLA_SIGNATORIES.md +0 -27
- deepwork-0.1.0/CHANGELOG.md +0 -12
- deepwork-0.1.0/src/deepwork/hooks/evaluate_policies.py +0 -159
- deepwork-0.1.0/src/deepwork/standard_jobs/deepwork_jobs/job.yml +0 -102
- deepwork-0.1.0/src/deepwork/standard_jobs/deepwork_jobs/steps/refine.md +0 -447
- deepwork-0.1.0/src/deepwork/standard_jobs/deepwork_policy/hooks/get_changed_files.sh +0 -30
- deepwork-0.1.0/src/deepwork/standard_jobs/deepwork_policy/hooks/user_prompt_submit.sh +0 -17
- {deepwork-0.1.0 → deepwork-0.2.0}/.claude/commands/AGENTS.md +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.claude/commands/add_platform.add_capabilities.md +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.claude/commands/add_platform.implement.md +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.claude/commands/add_platform.research.md +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.claude/commands/add_platform.verify.md +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.claude/settings.json +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.deepwork/.gitignore +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.deepwork/config.yml +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.deepwork/jobs/add_platform/job.yml +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.deepwork/jobs/add_platform/steps/add_capabilities.md +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.deepwork/jobs/add_platform/steps/implement.md +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.deepwork/jobs/add_platform/steps/research.md +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.deepwork/jobs/add_platform/steps/verify.md +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.deepwork/jobs/deepwork_policy/hooks/global_hooks.yml +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.gemini/commands/add_platform/add_capabilities.toml +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.gemini/commands/add_platform/implement.toml +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.gemini/commands/add_platform/research.toml +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.gemini/commands/add_platform/verify.toml +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.github/workflows/release.yml +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/.gitignore +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/LICENSE.md +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/doc/platforms/gemini/cli_configuration.md +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/doc/platforms/gemini/hooks_system.md +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/job_library/README.md +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/shell.nix +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/__init__.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/cli/__init__.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/cli/main.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/core/__init__.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/core/detector.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/core/generator.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/core/hooks_syncer.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/core/parser.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/hooks/__init__.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/schemas/__init__.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/schemas/job_schema.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/standard_jobs/deepwork_policy/hooks/global_hooks.yml +0 -0
- {deepwork-0.1.0/.deepwork/jobs → deepwork-0.2.0/src/deepwork/standard_jobs}/deepwork_policy/job.yml +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/templates/__init__.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/templates/claude/command-job-step.md.jinja +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/templates/gemini/command-job-step.toml.jinja +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/utils/__init__.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/utils/fs.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/utils/git.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/utils/validation.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/src/deepwork/utils/yaml_utils.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/__init__.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/conftest.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/jobs/complex_job/job.yml +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/jobs/complex_job/steps/comparative_report.md +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/jobs/complex_job/steps/identify_competitors.md +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/jobs/complex_job/steps/primary_research.md +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/jobs/complex_job/steps/secondary_research.md +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/jobs/invalid_job/job.yml +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/jobs/simple_job/job.yml +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/jobs/simple_job/steps/single_step.md +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/policies/empty_policy.yml +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/policies/instructions/security_review.md +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/policies/invalid_missing_instructions.yml +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/policies/invalid_missing_trigger.yml +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/policies/multiple_policies.yml +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/policies/policy_with_instructions_file.yml +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/fixtures/policies/valid_policy.yml +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/integration/test_full_workflow.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/unit/test_adapters.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/unit/test_detector.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/unit/test_evaluate_policies.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/unit/test_fs.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/unit/test_generator.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/unit/test_git.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/unit/test_hooks_syncer.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/unit/test_parser.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/unit/test_stop_hooks.py +0 -0
- {deepwork-0.1.0 → deepwork-0.2.0}/tests/unit/test_validation.py +0 -0
- {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
|
|
15
|
-
2. **
|
|
16
|
-
3. **
|
|
17
|
-
4. **
|
|
18
|
-
5. **
|
|
19
|
-
6. **
|
|
20
|
-
7. **
|
|
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
|
|
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
|
|
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 `
|
|
54
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
203
|
+
Only after you have complete understanding, create the job directory and `job.yml` file:
|
|
196
204
|
|
|
197
|
-
|
|
205
|
+
**First, create the directory structure** using the `make_new_job.sh` script:
|
|
198
206
|
|
|
199
|
-
|
|
200
|
-
|
|
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
|
|
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
|
|
459
|
-
2. **
|
|
460
|
-
3. **
|
|
461
|
-
4. **
|
|
462
|
-
5. **
|
|
463
|
-
6. **
|
|
464
|
-
7. **
|
|
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. **
|
|
20
|
-
7. **
|
|
21
|
-
8. **
|
|
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
|
|
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
|
|
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 `
|
|
58
|
-
|
|
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:
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
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
|
|
199
|
+
### Step 6: Relay Reload Instructions
|
|
234
200
|
|
|
235
|
-
|
|
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
|
-
|
|
302
|
-
|
|
303
|
-
|
|
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
|
|
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
|
-
- `
|
|
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. **
|
|
552
|
-
7. **
|
|
553
|
-
8. **
|
|
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:
|
|
581
|
-
- Ready to proceed to next step: `/deepwork_jobs.
|
|
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.
|
|
391
|
+
/deepwork_jobs.learn
|
|
588
392
|
```
|
|
589
393
|
|
|
590
394
|
---
|