Build, improve, review or publish Agent Zero plugins; local or community, with focused references.
67
81%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Use this entrypoint to build or improve a plugin, review it, or prepare community contribution. For finding useful existing plugins and installing/updating them, use a0-manage-plugin.
Honor an explicit local-only or community-contribution request. For a new plugin, if the user has not said which, ask once: "Should this stay local, or be prepared for community contribution?" Do not ask again when the answer is already in the conversation. For an existing plugin, inspect its location/repository and requested outcome; clarify only an unresolved distribution choice.
/a0/usr/plugins/<name>/. No public repository or Index submission needed.references/contribute.md./a0/plugins/.Plugin setup, dependency installation, required initialization, and uninstall cleanup MUST use lifecycle functions in the plugin-root hooks.py. Never put these operations in execute.py, and never require an Execute button or manual post-install command to make a plugin usable.
install() prepares dependencies and initializes the plugin automatically after installation and again after updates. Make it safe to rerun.pre_update() stops plugin-owned processes or prepares state before an update when needed.uninstall() stops plugin-owned processes, removes registrations, and removes plugin-owned dependencies/resources before the framework deletes the plugin directory. Preserve shared dependencies and unrelated user data.hooks.py; it may delegate to plugin-local helpers. If boot-time initialization is needed, a startup extension may call the same helper or hook; it does not replace install/uninstall hooks.execute.py unless there is a separate, explicitly requested manual operation unrelated to setup, dependency installation, required initialization, updates, or removal.After loading this skill, use skills_tool with action: "read_file", skill_name: "a0-create-plugin", and the reference path:
| Work | Reference |
|---|---|
| Manifest, layout, backend, tools, settings, hooks, runtime verification | references/implementation.md |
| Alpine stores, store gates, notifications, settings UI, sidebar entry | references/webui.md |
| Review existing code or verify a completed change | references/review.md |
| Standalone repository, license, Index entry, validation and PR | references/contribute.md |
/a0/AGENTS.md, /a0/plugins/AGENTS.md, and the closest applicable contracts.plugin.yaml at the plugin root. Use stable underscore names for new custom plugins. Keep credentials and runtime state out of published source.references/review.md before declaring the work complete; report actual checks and remaining limitations.Follow the first failing boundary: root plugin.yaml and correct directory; global/project/profile toggle and effective config; imports in the framework runtime; API auth/CSRF and route; extension path/breakpoint; store import and gate. Inspect the relevant server/browser error before editing. Use management APIs for lifecycle refreshes; do not manually rerun install/uninstall hooks as a diagnostic or delete state to hide the failure.
Report the feature, usage, live verification, and any unresolved limits. For community work, distinguish repository publication, PR creation, CI results, and actual merge. Follow an existing request to commit or publish; otherwise keep changes ready for review.
b1cbd1f
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.