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