Skip to content

Convert shipwright into curated plugin marketplace#33

Open
owaism wants to merge 24 commits intomainfrom
feature/claude-plugin-marketplace
Open

Convert shipwright into curated plugin marketplace#33
owaism wants to merge 24 commits intomainfrom
feature/claude-plugin-marketplace

Conversation

@owaism
Copy link
Collaborator

@owaism owaism commented Feb 27, 2026

Why

RAI needs a quality-gated plugin marketplace (shipwright-marketplace) that coexists alongside the community claude-plugins repo. The existing single-plugin repo needed to be restructured into a marketplace hosting two plugins with clear separation of concerns: standalone tools (dockyard) and orchestrated workflows (shipwright).

What

Converts this repo from a single Claude Code plugin into a two-plugin marketplace:

  • Marketplace registry (.claude-plugin/marketplace.json) — lists dockyard and shipwright as local plugins
  • Dockyard plugin — standalone skills (brownfield-analysis, code-review, review-and-submit, observability), 6 commands, 1 agent (doc-digest)
  • Shipwright plugin — orchestrated bug-fix workflow with 4 internal agents (triage, implementer, reviewer, validator) and 5 internal skills (TDD, systematic-debugging, etc.)
  • Dependency enforcement — SessionStart hook in shipwright exits code 2 if dockyard is not installed
  • Governance — CODEOWNERS, CONTRIBUTING.md, skill/agent templates for future contributors
  • Smoke tests — 140 assertions across 4 suites validating structure, skills, agents, and commands for both plugins

Removes obsolete single-plugin artifacts: old commands (debug, promote, report), stable manifest, milestone docs.

How to review

  1. Start with the design doc (docs/plans/2026-02-27-marketplace-conversion-design.md) — explains the architecture, plugin split rationale, naming decisions, and technical constraints
  2. Marketplace registry (.claude-plugin/marketplace.json) and both plugin.json files — verify the manifests are correct
  3. Dependency enforcement (plugins/shipwright/hooks/) — SessionStart hook + check-dockyard.sh with 6 behavioral test cases
  4. Dockyard skills (plugins/dockyard/skills/) — code-review and review-and-submit are new; brownfield-analysis and observability were moved
  5. Smoke tests (plugins/dockyard/tests/smoke/) — validate the entire marketplace structure, all skills, agents, and commands

Pre-submit review

5 rounds of local code review using the dockyard 3-pass code-review skill. Findings fixed across rounds:

  • Stale Shipwright references in dockyard files (round 1-2)
  • Internal skill path mismatches (tdd.mdtdd/SKILL.md) (round 3)
  • Dead orchestrator-spawned mode in doc-digest agent (round 4)
  • Stale paths in historical design/implementation docs (round 4)
  • Test hardening: awk frontmatter extraction, exact exit code assertions, cross-plugin ref validation, similar-name false-positive test (rounds 3-5)

Final review: APPROVE — 0 blockers, 0 warnings, 140/140 smoke tests passing.

🤖 Generated with Claude Code


**Commands:**
- `/shipwright` — Main orchestrator (Triage → Implement → Review → Validate)
- `/feedback` — File bugs/feedback on the shipwright plugin
Copy link
Contributor

Choose a reason for hiding this comment

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

seems like thsi shoudl be /shipwright:feedback no?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

yes. Each plugin will have a feedback as per design. I will fix this


### How it works

Shipwright ships a `SessionStart` hook that reads `~/.claude/plugins/installed_plugins.json` and checks for Dockyard. If missing, the hook exits with code 2, which hard-blocks the session.
Copy link
Contributor

Choose a reason for hiding this comment

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

Is there any way to make it just install it automatically when you install shipyard? I'm guessing not but thought i'd ask.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

no. The claude plugin system is very nascent. It does not have dependency management currently. If you ask claude, it will tell you it is possible. But tell it to research all the documentation, then it will tell you no - it is not possible.

owaism and others added 23 commits February 27, 2026 11:40
Defines the plan to convert this repo into shipwright-marketplace --
RAI curated Claude Code plugin marketplace with two plugins
(dockyard + shipwright) and hybrid monorepo architecture.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Applied doc-digest review feedback: added version pinning rationale,
removed /promote, renamed /report to /feedback, added CODEOWNERS,
fixed team settings.json, and linked JIRA backlog tickets (RAI-47775,
RAI-47776, RAI-47777) to post-launch requirements.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…emplates)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rewrite all 5 smoke test scripts to validate the two-plugin marketplace
layout (dockyard + shipwright) instead of the old single-plugin structure.
Tests now verify marketplace.json, both plugin.json files, CODEOWNERS,
CONTRIBUTING.md, templates, hooks, and all commands/skills/agents at
their new paths under plugins/.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace jq dependency in check-dockyard.sh with grep (no external deps)
- Qualify all command references with plugin names (e.g. /dockyard:debug)
- Fix cross-plugin skill references in shipwright agents to use
  dockyard:brownfield-analysis notation
- Update design doc to match implementation
- Fix stale /report references to /feedback

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move PR #32 additions into the marketplace structure:
- skills/code-review/ → plugins/dockyard/skills/code-review/
- skills/review-and-submit/ → plugins/dockyard/skills/review-and-submit/
- docs/plans/2026-02-26-code-review-*.md → plugins/dockyard/docs/plans/
- Remove package.json (single-plugin artifact, not needed for marketplace)
- Update smoke tests to cover new skills (126/126 passing)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove /dockyard:debug command (depends on shipwright internal skills,
  contradicts dockyard standalone designation)
- Fix SessionStart hook matcher to cover all triggers
  (startup|resume|clear|compact)
- Fix shebang in check-dockyard.sh for consistency
- Fix dockyard commands referencing Shipwright to Dockyard
- Fix codebase-analyze.md skill path (skills/brownfield-analysis/SKILL.md)
- Update design doc: add code-review and review-and-submit skills,
  remove debug command, update directory tree and hooks
- Add hooks.json content validation to smoke tests
- Add behavioral tests for check-dockyard.sh (3 scenarios)
- Fix validate-agents.sh grep to handle cross-plugin skill refs
- chmod +x all smoke test scripts

Smoke tests: 125/125 passing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ns, script headers

- review-and-submit/SKILL.md: Shipwright → Dockyard, shipwright:code-review → dockyard:code-review, /shipwright:submit → /dockyard:review-and-submit
- brownfield-analysis/SKILL.md: "every Shipwright agent" → "every agent"
- check-dockyard.sh: add header comment and set -euo pipefail
- run-all.sh: add comment explaining intentional omission of -e
- validate-structure.sh: assert exact exit code 2 (not just non-zero)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ning

- Fix blocker: internal skill paths use /SKILL.md (tdd.md → tdd/SKILL.md) across
  all 4 agents and the orchestrator
- Add /dockyard:review-and-submit command (thin wrapper for the skill)
- Remove stale m1-tier1-bugfix.md milestone doc
- Fix shipwright-design-v1.md: RelationalAI/claude-plugins → RelationalAI/shipwright,
  update command table to reflect current dockyard commands
- Fix doc-digest agent: "for Shipwright" → "for Dockyard"
- Harden tests: awk frontmatter extraction, root-level marketplace key checks,
  tighter agent role-description grep, empty registry edge case,
  error message content assertion, cross-plugin skill ref resolution validation
- Update design doc and smoke tests for new review-and-submit command

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Clean up stale paths in code-review design/implementation docs
- Remove dead orchestrator-spawned mode from doc-digest agent
- Update stale command names in research doc
- Fix plugin.json key check to match marketplace.json pattern
- Add /dockyard:code-review standalone command
- Update smoke tests and design doc for new command

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove deleted m1-tier1-bugfix.md from design doc directory tree
- Add test for similar-named plugin (dockyard-tools) not false-matching

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@owaism owaism force-pushed the feature/claude-plugin-marketplace branch from d07a4f0 to 8677d8b Compare February 27, 2026 19:16
@owaism owaism changed the title Design: Convert shipwright into curated plugin marketplace Convert shipwright into curated plugin marketplace Feb 27, 2026
- Trim README to concise plugin/command table
- Add CLAUDE.md with structure, conventions, and testing instructions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.

2 participants