
Share to Community
FreeEasily package your work as an Open Design plugin.
Free · Opens the source repo
What Share to Community does
The Share to Community skill streamlines the process of packaging your completed work as an Open Design plugin. Triggered after you finish a project, this skill automatically generates the necessary files without requiring you to manually re-enter information that can be inferred from your project files. It reads existing artifacts and metadata to create a well-structured plugin folder, allowing you to focus on sharing your work with the community rather than getting bogged down by repetitive tasks.
When you invoke this skill, it inspects your project directory to gather relevant information from files such as *.artifact.json and brand-spec.md. It uses this data to populate the open-design.json with accurate metadata, ensuring that your plugin is ready for use without unnecessary prompts. The skill also creates a SKILL.md file that includes clear instructions for the agent, making it easy for others to understand and utilize your plugin.
This skill is particularly beneficial for developers and designers who want to share their work efficiently. By automating the packaging process, it reduces the time and effort needed to prepare your project for community sharing. It also ensures that the generated plugin adheres to the Open Design specifications, which can help in maintaining consistency and quality across plugins in the ecosystem.
However, this skill is not suited for projects that lack sufficient metadata or artifacts, as it relies heavily on existing files to derive the necessary information. If your project is sparse or incomplete, you may need to provide additional input manually. Overall, the Share to Community skill is an essential tool for those looking to contribute their designs and developments to the Open Design community with minimal hassle.
When to use it
Use this skill after completing a project when you want to share it as a plugin without repetitive prompts.
When not to use it
Avoid this skill if your project lacks sufficient metadata or artifacts, as it may require manual input.
What you can build with it
Packaging a Completed Design
After finishing a UI design project, you can use this skill to package it as a plugin for the Open Design community.
Automating Plugin Creation
If you're frequently sharing your work, this skill saves time by automating the plugin packaging process, reducing repetitive tasks.
Contributing to Open Design
Use this skill to easily contribute your plugins to the Open Design repository, helping to expand the community's resources.
How to install Share to Community
View source1. Install with the skills CLI
npx skills add nexu-io/open-design/od-share-to-community --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by nexu-iood-share-to-community (scenario)
Triggered by the post-completion "Share to Open Design" submission action. The user just finished a piece of work in this project and wants to ship it as a plugin. They have not been asked any questions yet.
Required outcome
Produce a folder named generated-plugin/ in the active project workspace. At minimum:
SKILL.mdwith frontmatter and clear agent instructions.open-design.jsonwith valid plugin metadata:specVersion,name,version,description, mode, task kind, inputs, plus any pipeline / context references the workflow needs.plugin.repois optional during scaffolding, but do not silently omit it: checkgh --versionandgh auth status, then prefer the local account login printed by auth status. Only usegh api user --jq .loginas a fallback when auth status does not expose a login. Ifghis missing, not logged in, rate-limited, or cannot resolve a real owner, omitplugin.repoinstead of inventing an owner and explicitly report the auth problem withgh auth refresh -h github.com -s repo,workflow,gh auth login -h github.com -s repo,workflow, orod plugin publish-repo generated-plugin --owner <github-login-or-org>as recovery commands. Never write placeholder owners such asopen-design-user,<vendor>,example-user,your-org, oryour-usernameinto the final manifest.- Optional
examples/andassets/only when they help review or reuse.
Auto-derive from the project — do not ask the user fields the files already answer
The agent's CWD is the user's OD project root. Before generating anything, read what's already there and infer the plugin from it. Treat the project files as the source of truth; the user does not need to retype things you can see.
What to read, in this order, and what to take from each:
*.artifact.json(orartifact.json) at the project root — task kind, mode, the prompt the user actually ran, the file the agent produced. This drivesod.taskKind,od.mode, the defaultuseCase.query, and the example output path.brand-spec.md/DESIGN.mdif present — voice, brand name, audience. Folds into the plugin description and tags.- The list of generated artifacts in the project workspace (the
*.html,*.tsx,*.svg, etc. the agent wrote during this session) — pick the most recent / largest one asuseCase.exampleOutputs[0].pathafter copying it undergenerated-plugin/examples/. - The user's first prompt in this conversation, if surfaced via the runtime — the natural-language description of what they wanted. Folds into
descriptionand the defaultuseCase.query.
Pick a stable plugin id from what you derived: lowercase letters, numbers, dashes, underscores, dots. Prefer something the brand-spec or artifact metadata suggests over inventing one.
If a field truly cannot be derived (e.g. no artifact.json exists, no brand-spec, the project is too sparse), only then ask the user — and emit one consolidated <question-form> block, not field-by-field prose questions. Default the answers from whatever you did manage to derive so the user can accept the proposed values directly in the rendered form. <question-form> is assistant-text markup rendered by Open Design, not a native tool call.
Validate the plugin locally before reporting
Run od plugin validate on the folder, then od plugin pack for a tarball, then od plugin install --source <absolute-folder-path> to confirm the install path works.
When the work above is done
Write a single summary turn covering: files created, od plugin validate status, local install / run status, and od plugin pack output. Then STOP.
Do NOT chain the publish-repo / Open-Design-PR flows yourself
Do NOT suggest follow-up CLI commands such as od plugin publish, od plugin publish --to open-design, gh repo create, git init / git remote add / git push, or any other publish / repo wiring. The plugin-folder card under Design Files already exposes three buttons whose prompts drive those flows end-to-end with the right auth gates, fallbacks, and retry rules baked in:
- Add to My plugins — already satisfied by this turn's
od plugin install --sourcestep. - Publish repo — creates / updates the author's
plugin.repoGitHub repo through a gh + git sequence the agent is told exactly how to run. - Open Design PR — opens a draft PR against
nexu-io/open-designfor the community catalog.
Point the user at whichever button they want next; do NOT recreate those flows as freeform shell suggestions in this summary. Recreating them drifts from the button prompts' guarantees and is the source of the bug that closed #2332.
Do NOT assume jq is on PATH
Do NOT assume the standalone jq binary is installed (it is not part of the OD agent runtime baseline and is missing from default macOS / Windows shells). When you need to read the manifest, prefer your built-in file-reading tool, then cat generated-plugin/open-design.json followed by manual JSON parsing, then node -e 'console.log(JSON.parse(require("fs").readFileSync("generated-plugin/open-design.json","utf8")))'. The gh ... --jq flag is fine because gh ships its own embedded library; the brew-installed standalone jq is NOT.
Language
Mirror the user's chat language in any <question-form> titles, labels, descriptions, options, and helper text, as well as status updates and error explanations. Generated artifacts (manifest fields, SKILL.md body, PR / commit messages, branch names) MUST stay English regardless of the chat language — that's the OD plugins-spec convention and matches the existing scenarios under plugins/_official/scenarios/.
Suggested folder shape
generated-plugin/
SKILL.md
open-design.json
examples/
<copied-from-the-project>
assets/
<if-needed>
Spec references
docs/plugins-spec.mddocs/schemas/open-design.plugin.v1.json- The sibling
plugins/_official/scenarios/od-plugin-authoring/SKILL.mdfor the from-scratch authoring counterpart.
Frequently asked questions about Share to Community
Similar skills
Rhino 3D Scripting
Streamline your Rhinoceros 3D scripting tasks.
MVVM Toolkit
Streamline ViewModel development with source generators.
FreeCAD Scripts
Generate Python scripts for FreeCAD automation and modeling.
Azure Architecture Builder
Design and deploy Azure infrastructure using natural language.
Command Development
Streamline your command creation for Claude Code.
Create Cowork Plugin
Easily build and package plugins through guided sessions.
