Releases
0.3.0
Compare
Sorry, something went wrong.
No results found
Added
Cross-platform hook wrapper system for writing hooks once and running on multiple platforms
wrapper.py: Normalizes input/output between Claude Code and Gemini CLI
claude_hook.sh and gemini_hook.sh: Platform-specific shell wrappers
rules_check.py: Cross-platform rule evaluation hook
Platform documentation in doc/platforms/ with hook references and learnings
Claude Code platform documentation (doc/platforms/claude/)
update.job for maintaining standard jobs (#41 )
make_new_job.sh script and templates directory for job scaffolding (#37 )
Default rules template file created during deepwork install (#42 )
Full e2e test suite: define → implement → execute workflow (#45 )
Automated tests for all shell scripts and hook wrappers (#40 )
Rules system v2 with frontmatter markdown format in .deepwork/rules/
Detection modes: trigger/safety (default), set (bidirectional), pair (directional)
Action types: prompt (show instructions), command (run idempotent commands)
Variable pattern matching with {path} (multi-segment) and {name} (single-segment)
Queue system in .deepwork/tmp/rules/queue/ for state tracking and deduplication
New core modules:
pattern_matcher.py: Variable pattern matching with regex-based capture
rules_queue.py: Queue system for rule state persistence
command_executor.py: Command action execution with variable substitution
Updated rules_check.py hook to use v2 system with queue-based deduplication
Changed
BREAKING : Refactored "commands" terminology to "skills" throughout the codebase
Directory structure changed from .claude/commands/ to .claude/skills/
Directory structure changed from .gemini/commands/ to .gemini/skills/
Class renamed: CommandGenerator → SkillGenerator
Enum renamed: CommandLifecycleHook → SkillLifecycleHook
Class attributes renamed: commands_dir → skills_dir, command_template → skill_template
Methods renamed: get_commands_dir() → get_skills_dir(), generate_all_commands() → generate_all_skills(), etc.
Template files renamed: command-job-step.md.jinja → skill-job-step.md.jinja, etc.
BREAKING : Removed uw. prefix convention for hidden steps
Step skills now use clean filenames (e.g., job_name.step_id.md instead of uw.job_name.step_id.md)
Hidden steps use user-invocable: false in YAML frontmatter instead
The exposed field in job.yml now controls the user-invocable frontmatter setting
CLI output messages updated to use "skills" terminology
Standardized on "ask structured questions" phrasing across all jobs (#48 )
deepwork_jobs bumped to v0.5.0, deepwork_rules to v0.2.0
Documentation updated with v2 rules examples and configuration
Fixed
Stop hooks now properly return blocking JSON (#38 )
Various CI workflow fixes (#35 , #46 , #47 , #51 , #52 )
Command rule errors now include promise skip instructions with the exact rule name
Previously, failed command rules only showed "Command failed" with no guidance
Now each failed rule shows: To skip, include <promise>Rule Name</promise> in your response
This allows agents to understand how to proceed when a command rule fails
Removed
v1 rules format (.deepwork.rules.yml) - now only v2 frontmatter markdown format is supported
Migration Guide
Run deepwork install --platform claude to regenerate skills in the new location
Remove old .claude/commands/ and .gemini/commands/ directories manually
Update any custom code that imports CommandGenerator or CommandLifecycleHook
You can’t perform that action at this time.