Orderly plugin — submit (Marketplace)
Guide the user through documentation choices, recommended usagePrompt drafting/approval, and orderly-devkit submit to the Marketplace API. Never submit without explicit user confirmation.
When to use
- User wants to publish / submit a plugin to Orderly Marketplace, or to prepare
usagePrompt / manifest for submission.
Prerequisites
orderly-devkit login — if not logged in, stop and instruct the user to run orderly-devkit login first.
- Plugin root with valid
package.json name. .orderly-manifest.json is optional; CLI can resolve metadata from package.json + Git origin remote.
- Read reference.md for integration concepts when drafting
usagePrompt.
Workflow (strict order)
1. Login
If CLI reports not authenticated, do not proceed until orderly-devkit login succeeds.
2. README — ask first (never auto-write by default)
Use AskQuestion: Do you want to generate or update a Marketplace-style README.md in the plugin root?
- If yes — generate content using a clear section outline (overview, install, usage, interceptors, development, license). Write or update
README.md only after confirmation.
- If no — skip README. Do not overwrite an existing
README.md.
Note: orderly-devkit submit does not upload README in the JSON body; README is for the GitHub repo. If the API adds a field later, update this skill.
3. usagePrompt — optional but strongly recommended (user must approve if added/changed)
Recommend drafting usagePrompt: concise, actionable instructions for integrating the plugin into a DEX / host app (dependency, plugins array on OrderlyAppProvider, env vars, build order, pitfalls). Tone suitable for Marketplace / AI-assisted integration.
Enforce max length 8192 characters (same as CLI validation in submit.js) when present.
If creating/updating usagePrompt, show the full text (or explicit diff) to the user and ask for confirmation or edits. Repeat until the user approves.
Only after approval, merge into .orderly-manifest.json:
{
"usagePrompt": "<approved text>",
"updatedAt": "<ISO timestamp>"
}
Preserve existing manifest fields (npmName, pluginId, repoUrl, tags, coverImages, storybookUrl, storybookTooltip, etc.). If no manifest exists, create .orderly-manifest.json consistent with orderly-devkit create plugin output and CLI resolver expectations.
If user chooses to skip usagePrompt, proceed — current CLI does not require it for submit.
4. Validate — dry run
Run from the plugin directory:
orderly-devkit submit --path . --dry-run
Show the printed payload summary to the user. Fix validation errors (npm name, GitHub URL, pluginId pattern, tag count, coverImages format/length, usagePrompt length, etc.) before continuing.
Valid tags (comma-separated for --tags): UI, Indicator, Order Entry, Trading, Chart, Portfolio, Analytics, Tool, Widget — at most 5 tags. Invalid tags are filtered out by CLI with warnings.
5. Final confirmation before API
Use AskQuestion: Submit this plugin to the Marketplace API now?
- If no — stop; do not run submit without
--dry-run.
- If yes — run:
orderly-devkit submit --path . [--tags "UI,Trading"] [--storybook-url "https://..."]
After submit
Report HTTP outcome (success / validation error / auth/conflict/not-found). On success (201), mention returned plugin id, npmName, and status (defaults to under_review when omitted).
Related skills
- orderly-plugin-create — scaffold the package.
- orderly-plugin-add — wire the plugin into a host codebase (code changes).
Reference
reference.md
1---2name: orderly-plugin-submit3description: Prepare and submit / publish an Orderly plugin to the Marketplace via `orderly-devkit submit`. Covers README generation (with user consent), required usagePrompt drafting and approval, manifest updates, and API submission. Use when the user wants to publish, release, upload, or submit a plugin to the Orderly Marketplace. Triggers on "submit plugin", "publish plugin", "release plugin", "marketplace", "upload plugin", "usagePrompt", "orderly-devkit submit", "plugin manifest".4---56# Orderly plugin — submit (Marketplace)78Guide the user through **documentation choices**, **recommended `usagePrompt` drafting/approval**, and **`orderly-devkit submit`** to the Marketplace API. Never submit without explicit user confirmation.910## When to use1112- User wants to publish / submit a plugin to Orderly Marketplace, or to prepare `usagePrompt` / manifest for submission.1314## Prerequisites1516- **`orderly-devkit login`** — if not logged in, stop and instruct the user to run `orderly-devkit login` first.17- Plugin root with valid **`package.json`** `name`. `.orderly-manifest.json` is optional; CLI can resolve metadata from `package.json` + Git `origin` remote.18- Read [reference.md](reference.md) for integration concepts when drafting `usagePrompt`.1920## Workflow (strict order)2122### 1. Login2324If CLI reports not authenticated, do not proceed until `orderly-devkit login` succeeds.2526### 2. README — ask first (never auto-write by default)2728Use **AskQuestion**: *Do you want to generate or update a Marketplace-style `README.md` in the plugin root?*2930- **If yes** — generate content using a clear section outline (overview, install, usage, interceptors, development, license). Write or update `README.md` only after confirmation.31- **If no** — skip README. Do **not** overwrite an existing `README.md`.3233Note: `orderly-devkit submit` does not upload README in the JSON body; README is for the GitHub repo. If the API adds a field later, update this skill.3435### 3. usagePrompt — optional but strongly recommended (user must approve if added/changed)36371. Recommend drafting **`usagePrompt`**: concise, actionable instructions for **integrating the plugin into a DEX / host app** (dependency, `plugins` array on `OrderlyAppProvider`, env vars, build order, pitfalls). Tone suitable for Marketplace / AI-assisted integration.382. Enforce **max length 8192 characters** (same as CLI validation in `submit.js`) when present.393. If creating/updating `usagePrompt`, **show the full text** (or explicit diff) to the user and ask for **confirmation or edits**. Repeat until the user approves.404. Only after approval, merge into **`.orderly-manifest.json`**:4142 ```json43 {44 "usagePrompt": "<approved text>",45 "updatedAt": "<ISO timestamp>"46 }47 ```4849 Preserve existing manifest fields (`npmName`, `pluginId`, `repoUrl`, `tags`, `coverImages`, `storybookUrl`, `storybookTooltip`, etc.). If no manifest exists, create `.orderly-manifest.json` consistent with `orderly-devkit create plugin` output and CLI resolver expectations.50515. If user chooses to skip `usagePrompt`, proceed — current CLI does **not** require it for submit.5253### 4. Validate — dry run5455Run from the plugin directory:5657```bash58orderly-devkit submit --path . --dry-run59```6061Show the printed payload summary to the user. Fix validation errors (npm name, GitHub URL, `pluginId` pattern, tag count, `coverImages` format/length, `usagePrompt` length, etc.) before continuing.6263**Valid tags** (comma-separated for `--tags`): `UI`, `Indicator`, `Order Entry`, `Trading`, `Chart`, `Portfolio`, `Analytics`, `Tool`, `Widget` — at most **5** tags. Invalid tags are filtered out by CLI with warnings.6465### 5. Final confirmation before API6667Use **AskQuestion**: *Submit this plugin to the Marketplace API now?*6869- **If no** — stop; do not run submit without `--dry-run`.70- **If yes** — run:7172```bash73orderly-devkit submit --path . [--tags "UI,Trading"] [--storybook-url "https://..."]74```7576## After submit7778Report HTTP outcome (success / validation error / auth/conflict/not-found). On success (`201`), mention returned plugin `id`, `npmName`, and `status` (defaults to `under_review` when omitted).7980## Related skills8182- **orderly-plugin-create** — scaffold the package.83- **orderly-plugin-add** — wire the plugin into a host codebase (code changes).8485## Reference8687[reference.md](reference.md)