diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e0e2bb..83cab23 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,3 +4,110 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [0.1.0] - 2025-12-11 + +### Added + +- **Initial release** of Plugin Development Toolkit for Claude Code + +#### Core Plugin Features + +- **8 specialized skills** with progressive disclosure architecture: + - `hook-development` - Event-driven automation with prompt-based hooks + - `mcp-integration` - Model Context Protocol server configuration + - `plugin-structure` - Directory layout and manifest configuration + - `plugin-settings` - Configuration via .claude/plugin-name.local.md files + - `command-development` - Slash commands with frontmatter + - `agent-development` - Autonomous agents with AI-assisted generation + - `skill-development` - Creating skills with progressive disclosure + - `marketplace-structure` - Plugin marketplace creation and distribution + +- **3 validation agents** for automated quality assurance: + - `plugin-validator` - Validates entire plugin structure and marketplace.json + - `skill-reviewer` - Reviews skill quality, triggering reliability, and best practices + - `agent-creator` - Generates new agents from natural language descriptions + +- **2 guided workflow commands**: + - `/plugin-dev:create-plugin` - 8-phase guided workflow for plugin creation + - `/plugin-dev:create-marketplace` - 8-phase guided workflow for marketplace creation + +#### Utility Scripts + +- **Agent development scripts**: + - `create-agent-skeleton.sh` - Create new agent skeleton files + - `validate-agent.sh` - Validate agent frontmatter and structure + - `test-agent-trigger.sh` - Test agent trigger phrase matching + +- **Command development scripts**: + - `validate-command.sh` - Validate command structure + - `check-frontmatter.sh` - Check frontmatter field validity + +- **Hook development scripts**: + - `validate-hook-schema.sh` - Validate hooks.json schema + - `test-hook.sh` - Test hooks with sample input + - `hook-linter.sh` - Lint hook shell scripts + +- **Plugin settings scripts**: + - `validate-settings.sh` - Validate settings file structure + - `parse-frontmatter.sh` - Parse YAML frontmatter from settings + +#### CI/CD Workflows + +- **PR validation workflows** (6 workflows): + - `markdownlint.yml` - Markdown style enforcement + - `links.yml` - Link validation with lychee + - `component-validation.yml` - Plugin component validation + - `version-check.yml` - Version consistency across manifests + - `validate-workflows.yml` - GitHub Actions workflow validation + - `claude-pr-review.yml` - AI-powered code review + +- **Automation workflows** (8 workflows): + - `claude.yml` - Main Claude Code workflow + - `stale.yml` - Stale issue/PR management + - `semantic-labeler.yml` - Automatic PR/issue labeling + - `ci-failure-analysis.yml` - CI failure analysis + - `weekly-maintenance.yml` - Scheduled maintenance tasks + - `dependabot-auto-merge.yml` - Dependabot PR auto-merge + - `sync-labels.yml` - Repository label synchronization + - `greet.yml` - New contributor welcome messages + +#### Documentation + +- **User documentation**: + - `README.md` - Comprehensive user guide with installation, usage examples, and best practices + - `CONTRIBUTING.md` - Contributor guidelines and development setup + - `SECURITY.md` - Security policy and vulnerability reporting + - `CODE_OF_CONDUCT.md` - Community standards and expectations + +- **Developer documentation**: + - `CLAUDE.md` - Architecture, patterns, and development guide + - Skill-specific references and examples in each skill directory + +#### Repository Infrastructure + +- **Issue templates** (4 types): + - Bug report with reproduction steps + - Feature request with use cases + - Documentation improvements + - Questions and discussions + +- **Pull request template** with component-specific checklists + +- **Label system** with categories: + - Component labels (agent, command, skill, hook, docs) + - Priority labels (critical, high, medium, low) + - Status labels (blocked, in-progress, needs-review) + - Effort labels (small, medium, large) + +- **Dependabot** configured for GitHub Actions updates + +#### Attribution + +- Based on original plugin by Daisy Hollman at Anthropic +- Expanded with enhanced skills, additional utilities, and CI/CD infrastructure + +[Unreleased]: https://github.com/sjnims/plugin-dev/compare/v0.1.0...HEAD +[0.1.0]: https://github.com/sjnims/plugin-dev/releases/tag/v0.1.0 diff --git a/CLAUDE.md b/CLAUDE.md index 8d0d96e..9123b18 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -8,7 +8,7 @@ This repository is a **plugin marketplace** containing the **plugin-dev** plugin ## Quick Reference -**Current Version**: v0.1.0 (synced in `plugin.json`, `marketplace.json`, and this file) +**Current Version**: v0.1.0 (see [CHANGELOG.md](CHANGELOG.md) for release history) ## Repository Structure @@ -235,3 +235,135 @@ Use these agents proactively after creating components: - `dependabot-auto-merge.yml` - Auto-merges dependabot PRs - `sync-labels.yml` - Synchronizes repository labels - `greet.yml` - Greets new contributors + +## Publishing & Version Management + +### Version Files + +Version must be synchronized across these files on release: + +- `plugins/plugin-dev/.claude-plugin/plugin.json` (source of truth) +- `.claude-plugin/marketplace.json` (metadata.version AND plugins[0].version) +- `CLAUDE.md` (Quick Reference section) + +```bash +# Verify version consistency +rg '"version"' plugins/plugin-dev/.claude-plugin/plugin.json .claude-plugin/marketplace.json +rg 'Current Version.*v[0-9]' CLAUDE.md +``` + +### Version Release Procedure + +When releasing a new version (e.g., v0.x.x), follow this procedure: + +#### 1. Create Release Branch + +```bash +# Ensure main is up to date +git checkout main +git pull origin main + +# Create release branch +git checkout -b release/v0.x.x +``` + +#### 2. Update Version Numbers + +Update version in **all version files** (must match): + +- `plugins/plugin-dev/.claude-plugin/plugin.json` (source of truth) +- `.claude-plugin/marketplace.json` (metadata.version AND plugins[0].version) +- `CLAUDE.md` (Quick Reference section) + +```bash +# Find current version to replace +rg '"version"' plugins/plugin-dev/.claude-plugin/plugin.json + +# Update all version files, then verify +rg '"version"' plugins/plugin-dev/.claude-plugin/plugin.json .claude-plugin/marketplace.json +rg 'Current Version.*v[0-9]' CLAUDE.md +``` + +#### 3. Update Documentation + +- `CHANGELOG.md` - Add release notes following Keep a Changelog format: + 1. Review commits since last release: `git log v0.x.x..HEAD --oneline` + 2. Organize into sections: Added, Changed, Fixed, Security, Performance, Documentation + 3. Group related changes and reference PR numbers + 4. Add version comparison links at bottom of file +- `README.md` - Update version references if applicable +- Any other relevant documentation + +#### 4. Test and Validate + +```bash +# Lint markdown files +markdownlint '**/*.md' --ignore node_modules + +# Verify version consistency +rg '"version"' plugins/plugin-dev/.claude-plugin/plugin.json .claude-plugin/marketplace.json +rg 'Current Version.*v[0-9]' CLAUDE.md + +# Load plugin locally and test +cc --plugin-dir plugins/plugin-dev + +# Test skills load correctly by asking trigger questions +# Test workflow commands: /plugin-dev:create-plugin, /plugin-dev:create-marketplace +# Test agents trigger appropriately +``` + +#### 5. Commit and Create PR + +```bash +# Commit version bump and documentation updates +git add . +git commit -m "chore: prepare release v0.x.x" + +# Push release branch +git push origin release/v0.x.x + +# Create pull request +gh pr create --title "chore: prepare release v0.x.x" \ + --body "Version bump to v0.x.x + +## Changes +- [List major changes] +- [List bug fixes] +- [List documentation updates] + +## Checklist +- [x] Version updated in plugin.json, marketplace.json, CLAUDE.md +- [x] CHANGELOG.md updated with release notes +- [x] Markdownlint passes +- [x] Plugin tested locally +" +``` + +#### 6. Merge and Create Release + +After PR review and approval: + +```bash +# Merge PR via GitHub UI or: +gh pr merge --squash # or --merge or --rebase based on preference + +# Create GitHub Release (this also creates the tag atomically) +gh release create v0.x.x \ + --target main \ + --title "v0.x.x" \ + --notes-file - <<'EOF' +## Summary + +Brief description of the release focus. + +## What's Changed + +[Copy relevant sections from CHANGELOG.md] + +**Full Changelog**: https://github.com/sjnims/plugin-dev/compare/v0.x-1.x...v0.x.x +EOF +``` + +**Note**: Main branch is protected and requires PRs. All version bumps must go through the release branch workflow. The `--target main` flag ensures the tag is created on the correct commit. + +**Publishing**: The entire repository acts as a marketplace. The `plugins/plugin-dev/` directory is the distributable plugin unit. diff --git a/README.md b/README.md index 3c577d6..1ae0bfa 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ A comprehensive toolkit for developing Claude Code plugins with expert guidance - [Contributing](#contributing) - [Getting Help](#getting-help) - [Attribution](#attribution) +- [Changelog](#changelog) - [License](#license) ## Overview @@ -337,6 +338,10 @@ This repository ([sjnims/plugin-dev](https://github.com/sjnims/plugin-dev)) is a - CI/CD workflows for validation and quality assurance - Improved cross-references between skills +## Changelog + +See [CHANGELOG.md](CHANGELOG.md) for release history and version details. + ## License MIT License - See [LICENSE](LICENSE) for details