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](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:
``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](reference.md)