用途:UI Pack Maintain 是一套自包含的 UI Pack 编写与发布工作流,负责 Pack 契约、schemaVersion 规则、注册表格式、校验器与发布元数据。它不负责消费端的发现、下载或原型生成。
主要能力:支持 Pack 的创建、扩展、修复、校验、版本化与发布;管理 manifest.json 作为唯一机器可读索引与依赖来源;生成 registry.json;提供确定性校验与解析器冒烟测试。
使用方式:创建 Pack 后校验并解析: node scripts/validate-pack.mjs --pack=<pack-directory> --strict node scripts/resolve-pack.mjs --pack=<pack-directory> --entry=<id>[,<id>...] 发布前运行: node scripts/generate-registry.mjs node scripts/generate-registry.mjs --check
工作流:先读 references/contract.md 了解结构与职责边界;维护模式下再读目标 Pack 的 PACK.md 与 manifest.json 及本次涉及的资源条目;将变更分类为 Pack 创建、Foundation、Component、Pattern、Preset、注册表/发布或修复;实现最小可复用改动;更新 manifest.json 后运行确定性校验;新 Pack 或重大语义变更需运行隔离语义评审;发布或更改可下载元数据时重新生成 registry.json;仅应用已验证的发现,再重跑校验与解析器冒烟测试。
硬性边界:Pack 须保持在 --pack= 指定目录内;Foundation 保持无 DOM,仅含共享 token 与文档级 CSS 基线;每个 Component 为单一叶子实现并带本地契约;Pattern 组合 Component 而不复制其实现;Preset 不含业务事实;状态适配器只投影传入的本地状态,不得访问 PrototypeViewers、持久化状态、解析 URL 或注册全局事件处理器;manifest.json 是唯一机器可读索引与依赖来源;requires 只声明必需依赖,条件能力放 optional;Pattern 与 Preset 不得直接选择内部组件;sketch atoms 在 components[<id>].atoms 声明并在各自 component.html 中以 data-pack-atom 标记,每个 atom 标记一个控件而非复合演示;不在此实现消费端下载流程。
限制:校验器无法判断组件边界是否有用或视觉证据是否充分,需交由语义评审;跨 Pack 引用超出范围,须报告为证据缺口。