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.
Constraint: Codex installs and removes plugin units, not individual SKILL.md files.\nRejected: Keep every skill in one eapil-skills bundle | Users could not selectively install only the needed skill pack.\nConfidence: high\nScope-risk: moderate\nDirective: Add future skills as separate eapil-* plugins unless they are intentionally bundled.\nTested: python json.tool for marketplace and plugin manifests; validate_plugin.py for all 13 plugins; codex plugin marketplace add . --json; codex plugin list --marketplace eapil-skill-market --available --json; codex plugin add eapil-pdf/eapil-xlsx/eapil-threejs-fundamentals.\nNot-tested: Remote Git marketplace refresh after push.
Constraint: Codex Git sparse checkout preserves selected paths, so plugins/codex is not treated as the marketplace root by the CLI.\nRejected: Require users to rely on a single plugins/codex sparse path | The CLI leaves the manifest nested and rejects the marketplace root.\nConfidence: high\nScope-risk: narrow\nDirective: Keep the root .agents/plugins/marketplace.json as the primary Git entrypoint.\nTested: python json.tool on both marketplace manifests; validate_plugin.py.\nNot-tested: Remote Git marketplace add after this commit.