# Zuix Dev

> 维护独立 ZUI 扩展库的 README/dev.md 调试页及 dev.ts，并按需通过宿主验证交互和 HMR。需求明确时直接实施。

- Skill: `easysoft/zuix-dev` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add easysoft/zuix-dev`
- Raw SKILL.md: https://api.skillmd.com/api/skills/easysoft/zuix-dev/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: easysoft (https://skillmd.com/u/easysoft)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/easysoft/zuix-dev

---


# ZUI 扩展库开发调试页

## 准备

按 [共享工作流](../zuix-standards/references/workflow.md) 解析本次所需上下文、读取适用规则并检查所有权；已有且未变化的发现直接复用。阅读 [调试页规范](../zuix-standards/references/dev-page.md) 中与本次修改有关的部分。

检查实际页面源及相关 `dev.ts`、API 或样式。开发管线通常优先 `dev.md`、缺失时回退 `README.md`，以目标现状和当前宿主为准，不无理由迁移或复制两份。需要新场景或生命周期判断时再参考相关实现；真实交互/HMR 验收需要已确认的宿主。

## 实施

1. 按共享工作流先检查请求、已确认决定和目标现状，合理沿用既有约定；仅有无法可靠消除且会实质改变调试页目标、公开契约或交付边界的歧义时询问，否则直接在本领域内实施，不增加确认门禁。
2. 在实际页面源中使用当前宿主支持的 `html:example` fence 和 utility class 语法构建实例 DOM；资源通过扩展开发管线实际支持的路径引用，不硬编码某个扩展品牌或组名。
3. `dev.ts` 中用真实 `packageName` 导入目标入口和演示依赖；不要把 `folderName` 或 `zuiName` 当成模块包名。库内相对入口可沿用目标现状。
4. DOM 首次建立和 HMR 重建后都必须执行的实例化、查询和局部绑定放入 `onPageUpdate`；真正一次性的全局设置才放入 `onPageLoad`。
5. 避免重复全局监听、冲突 ID、不可清理的 timer/observer 和遗留实例。组件可销毁时，在重建或重新实例化前清理旧实例。
6. 若调试页需要覆盖 `LibLoader` 的本地资源，使用同一 loader 注册名和 check，并从 resolver 的 `extsName`、`folderName`、`publicPath` 及宿主实际 URL 规则构造路径；禁止写死项目名或假定三者相同。
7. 只修改 `targetLibRoot` 中调试页及批准的演示资源。源码 lint、类型、依赖与测试从 `extensionRoot` 执行；不修改宿主源码、package、lockfile 或注册；宿主生成物和缓存写入遵循共享工作流的验证隔离与批准规则。
8. 不为使演示成立而悄悄修改运行时 API、正式文档或 i18n。发现越界问题时单独报告。

## 宿主联合验证

按共享工作流完成本次所需检查、范围内修复和复验。涉及渲染、交互或 HMR 时，再通过已确认的宿主及注册组复用或启动扩展开发服务，从实际导航进入目标页。

根据本次变更验证首次加载、相关状态与交互、键盘/焦点、销毁重建或 HMR，检查控制台异常。服务归属、宿主写入和验证隔离遵循共享工作流。

## 组合边界与交付

- 独立调用且目标明确时直接实施。
- 作为子流程时只处理共享范围内的本领域工作；上下文、批准和增量范围统一遵循共享工作流。
- 用户只要求评审时保持只读。
- 交付时汇报实际页面源、演示矩阵、生命周期处理、四层上下文、本地与宿主验证结果及未覆盖项，不自动提交、推送或发布。

