Add shadcn-ui/ui skills/shadcn to the external source registry and generate the public Codex plugin with localized Chinese marketplace metadata. Index the plugin in both marketplace entry points and lock the synced upstream commit.
Constraint: Third-party plugin contents are generated from config/external-sources.json and locked to the upstream commit recorded in external-sources.lock.json.
Rejected: Hand-editing generated shadcn plugin metadata | Localized display fields belong in manifestOverrides and skillDescriptions so future syncs preserve them.
Confidence: high
Scope-risk: narrow
Directive: Re-run the external source sync instead of manually editing plugins/codex/plugins/shadcn when upstream changes.
Tested: python scripts/validate_marketplace.py; python /Users/eapil/.codex/skills/.system/plugin-creator/scripts/validate_plugin.py plugins/codex/plugins/shadcn; git diff --check.
Not-tested: Codex marketplace install/remove smoke test was not run.
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.