Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .agents/plugins/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Design"
"category": "Creativity"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Incomplete Design category migration

Low Severity

paper now uses Creativity, but the sibling paper-desktop marketplace entry and Codex interface.category still use Design. This change treats Design as invalid (dashboard rejection), and Codex reads category from marketplace.json, so the desktop plugin remains on the value this PR is migrating away from.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 04b156f. Configure here.

},
{
"name": "paper-desktop",
Expand Down
11 changes: 7 additions & 4 deletions plugins/paper/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,14 @@
"com.openai": {
"interface": {
"displayName": "Paper",
"shortDescription": "Design UI on a live canvas",
"longDescription": "Paper is a professional design tool built on HTML and CSS. With this plugin, ChatGPT can read your Paper files — structure, styles, screenshots, and text — and write back to the canvas in real time. Use it to sketch new screens from a prompt, iterate on existing designs, generate UI from a brief or design system, export artboards, and keep design work moving without leaving the conversation.\n\nSign in with your Paper account to connect. ChatGPT can only access files that your account can access.",
"shortDescription": "Design, share, ship",
"longDescription": "Paper is a professional design tool built on HTML and CSS. With this plugin, ChatGPT can read your Paper files and write back to the canvas in real time. Use it to sketch new screens from a prompt, iterate on existing designs, generate UI from a brief or design system, and export artboards.\n\nSign in with your Paper account to connect. ChatGPT can only access files that your account can access.",
"developerName": "Paper",
"category": "Design",
"capabilities": ["Read", "Write"],
"category": "Creativity",
"capabilities": [
"Read",
"Write"
],
"websiteURL": "https://paper.design",
"supportURL": "https://paper.design/support",
"privacyPolicyURL": "https://paper.design/legal/privacy",
Expand Down
18 changes: 18 additions & 0 deletions scripts/validate-agent-plugins.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,20 @@ const LIMITS = {
capabilityLength: 120,
};
const REQUIRED_LISTING_URLS = ["websiteURL", "supportURL", "privacyPolicyURL", "termsOfServiceURL"];
// Every category in use across OpenAI's curated catalog (github.com/openai/plugins); the dashboard
// rejects anything else with "Select a valid category". Design tools (Figma, Canva, Adobe) use Creativity.
const DASHBOARD_CATEGORIES = new Set([
"Developer Tools",
"Productivity",
"Creativity",
"Communication",
"Education & Research",
"Data & Analytics",
"Finance",
"Security",
"Scientific Research",
"Business & Operations",
]);
const REQUIRED_POSITIVE_CASES = 5;
const REQUIRED_NEGATIVE_CASES = 3;
const MIN_ICON_PX = 48;
Expand Down Expand Up @@ -189,6 +203,10 @@ function validateInterface(pluginDir, label, iface) {

if (typeof iface.category !== "string" || iface.category.length === 0) {
fail(`${label}: interface.category is required`);
} else if (!DASHBOARD_CATEGORIES.has(iface.category)) {
fail(
`${label}: interface.category "${iface.category}" is not a dashboard category; use one of: ${[...DASHBOARD_CATEGORIES].join(", ")}`
);
}

if (iface.capabilities !== undefined) {
Expand Down
Loading