Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Jan 23, 2026

DeepWork currently requires manual CLI installation (deepwork install) with platform-specific file generation. This adds native Claude Code plugin distribution for simplified installation via claude plugin install.

Plugin Structure

.claude-plugin/
└── plugin.json              # Plugin manifest (name, version, metadata)

skills/
├── install/SKILL.md         # /deepwork:install skill
└── sync/SKILL.md            # /deepwork:sync skill

hooks/
└── hooks.json               # Event hooks: SessionStart, UserPromptSubmit, Stop, SubagentStop

Architecture

Following Claude Code's retirement of the separate commands/ directory, this implementation uses a skills-only architecture where skills serve dual purposes:

  • User-invocable: Can be explicitly invoked with /deepwork: namespace prefix
  • Auto-invocable: Claude can invoke them automatically based on conversation context

Hooks: Bundled configuration for SessionStart version checks, UserPromptSubmit rules queue management, and Stop/SubagentStop rules validation.

Installation Flow

# New: Plugin installation
claude plugin install https://github.com/Unsupervisedcom/deepwork

# Then in any project:
/deepwork:install

# Legacy CLI still supported:
pipx install deepwork && deepwork install

Documentation

  • PLUGIN.md: Plugin-specific installation, testing, and development guidelines
  • AGENTS.md: Updated with Claude Code plugin architecture section documenting the skills-only approach
  • README.md: Updated with plugin-first installation approach
  • CHANGELOG.md: Added [Unreleased] section documenting plugin additions and architectural changes

Plugin validates successfully with correct directory structure, JSON schemas, and unified skills architecture following Claude Code's current design.

Original prompt

This section details on the original issue you should resolve

<issue_title>Claude Code Plugin</issue_title>
<issue_description>
Current State vs Plugin Architecture

DeepWork currently uses:

  • CLI tool (deepwork install/sync) that generates platform-specific files
  • Adapter pattern to support multiple platforms (Claude, Gemini)
  • Jinja2 templates generating skills into .claude/skills/
  • Hooks synced to .claude/settings.json

Claude Code plugins provide:

  • Single distributable package with versioning
  • Marketplace distribution (GitHub repos, custom marketplaces)
  • Namespaced skills (/deepwork:job-name)
  • Bundled hooks, MCP servers, LSP servers

Deployment Options

Option 1: Plugin Wrapper (Recommended)

Create a Claude Code plugin that wraps DeepWork:

deepwork-plugin/
├── .claude-plugin/
│ └── plugin.json # Plugin manifest
├── skills/
│ ├── install/SKILL.md # /deepwork:install
│ ├── sync/SKILL.md # /deepwork:sync
│ └── / # From deepwork sync
├── hooks/
│ └── hooks.json # rules_check hook
├── .mcp.json # Optional MCP server
└── scripts/
└── deepwork_wrapper.sh # Shell hooks

Pros:

  • Single install command: /plugin install deepwork@marketplace
  • Versioned releases via GitHub
  • Works alongside existing adapter system
  • Users don't need Python/pipx installed

Cons:

  • Need to bundle Python runtime or assume it's installed
  • Two-step process: install plugin + run deepwork install</issue_description>

<agent_instructions>Here are the claude code plugins here

Create plugins

Create custom plugins to extend Claude Code with skills, agents, hooks, and MCP servers.

Plugins let you extend Claude Code with custom functionality that can be shared across projects and teams. This guide covers creating your own plugins with skills, agents, hooks, and MCP servers.

Looking to install existing plugins? See Discover and install plugins. For complete technical specifications, see Plugins reference.

When to use plugins vs standalone configuration

Claude Code supports two ways to add custom skills, agents, and hooks:

Approach Skill names Best for
Standalone (.claude/ directory) /hello Personal workflows, project-specific customizations, quick experiments
Plugins (directories with .claude-plugin/plugin.json) /plugin-name:hello Sharing with teammates, distributing to community, versioned releases, reusable across projects

Use standalone configuration when:

  • You're customizing Claude Code for a single project
  • The configuration is personal and doesn't need to be shared
  • You're experimenting with skills or hooks before packaging them
  • You want short skill names like /hello or /review

Use plugins when:

  • You want to share functionality with your team or community
  • You need the same skills/agents across multiple projects
  • You want version control and easy updates for your extensions
  • You're distributing through a marketplace
  • You're okay with namespaced skills like /my-plugin:hello (namespacing prevents conflicts between plugins)
Start with standalone configuration in `.claude/` for quick iteration, then [convert to a plugin](#convert-existing-configurations-to-plugins) when you're ready to share.

Quickstart

This quickstart walks you through creating a plugin with a custom skill. You'll create a manifest (the configuration file that defines your plugin), add a skill, and test it locally using the --plugin-dir flag.

Prerequisites

If you don't see the `/plugin` command, update Claude Code to the latest version. See [Troubleshooting](/en/troubleshooting) for upgrade instructions.

Create your first plugin

Every plugin lives in its own directory containing a manifest and your skills, agents, or hooks. Create one now:
```bash  theme={null}
mkdir my-first-plugin
```
The manifest file at `.claude-plugin/plugin.json` defines your plugin's identity: its name, description, and version. Claude Code uses this metadata to display your plugin in the plugin manager.
Create the `.claude-plugin` directory inside your plu...

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI and others added 4 commits January 23, 2026 16:43
Co-authored-by: ncrmro <8276365+ncrmro@users.noreply.github.com>
Co-authored-by: ncrmro <8276365+ncrmro@users.noreply.github.com>
Co-authored-by: ncrmro <8276365+ncrmro@users.noreply.github.com>
Co-authored-by: ncrmro <8276365+ncrmro@users.noreply.github.com>
Copilot AI changed the title [WIP] Create Claude Code plugin to wrap DeepWork Add Claude Code plugin architecture with namespaced commands and bundled hooks Jan 23, 2026
Copilot AI requested a review from ncrmro January 23, 2026 16:49
@nhorton
Copy link
Contributor

nhorton commented Jan 26, 2026

@copilot - please update the top-level AGENTS.md to note that Claude has basically retired commands in favor of skills. Skills are now invokable with slash commands just like commands were.

Based on that, update all your code.

…Claude Code changes

Co-authored-by: nhorton <204146+nhorton@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Jan 26, 2026

@copilot - please update the top-level AGENTS.md to note that Claude has basically retired commands in favor of skills. Skills are now invokable with slash commands just like commands were.

Based ...

Updated in commit 0fc7114.

Changes made:

  • Removed commands/ directory entirely
  • Skills now serve dual purpose: user-invocable with /deepwork:install and /deepwork:sync, and automatically invokable by Claude
  • Updated AGENTS.md with new section documenting Claude Code's retirement of commands in favor of skills
  • Updated PLUGIN.md, README.md, and CHANGELOG.md to reflect the unified skills-only architecture
  • Simplified skill documentation to remove redundant command/skill distinction

The plugin now follows Claude Code's current architecture where skills in skills/ are both slash-command invocable and automatically invocable by Claude based on context.

Co-authored-by: nhorton <204146+nhorton@users.noreply.github.com>
Copilot AI changed the title Add Claude Code plugin architecture with namespaced commands and bundled hooks Add Claude Code plugin architecture with namespaced skills and bundled hooks Jan 26, 2026
Copilot AI requested a review from nhorton January 26, 2026 16:50
@ncrmro ncrmro removed request for ncrmro and nhorton January 28, 2026 15:02
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.

Claude Code Plugin

3 participants