From aida-core
Unified plugin management combining extension CRUD operations (create, validate, version, list) with project scaffolding
npx claudepluginhub joshuarweaver/cascade-ai-ml-agents-misc-2 --plugin oakensoul-aida-core-pluginThis skill uses the workspace's default tool permissions.
Unified plugin management skill that combines two capabilities:
references/scaffolding-workflow.mdreferences/schemas.mdreferences/update-workflow.mdreferences/validate-workflow.mdscripts/_paths.pyscripts/manage.pyscripts/operations/__init__.pyscripts/operations/constants.pyscripts/operations/extensions.pyscripts/operations/scaffold.pyscripts/operations/scaffold_ops/__init__.pyscripts/operations/scaffold_ops/context.pyscripts/operations/scaffold_ops/generators.pyscripts/operations/scaffold_ops/licenses.pyscripts/operations/shared.pyscripts/operations/update.pyscripts/operations/update_ops/__init__.pyscripts/operations/update_ops/models.pyscripts/operations/update_ops/parsers.pyscripts/operations/update_ops/patcher.pyGuides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Unified plugin management skill that combines two capabilities:
This skill activates when:
/aida plugin create/aida plugin validate/aida plugin version/aida plugin list/aida plugin scaffold/aida plugin updateaida skill for any plugin operation| 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 |
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
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".
python {base_directory}/scripts/manage.py --execute \
--context='{"operation": "create", ...}'
Creates, validates, versions, or lists plugin extensions.
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).
python {base_directory}/scripts/manage.py --execute \
--context='{"operation": "scaffold", "plugin_name": "my-plugin", "language": "python", ...}'
Creates a complete plugin project with:
.claude-plugin/, agents, skills, docs)plugin.json, marketplace.json,
aida-config.json)CLAUDE.md, README.md, LICENSE).gitignore and Makefilepython {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:
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:
.aida-backup/{timestamp}/.gitignore, Makefile)
append-onlyCLAUDE.md, README.md)generator_version in aida-config.jsonAfter Phase 2 completes, present the results in this order:
files_created)files_updated)files_skipped, brief)backup_path) if any files were
modifiedmanual_steps) -- present as
a numbered checklist| 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 |
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 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 charsIf 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.