Skip to content

Commit f527dae

Browse files
nhortonclaude
andauthored
chore: Sync deployed skills with storage guidance changes (#189)
Updates deployed skills and job files to include work product storage guidance improvements from #177. Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 643326f commit f527dae

13 files changed

Lines changed: 195 additions & 120 deletions

File tree

.claude/skills/deepwork_jobs.define/SKILL.md

Lines changed: 56 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,63 @@ For each major phase they mentioned, ask structured questions to gather details:
126126
- Where should each output be saved? (filename/path)
127127
- Should outputs be organized in subdirectories? (e.g., `reports/`, `data/`, `drafts/`)
128128
- Will other steps need this output?
129-
130-
**Important**: Output paths should always be within the main repository directory structure, not in dot-directories like `.deepwork/`. Dot-directories are for configuration and job definitions, not for job outputs. Use paths like `research/competitors/report.md` rather than `.deepwork/outputs/report.md`.
131129
- **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
132130

131+
#### Work Product Storage Guidelines
132+
133+
**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.
134+
135+
**Why this matters**:
136+
- **Version control**: Work products in the main repo are tracked by git and visible in PRs
137+
- **Discoverability**: Team members can find outputs without knowing about DeepWork internals
138+
- **Tooling compatibility**: IDEs, search tools, and CI/CD work naturally with standard paths
139+
- **Glob patterns**: Well-structured paths enable powerful file matching (e.g., `competitive_research/**/*.md`)
140+
141+
**Good output path patterns**:
142+
```
143+
competitive_research/competitors_list.md
144+
competitive_research/acme_corp/research.md
145+
operations/reports/2026-01/spending_analysis.md
146+
docs/api/endpoints.md
147+
```
148+
149+
**Avoid these patterns**:
150+
```
151+
.deepwork/outputs/report.md # Hidden in dot-directory
152+
output.md # Too generic, no context
153+
research.md # Unclear which research
154+
temp/draft.md # Transient-sounding paths
155+
```
156+
157+
**Organizing multi-file outputs**:
158+
- Use the job name as a top-level folder when outputs are job-specific
159+
- Use parameterized paths for per-entity outputs: `competitive_research/[competitor_name]/`
160+
- Match existing project conventions when extending a codebase
161+
162+
**When to include dates in paths**:
163+
- **Include date** for periodic outputs where each version is retained (e.g., monthly reports, quarterly reviews, weekly summaries). These accumulate over time and historical versions remain useful.
164+
```
165+
operations/reports/2026-01/spending_analysis.md # Monthly report - keep history
166+
hr/employees/[employee_name]/quarterly_reviews/2026-Q1.pdf # Per-employee quarterly review
167+
```
168+
- **Omit date** for current-state outputs that represent the latest understanding and get updated in place. Previous versions live in git history, not separate files.
169+
```
170+
competitive_research/acme_corp/swot.md # Current SWOT - updated over time
171+
docs/architecture/overview.md # Living document
172+
```
173+
174+
**Supporting materials and intermediate outputs**:
175+
- Content generated in earlier steps to support the final output (research notes, data extracts, drafts) should be placed in a `_dataroom` folder that is a peer to the final output
176+
- Name the dataroom folder by replacing the file extension with `_dataroom`
177+
```
178+
operations/reports/2026-01/spending_analysis.md # Final output
179+
operations/reports/2026-01/spending_analysis_dataroom/ # Supporting materials
180+
raw_data.csv
181+
vendor_breakdown.md
182+
notes.md
183+
```
184+
- This keeps supporting materials organized and discoverable without cluttering the main output location
185+
133186
4. **Step Dependencies**
134187
- Which previous steps must complete before this one?
135188
- Are there any ordering constraints?
@@ -410,16 +463,6 @@ After creating the file:
410463
2. Recommend that they review the job.yml file
411464
3. Tell them to run `/deepwork_jobs.review_job_spec` next
412465
413-
## Quality Criteria
414-
415-
- Asked structured questions to fully understand user requirements
416-
- User fully understands what job they're creating
417-
- All steps have clear inputs and outputs
418-
- Dependencies make logical sense
419-
- Summary is concise and descriptive
420-
- Description provides rich context for future refinement
421-
- Specification is valid YAML and follows the schema
422-
- Ready for implementation step
423466
424467
425468
### Job Context
@@ -466,7 +509,7 @@ Use branch format: `deepwork/deepwork_jobs-[instance]-YYYYMMDD`
466509
6. **Complete Steps**: Each step must have: id (lowercase_underscores), name, description, instructions_file, outputs (at least one), and dependencies array
467510
7. **Valid Dependencies**: Dependencies must reference existing step IDs with no circular references
468511
8. **Input Consistency**: File inputs with `from_step` must reference a step that is in the dependencies array
469-
9. **Output Paths**: Outputs must be valid filenames or paths within the main repo (not in dot-directories). Use specific, descriptive paths that lend themselves to glob patterns, e.g., `competitive_research/competitors_list.md` or `competitive_research/[competitor_name]/research.md`. Avoid generic names like `output.md`.
512+
9. **Output Paths**: 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/`).
470513
10. **Concise Instructions**: 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.
471514
472515
<details>
@@ -644,32 +687,6 @@ Use branch format: `deepwork/deepwork_jobs-[instance]-YYYYMMDD`
644687
- Do NOT proceed without required inputs; ask the user if any are missing
645688
- Do NOT modify files outside the scope of this step's defined outputs
646689

647-
## Quality Validation
648-
649-
**Before completing this step, you MUST have your work reviewed against the quality criteria below.**
650-
651-
Use a sub-agent (Haiku model) to review your work against these criteria:
652-
653-
**Criteria (all must be satisfied)**:
654-
1. **User Understanding**: Did the agent fully understand the user's workflow by asking structured questions?
655-
2. **Structured Questions Used**: Did the agent ask structured questions (using the AskUserQuestion tool) to gather user input?
656-
3. **Document Detection**: For document-oriented workflows, did the agent detect patterns and offer doc spec creation?
657-
4. **doc spec Created (if applicable)**: If a doc spec was needed, was it created in `.deepwork/doc_specs/[doc_spec_name].md` with proper quality criteria?
658-
5. **doc spec References**: Are document outputs properly linked to their doc specs using `{file, doc_spec}` format?
659-
6. **Valid Against doc spec**: Does the job.yml conform to the job.yml doc spec quality criteria (valid identifier, semantic version, concise summary, rich description, complete steps, valid dependencies)?
660-
7. **Clear Inputs/Outputs**: Does every step have clearly defined inputs and outputs?
661-
8. **Logical Dependencies**: Do step dependencies make sense and avoid circular references?
662-
9. **Concise Summary**: Is the summary under 200 characters and descriptive?
663-
10. **Rich Description**: Does the description provide enough context for future refinement?
664-
11. **Valid Schema**: Does the job.yml follow the required schema (name, version, summary, steps)?
665-
12. **File Created**: Has the job.yml file been created in `.deepwork/jobs/[job_name]/job.yml`?
666-
**Review Process**:
667-
1. Once you believe your work is complete, spawn a sub-agent using Haiku to review your work against the quality criteria above
668-
2. The sub-agent should examine your outputs and verify each criterion is met
669-
3. If the sub-agent identifies valid issues, fix them
670-
4. Have the sub-agent review again until all valid feedback has been addressed
671-
5. Only mark the step complete when the sub-agent confirms all criteria are satisfied
672-
673690
## On Completion
674691

675692
1. Verify outputs are created

.claude/skills/deepwork_jobs.implement/SKILL.md

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -150,11 +150,7 @@ This will:
150150
- Generate skills for each step
151151
- Make the skills available in `.claude/skills/` (or appropriate platform directory)
152152

153-
### Step 6: Relay Reload Instructions
154-
155-
After running `deepwork sync`, look at the "To use the new skills" section in the output. **Relay these exact reload instructions to the user** so they know how to pick up the new skills. 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).
156-
157-
### Step 7: Consider Rules for the New Job
153+
### Step 6: Consider Rules for the New Job
158154

159155
After implementing the job, consider whether there are **rules** that would help enforce quality or consistency when working with this job's domain.
160156

@@ -245,8 +241,7 @@ Before marking this step complete, ensure:
245241
- [ ] Each instruction file is complete and actionable
246242
- [ ] `deepwork sync` executed successfully
247243
- [ ] Skills generated in platform directory
248-
- [ ] User informed to follow reload instructions from `deepwork sync`
249-
- [ ] Considered whether rules would benefit this job (Step 7)
244+
- [ ] Considered whether rules would benefit this job (Step 6)
250245
- [ ] If rules suggested, offered to run `/deepwork_rules.define`
251246
252247
## Quality Criteria

.claude/skills/deepwork_jobs.learn/SKILL.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -250,14 +250,12 @@ If instruction files were modified:
250250
changes: "Improved [step] instructions based on execution learnings: [brief description]"
251251
```
252252

253-
### Step 7: Sync and Relay Instructions
253+
### Step 7: Sync Skills
254254

255-
1. **Run deepwork sync** (if instructions were modified)
256-
```bash
257-
deepwork sync
258-
```
259-
260-
2. **If skills were regenerated**, look at the "To use the new skills" section in the `deepwork sync` output and **relay these exact reload instructions to the user** (e.g., "Type 'exit' then run 'claude --resume'" for Claude Code)
255+
**Run deepwork sync** (if instructions were modified)
256+
```bash
257+
deepwork sync
258+
```
261259

262260
## File Reference Patterns
263261

@@ -347,7 +345,7 @@ I found the following job executions:
347345

348346
**Summary**
349347

350-
Updated job instructions and created AGENTS.md with bespoke learnings. To get the updated skills, type 'exit' then run 'claude --resume'.
348+
Updated job instructions and created AGENTS.md with bespoke learnings.
351349
```
352350
353351
## Handling Edge Cases

.claude/skills/deepwork_jobs.review_job_spec/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ Use branch format: `deepwork/deepwork_jobs-[instance]-YYYYMMDD`
276276
6. **Complete Steps**: Each step must have: id (lowercase_underscores), name, description, instructions_file, outputs (at least one), and dependencies array
277277
7. **Valid Dependencies**: Dependencies must reference existing step IDs with no circular references
278278
8. **Input Consistency**: File inputs with `from_step` must reference a step that is in the dependencies array
279-
9. **Output Paths**: Outputs must be valid filenames or paths within the main repo (not in dot-directories). Use specific, descriptive paths that lend themselves to glob patterns, e.g., `competitive_research/competitors_list.md` or `competitive_research/[competitor_name]/research.md`. Avoid generic names like `output.md`.
279+
9. **Output Paths**: 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/`).
280280
10. **Concise Instructions**: 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.
281281

282282
<details>

.deepwork/doc_specs/job_spec.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ quality_criteria:
2323
- name: Input Consistency
2424
description: "File inputs with `from_step` must reference a step that is in the dependencies array"
2525
- name: Output Paths
26-
description: "Outputs must be valid filenames or paths within the main repo (not in dot-directories). Use specific, descriptive paths that lend themselves to glob patterns, e.g., `competitive_research/competitors_list.md` or `competitive_research/[competitor_name]/research.md`. Avoid generic names like `output.md`."
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/`)."
2727
- name: Concise Instructions
2828
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."
2929
---

.deepwork/jobs/deepwork_jobs/doc_specs/job_spec.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ quality_criteria:
2323
- name: Input Consistency
2424
description: "File inputs with `from_step` must reference a step that is in the dependencies array"
2525
- name: Output Paths
26-
description: "Outputs must be valid filenames or paths within the main repo (not in dot-directories). Use specific, descriptive paths that lend themselves to glob patterns, e.g., `competitive_research/competitors_list.md` or `competitive_research/[competitor_name]/research.md`. Avoid generic names like `output.md`."
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/`)."
2727
- name: Concise Instructions
2828
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."
2929
---

.deepwork/jobs/deepwork_jobs/steps/define.md

Lines changed: 55 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,10 +106,63 @@ For each major phase they mentioned, ask structured questions to gather details:
106106
- Where should each output be saved? (filename/path)
107107
- Should outputs be organized in subdirectories? (e.g., `reports/`, `data/`, `drafts/`)
108108
- Will other steps need this output?
109-
110-
**Important**: Output paths should always be within the main repository directory structure, not in dot-directories like `.deepwork/`. Dot-directories are for configuration and job definitions, not for job outputs. Use paths like `research/competitors/report.md` rather than `.deepwork/outputs/report.md`.
111109
- **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
112110

111+
#### Work Product Storage Guidelines
112+
113+
**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.
114+
115+
**Why this matters**:
116+
- **Version control**: Work products in the main repo are tracked by git and visible in PRs
117+
- **Discoverability**: Team members can find outputs without knowing about DeepWork internals
118+
- **Tooling compatibility**: IDEs, search tools, and CI/CD work naturally with standard paths
119+
- **Glob patterns**: Well-structured paths enable powerful file matching (e.g., `competitive_research/**/*.md`)
120+
121+
**Good output path patterns**:
122+
```
123+
competitive_research/competitors_list.md
124+
competitive_research/acme_corp/research.md
125+
operations/reports/2026-01/spending_analysis.md
126+
docs/api/endpoints.md
127+
```
128+
129+
**Avoid these patterns**:
130+
```
131+
.deepwork/outputs/report.md # Hidden in dot-directory
132+
output.md # Too generic, no context
133+
research.md # Unclear which research
134+
temp/draft.md # Transient-sounding paths
135+
```
136+
137+
**Organizing multi-file outputs**:
138+
- Use the job name as a top-level folder when outputs are job-specific
139+
- Use parameterized paths for per-entity outputs: `competitive_research/[competitor_name]/`
140+
- Match existing project conventions when extending a codebase
141+
142+
**When to include dates in paths**:
143+
- **Include date** for periodic outputs where each version is retained (e.g., monthly reports, quarterly reviews, weekly summaries). These accumulate over time and historical versions remain useful.
144+
```
145+
operations/reports/2026-01/spending_analysis.md # Monthly report - keep history
146+
hr/employees/[employee_name]/quarterly_reviews/2026-Q1.pdf # Per-employee quarterly review
147+
```
148+
- **Omit date** for current-state outputs that represent the latest understanding and get updated in place. Previous versions live in git history, not separate files.
149+
```
150+
competitive_research/acme_corp/swot.md # Current SWOT - updated over time
151+
docs/architecture/overview.md # Living document
152+
```
153+
154+
**Supporting materials and intermediate outputs**:
155+
- Content generated in earlier steps to support the final output (research notes, data extracts, drafts) should be placed in a `_dataroom` folder that is a peer to the final output
156+
- Name the dataroom folder by replacing the file extension with `_dataroom`
157+
```
158+
operations/reports/2026-01/spending_analysis.md # Final output
159+
operations/reports/2026-01/spending_analysis_dataroom/ # Supporting materials
160+
raw_data.csv
161+
vendor_breakdown.md
162+
notes.md
163+
```
164+
- This keeps supporting materials organized and discoverable without cluttering the main output location
165+
113166
4. **Step Dependencies**
114167
- Which previous steps must complete before this one?
115168
- Are there any ordering constraints?

.deepwork/jobs/deepwork_jobs/steps/implement.md

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,7 @@ This will:
126126
- Generate skills for each step
127127
- Make the skills available in `.claude/skills/` (or appropriate platform directory)
128128

129-
### Step 6: Relay Reload Instructions
130-
131-
After running `deepwork sync`, look at the "To use the new skills" section in the output. **Relay these exact reload instructions to the user** so they know how to pick up the new skills. 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).
132-
133-
### Step 7: Consider Rules for the New Job
129+
### Step 6: Consider Rules for the New Job
134130

135131
After implementing the job, consider whether there are **rules** that would help enforce quality or consistency when working with this job's domain.
136132

@@ -221,8 +217,7 @@ Before marking this step complete, ensure:
221217
- [ ] Each instruction file is complete and actionable
222218
- [ ] `deepwork sync` executed successfully
223219
- [ ] Skills generated in platform directory
224-
- [ ] User informed to follow reload instructions from `deepwork sync`
225-
- [ ] Considered whether rules would benefit this job (Step 7)
220+
- [ ] Considered whether rules would benefit this job (Step 6)
226221
- [ ] If rules suggested, offered to run `/deepwork_rules.define`
227222
228223
## Quality Criteria

0 commit comments

Comments
 (0)