Skip to content

feat(plugin): convert project to Claude Code plugin, rename orchestrator to /sdd:run - #20

Merged
robertraf merged 4 commits into
mainfrom
feat/plugin-conversion
Apr 16, 2026
Merged

feat(plugin): convert project to Claude Code plugin, rename orchestrator to /sdd:run#20
robertraf merged 4 commits into
mainfrom
feat/plugin-conversion

Conversation

@robertraf

@robertraf robertraf commented Apr 16, 2026

Copy link
Copy Markdown
Owner

Summary

Converts the project from symlink-based installation to a plugin-only distribution model, aligned with official Claude Code plugin best practices.

What changed

  • .claude-plugin/plugin.json: Plugin manifest (name: sdd, v1.0.0)
  • .claude-plugin/marketplace.json: Self-hosted marketplace catalog
  • hooks/hooks.json: New — automatic PreToolUse hook blocking dangerous git operations (active whenever plugin is enabled)
  • CHANGELOG.md: New — version tracking per best practices
  • skills/sdd/skills/run/: Renamed orchestrator so it becomes /sdd:run
  • skills/migrate/SKILL.md: Script paths use ${CLAUDE_SKILL_DIR} for plugin cache compatibility
  • skills/review-migration/SKILL.md: Same script path fix
  • skills/ship/SKILL.md: Hook section updated — now automatic via plugin, no manual config needed
  • settings.json: Stripped to plugin-supported keys only (permissions/env moved to README as recommended config)
  • install.sh: Removed — plugin-only distribution
  • README.md: Plugin install instructions, expanded recommended settings section
  • CLAUDE.md: Updated all skill references to plugin namespace
  • .claude/rules/sdd-workflow.md: Updated glob from skills/sdd/** to skills/run/**
  • tests/: Updated trigger and functional test references

Change overview

graph TD
    A[New: .claude-plugin/plugin.json] -->|defines| B[Plugin: sdd]
    C[New: .claude-plugin/marketplace.json] -->|catalogs| B
    D[New: hooks/hooks.json] -->|auto-protects| B
    B -->|discovers| E[skills/run/ — orchestrator]
    B -->|discovers| F[skills/spec, plan, etc.]
    B -->|discovers| G[agents/]
    B -->|discovers| H[.mcp.json]
    I[Removed: install.sh] -.->|replaced by| B
Loading

How to test

  1. Test locally: claude --plugin-dir /path/to/rob-agent-workflow
  2. Verify skills appear namespaced: /sdd:run, /sdd:spec, /sdd:plan, etc.
  3. Run claude plugin validate . — passes
  4. Run bash tests/validate-skills.sh — all 13 skills pass (0 failures)
  5. Try a dangerous git command — hook should block it automatically

Breaking changes

  • install.sh removed — users must install as a plugin
  • Skill names are now namespaced: /spec/sdd:spec, /sdd/sdd:run
  • settings.json no longer ships permissions — users must add recommended settings themselves

robertraf and others added 2 commits April 15, 2026 18:22
Add .claude-plugin/plugin.json manifest and marketplace.json for
self-hosted distribution. Update script paths in migrate and
review-migration skills to use ${CLAUDE_SKILL_DIR} for plugin cache
compatibility. Update README with plugin installation instructions
and correct repo URL to h4b-dev org.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Rename the orchestrator skill from skills/sdd/ to skills/run/ so it
becomes /sdd:run in the plugin namespace. Remove install.sh — the
project is now plugin-only. Update all references in CLAUDE.md,
README.md, test files, and rule globs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@robertraf robertraf changed the title feat(plugin): convert project to Claude Code plugin format feat(plugin): convert project to Claude Code plugin, rename orchestrator to /sdd:run Apr 16, 2026
robertraf and others added 2 commits April 15, 2026 18:43
- Strip settings.json to plugin-supported keys only (permissions and
  env vars cannot be shipped via plugins)
- Add hooks/hooks.json with automatic PreToolUse hook that blocks
  dangerous git operations (git push --force, git reset --hard,
  git add ., --no-verify) — active whenever the plugin is enabled
- Add CHANGELOG.md for version tracking
- Update README with expanded recommended settings section explaining
  what users need to configure themselves
- Update ship SKILL.md to document the hook as automatic vs on-demand

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add paths triggers for agents/, hooks/, .claude-plugin/, and
settings.json. Add validate-plugin job that checks plugin.json,
marketplace.json, hooks.json, settings.json are valid JSON, verifies
required manifest fields, and ensures plugin directory structure
follows best practices (components at root, not inside .claude-plugin/).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@robertraf
robertraf merged commit d642125 into main Apr 16, 2026
2 checks passed
@robertraf robertraf self-assigned this Apr 16, 2026
@robertraf robertraf added the enhancement New feature or request label Apr 16, 2026
@robertraf
robertraf deleted the feat/plugin-conversion branch April 16, 2026 00:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant