Plugin manager
Create, validate, version, list, and scaffold AIDA/Claude Code plugin projects (two-phase API). Use for plugin authoring and project scaffolding, routed through /aida extension management. Do NOT use to install or enable a plugin in the user's Claude Code session — this only authors plugin project files.From its SKILL.md
npx -y skills add aida-core/aida-core-plugin --skill plugin-managerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
9.0 KB, as published. Nobody here has run it
Plugin Manager
Unified plugin management skill that combines two capabilities:
- Extension CRUD -- create, validate, version, and list plugin extensions within existing projects
- Project Scaffolding -- scaffold entirely new plugin projects as local git repositories with language-specific tooling
Activation
This skill activates when:
- User invokes
/aida plugin create - User invokes
/aida plugin validate - User invokes
/aida plugin version - User invokes
/aida plugin list - User invokes
/aida plugin scaffold - User invokes
/aida plugin update - User invokes
/aida plugin deps - Routed from
aidaskill for any plugin operation
Operations
| Operation | Mode | Description |
|---|---|---|
create | Extension | Create plugin extension dirs/files |
validate | Extension | Validate plugin.json metadata |
version | Extension | Bump plugin.json version |
list | Extension | List discovered plugins |
scaffold | Scaffolding | Scaffold a full new plugin project |
update | Migration | Scan and patch plugin to current standards |
deps | Inspection | Report a plugin's declared deps + status |
agents | Inspection | Cross-plugin agent roster + collisions |
Path Resolution
Base Directory: Provided when skill loads via
<command-message> tags containing the skill base directory.
Script Execution:
{base_directory}/scripts/manage.py
Templates:
{base_directory}/templates/extension/ # Plugin extension templates
{base_directory}/templates/scaffold/ # Project scaffolding templates
Two-Phase Workflow
Extension Operations (create / validate / version / list)
Phase 1: Gather Context
python {base_directory}/scripts/manage.py --get-questions \
--context='{"operation": "create", "description": "..."}'
Returns questions and inferred metadata. The script auto-sets
component_type to "plugin".
Phase 2: Execute
python {base_directory}/scripts/manage.py --execute \
--context='{"operation": "create", ...}'
Creates, validates, versions, or lists plugin extensions.
Scaffold Operation
Phase 1: Gather Context
python {base_directory}/scripts/manage.py --get-questions \
--context='{"operation": "scaffold", "plugin_name": "my-plugin"}'
Infers git config (author name/email), checks gh availability, and returns questions for missing fields (name, description, license, language, target directory, stubs, keywords).
Phase 2: Execute Scaffolding
python {base_directory}/scripts/manage.py --execute \
--context='{"operation": "scaffold", "plugin_name": "my-plugin", "language": "python", ...}'
Creates a complete plugin project with:
- Directory structure (
.claude-plugin/, agents, skills, docs) - Metadata files (
plugin.json,marketplace.json,aida-config.json) - Documentation (
CLAUDE.md,README.md,LICENSE) - Language tooling (pyproject.toml or package.json, linters)
- Composite
.gitignoreandMakefile - Optional agent and skill stubs
- Initialized git repository with initial commit
Update Operation
Phase 1: Scan and Report
python {base_directory}/scripts/manage.py --get-questions \
--context='{"operation": "update", "plugin_path": "/path/to/plugin"}'
Scans the plugin directory against current scaffold standards. Returns a diff report with file-by-file comparison results categorized as: missing, outdated, up-to-date, or custom-skip.
The orchestrator should present the scan report to the user in this order:
- Version context: scaffolded version vs current standard
- Summary counts (missing, outdated, up-to-date, skipped)
- Missing files (will be added)
- Outdated files (will be updated per merge strategy)
- Files flagged for manual review
- Custom content files (will NOT be touched)
- Merge strategy question (if boilerplate files need updating)
Phase 2: Apply Patches
python {base_directory}/scripts/manage.py --execute \
--context='{"operation": "update", "plugin_path": "/path/to/plugin"}' \
--responses='{"boilerplate_strategy": "overwrite"}'
Applies approved patches to the plugin:
- Creates backup at
.aida-backup/{timestamp}/ - Adds missing files from templates
- Overwrites or skips outdated boilerplate per strategy
- Merges composite files (
.gitignore,Makefile) append-only - Skips custom content files (
CLAUDE.md,README.md) - Flags dependency configs for manual review
- Updates
generator_versioninaida-config.json
Present Results
After Phase 2 completes, present the results in this order:
- Success message with old and new generator version
- Files created (from
files_created) - Files updated (from
files_updated) - Files skipped (from
files_skipped, brief) - Backup location (
backup_path) if any files were modified - Manual steps required (
manual_steps) -- present as a numbered checklist
File Categories
| Category | Strategy | Files |
|---|---|---|
| Custom content | skip | CLAUDE.md, README.md, |
| LICENSE | ||
| AIDA metadata | skip | aida-config.json |
| Plugin metadata | skip | plugin.json, |
| marketplace.json | ||
| Boilerplate | overwrite | Linting configs, version |
| files | ||
| Composite | merge | .gitignore, Makefile |
| CI workflows | add | .github/workflows/ci.yml |
| Test scaffold | add | tests/conftest.py |
| Dependencies | manual_review | pyproject.toml, |
| package.json |
Post-Scaffold: GitHub Repository (Optional)
If the user requested create_github_repo: true, the result
includes this flag. Use the GitHub CLI to create the remote:
cd /path/to/my-plugin
gh repo create my-plugin --public --source=. --push
Plugin Validation Notes
Plugin validation is JSON-based (plugin.json), not frontmatter-based like agents and skills. The validation checks:
name-- required, kebab-case, 2-50 charsversion-- required, semver X.Y.Zdescription-- required, 10-500 chars
Error Handling
If Phase 2 returns {"success": false, ...}, report the
message field to the user and offer to retry. The response
includes path and files_created for any partial output.
Resources
scripts/
- manage.py -- Two-phase API entry point (routes between extension and scaffold operations)
- operations/extensions.py -- Plugin extension CRUD
- operations/scaffold.py -- Plugin project scaffolding
- operations/scaffold_ops/ -- Scaffolding submodules
- context.py -- Git config inference, directory validation
- generators.py -- Directory creation, template rendering
- licenses.py -- License text templates
- operations/constants.py -- Shared constants (GENERATOR_VERSION, SUPPORTED_LANGUAGES)
- operations/shared.py -- Shared template variable builder used by both scaffold and update
- operations/update.py -- Plugin update entry point (scan and patch operations)
- operations/update_ops/ -- Update submodules
- scanner.py -- Plugin scanning and comparison
- patcher.py -- File patching with backup
- models.py -- Data structures (DiffReport, etc.)
- strategies.py -- File classification registry
- parsers.py -- Shared gitignore/Makefile parsing
- operations/utils.py -- Re-export shim for shared utilities
templates/
- extension/ -- Plugin extension templates (plugin.json, README.md, .gitignore)
- scaffold/ -- Project scaffolding templates
- shared/ -- Language-independent files
- python/ -- Python toolchain templates
- typescript/ -- TypeScript toolchain templates
references/
- scaffolding-workflow.md -- Scaffolding workflow reference
- validate-workflow.md -- Plugin validation reference
- update-workflow.md -- Update workflow reference
- schemas.md -- Plugin JSON schema reference