Immutable. This exact content is served forever at /api/v1/blob/cb83e4d8d4238d7e.
--- name: dsh-config-sync description: 把 DSH(DeepSeek Harness)的用户配置(~/.dsh 下的 AGENTS.md、settings.yaml 及可选 profiles/预设)打包成脱敏骨架并在设备间安全同步恢复,提供只读审计、显式应用与 SHA-256 校验,绝不携带凭据和运行态。用于复现 DSH 环境、跨设备迁移偏好与模型路由配置。 version: 1.0.0 triggers: - "同步 DSH 配置" - "在另一台设备复用我的 DSH 设置" - "打包 ~/.dsh 配置" - "跨设备迁移 DSH 偏好 / 模型路由" not_for: - "同步技能栈(Skills 请交给 environment-bootstrap)" - "编辑 ~/.dsh 的实际运行文件(本 skill 只做打包与恢复)" depends_on: - skill-repository-maintainer --- # DSH 配置同步(dsh-config-sync) ## 使用场景 当你想在另一台设备上复用本机的 DSH 用户配置,或把当前配置生成一份可追溯的脱敏归档时触发。它负责 `~/.dsh/` 下**配置类文件**(偏好、模型路由、预设)的安全打包与恢复。 职责边界很重要:**技能栈的同步交给 `environment-bootstrap`**,本 skill 只管 DSH 配置本体。 ## 纳入与排除清单 对 `$DSH_HOME`(默认为 `~/.dsh`,可用 `$env:DSH_HOME` 覆盖)做如下归类: | 路径 | 类型 | 处理 | |---|---|---| | `AGENTS.md` | 文件 | ✅ 纳入(用户全局偏好,纯文本无敏感) | | `settings.yaml` | 文件 | ✅ 纳入(仅含 provider/model 与 `apiKeyEnv` 环境变量名,无明文密钥) | | `profiles/` | 目录 | ⚠️ 可选(需显式指定才纳入) | | `.agent-presets/` | 目录 | ⚠️ 可选 | | `patches/` | 目录 | ⚠️ 可选 | | `.credentials.yaml` | 文件 | ❌ **强制排除**(真实凭据,打进公开仓库即泄密) | | `sessions/ `storages/` | 目录 | ❌ **强制排除**(运行时态,仓库硬约束禁止) | | `skills/` | 目录 | ⛔ 不归本 skill,交给 `environment-bootstrap` | ## 安全边界 - **凭据绝不出包**:`.credentials.yaml` 和任何可能含明文密钥的路径,打包含前必须显式排除并由校验确认不存在。 - **settings.yaml 只携带环境变量引用**:`apiKeyEnv: BAI_API_KEY` 这样的条目是“环境变量名”,换设备时由目标端设置同名环境变量即可,不在包内放任何密钥值。 - 不通过恢复删除目标端额外文件;旧/未登记的配置文件应单独审查。 - 不隐式安装插件、MCP、包、hooks 或全局配置。 - 不以旧目标文件、stdout 或 apply exit code 单独作为成功证据。 - 回滚应从已知稳定归档/提交重新复制,不使用递归删除。 ## 打包(export) 1. 确认源 `$DSH_HOME` 存在,并解析其真实路径。 2. 按“纳入/排除清单”收集要打包的配置项;`.credentials.yaml`、`sessions/`、`storages/` 无论是否显式指定都强制排除。 3. 在仓库内建立一个脱敏架构录(例如 `dsh-config/` 或打包器输出目录),把每个纳入路径复制进去。复制后跑一次敏感扫描:若发现 `apiKeyEnv` 之外的疑似密钥、`.credentials.yaml` 或运行时文件,把该包标为 FAIL 并停止。 4. 为每个文件计算 SHA-256,生成 `manifest.json`(含路径、版本号、SHA-256、打包时间)。 5. 报告:源路径、纳入项、排除项、SHA-256、敏感扫描结果。只有扫描干净才报 `PASS`。 ## 恢复(restore) 1. 明确目标 `$DSH_HOME`(Windows 常见 `C:\Users\<user>\.dsh`),不得猜测其他用户目录。 2. 先做只读 `check`:对比归档与目标端,列出 missing / different / extra,不写任何文件。 3. 用户明确要求时执行 `apply`,然后对同一目标端再次 `check` 并核对 SHA-256。 4. 目标端仅此文件(额外文件)保持不动,并在报告中列明。 ## 输出契约 报告:模式(`check`/`apply`/`export`)、源/目标路径、纳入与排除项数量、`missing`/`different`/`extra`、每个文件的 SHA-256、敏感扫描结果、剩余风险。只有 post-apply 校验干净且敏感扫描为空时才报 `PASS`;有明确的非阻塞目标差异时报 `PARTIAL`。 ## 验证 成功同步的最低证据: ```text export: completed sensitive-data scan: PASS (no .credentials.yaml, no runtime files, no inline secrets) apply: completed post-apply SHA-256 check: PASS destination-only files: preserved and reported ```