tag:github.com,2008:https://github.com/Unsupervisedcom/deepwork/releases Release notes from deepwork 2026-04-20T20:16:31Z tag:github.com,2008:Repository/1132406094/0.14.0 2026-04-20T20:16:35Z 0.14.0 <h3>Added</h3> <ul> <li>New <code>PLUG-REQ-001.15: Hook Script CLI Invocation</code> requirement in <code>doc/specs/deepwork/cli_plugins/PLUG-REQ-001-claude-code-plugin.md</code></li> </ul> <h3>Changed</h3> <ul> <li><code>claude_plugin_hook_deepwork_invocation</code> review rule now requires plugin hook scripts to invoke the CLI via <code>uvx deepwork</code> instead of merely providing a <code>uvx deepwork</code> fallback (PLUG-REQ-001.15)</li> <li>Plugin hook scripts (<code>post_commit_reminder.sh</code>, <code>deepschema_write.sh</code>, <code>post_compact.sh</code>) now invoke the <code>deepwork</code> CLI exclusively via <code>uvx deepwork ...</code>, matching the MCP server launch in <code>plugins/claude/.mcp.json</code></li> <li>Flake <code>shellHook</code> no longer runs <code>uv tool install -e</code> — the editable user-level <code>deepwork</code> install is redundant now that plugin hooks go through <code>uvx</code></li> </ul> <h3>Fixed</h3> <ul> <li>Plugin hooks no longer fail when the end user has a stale user-level <code>deepwork</code> install (e.g., <code>uv tool install deepwork</code> pinned to an older release) that wins PATH lookup but lacks the hook module being requested. The 0.13.9 fallback still used PATH first; this release bypasses PATH entirely so hooks resolve to the same <code>uvx</code> cache that the MCP server populated</li> </ul> <h3>Removed</h3> nhorton tag:github.com,2008:Repository/1132406094/0.13.9 2026-04-16T22:16:08Z 0.13.9 <h3>Added</h3> <ul> <li>New <code>claude_plugin_hook_deepwork_invocation</code> review rule in <code>plugins/claude/.deepreview</code> that flags plugin hook scripts which call bare <code>deepwork</code> without a <code>uvx deepwork</code> fallback</li> </ul> <h3>Changed</h3> <h3>Fixed</h3> <ul> <li>Plugin hook scripts (<code>post_commit_reminder.sh</code>, <code>deepschema_write.sh</code>, <code>post_compact.sh</code>) now fall back to <code>uvx deepwork</code> when the bare <code>deepwork</code> binary is not on PATH. End-user installs launch the MCP server via <code>uvx deepwork serve</code>, so <code>deepwork</code> is not available as a command — previously these hooks failed with exit 127 on every Bash tool use, and Claude Code reported them as failed PostToolUse hooks (regression introduced in PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4245387529" data-permission-text="Title is private" data-url="https://github.com/Unsupervisedcom/deepwork/issues/361" data-hovercard-type="pull_request" data-hovercard-url="/Unsupervisedcom/deepwork/pull/361/hovercard" href="https://github.com/Unsupervisedcom/deepwork/pull/361">#361</a>)</li> </ul> <h3>Removed</h3> nhorton tag:github.com,2008:Repository/1132406094/0.14.0a1 2026-04-15T23:02:09Z 0.14.0a1 <p>Pre-release <code>0.14.0a1</code> from branch <code>main</code>.</p> <p><strong>To use this pre-release</strong>, subscribe to the pre-release plugin channel:</p> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="claude plugin marketplace add Unsupervisedcom/deepwork#pre-release claude plugin install deepwork@deepwork-plugins"><pre class="notranslate"><code>claude plugin marketplace add Unsupervisedcom/deepwork#pre-release claude plugin install deepwork@deepwork-plugins </code></pre></div> nhorton tag:github.com,2008:Repository/1132406094/0.13.8 2026-04-15T22:49:31Z 0.13.8 <h3>Added</h3> <h3>Changed</h3> <ul> <li>Renamed default reviewer agent from <code>reviewer</code> to <code>deepwork:reviewer</code> (plugin-namespaced) in review instructions output</li> <li><code>/review</code> skill now checks for <code>deepwork:reviewer</code> agent availability before proceeding and directs users to <code>/reload-plugins</code> if missing</li> </ul> <h3>Fixed</h3> <h3>Removed</h3> nhorton tag:github.com,2008:Repository/1132406094/0.13.7 2026-04-14T16:58:58Z 0.13.7 <h3>Added</h3> <h3>Changed</h3> <h3>Fixed</h3> <h3>Removed</h3> nhorton tag:github.com,2008:Repository/1132406094/0.13.6 2026-04-14T15:40:41Z 0.13.6 <h3>Added</h3> <h3>Changed</h3> <ul> <li>Deprecated the <code>steps/</code> folder pattern for job definitions — step instructions are now inlined in <code>job.yml</code>; moved supplemental reference files from <code>steps/</code> to job root directories</li> <li>Repair workflow now instructs agents to <code>git rm</code> step instruction files after inlining</li> <li>Moved <code>specs/</code> to <code>doc/specs/</code> and consolidated <code>docs/</code> into <code>doc/</code> to reduce root directory clutter</li> </ul> <h3>Removed</h3> <ul> <li><code>coverage_report.md</code> (stale snapshot)</li> <li><code>job_refactor.md</code> (superseded planning notes)</li> <li><code>CLAUDE_PLUGINS_README.md</code> (redundant with README.md)</li> </ul> <h3>Fixed</h3> <h3>Removed</h3> nhorton tag:github.com,2008:Repository/1132406094/0.13.5 2026-04-12T23:37:15Z 0.13.5 <h3>Added</h3> <h3>Changed</h3> <h3>Fixed</h3> <h3>Removed</h3> nhorton tag:github.com,2008:Repository/1132406094/0.13.4 2026-04-12T17:47:23Z 0.13.4 <h3>Added</h3> <h3>Changed</h3> <ul> <li>Post-commit review reminder hook now short-circuits when all applicable (non-catch-all) review rules for the committed files are already marked as passed, emitting "No re-review needed" instead of nagging</li> <li>Renamed all "Task tool" references to "Agent tool" across codebase to match Claude Code's current tool naming</li> <li>Review formatter now emits <code>description</code>, <code>subagent_type</code>, and <code>prompt</code> fields (dropped <code>name</code> field) to match Agent tool signature</li> <li>Hook wrapper tool mappings updated: <code>Task</code>/<code>task</code> → <code>Agent</code>/<code>agent</code></li> </ul> <h3>Fixed</h3> <ul> <li>Review instruction files now include a <code>## Project Root</code> directive stating the absolute project root so reviewer subagents read files from the correct working tree — fixes spurious findings in git-worktree setups where the subagent's cwd differed from the worktree the commits actually lived in (REVIEW-REQ-005.1.9)</li> </ul> <h3>Removed</h3> <ul> <li>Removed automatic DeepPlan workflow injection from startup_context.sh hook (no longer forces plan mode into DeepPlan)</li> <li>Deprecated JOBS-REQ-014.5.1 (startup hook DeepPlan trigger) and REVIEW-REQ-006.3.3a (name field in review output)</li> </ul> nhorton tag:github.com,2008:Repository/1132406094/0.13.3 2026-04-10T02:46:23Z 0.13.3 <h3>Added</h3> <ul> <li><code>/record</code> skill: "watch and learn" approach to creating DeepWork workflows — users do their work normally, then <code>/deepwork learn</code> turns it into a repeatable job</li> <li><code>/new_user</code> skill: guided onboarding that introduces DeepWork, offers review rule setup for code projects, and offers to record a first workflow</li> <li><code>/deepwork learn</code> now routes to the <code>new_job</code> workflow when invoked after <code>/deepwork:record</code></li> <li>Requirements specs PLUG-REQ-002 (record skill) and PLUG-REQ-003 (new user skill)</li> <li>Anonymous DeepSchemas for both new skills</li> </ul> <h3>Changed</h3> <ul> <li>README install commands consolidated into a single <code>&amp;&amp;</code>-joined command ending with <code>/deepwork:new_user</code></li> <li><code>deepwork setup</code> now opens <code>https://www.deepwork.md/success</code> in the default browser after completing configuration</li> </ul> <h3>Fixed</h3> <h3>Removed</h3> nhorton tag:github.com,2008:Repository/1132406094/0.13.2 2026-04-09T02:29:18Z 0.13.2 <h3>Added</h3> <ul> <li><code>deepwork setup</code> CLI command that auto-configures Claude Code settings (marketplace, plugin, MCP permissions, auto-update) (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4214177871" data-permission-text="Title is private" data-url="https://github.com/Unsupervisedcom/deepwork/issues/343" data-hovercard-type="pull_request" data-hovercard-url="/Unsupervisedcom/deepwork/pull/343/hovercard" href="https://github.com/Unsupervisedcom/deepwork/pull/343">#343</a>)</li> <li><code>deepwork setup</code> also grants project-root-relative <code>Read</code>/<code>Write</code>/<code>Edit</code> permissions for <code>/.deepwork/**/*</code> so the plugin can operate on <code>.deepwork/</code> in every project without per-prompt approval</li> <li>Integration tests for quality gate review caching (JOBS-REQ-004.5.7)</li> <li>Requirements traceability coverage now at 100% (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4214458768" data-permission-text="Title is private" data-url="https://github.com/Unsupervisedcom/deepwork/issues/346" data-hovercard-type="pull_request" data-hovercard-url="/Unsupervisedcom/deepwork/pull/346/hovercard" href="https://github.com/Unsupervisedcom/deepwork/pull/346">#346</a>) <ul> <li>Added section-level REQ ID annotations to 32 existing test files for traceability</li> <li>Wrote 218 new tests across 5 files for learning-agents requirements (LA-REQ-001, 003, 004, 005, 006, 010, 011)</li> <li>Added 6 anonymous DeepSchemas for judgment-based learning-agents skill requirements (LA-REQ-002, 007, 008, 009, 012)</li> <li>Added new PLUG-REQ-001.12 tests for session/agent identity injection hooks</li> <li>New <code>req-ids-in-comments</code> requirement in the standard DeepSchema definition: requirement IDs must be placed in YAML comments, not requirement body text</li> </ul> </li> </ul> <h3>Changed</h3> <ul> <li>JOBS-REQ-004.5.7 strengthened to explicit MUST requirement for skipping already-passed reviews</li> </ul> <h3>Fixed</h3> <ul> <li>DeepSchema PostToolUse hook (<code>deepschema_write</code>) no longer reports <code>File is not valid JSON</code> for YAML files whose name has no extension (e.g. <code>.deepreview</code>). The hook now parses target files and the referenced JSON Schema as YAML, which is a superset of JSON, so both formats are accepted regardless of file extension. DW-REQ-011.7.3 updated to match. (Mirrors the fix shipped in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4201893425" data-permission-text="Title is private" data-url="https://github.com/Unsupervisedcom/deepwork/issues/338" data-hovercard-type="pull_request" data-hovercard-url="/Unsupervisedcom/deepwork/pull/338/hovercard" href="https://github.com/Unsupervisedcom/deepwork/pull/338">#338</a> for the workflow quality gate.)</li> <li><code>review:</code> blocks declared on <code>type: string</code> step outputs are now actually executed. Previously they were silently dropped because the review pipeline only matched against file paths, leaving authors with misconfigured-but-silent quality gates. String output reviews now produce synthetic <code>ReviewTask</code> objects with the string value carried on a new <code>ReviewTask.inline_content</code> field and rendered into the instruction file as a "Content to Review" section. New requirements: JOBS-REQ-004.8, REVIEW-REQ-005.1.8, REVIEW-REQ-009.1.7. (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="4228381537" data-permission-text="Title is private" data-url="https://github.com/Unsupervisedcom/deepwork/issues/350" data-hovercard-type="issue" data-hovercard-url="/Unsupervisedcom/deepwork/issues/350/hovercard" href="https://github.com/Unsupervisedcom/deepwork/issues/350">#350</a>)</li> </ul> <h3>Removed</h3> nhorton