3.9 KiB
3.9 KiB
Task: Publish scaffold Skill through official Marketplace
Identity
- Task ID: 20260904-marketplace-scaffold-client-6c4e8a21
- Mode: Feature
- Branch: codex/20260904-integrate-project-scaffold-b6d3e8a1-integrate-project-scaffold
- Worktree: D:\Datas\OthersProjects.codex-worktrees\makelore\20260904-integrate-project-scaffold-b6d3e8a1
- Base commit:
2207806038 - Owner: codex
- Status: Ready for Integration
Scope
- Publish
makelore.project-scaffoldas a code-owned bundled Marketplace plugin. - Move the existing project-scaffold Skill runtime into
resources/coding-plugins/project-scaffoldso it ships with the signed MakeLore application. - Register the bundled release in the client plugin registry and preserve the acquire, project-enable, and Agent-assignment lifecycle.
- Cover the official-script boundary with focused manifest, resolver, scaffold, and artifact-package tests.
Intent And Constraints
- The Skill owns creation of the fixed interactive AI application starter and static publish-readiness checks; it does not build, upload, submit, or approve a project.
- Official executable resources may be loaded only from the code-owned bundled plugin root. Downloadable Marketplace artifacts keep the existing text/image-only P0 asset policy, including rejection of
.mjs. - Keep one runtime copy of the Skill rather than a Device Package copy plus a bundled copy.
- Use plugin ID
makelore.project-scaffold, Skill IDmakelore-project-scaffold, release version1.0.0, and minimum client version2.0.0. - Preserve non-overwrite scaffolding and explicit user invocation of the Skill.
Outcome
- Moved the existing scaffold Skill, templates, release reference, and
.mjsrunner into the signed client resource tree atresources/coding-plugins/project-scaffold; no second runtime copy remains. - Added schema-v2 MakeLore capability metadata and retained the portable
.codex-plugin/plugin.json, both identifyingmakelore.project-scaffoldversion1.0.0and Skillmakelore-project-scaffold. - Registered the plugin as a fixed, code-owned,
skill_onlybundled release with ID00000000-0000-4000-8000-000000000303and the existing acquire, project-enable, and Agent-assignment lifecycle. - Narrowed executable-script authority to the fixed bundled root. Downloaded Marketplace ZIPs still reject
.mjs; they do not install this plugin's runtime. - Preserved the existing non-overwrite scaffold behavior, legacy
mini_game/mini_programread compatibility, canonicalinteractive_ai_appoutput, and static publication-readiness guidance.
Verification
pnpm exec vitest run tests/unit/coding-plugin-manifest.test.ts tests/unit/coding-plugin-marketplace-client.test.ts tests/unit/project-scaffold-plugin.test.ts --maxWorkers=2: 54 passed.node --test tests/project-scaffold/scaffold.test.mjs: 12 passed.pnpm exec vitest run tests/unit/plugin-workspace-model.test.ts tests/unit/coding-plugin-effective-resolver.test.ts tests/unit/coding-composition-paths.test.ts --maxWorkers=2: 33 passed.- ESLint on the changed TypeScript files: passed.
pnpm run typecheck: passed.- Plugin manifest validation: passed. Skill validation: passed with UTF-8 mode and the repository Python environment that provides PyYAML.
pnpm test: 224 test files and 1,879 tests passed, 2 skipped; one unrelated real-process timing assertion exceeded two seconds under full parallel load. Re-runningtests/unit/pi-agent-server-process-real.test.tsalone with one worker passed all 6 tests, so no unrelated timeout change was made.
Follow-ups
- Run a packaged-app smoke test before the first public client release to prove the signed resource layout and
ELECTRON_RUN_AS_NODEexecution path outside the repository environment.
Promotion Candidates
- Update ADR-008 after integration: project scaffolding is distributed as a code-owned bundled Marketplace plugin, while downloadable artifacts remain non-executable in P0.