4.2 KiB
4.2 KiB
ADR-008: 交互式 AI 应用使用显式 Scaffold Skill
- Status: Accepted / implemented
- Date: 2026-09-04
- Applies to: Project creation,
ProjectType, official bundled Marketplace Plugins, scaffold Skill, release readiness
Context
历史客户端把 mini_game 和 mini_program 作为两个可发布产品类型,并在创建项目时自动生成两套业务模板。这把项目身份、起步文件和发布规则绑定在同一次创建操作中,使模板演进和平台发布约束难以独立维护。
项目服务当前已经只负责 .makelore/project.json 与 knowledge/。用户确认将小游戏和小程序合并为一个“交互式 AI 应用”类型,并把生成文件、目录以及提交审批要求放进由官方 Marketplace 管理、随签名客户端交付的 Skill。
Decision
- 新建项目只提供规范产品类型
interactive_ai_app(显示为“交互式 AI 应用”)和custom。ProjectType创建后仍不可变。 mini_game与mini_program只作为历史读取和脚手架兼容别名,在内存中归一为interactive_ai_app。读取或运行脚手架不会改写原配置;后续普通配置变更可以保存规范值。缺少类型字段的旧项目仍归一为custom。- 项目创建只生成
.makelore/project.json和knowledge/,不生成业务源码、依赖、锁文件或发布模板。 - 代码内置的官方 Marketplace Plugin
makelore.project-scaffold提供显式 Skillmakelore-project-scaffold。它保留 Account Library 获取、项目启用和 Agent 分配语义,但固定版本资源随 MakeLore 客户端交付,不经过 Package Store 下载。其脚本生成六个交互式 AI 应用起步文件;写入前预检全部目标,不覆盖已有路径,受控失败时只回滚本次创建的文件和目录。 - Scaffold Skill 不安装依赖、不访问网络、不执行构建、不上传、不提交审核,也不提供
--force、类型覆盖或模板迁移状态。Main 继续独占固定 npm/Vite 构建、同字节预检、打包和上传;Works Square 继续独占服务端校验、不可变 Release 与运营审核。 - 官方 Plugin 的
.mjs仅因它位于客户端固定、代码所有的 bundled resource root 中而可执行。应用通过不可覆盖的MAKELORE_NODE_EXECUTABLE向父 Pi worker/Agent Server 提供自身 Node;不得回退系统 Node。该例外不适用于 Marketplace 下载 artifact:P0 下载包仍只接受文本/图片 Skill 资源并拒绝.mjs。第三方 Device Package 的可执行代码继续走自身的披露与确认边界。 - Skill 的发布检查只是只读准备度指导:区分确定阻断、源码包排除影响、运行时/平台待确认项和静态已满足项,并引用项目相对证据。它不能宣称构建、上传、审核或生产发布成功。
Consequences
- 模板可随官方 Plugin 版本演进,不再扩大项目创建服务的职责,也不需要把脚本上传为 Marketplace artifact。
- 旧项目无需批量迁移即可继续打开、生成脚手架和发布;新写入只使用规范类型。
- 发布规则在 Skill 中可被 Agent 解释和预检,但权威执行仍只有 Main 与 Works Square,避免形成第二套发布实现。
- 对外分发仍需不可变 SemVer/Git 版本、服务端 bundled Release 元数据、已安装 Windows、签名 macOS 与 native Linux 运行证据;工作区测试不能替代这些发布门禁。
Supersedes
本决定取代 2026-08-09 的双可发布类型与创建时自动生成模板行为;固定 Vite 构建、artifact contract、运营审核与公共播放边界保持不变。
Related Evidence
- Source commit:
959b633 - Integration merge:
4bc3e0ea5331a7d3f3576768c0119c02c0f0f952 - Official Marketplace source commit:
ddb678b46ff10a28e04beeafcfc00c8c8a23ff9f - Official Marketplace integration merge:
2bc3e4420852388ce46841e05c1cbf49e80b250c - Source task:
20260904-project-scaffold-implementation-7e4c2a91 - Marketplace source task:
20260904-marketplace-scaffold-client-6c4e8a21 - Marketplace integration task:
20260904-project-scaffold-integration-client-4f2a8c71 - Proposal:
10-decisions/proposals/20260904-project-scaffold-implementation-7e4c2a91__interactive-ai-app-type.md