mole
tw93/Mole开源磁盘清理工具 Mole CLI(mo,支持 macOS 和 Windows)的官方 skill:按 Mole 的 JSON 输出查看磁盘占用、预览并执行清理、查看已安装应用、读取系统健康状态和清理记录。清理前先用 --dry-run 预览并征得同意,卸载应用和需要管理员权限的步骤留给用户在自己的终端里执行。插件只带 skill,CLI 需另外安装。
[!IMPORTANT] 依赖前置:相邻
dsh-src检出(link:依赖) 本项目在开发形态下使用link:依赖指向相邻的 DeepSeek Harness 源码检出(dsh-src), 与当前仓库保持同一父目录布局(<parent>/dsh-src)。克隆本仓库后:
- 先把官方
deepseek-ai/deepseek-harness检出到与本仓库同级的dsh-src/目录,并执行其pnpm install && pnpm run build;- 再按下方「安装」一节执行本仓库的
pnpm install --offline && pnpm build与测试。 发布到 npm 的版本会尽量把link:依赖替换为 registry 真实版本;无法替换的内部包保持link:,见各包 README 说明。
DSH 技能插件:竞赛数学解题(对抗验证 + 校准信心)。 面向 IMO / Putnam / USAMO / AIME 及各类数学竞赛题,流程为 "纯推理求解 → 剥离思考链 → 新鲜上下文 subagent 对抗验证 → 校准信心输出 (high / medium / 诚实 'no confident solution')",可选用 LaTeX 编译 PDF。
定位:这是严谨流程 + 诚实弃权的技能,不承诺正确率。 输出总是"解 + 验证结论 + 信心"三位一体;不确定就直说,不硬编答案。
dsh-math-olympiad/
├── package.json # dsh.bundle 声明(发布为可安装 profile bundle)
├── cordis.yml # 开发期补丁覆盖层(scratch-plugin 风格,引用本机 src)
├── cordis.patch.yml # 发布用 bundle 层(引用安装后的 lib 入口)
├── tsconfig.json # src/ → lib/ 构建配置
├── src/locator.ts # Host 插件:提供 mathOlympiadSkills 服务(定位 skills/)
├── skills/dsh-math-olympiad/
│ ├── SKILL.md # frontmatter(触发词) + 5 红旗启发式 + 五步流程
│ ├── references/
│ │ ├── solver_heuristics.md # Pólya 六板斧(中文重写)
│ │ ├── verifier_patterns.md # 验证器失败模式清单(真实攻击面)
│ │ └── presentation_prompts.md # 输出/讲解模板与数学排版约定
│ └── scripts/
│ ├── check_latex.sh # TeX 引擎探测(无引擎给出各平台安装提示)
│ └── compile_pdf.sh # LaTeX → PDF(两遍编译,退出码语义明确)
├── tests/smoke.e2e.ts # 离线冒烟:结构/触发词/5 原则/subagent 协议/弃权路径/脚本行为
├── README.md
└── LICENSE # MIT
技能以 @deepseek-ai/dsh-skill-filesystem 的 customSkillDirs 挂载
(PROMPT 指定的 DSH 侧集成方式):
cd dsh-math-olympiad 的父目录
dsh plugin --profile <name> add ./dsh-math-olympiad
dsh --profile <name>
前置:profile 需含 @deepseek-ai/dsh-base(默认第一个 bundle,提供
skill 注册表与 @deepseek-ai/dsh-skill-filesystem 包)。
package.json 的 dsh.bundle.patch 指向 cordis.patch.yml;该层插入两个
行:dsh-math-olympiad-locator(把技能目录暴露为 mathOlympiadSkills
服务,构造时从 import.meta.url 定位包内 skills/)与
dsh-math-olympiad-skill(独立的 providerName: math-olympiad
skill-filesystem 提供者,避免与 base 行冲突;配置
includeDefaultRoots: false,只扫本包的 customSkillDirs,不重复扫描
默认根)。
git 直装只取源码:prepare 负责构建 lib/(自包含 tsc,无需
monorepo 上下文)。但 pnpm ≥10 默认拒绝运行 git 依赖的 prepare,
首次 add 会失败——先允许构建再重跑 add:在 profile 的
pnpm-workspace.yaml 里加
allowBuilds:
dsh-math-olympiad: true
(或用交互式 pnpm approve-builds)。注意这是"允许该包源码在安装期于你
的机器上执行"的授权,只对信任的包放开。若不想走这一步,直接
dsh plugin add ./dsh-math-olympiad-0.1.0.tgz(pnpm pack 产物)或从
npm 安装——这两种分发自带 lib/ 构建产物,无需任何构建许可。
dsh --profile <name> --patch ./cordis.yml # 引用 ./src/locator.ts
cordis.yml 采用 scratch-plugin 风格,把本机 checkout 的
src/locator.ts 直接作为插件行;DSH 可直接运行 TS。
node tests/smoke.e2e.ts # Node ≥ 23.6 直接跑;22.6–23.5 加 --experimental-strip-types
# 或
npx tsx tests/smoke.e2e.ts
冒烟覆盖(对照验收标准):
bash -n 语法合法;no confident solution 弃权条款);proof 一个
字段"(思考链无转发通道——该保证由 harness 只转发 .proof 构造,真正的
防泄漏依赖 SKILL.md 正文纪律,详见 smoke 文件内的构造性说明);no confident solution 与卡点,不硬编;check_latex.sh 无引擎退出码 1 并打印安装
提示(有引擎退出码 0 并声明引擎);compile_pdf.sh 的"无引擎"分支用构造
的引擎隔离 PATH 在任何机器上确定性触发(exit 1 提示先跑 check),引擎
参数白名单外 exit 3;引擎可用时用 node:test 真实调用 compile_pdf.sh
验证退出码 0 与 PDF 产物存在、坏 tex exit 2(引擎不可用时该用例显式
skip 并打印原因,不假绿);流程回退 Markdown 数学不崩。subagent 新鲜上下文对抗验证(verifier_patterns 失败模式逐条攻击,
含"这能证 RH 吗?"开放问题特化测试);check_latex.sh 通过则 compile_pdf.sh 出 PDF,否则 Markdown 数学。no confident solution 附卡点与所需条件,
便于用户补充条件或交给更强模型。MIT。启发式与方法论借鉴自上游公开方法论(Pólya、对抗验证模式), 本项目内全部正文为独立中文重写,shell 脚本自写;不含上游专有源码副本。
repository / engines.node / dsh.compatibility / dsh.permissions)。