Skip to content

Comments

Re-engineer DeepWork as multi-platform plugin#222

Open
nhorton wants to merge 2 commits intomainfrom
plugin_fixes
Open

Re-engineer DeepWork as multi-platform plugin#222
nhorton wants to merge 2 commits intomainfrom
plugin_fixes

Conversation

@nhorton
Copy link
Contributor

@nhorton nhorton commented Feb 18, 2026

Summary

  • Replace the complex install/sync CLI with a plugin-based delivery model — the MCP server remains the core runtime, now delivered through platform plugins instead of a CLI installation step
  • Add Claude Code plugin (plugins/claude/) and Gemini CLI extension (plugins/gemini/) with shared content extracted to platform/
  • Remove ~3,000 lines of install/sync/adapter/detector/generator/template code and move jinja2, gitpython, rich from runtime to dev dependencies

Details

New: Plugin architecture

  • plugins/claude/ — Claude Code plugin with .claude-plugin/plugin.json, skill, hooks (with symlink to shared platform/hooks/), and .mcp.json
  • plugins/gemini/ — Gemini CLI extension with TOML-frontmatter skill
  • platform/skill-body.md — canonical skill body (source of truth for both platforms)
  • platform/hooks/check_version.sh — shared hook script (symlinked from both plugins/claude/ and src/deepwork/hooks/)

Simplified CLI

  • main.py now only registers serve and hook commands
  • serve.py works without config.yml — creates .deepwork/tmp/ lazily
  • Removed rich dependency from CLI (replaced with plain click.echo)

Deleted code

  • src/deepwork/cli/install.py, sync.py
  • src/deepwork/core/adapters.py, detector.py, generator.py, hooks_syncer.py
  • src/deepwork/templates/ (entire directory)
  • .deepwork/config.yml, .deepwork/schemas/, .deepwork/doc_specs/

Updated documentation

  • CLAUDE.md, README.md, doc/architecture.md, CLAUDE_PLUGINS_README.md all reflect the new plugin-based architecture

Test plan

  • uv run pytest tests/ --ignore=tests/integration — 416 passed, 1 skipped
  • Verify /deepwork skill triggers correctly in a new Claude Code session with the plugin enabled
  • Verify MCP tools (get_workflows, start_workflow, finished_step) work via deepwork serve
  • Verify SessionStart hook fires via plugin hooks.json
  • Verify symlinks resolve correctly on a fresh clone

🤖 Generated with Claude Code

Replace the complex install/sync CLI with a plugin-based delivery model.
The MCP server remains the core runtime, now delivered through platform
plugins instead of a CLI installation step.

Key changes:
- Add Claude Code plugin (plugins/claude/) with skill, hooks, and MCP config
- Add Gemini CLI extension (plugins/gemini/) with TOML-frontmatter skill
- Extract shared content to platform/ (skill-body.md, hooks/)
- Remove CLI install/sync commands and supporting code (adapters, detector,
  generator, hooks_syncer, templates)
- Simplify serve.py to work without config.yml
- Move jinja2, gitpython, rich from runtime to dev dependencies
- Update marketplace.json with deepwork plugin entry
- Update all documentation (CLAUDE.md, README.md, architecture.md)
- Delete obsolete .deepwork/config.yml, schemas/, doc_specs/
- Update tests: replace install/adapter tests with plugin structure tests

416 tests pass, 1 skipped (full e2e requiring external Claude CLI).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
"name": "DeepWork"
},
"category": "workflow",
"keywords": ["workflow", "automation", "quality-gates", "multi-step"],
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"keywords": ["workflow", "automation", "quality-gates", "multi-step"],
"keywords": ["workflow", "automation", "quality-gates", "multi-step", "planning"],

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this file can be removed. The utlity is not worth it, so just remove the use of this.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should go away too

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Goes away...

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.

1 participant