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