feat(plugins): bundle project scaffold marketplace plugin
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
# 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: 22078060386e38dd5f12af4717dc6c6e3378c2df
|
||||
- Owner: codex
|
||||
- Status: Ready for Integration
|
||||
|
||||
## Scope
|
||||
|
||||
- Publish `makelore.project-scaffold` as a code-owned bundled Marketplace plugin.
|
||||
- Move the existing project-scaffold Skill runtime into `resources/coding-plugins/project-scaffold` so 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 ID `makelore-project-scaffold`, release version `1.0.0`, and minimum client version `2.0.0`.
|
||||
- Preserve non-overwrite scaffolding and explicit user invocation of the Skill.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Moved the existing scaffold Skill, templates, release reference, and `.mjs` runner into the signed client resource tree at `resources/coding-plugins/project-scaffold`; no second runtime copy remains.
|
||||
- Added schema-v2 MakeLore capability metadata and retained the portable `.codex-plugin/plugin.json`, both identifying `makelore.project-scaffold` version `1.0.0` and Skill `makelore-project-scaffold`.
|
||||
- Registered the plugin as a fixed, code-owned, `skill_only` bundled release with ID `00000000-0000-4000-8000-000000000303` and 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_program` read compatibility, canonical `interactive_ai_app` output, 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-running `tests/unit/pi-agent-server-process-real.test.ts` alone 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_NODE` execution 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.
|
||||
Reference in New Issue
Block a user