This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is a Claude Code plugin marketplace repository containing bundled plugins for AI-driven SDLC workflows. The main plugin is maister which provides structured development workflows.
NEVER directly modify files under plugins/maister-copilot/ — those are auto-generated by the make command. Always edit the source files in plugins/maister/ instead. Changes to maister-copilot/ will be overwritten.
.claude-plugin/marketplace.json # Marketplace manifest (lists all plugins)
plugins/
└── maister/ # Main plugin
├── .claude-plugin/plugin.json # Plugin manifest
├── CLAUDE.md # Detailed plugin documentation (READ THIS)
├── agents/ # Subagent definitions (*.md)
├── commands/ # Slash commands (organized by workflow type)
├── skills/ # Skills with SKILL.md entry points
└── .mcp.json # MCP server configuration
docs/ # User-facing documentation and guides
@plugins/maister/CLAUDE.md: Comprehensive plugin documentation with all skills, commands, agents, and workflow principles. Read this when working on plugin internals.README.md: User-facing documentation for plugin consumers.
- Create directory:
plugins/maister/skills/[skill-name]/ - Create
SKILL.mdwith workflow phases and execution instructions - Optionally add
references/directory for supporting documentation - Document in
@plugins/maister/CLAUDE.mdunder "Available Skills"
- Create markdown file:
plugins/maister/commands/[category]/[command].md - Commands are thin wrappers that invoke skills
- Document in
plugins/maister/CLAUDE.mdunder "Available Commands"
- Create markdown file:
plugins/maister/agents/[agent-name].md - Define agent purpose, tools, and workflow
- Document in
plugins/maister/CLAUDE.mdunder "Available Subagents"
This plugin follows specific documentation guidelines (see @plugins/maister/CLAUDE.md section "Plugin Documentation Principles"):
- Trust Claude to reason—provide principles, not prescriptive implementations
- Commands are thin wrappers; orchestration logic lives in skills
- Reference files guide implementation, not provide complete code
- Single source of truth: technical details in
SKILL.md, not scattered across files
The beta branch is used for developing and testing new features before they reach master.
- master: Stable releases. Marketplace name:
maister-plugins, versions:X.Y.Z - beta: Pre-release testing. Marketplace name:
maister-plugins-beta, versions:X.Y.Z-beta.N
- Sync beta with master:
git checkout beta && git merge master - Squash-merge to master:
git checkout master && git merge --squash beta - Fix versions before committing: Restore master's marketplace name (
maister-plugins) and set the new release version (not beta version) in all three manifest files - Commit the feature:
git commit -m "Feature description" - Bump version: Separate commit for the version bump
- Reset beta:
git checkout beta && git reset --hard master— required because squash-merge doesn't track merge parents - Set beta version: Update manifests to next beta version (e.g.,
X.Y.Z-beta.1) with marketplace namemaister-plugins-beta, commit - Push both:
git push origin master beta
After git merge --squash, git doesn't record that beta's commits were merged. A regular git merge master back to beta would try to replay all old commits, causing conflicts. reset --hard master is safe because all beta work is preserved on master.
These four files need version/name changes during the merge workflow:
.claude-plugin/marketplace.json— name + version + descriptionsplugins/maister/.claude-plugin/plugin.json— version + descriptionplugins/maister-copilot/.claude-plugin/plugin.json— version + descriptionpackage.json— version (name staysmaister-opencodeon both branches; auto-generated bymake build-opencode)
- Navigate to a test project
- Run
/maister:initto initialize the framework - Test commands like
/maister:development "test feature" - Test workflows with different task types and complexity levels