Files
nexu-io__open-design/docs/publishing-a-plugin.md
Joey-nexu f1a0b60c6c chore: unify product name display to OpenDesign repo-wide (#6998)
* chore: unify product name display to OpenDesign repo-wide

Rename the user-facing product name from "Open Design" to "OpenDesign"
across documentation, web/desktop UI strings, i18n locales, prompts,
plugin/skill/design-system content, changelogs, and specs, matching the
landing-page rename already in flight.

Deliberately excluded so installed-app identity stays untouched:
- packages/release PRODUCT_NAME and everything derived from it
  (app bundle names, installer/registry identity, updater feeds)
- tools/pack, tools/release, apps/packaged, landing page (PR #6983)
- mocks/ recorded traces and LICENSE
- test fixtures and comments that encode real on-disk install paths
  (Open Design.app, Program Files\Open Design, AppData paths)

Validated with pnpm guard, pnpm typecheck, and targeted web/desktop/host
test runs over the renamed strings.

* fix(web): keep two-letter author monogram for CamelCase brand names

authorInitials split words on whitespace only, so the renamed single-token
author name "OpenDesign" produced a one-letter monogram. Treat lower-to-upper
CamelCase boundaries as word breaks so the avatar fallback stays "OD".

* fix(release): restore spaced Windows source artifact names in win.ps1

tools/pack still derives builder outputs from the unchanged PRODUCT_NAME
("Open Design"), so the asset script must look for the spaced filenames.
Matches the mac/mac-intel/linux asset scripts, which were already kept on
the original names.

---------

Co-authored-by: Joey <236967869+joeylee12629-star@users.noreply.github.com>
2026-08-18 07:09:45 +00:00

69 lines
2.1 KiB
Markdown

# Publishing An OpenDesign Plugin
OpenDesign registry publishing is GitHub-backed in v1. The CLI remains the
canonical workflow; the product UI and agent flows wrap these commands.
## 1. Scaffold
```bash
od plugin scaffold --id figma-workflow --title "Figma workflow" --out ./plugins/community
```
The scaffold command creates `./plugins/community/figma-workflow/`. Plugin IDs
must be lowercase, start with a letter, and use only `[a-z0-9._-]`; slash-
separated registry paths are used by catalogs, not by `od plugin scaffold`.
The generated `open-design.json` is the OpenDesign sidecar next to `SKILL.md`.
## 2. Validate And Pack
```bash
od plugin validate ./plugins/community/figma-workflow --no-daemon
od plugin pack ./plugins/community/figma-workflow
```
The registry accepts anything that validates and packs. The source repository
does not need a special layout beyond `SKILL.md` plus `open-design.json`.
`od plugin pack` writes the archive next to the plugin folder by default.
## 3. Authenticate
```bash
od plugin login
od plugin whoami --json
```
These commands wrap GitHub CLI. Tokens stay in `gh`; OpenDesign does not store
GitHub credentials.
## 4. Publish
```bash
od plugin publish figma-workflow --to open-design --repo https://github.com/acme/figma-workflow
```
v1 opens the GitHub registry review flow. The publish payload includes the
plugin ID, version, repo, capability summary, and target registry entry path.
After merge, CI regenerates `open-design-marketplace.json`.
## 5. Install From The Registry
```bash
od marketplace refresh official
od plugin install figma-workflow
od plugin info figma-workflow --json
```
Installs preserve marketplace provenance, resolved source, manifest digest, and
archive integrity. `official` and `trusted` sources install as trusted;
`restricted` sources stay restricted until the user grants more trust.
## 6. Yank A Version
```bash
od plugin yank figma-workflow@1.0.0 --reason "Security issue"
```
Yanking never deletes metadata or bytes. New installs refuse yanked versions;
existing exact lockfile replays can still warn and proceed if the archive
remains reachable and integrity matches.