Constraint: Public skills are published only by explicit administrator action unless they are tracked third-party market sources.
Confidence: high
Scope-risk: narrow
Directive: Keep private/internal skills out of the public marketplace.
Tested: Marketplace validation passed.
Constraint: Chinese users need localized plugin and skill descriptions while third-party sources must remain syncable from upstream.
Rejected: Editing third-party generated files by hand | Sync would overwrite them and make localization drift from config.
Rejected: One plugin per Three.js skill | Users should install one domain package while Codex can still select individual skills inside it.
Confidence: high
Scope-risk: moderate
Directive: Keep plugin IDs and skill names in English kebab-case; put user-facing Chinese text in manifest fields, SKILL.md descriptions, or external-source overrides.
Tested: Codex manual confirms duplicate skills are not merged; powershell sync_external_plugins.ps1 with proxy; python scripts\\validate_marketplace.py; validate_plugin.py for all plugins; codex plugin list local marketplace; codex plugin add/remove eapil-threejs.
Not-tested: Codex Desktop visual refresh after pulling the updated remote marketplace.
Constraint: Maintainers need repeatable ingestion for external skill repositories with different layouts.\nRejected: Git submodules as the primary mechanism | Codex marketplace installs do not reliably recurse external submodules, and adapters still need layout conversion.\nConfidence: medium\nScope-risk: moderate\nDirective: Add new upstreams through config/external-sources.json and adapter logic rather than hand-copying plugin folders.\nTested: scripts/sync_external_plugins.ps1 -Proxy http://127.0.0.1:18085; scripts/sync_external_plugins.ps1 -Only ui-ux-pro-max -Proxy http://127.0.0.1:18085; python scripts/validate_marketplace.py; validate_plugin.py for superpowers and ui-ux-pro-max; codex plugin add superpowers@eapil-skill-market; codex plugin add ui-ux-pro-max@eapil-skill-market; verified ui-ux-pro-max data/scripts directories in cache.\nNot-tested: Scheduled .gitea workflow execution on git.playones runner.