Skip to content

Conversation

@nhorton
Copy link
Contributor

@nhorton nhorton commented Jan 16, 2026

Summary

  • Implements meta-command architecture: each job now generates a single user-facing entry point (e.g., /deepwork_jobs) that interprets user intent and routes to appropriate hidden step commands
  • Steps are hidden by default (underscore prefix) unless marked exposed: true in job.yml
  • Users invoke jobs naturally: /deepwork_jobs define a new job instead of /deepwork_jobs.define

Test plan

  • All 387 unit/integration tests pass
  • Verified deepwork install --platform claude generates correct structure
  • Verified meta-commands route to hidden steps correctly
  • Verified exposed steps (e.g., deepwork_jobs.learn) remain visible

🤖 Generated with Claude Code

nhorton and others added 6 commits January 16, 2026 11:55
Each job now generates a single user-facing meta-command (e.g., /deepwork_jobs)
that interprets user intent and routes to appropriate hidden step commands.

Key changes:
- Add `exposed` field to job.yml steps (default: false = hidden)
- Step commands are hidden by default (underscore prefix: _job.step.md)
- Steps with `exposed: true` remain visible (e.g., deepwork_jobs.learn.md)
- New meta-command templates for Claude and Gemini
- Generator creates meta-command first, then step commands

User experience:
- Before: /deepwork_jobs.define
- After: /deepwork_jobs define a new job

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The tilde (~) prefix doesn't sort commands to the end as intended.
Using "uw." (underwork) prefix ensures hidden step commands sort
after user-facing meta-commands alphabetically.

- Rename all hidden step command files from _ to uw. prefix
- Update adapters.py to generate uw. prefix for hidden steps
- Update all references in parent command files
- Update architecture.md documentation
- Update all test assertions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Prevents Claude from stopping when hooks are presented as errors.
Updated prompts in policy.yml, add_platform, update, and deepwork_jobs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Introduces a new bespoke commit job for this repo with three steps:
test, format, and reconcile_and_push. The job validates code quality
before pushing changes by running pytest and ruff checks.

Uses script hooks (not prompt hooks) for the test and format steps,
with guidance on interpreting hook output included in the step
instructions. This simpler approach lets the agent handle results
directly rather than requiring a separate prompt-based evaluator.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Updates the job schema to enforce that each hook event (after_agent,
before_tool, before_prompt) can only contain hooks of a single type -
either all scripts, all prompts, or all prompt_files. Mixing types
like having both a script and a prompt in the same event is now rejected.

This prevents confusing configurations where script output would be
followed by a prompt evaluation, which doesn't work as expected.

Adds tests to verify:
- Mixed script/prompt hooks are rejected
- Mixed script/prompt_file hooks are rejected
- Multiple scripts in same event are allowed
- Multiple prompts in same event are allowed

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants