docs: align marketplace listing copy with Deriv UX writing - #7
Conversation
Use sentence case, approved trade names, and lead-with-the-job descriptions so listings read consistently across Cursor, Claude, Codex, and skills.sh. Co-authored-by: Cursor <cursoragent@cursor.com>
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.OpenSSF Scorecard
Scanned Manifest Files |
Keep the plugin id lowercase; show Deriv as the author, owner, and developer name. Co-authored-by: Cursor <cursoragent@cursor.com>
ako-deriv
left a comment
There was a problem hiding this comment.
Copy-only change, and the direction is good: displayName: "Deriv" is applied consistently across all four manifest formats, the plugin descriptions are identical everywhere, and the new copy surfaces validate_payload, which the old "Get live … plus guides" wording missed.
One blocker (the verify-surface CI failure) and a few consistency nits, all inline.
PR hygiene: the title is "docs review" with an empty body. The commit message ("docs: align marketplace listing copy with Deriv UX writing") is a better title, and a one-line body noting the sentence-case / product-name decisions would help future readers.
| "longDescription": "Get live Deriv API schemas plus guides for authentication, subscriptions, trades, and errors. Search endpoints, read current request and response fields, take worked examples, and validate payloads. The plugin does not sign in to a Deriv account, store keys, or place trades.", | ||
| "developerName": "deriv", | ||
| "displayName": "Deriv", | ||
| "shortDescription": "Live Deriv API schemas and guides", |
There was a problem hiding this comment.
Blocking — this is why verify-surface fails.
FAIL: codex listing: shortDescription must be one line of 30 characters or fewer
"Live Deriv API schemas and guides" is 33 characters; the gate at .github/workflows/verify-surface.mjs:339 caps it at 30 (the old string was 26).
Options that fit:
"Live Deriv API schemas"(22)"Deriv API schemas and guides"(28)"Live Deriv API docs and tools"(29)
| "displayName": "Deriv", | ||
| "shortDescription": "Live Deriv API schemas and guides", | ||
| "longDescription": "Live Deriv API schemas, payload validation, and guides for authentication, subscriptions, trades, and errors. Search endpoints, read current request and response fields, use worked examples, and validate payloads. This plugin doesn't sign in to a Deriv account, store keys, or place trades.", | ||
| "developerName": "Deriv", |
There was a problem hiding this comment.
Nit: displayName is now "Deriv" but developerName here (and author.name in all four manifests) is still lowercase "deriv". developerName is user-facing in the Codex directory listing, so it probably wants the same casing. Fine either way, just worth deciding intentionally.
| display_name: "Trading authentication" | ||
| short_description: "Add secure authentication to trading apps" | ||
| default_prompt: "Use $deriv-auth to add OAuth, account selection, and an authenticated trading socket." | ||
| dependencies: |
There was a problem hiding this comment.
Nit: this PR normalizes the MCP dependency description in market-data, trade-lifecycle, and trade-types to "Live Deriv API guides, schemas, examples, and payload validation" (matching trading-app), but this file's is still "Live Deriv authentication guides and endpoint schemas" (line 9, outside the diff). If one shared string is the goal, this is the one that got missed.
| --- | ||
| name: deriv-auth | ||
| description: Implement or repair New Deriv API authentication, including OAuth 2.0 Authorization Code with PKCE, PAT handling, callback and session security, account selection, and OTP-authenticated Options WebSocket connections. Use whenever a task involves Deriv login, sign-up, tokens, scopes, sessions, accounts, account switching, logout, reconnects, or obtaining a trading WebSocket — even if the user just says "users can't log in", "hook up Deriv OAuth", "get an authenticated socket", or "reconnecting loses the session". Not for Legacy API compatibility. | ||
| description: Add or fix New Deriv API authentication — OAuth, tokens, accounts, and trading WebSocket sessions. Use whenever a task involves Deriv login, sign-up, tokens, scopes, sessions, accounts, account switching, logout, reconnects, or obtaining a trading WebSocket — even if the user just says "users can't log in", "hook up Deriv OAuth", "get an authenticated socket", or "reconnecting loses the session". Not for Legacy API compatibility. |
There was a problem hiding this comment.
Non-blocking: skill descriptions double as the trigger text agents match against. The shorter lead sentence drops PKCE, PAT, OTP, callback, session security, and the "Use whenever…" clause doesn't cover them. A user saying "add PKCE to my Deriv login" or "use a personal access token" now has a weaker match. Consider keeping one or two of the high-value nouns (e.g. "OAuth with PKCE, personal access tokens").
| --- | ||
| name: deriv-trade-lifecycle | ||
| description: Implement and test the New Deriv API Options lifecycle from streaming proposal through buy, open-contract monitoring, portfolio reconciliation, optional update, cancellation or sell, settlement, reconnect, and subscription cleanup. Use whenever a task prices or purchases a contract, tracks open or closed positions, sells early, sets take profit, handles buy or sell errors, or recovers mid-trade from a disconnect — even if the user just says "the buy button fails", "show my open trades", or "sell at market". Not for Legacy API compatibility or OAuth setup alone. | ||
| description: Implement the New Deriv API Options flow: price, buy, monitor, sell, and settle. Use whenever a task prices or purchases a contract, tracks open or closed positions, sells early, sets take profit, handles buy or sell errors, or recovers mid-trade from a disconnect — even if the user just says "the buy button fails", "show my open trades", or "sell at market". Not for Legacy API compatibility or OAuth setup alone. |
There was a problem hiding this comment.
Non-blocking, same routing concern: the lead sentence drops proposal, portfolio, cancellation, subscription cleanup. "Reconcile my portfolio" or "cancel the contract" were previously direct matches.
| --- | ||
| name: deriv-market-data | ||
| description: Implement New Deriv API Options market and contract discovery plus price streams with active symbols, contracts for a symbol, contract listings, ticks, and tick history. Use whenever a task involves market or symbol selectors, deciding which trade types a symbol supports, deriving trade controls from contract metadata, live tick or price subscriptions, charts, or public read-only feeds — even if the user just says "show live prices", "list the volatility indices", or "why is this duration rejected". Not for order execution or Legacy API compatibility. | ||
| description: Add New Deriv API market discovery and live prices — symbols, contracts, ticks, and tick history. Use whenever a task involves market or symbol selectors, deciding which trade types a symbol supports, deriving trade controls from contract metadata, live tick or price subscriptions, charts, or public read-only feeds — even if the user just says "show live prices", "list the volatility indices", or "why is this duration rejected". Not for order execution or Legacy API compatibility. |
There was a problem hiding this comment.
Non-blocking, same routing concern: active symbols and contracts for a symbol are the literal endpoint names users tend to type, and they're no longer in the description.
| --- | ||
| name: deriv-trade-types | ||
| description: Translate user-facing trade names into New Deriv API Options contract families, proposal shapes, compatible controls, and live availability. Use whenever a task selects, adds, or configures a Deriv Options trade type — Accumulators, Rise/Fall, Higher/Lower, Matches/Differs, Even/Odd, Over/Under, Multipliers, Touch/No Touch, Stays In/Goes Out, Vanilla, Turbos, Asians, Reset, or tick high/low — even if the user just says "up/down", "digits", "binary call/put", or "add accumulators to my bot" without naming contract codes. Not for Legacy API compatibility or CFD execution. | ||
| description: Map trade names to New Deriv API Options contract families, proposal shapes, and live availability. Use whenever a task selects, adds, or configures a Deriv Options trade type — Accumulator options, Rise/Fall, Higher/Lower, Matches/Differs, Even/Odd, Over/Under, Multipliers, Touch/No Touch, Stays Between / Goes Outside, Vanilla options, Turbo options, Asian options, Reset Call / Reset Put, or High/Low Ticks — even if the user just says "up/down", "digits", "Call/Put", or "add accumulators to my bot" without naming contract codes. Not for Legacy API compatibility or CFD execution. |
There was a problem hiding this comment.
The switch to product names (Accumulator options, Stays Between / Goes Outside, High/Low Ticks, Reset Call / Reset Put) matches Deriv's UX vocabulary — good.
Two small things:
- The body and reference links still use the old terms: "Accumulators" (lines 22, 61), "Vanilla and Turbos" (line 27), "Asian, reset, and tick-lookback families" (line 28). Not wrong, but if this PR is about aligning with UX writing, the body will drift from the frontmatter.
- "binary call/put" → "Call/Put" drops the "binary" keyword, which is what users coming from other platforms often say.
| --- | ||
| name: deriv-llms | ||
| description: Snapshot of the Deriv API llms.txt index and endpoint pages for when hosted MCP tools are unavailable. Use when looking up Deriv API endpoints, authentication, errors, workflows, contract types, or field lists from the bundled docs; when the hosted MCP is down; or when the user asks for llms.txt / endpoint pages. Prefer hosted get_schema, get_field, and guide tools while they work. Do not invent fields. | ||
| description: Use the bundled Deriv API docs snapshot when hosted MCP tools are unavailable. Use when looking up Deriv API endpoints, authentication, errors, workflows, contract types, or field lists from the bundled docs; when the hosted MCP is down; or when the user asks for llms.txt / endpoint pages. Prefer hosted get_schema, get_field, and guide tools while they work. Do not invent fields. |
There was a problem hiding this comment.
Nit: two consecutive sentences start with "Use" ("Use the bundled … Use when looking up …"). Something like "Bundled Deriv API docs snapshot for when hosted MCP tools are unavailable. Use when …" reads cleaner.
Shorten the Codex shortDescription to 30 characters, keep Codex author.name as the plugin id, and put PKCE, portfolio, active symbols, and similar trigger nouns back in skill descriptions. Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
Derivas the display name, and approved trade names.author.name/developerNamestayderivbecauseverify-surfacetreats them as the plugin id.Test plan
node .github/workflows/verify-surface.mjspasses