Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 107 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
134 changes: 133 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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.
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Loading