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 runorderly-devkit loginfirst.- Plugin root with valid
package.jsonname..orderly-manifest.jsonis optional; CLI can resolve metadata frompackage.json+ Gitoriginremote. - 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.mdonly 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,pluginsarray onOrderlyAppProvider, 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.jsonconsistent withorderly-devkit create pluginoutput 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).