Add a market-source-adapter plugin so maintainers have a reusable workflow for adapting third-party skill repositories while replacing the old test-oriented README with official Chinese marketplace guidance.
Constraint: Public plugins must remain installable as independent Codex plugins and Chinese-facing fields must be localized without changing stable plugin IDs.
Rejected: Keep adapter guidance only in README | Maintainers need it as an installable skill available from the same marketplace and KeyInfo skill generation page.
Confidence: high
Scope-risk: narrow
Directive: Add future third-party repository structures as explicit adapters or source config, not one-off copy steps.
Tested: python scripts/validate_marketplace.py; python /Users/eapil/.codex/skills/.system/plugin-creator/scripts/validate_plugin.py plugins/codex/plugins/market-source-adapter; python /Users/eapil/.codex/skills/.system/skill-creator/scripts/quick_validate.py backend/data/skill_market_repo/plugins/codex/plugins/market-source-adapter/skills/market-source-adapter; node local skills.json visibility check
Not-tested: Installing market-source-adapter through Codex Desktop UI.
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: 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: 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: 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: 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: 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: 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: 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: 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: 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: Public marketplace should only expose production-ready plugins while KeyInfo now publishes internal skills explicitly.
Rejected: Keeping eapil-prefixed test plugins | They conflict with future KeyInfo-published skills and confuse plugin identity.
Confidence: high
Scope-risk: narrow
Directive: Keep plugin IDs stable and avoid eapil-prefixed test fixtures in the public market.
Tested: python scripts/validate_marketplace.py; CODEX_HOME temp codex plugin marketplace add .; CODEX_HOME temp codex plugin add docx@eapil-skill-market
Not-tested: Remote Codex Desktop install after push.
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: 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.
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.