--- name: dsh-character-theme description: 为 DeepSeek Harness Web 创建或改造角色主题,把角色素材与视觉语言落实为可安装的明暗配色、字标、标志、装饰和外观设置。适用于“给 DSH 做某角色主题”“基于灰原哀主题换成另一个角色”;单独制作角色图片或视频不触发。 license: MIT --- # DSH 角色主题制作 以可用的工作台为核心,把角色视觉转成独立的 DSH Theme Plugin。灰原哀主题提供实现参考;新主题的角色、配色、构图、名称和动效由本次需求决定,不要求继续使用漫画、紫色、APTX 或八种展示形式。 ## 明确本次交付 从用户要求和已有工程中确定角色及素材、目标 DSH 版本、修改现有主题还是新建独立主题、目标目录,以及本次只设计还是实现安装包。只问会改变结果且无法查到的缺项。 - 只要方案:输出视觉方向、代表画面和实现边界,不安装插件或修改宿主。 - 已授权实现:在明确范围内完成源码、构建、验证和交付,不把普通实施步骤拆成反复审批。 - 修改现有主题:保持该产品的包身份和偏好语义,按实际需要迁移。 - 新建角色主题:使用独立包名、Cordis id 和偏好,默认不迁移灰原哀或导航的历史配置。保留原主题作为可恢复基线。 需要整理输入时使用[角色简报模板](assets/theme-brief.md),信息已明确可直接填,不必让用户重新填写整张表。 ## 1. 核对源码和宿主 优先读取目标项目的 `package.json`、`cordis.patch.yml`、入口、测试和已有改动。缺少起点时,从 [dsh-workbench-theme](https://github.com/lucky01222/dsh-workbench-theme) 获取参考源码到独立目录;Skill 安装在该仓库之外时,不把 Skill 所在目录当源码根。 已核实的参考基线: | 项目 | 参考值 | | --- | --- | | 主题包 | `dsh-workbench-theme@1.3.3` | | 源码提交 | `7f104df3e1779e930fbadd7e617a08563dc59ea5` | | 官方宿主 | `@deepseek-ai/dsh@0.1.7-rc.2` | | 运行环境 | Node.js 24 | 这些值是定位依据,不是所有版本的兼容承诺。使用其他版本时,核对实际启动入口、发行包及对应 API/类型;不能用旧 Harness fork 或另一个 CLI 的版本代替。缺少运行环境时,交付明确标注未完成运行验收的候选。 阅读[实现改造地图](references/implementation-map.md),区分要更换的产品身份、必须保持的中性协议,以及 rc.2 专属适配。 ## 2. 形成角色视觉方案 阅读[设计、素材与展示](references/design-and-media.md)。把角色特征落实成少量可验证的决定: - 明暗各自的背景层级、主色、文字、选中/焦点和语义状态色。 - 标志、字标、人物或场景在真实页面中的位置与留白。 - 自己拥有的品牌文字,以及需要保持原样的正文、控件和用户内容。 - 图片的来源、用途和许可;字体的覆盖与分发条件。 - 静态默认状态,以及确有必要的动效和减少动态效果行为。 用真实首页、设置页或业务声明的装饰出口检验构图,不只交一张与实际布局无关的海报。素材不足时可做“配色+标志”;同步减少角色映射、图库选项和测试,不生成不存在的功能。 ## 3. 实现独立主题 按改造地图落实身份、配置、视觉和验证,不对整个仓库做无差别字符串替换。 1. 对齐包名、Cordis id、Client Loader id、配置表单、主题层 source 和样式所有权。新产品使用自己的 locale/slot 条目 id;公共 slot 名和装饰协议保持稳定。 2. 在官方 ThemeRuntime 中注册成对的 light/dark token,保留原生明暗切换。品牌色不覆盖错误、警告、成功等语义。 3. 配色、素材、强度、标志和减少动态效果集中在通用外观设置。无装饰时仍保留可用配色与完整业务内容。 4. 素材只进入空的中性装饰出口;不读取文档、会话或编辑器内容判断装饰。未知宿主结构跳过,不能整段重建页面。 5. 字标、签名和图标使用新角色内容;沿用字形动效时同步更新品牌识别分支、字体子集与测量。固定字标子集不能用于任意正文。 6. 每个颜色层、门户、样式、观察器、事件和计时器都有释放路径。停用恢复原生或前一层状态,并尊重后来写入的其他 owner。 参考实现不是多主题管理器:**同一 Web Profile 一次只启用一个此架构的角色主题**。导航可独立启停。不要宣称改了包名就能与另一角色主题同时运行;若用户明确需要多主题管理,先核对共享标记与入口所有权,再单独设计协调机制。 ## 4. 验证候选 先读目标仓库实际 scripts。参考基线的基本顺序是: ```sh npm ci --omit=peer npm run build npm run check npm test npm pack --dry-run ``` 构建必须在读取 dist 的测试之前。改名后适配测试中的包名、品牌文案和配对逻辑,保持行为断言。`test:client` 当前锁定原来的导航/主题包和 rc.2;不能原封不动对任意新名称运行并宣称有效覆盖,详见改造地图。 需要安装验收时,使用已授权的隔离 `DSH_HOME`、独立工作目录、Profile 和端口;不复制日常配置、凭据或真实资料。安装本次构建包后,核对实际版本和 Client 激活情况。 至少观察本次改动影响的状态:明/暗、装饰/无装饰、强度/标志、减少动态效果、窄屏/短窗口、应用切换、主题停用和重新启用。与导航配对时再核对安装顺序和分别停用后的结果。文字、控件和用户内容仍须可读、可操作。 截图与浏览器实测证明视觉效果,构建和内存 DOM 测试不能替代它们。遵守当前宿主允许的浏览器/桌面操作方式,参考录制代码不是绕过限制的授权。 ## 5. 交付给使用者 提供源码或包、准确适配版本、实际验证结果、安装/停用方法和未验证项。检查真正的 tarball:不夹带旧角色图片、无用字体、个人路径、凭据或运行数据;保留代码和所用素材需要的许可声明。 截图、README 或展示短片只在本次需要时制作,按设计参考中的展示部分处理。视频后期的遮罩、分层和转场不等于主题自带动画。 GitHub 更新、合并、npm 发布和日常宿主切换分别遵循用户明确授权;这份 Skill 本身不授予发布或停服权限。