Constraint: Keep one EAPIL marketplace while using official Codex category metadata and stable plugin IDs.
Rejected: One marketplace per category | Codex groups the UI by marketplace source, which would require users to add multiple markets and change install selectors.
Confidence: high
Scope-risk: moderate
Directive: Keep localized plugins in the same functional category and distinguish them with a language suffix such as -zh.
Tested: Marketplace validation, all manifest/category consistency checks, KeyInfo market tests, frontend lint and production build.
Constraint: Keep the official Superpowers plugin available under its existing ID while publishing the localized fork with a distinct ASCII ID.
Rejected: Reusing the upstream superpowers manifest name | It collides with the official marketplace entry.
Confidence: high
Scope-risk: narrow
Directive: Continue syncing this plugin from AreChen/superpowers-zh and preserve hooks: {}.
Tested: Marketplace validator, Codex local install/list/remove, KeyInfo adapter tests, upstream Codex manifest and package checks except its platform-specific tar epoch assertion.
Constraint: Public README content should guide external AI users, not document internal maintenance, publishing, sync, or validation workflows.
Rejected: Keeping repository maintenance and sync instructions in public README | those belong in the internal adapter skill.
Confidence: high
Scope-risk: narrow
Directive: Keep public marketplace docs limited to install, update, uninstall, and public plugin capability guidance.
Tested: python scripts/validate_marketplace.py; README scan for internal workflow terms.
Constraint: Public marketplace documentation must not identify private implementation sources or unpublished capabilities.
Rejected: Explaining omitted MCP servers in public README | the explanation itself exposes private context.
Confidence: high
Scope-risk: narrow
Directive: Public docs should describe only published plugins and generic marketplace rules.
Tested: python scripts/validate_marketplace.py; hidden content and filename scan for private identifiers.
Constraint: The public marketplace must not contain internal MCP endpoints, shared keys, project keys, or user-token workflows.
Rejected: Publishing every configured KeyInfo MCP server | internal knowledge, Firecrawl, and Outline servers are not public distribution targets.
Confidence: high
Scope-risk: moderate
Directive: Keep MCP publication behind an explicit allowlist and verify hidden plugin metadata before pushing.
Tested: python scripts/validate_marketplace.py; temporary CODEX_HOME marketplace list/add/remove for mcp-playwright; hidden rg scan for internal MCP URLs and key markers.
Not-tested: Live Playwright MCP browser tool invocation inside a fresh Codex session.
Keep the installable plugin selector ASCII while restoring the Chinese user-facing display name for the patent drafting skill.\n\nConstraint: Codex marketplace entry name is the install selector and must remain ASCII kebab-case.\nRejected: Put Chinese in marketplace.json name | Codex list/add skips or fails to resolve that selector.\nConfidence: high\nScope-risk: narrow\nDirective: Use interface.displayName for Chinese aliases; never put localized text in plugin ids, directories, manifest name, or marketplace entry name.\nTested: python scripts/validate_marketplace.py; python /Users/eapil/.codex/skills/.system/plugin-creator/scripts/validate_plugin.py plugins/codex/plugins/patent-application-drafting-skill; temporary CODEX_HOME marketplace list and plugin add smoke test\nNot-tested: Interactive in-chat skill invocation was not rerun for this display-only change