Skip to content

feat: add plugin marketplace with symlink-based architecture#9

Open
aviadr1 wants to merge 7 commits intoChrisWiles:mainfrom
aviadr1:main
Open

feat: add plugin marketplace with symlink-based architecture#9
aviadr1 wants to merge 7 commits intoChrisWiles:mainfrom
aviadr1:main

Conversation

@aviadr1
Copy link

@aviadr1 aviadr1 commented Jan 11, 2026

Summary

Transform the showcase repository into an installable Claude Code plugin marketplace while maintaining the existing showcase structure as the single source of truth using symlinks.

Key Features

  • 12 installable plugins via Claude Code's native plugin system
  • Symlink-based architecture - single source of truth in .claude/, no duplication
  • Automatic updates - git pull flows through symlinks to installed plugins
  • Comprehensive tooling - audit scripts, change detection, validation

Installation (for users)

/plugin marketplace add ChrisWiles/claude-code-showcase
/plugin install testing-patterns@claude-code-showcase

Available Plugins

Plugin Type Description
testing-patterns Skill Jest testing, factory functions, TDD workflow
systematic-debugging Skill Four-phase debugging methodology
react-ui-patterns Skill Loading states, error handling, data fetching
formik-patterns Skill Form handling and validation
graphql-schema Skill GraphQL queries, mutations, codegen
core-components Skill Design system and component library
plugin-marketplace Skill Create marketplaces using symlinks
pr-toolkit Bundle /pr-review, /pr-summary + github-workflow agent
code-review-suite Bundle code-reviewer agent + /code-quality command
ticket-workflow Bundle /ticket + /onboard commands
docs-sync Command Documentation synchronization
skill-activation Hook Intelligent skill suggestions

Architecture

.claude/                    # Source of truth (unchanged)
├── skills/testing-patterns/
└── commands/pr-review.md

plugins/                    # Plugin packages (symlinks)
└── testing-patterns/
    └── skills/testing-patterns/  → symlink to .claude/skills/

New Files

  • .claude-plugin/marketplace.json - Marketplace manifest
  • plugins/ - 12 plugin packages with symlinks
  • .claude/skills/plugin-marketplace/SKILL.md - Documents the pattern
  • scripts/validate-symlinks.sh - Validates symlink integrity
  • scripts/audit-atoms.sh - Ensures all atoms are exposed as plugins
  • scripts/check-atom-changes.sh - Git-based change detection for versioning

Test plan

  • All 19 symlinks validated
  • Audit confirms all atoms exposed as plugins
  • Change detection script working
  • README updated with installation instructions

🤖 Generated with Claude Code

aviadr1 and others added 7 commits January 11, 2026 12:53
Transform the showcase repository into an installable Claude Code plugin
marketplace while maintaining the existing showcase structure as the
single source of truth.

Changes:
- Add .claude-plugin/marketplace.json with 11 plugin listings
- Create plugins/ directory with symlinks to .claude/ components
- Add plugin.json manifests for each plugin
- Create plugin-marketplace skill documenting the pattern
- Add scripts/validate-symlinks.sh for integrity checks
- Update README with marketplace installation instructions

Plugin categories:
- Skill plugins (6): testing-patterns, systematic-debugging, react-ui-patterns,
  formik-patterns, graphql-schema, core-components
- Bundled plugins (5): pr-toolkit, code-review-suite, ticket-workflow,
  docs-sync, skill-activation

Users can now install via:
  /plugin marketplace add aviadr1/claude-code-showcase
  /plugin install testing-patterns@claude-code-showcase

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Include the plugin-marketplace skill that documents the symlink-based
marketplace pattern, making it installable for others who want to
create their own marketplaces.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add documentation and script to audit whether all "atoms" (skills,
commands, agents, hooks) in .claude/ are exposed as installable plugins.

- Add "Auditing Atoms Coverage" section to plugin-marketplace skill
- Create scripts/audit-atoms.sh for automated coverage checking
- Include CI integration instructions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace checksum-based tracking with simpler git-based approach:
- Add scripts/check-atom-changes.sh to detect changes since last tag
- Document version tagging strategy
- Show full diff capabilities vs hash-only comparison

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add bold callout in first 5 lines showing how to install plugins
from this marketplace, with link to full Plugin Marketplace section.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
feat: add plugin marketplace with symlink-based architecture
* feat: add reusable GitHub Actions workflows as plugin

- Add 4 reusable workflows callable from other repos:
  - reusable-pr-review.yml: Automatic PR review
  - reusable-docs-sync.yml: Keep docs in sync with code
  - reusable-code-quality.yml: Periodic code quality audits
  - reusable-dependency-audit.yml: Dependency updates & security

- Add github-actions skill with full documentation
- Add /setup-github-actions command for interactive setup
- Add github-actions plugin to marketplace with symlinks
- Update README with reusable workflows section

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: use auto-updating 'opus' alias for model default

Changed from pinned 'claude-opus-4-5-20251101' to 'opus' alias
which automatically updates to the latest Claude Opus version.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: resolve code review warnings

1. reusable-code-quality.yml: Fixed shell script to properly iterate
   over space-separated file extensions. Previously ".ts .tsx" was
   incorrectly expanded as "*.ts .tsx" instead of checking each
   extension separately.

2. reusable-docs-sync.yml: Replaced format() with environment variables
   to avoid potential issues with file paths containing braces like
   "utils/{helpers}.ts" being misinterpreted as template placeholders.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: add stack compatibility labels to workflows

- Add compatibility table showing which workflows work with any stack
  vs Node.js specific
- PR Review and Docs Sync: Generic (git only, any language)
- Code Quality and Dependency Audit: Node.js (requires npm)
- Add "Adapting for Other Stacks" section with Python/Go/Rust examples
- Update README workflow table with Stack column

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* rename: add 'Node.js' to stack-specific workflow names

- Rename reusable-code-quality.yml → reusable-nodejs-code-quality.yml
- Rename reusable-dependency-audit.yml → reusable-nodejs-dependency-audit.yml
- Update internal workflow names to include "Node.js"
- Update all documentation references in SKILL.md, README.md, and setup command

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* rename: change 'Reusable' to 'Showcase' in workflow names

- Update workflow display names from "Reusable - X" to "Showcase - X"
- Update descriptions in SKILL.md, README.md, plugin.json, marketplace.json

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: correct workflow filenames in setup command

Update setup-github-actions.md to reference the correct Node.js workflow names:
- reusable-code-quality.yml → reusable-nodejs-code-quality.yml
- reusable-dependency-audit.yml → reusable-nodejs-dependency-audit.yml

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: update 'reusable' to 'showcase' in setup command text

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* rename: workflow files from reusable-* to showcase-*

- Rename all workflow files to use 'showcase-' prefix
- Update all documentation references (README.md, SKILL.md, setup command)

Files renamed:
- reusable-pr-review.yml → showcase-pr-review.yml
- reusable-docs-sync.yml → showcase-docs-sync.yml
- reusable-nodejs-code-quality.yml → showcase-nodejs-code-quality.yml
- reusable-nodejs-dependency-audit.yml → showcase-nodejs-dependency-audit.yml

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: clarify reusable vs example workflows

- Add "How It Works" section to SKILL.md explaining workflow_call concept
- Clarify README sections: "Showcase Workflows (Reusable)" vs "Local Workflows (Examples)"
- Explain that local workflows are caller examples showing how to use the reusable ones

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: update workflows for claude-code-action@beta API changes

- Add `id-token: write` permission for OIDC authentication
- Replace deprecated `prompt` with `direct_prompt`
- Replace deprecated `claude_args` with `max_turns` and `allowed_tools`
- Remove deprecated `track_progress` input

Fixes CI/CD errors from updated anthropics/claude-code-action@beta

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: update workflows for claude-code-action@beta API changes

- Add missing `id-token: write` permission required for OIDC auth
- Replace invalid inputs with correct ones:
  - `track_progress` → removed (not supported)
  - `prompt` → `direct_prompt`
  - `claude_args` → `max_turns` and `allowed_tools`

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <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.

1 participant