Skip to content
dsh.fish
Bundle

dsh-len-assistant

Lenovo device diagnostics and service assistant for DeepSeek Harness, including battery health, Windows device, performance, storage, Wi-Fi, app diagnostics and safe actions.

Source
qing-1-1
License
MIT
Updated
Updated yesterday

Readme

# dsh-len-assistant

面向 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 的**工具集**。
把联想服务体系里的专业判断能力——硬件诊断、备件、保修、服务网点——做成通用 agent 平台上可安装的插件。

当前状态:已迁入 Windows 设备、电池、性能、存储、Wi-Fi、应用查询、报告和受控操作能力。

> **归属说明**
> 本仓库由联想服务团队成员维护,属于**试点性质的探索项目**,不代表联想官方发布,
> 亦未经联想品牌方审阅。仓库中引用的联想服务入口与商品链接均为公开页面。
> 如需正式化,应迁至 Lenovo 组织下并补充官方声明。

---

## 目录

- [这是什么](#这是什么)
- [工具组](#工具组)
- [安装与使用](#安装与使用)
- [仓库结构](#仓库结构)
- [文档](#文档)
- [已知待办](#已知待办)

---
## 工具组

### 🔋 电池健康检测

跨平台电池体检:容量、循环次数、双口径健康度、SVG 衰减趋势图、系统官方电池报告,
以及基于结论触发的服务推荐。

| 工具 | 作用 |
|---|---|
| `battery_health_collect` | 采集并解析出结构化 metrics,生成官方报告与历史快照 |
| `battery_health_trend` | 渲染容量衰减趋势 SVG |
| `battery_health_rules` | 取判读规则文档,避免模型凭印象下结论 |

第三个工具的存在是为了让**只装了 Plugin 没装 Skill 的用户也能拿到判读标准**,
否则模型会拿着一堆数字自由发挥,而判读规则正是这个项目最不该被绕过的部分。

详见 **[docs/tools/battery-health.md](docs/tools/battery-health.md)**。

### Windows 设备助手
非电池工具,保持原来的结构化状态、隐私最小化和操作确认边界:

- 设备、性能、进程、存储和应用查询;
- Wi-Fi 状态、基础诊断和 5~60 秒网络波动监测;
- 脱敏的 Wi-Fi SVG 与自包含 HTML 报告;
- 打开受控设置、应用、官方 URL 和复制诊断摘要,均要求用户逐次明确确认。

这些能力当前仅支持 Windows;详细契约见 **[docs/tools/windows-device.md](docs/tools/windows-device.md)**。

---

## 安装与使用

### 作为 DSH 插件

```bash
dsh plugin --profile web add github:qing-1-1/dsh-len-assistant
```

装完重启 `dsh web` 并刷新页面。插件包内自带 skill 资源,不额外装 skill 也能工作。

### 作为 DSH 项目级 skill

克隆本仓库后,`.dsh/skills/` 下的目录就是 DSH 的项目级 skill(优先级 100,
扫描 `.dsh/skills/` 且**只扫顶层不递归**)。在该项目目录下启动 dsh 即可,
或用 `/battery-health-check` 手动触发。

### 作为 Claude Code skill

`.claude/skills/` 下是同一份内容的副本。想全局可用就软链到用户级目录:

```bash
ln -s "$(pwd)/.claude/skills/battery-health-check" ~/.claude/skills/battery-health-check
```

触发方式:直接说「帮我看下电池健康度」「电脑越来越不耐用了」「电池还能用多久」即可。

### 开发

```bash
npm test              # 单元 + 真实采集的集成测试
npm run sync-skill    # .dsh/skills → .claude/skills
```

---

## 仓库结构

```
├── package.json                    dsh.bundle 声明(可被 dsh plugin add 安装的凭证)
├── cordis.patch.yml                DSH 安装时应用的 cordis 配置补丁
│
├── src/
│   ├── index.js                    插件入口:聚合注册各工具组
│   ├── shared/                     跨工具组复用:错误类型、包内资源定位
│   └── tools/
│       ├── battery/                电池采集、趋势与规则工具
│       ├── device/                 设备、性能、进程、存储与应用查询
│       ├── wifi/                   Wi-Fi 诊断、监测与报告
│       └── actions/                需逐次确认的低风险操作
│
├── test/tools/                     按工具组分目录
│
├── .dsh/skills/                    ← DSH skill 加载路径(唯一事实来源)
│   └── battery-health-check/
│       ├── SKILL.md                流程编排与报告模板
│       ├── scripts/                平台采集脚本(零依赖)+ 趋势图渲染
│       └── references/             判读规则、推荐策略、平台笔记
│   ├── device-overview/
│   ├── performance-diagnosis/
│   ├── storage-diagnosis/
│   ├── wifi-diagnosis/
│   ├── wifi-health-report/
│   ├── app-diagnosis/
│   ├── service-recommendation/
│   └── xiangbangbang-device-assistant/
│
├── .claude/skills/                 ← Claude Code 加载路径(由 sync-skill.sh 生成)
│
├── docs/                           见下
└── scripts/sync-skill.sh           两份 skill 副本的同步,防漂移
```

两份 skill 副本是因为 DSH 扫 `.dsh/skills/`、Claude Code 扫 `.claude/skills/`,
互不认对方的路径。软链在 Windows 上不可靠(本插件要跨平台),所以用真实副本 +
`scripts/sync-skill.sh` 保持一致。**改动请改 `.dsh/` 那份再同步。**

### 加一个新工具组

1. `src/tools/<组名>/{collector.js,register.js}` —— 纯逻辑与注册分离
2. `.dsh/skills/<skill 名>/` —— SKILL.md + scripts + references,然后 `npm run sync-skill`
3. `src/index.js` 的 `GROUPS` 加一行
4. `test/tools/<组名>.test.js`
5. `docs/tools/<组名>.md`

---

## 文档

| 文档 | 内容 |
|---|---|
| [docs/vision.md](docs/vision.md) | **为什么做**:判断、要验证的假设、指标、工具规划、设计原则、风险边界 |
| [docs/progress.md](docs/progress.md) | **做到哪了**:当前状态、已完成、核心结论、踩过的坑、未来计划、未验证缺口 |
| [docs/marketplace-listing.md](docs/marketplace-listing.md) | **怎么进生态**:收录机制、三个核心站点的逐项要求、已知坑、提交清单 |
| [docs/tools/battery-health.md](docs/tools/battery-health.md) | 电池工具组的能力矩阵、数据口径、趋势图设计原则、推荐策略 |
| [docs/tools/windows-device.md](docs/tools/windows-device.md) | Windows 非电池工具、隐私与确认边界、迁移状态 |
| [AGENTS.md](AGENTS.md) | **给 AI agent 的说明**:硬性约束、单一事实来源、代码约定、高频陷阱 |
| [handoff.md](handoff.md) | **交接文档**:冷启动接手所需的一切 |

---
## License

[MIT](LICENSE)

Install

dsh plugin --profile web add github:qing-1-1/dsh-len-assistant

Profile: web

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source