<div align="center">
🏆 dsh-score
为 DeepSeek Harness 插件提供多指标质量评分。
五个维度、真实 gh/npm 证据,一张加权风险卡与排行榜。
      
English · 简体中文 · Español · Português · हिन्दी
</div>
---
兼容性
| 组件 | 版本 | |---|---| | DeepSeek Harness | 0.1.1-rc.2(peer 依赖 >=0.1.0-rc.8 <0.2.0) | | Node.js | ^22.19.0 \|\| >=24.0.0 | | 包管理器 | pnpm@11.7.0 | | 平台 | Windows / macOS / Linux(纯 host 插件) | | 外部工具 | PATH 上的 gh CLI(已认证用于 API 读取)、PATH 上的 npm CLI |
你会得到什么
score工具——对单个目标跑五维评分流水线;返回结构化风险卡,传background: true时返回{ kind: 'background', jobId }。/score命令——把空白/逗号分隔的目标列表作为score-batch后台任务(ctx.jobs)批量评分,产出排行榜快照(JSON + Markdown)。score_report工具——按 id 取回评分卡(sc_...)、排行榜(lb_...)或最新排行榜。- 五个维度(权重可配置,默认合计 100):安装成功率
25、维护20、文档20、安全20、合规15。 - 证据纪律——每个维度记录其审计链接(
source、脱敏后的detail、observedAt);无证据的维度如实报告no-evidence(得分 0,从加权总分中剔除),绝不编造数字。 - 结构化结果——每条记录带
schema: "dsh-score/v1"判别符,字段一等公民化,是下游工具消费的机器可读契约。
快速开始
git 通道
dsh plugin --profile web add github:PerryLink/dsh-score#<commit-sha>首次 add 会因 pnpm 拦截该包的 prepare 构建而失败;把 pnpm 打印的精确键复制到 profile 的 pnpm-workspace.yaml 后重试:
allowBuilds:
'dsh-score': truenpm 通道
dsh plugin --profile web add dsh-score预构建包无需构建许可。重启 profile 后即可在会话中使用 score / /score。
安装与卸载
dsh plugin --profile web add dsh-score # 安装(npm)——或上面的 git 形式
dsh plugin --profile web remove dsh-score # 卸载配置
所有键均可选(括号为默认值);非法值在加载期响亮失败。
| 键 | 默认值 | 说明 |
|---|---|---|
probeTimeoutMs | 60000 | 单条 gh/npm 探测命令的截止时间(毫秒)。 |
outputTailBytes | 8000 | 每条探测记录的脱敏输出尾部上限(字节)。 |
cacheMaxAgeMs | 86400000 | 缓存评分卡复用的时长(0 关闭缓存)。 |
staleCommitWarnDays | 90 | 提交/发布年龄超过该值维护维度降为 warn。 |
staleCommitFailDays | 365 | 提交/发布年龄超过该值维护维度降为 fail。 |
staleIssueWarnDays | 30 | 最久未关闭 issue 年龄(响应代理)超过该值降为 warn。 |
staleIssueFailDays | 180 | 最久未关闭 issue 年龄超过该值降为 fail。 |
maxBatchTargets | 20 | /score 批量上限。 |
batchConcurrency | 1 | 批量并发(串行可避免 API 限流竞争)。 |
weights | {install:25, maintenance:20, documentation:20, security:20, compliance:15} | 各维度权重(每个 0–100;至少一个 > 0)。 |
工具与界面
score
score(target: string, refresh?: boolean, background?: boolean)target——GitHub 仓库(github:owner/repo、owner/repo、git/https URL)或 npm 包名。refresh: true绕过评分缓存重新采集证据。background: true启动score-batch任务并返回其 id。
/score <targets...>
启动一个后台批量任务;进度经任务输出流式返回,最后一行给出供 score_report 使用的排行榜 id。
score_report(id?)
返回评分卡(sc_...)、排行榜(lb_...),或不传 id 时返回最新排行榜。
权限与数据
- 只消费公开服务:
ctx.subprocess、ctx.jobs、ctx.storageDomain、ctx.tools、ctx.commands。 - 评分卡与排行榜存于
score存储域(表scores、leaderboards;最新排行榜指针)。组合里没有storageDomain(如官方 headless profile)时工具仍可用,评分持久化被禁用并记录原因。 - 子进程继承 provider 已剥离凭据的环境;
gh读取其自身的凭据存储。任何环境变量值都不被记录。 - 所有报告/日志字符串经过纯脱敏函数:token 字面量、URL 凭据、bearer 头被脱敏,尾部按字节截断。
安全边界
- 不执行代码。流水线只运行
gh api与npm view;绝不安装、构建或运行目标。 - 仅 argv 子进程。每次 CLI 调用都是 argv 数组,绝不经过 shell 解释;owner/repo 段在用于端点前先做受限字符集校验。
- 证据纪律。不编造评分:探测失败或输出不可解析时返回
no-evidence,绝不填数字。 - 检测与脱敏分离。密钥泄露与恶意安装脚本检测复用与脱敏同一套纯正则,二者均有极端输入单测。
已知限制
- 仓库探测需要
gh已认证且有到 GitHub 的网络;npm 探测需要npm与 registry 访问。 - 无法解析出 GitHub 仓库的目标无法检查文档、安全或合规(这些维度报告
no-evidence)。 - 安装成功率依赖
dsh-test-drive已挂载且已记录该目标;否则如实为no-evidence。 - 维护维度的“issue 响应”是代理信号(最久未关闭 issue 年龄),不是直接响应时长测量。
- 评分按目标缓存;用
refresh: true(或等过cacheMaxAgeMs)强制重评。
开发
pnpm install
pnpm run typecheck && pnpm run typecheck:ci && pnpm test
pnpm run build && pnpm run verify:self-contained && pnpm run verify:artifacts && pnpm packtypecheck经本地 harness checkout 解析@deepseek-ai/*;typecheck:ci对照已发布的0.1.1-rc.2类型。- 测试使用真实
Context/Session/ToolRuntime/LocalJobRegistry/存储栈,子进程 provider 为脚本化实现。 - 真实 CLI 评分(需 PATH 有
gh/npm,gh已认证):在已挂载 profile 中调用score。 - 发布:
node scripts/release.mjs <x.y.z>(升版本、盖 CHANGELOG、重跑门禁、提交 + tag;绝不 push)。
主题
dsh、dsh-plugin、deepseek-harness、deepseek、cordis、plugin-scoring、quality-score、leaderboard、supply-chain
贡献者
PerryLink — 设计与实现。
PerryLink DSH Plugin Family
本项目是由 PerryLink 维护的 29 个 DeepSeek Harness 插件之一。如果这个对你有用,其他插件很可能也会:
| Plugin | One-liner |
|---|---|
| dsh-auto-review | 审批链上的第二模型自动审查,默认失败关闭 |
| dsh-background-agents | 持久化后台子代理,带 Web UI 侧边栏、消息与打断 |
| dsh-budget | DeepSeek Harness 的成本治理:预算、碳排与延迟一屏呈现。 |
| dsh-checkpoint-rewind | Claude Code /rewind 等价物:快照、会话分叉、一次性恢复 |
| dsh-claude-move | 将 Claude Code 会话、记忆、技能与 CLAUDE.md 迁入 DSH |
| dsh-click | 跨平台原生桌面控制(DeepSeek Harness),Windows 优先。 |
| dsh-composer-history | Web 输入框的终端式输入历史:方向键、Ctrl+R 搜索 |
| dsh-defend | DeepSeek Harness 的提示注入、越狱与密钥泄露防护。 |
| dsh-doublecheck | 工程纪律门禁:需求质询、测试门禁、对抗式审查 |
| dsh-draw | DeepSeek Harness 的统一静态图像生成路由。 |
| dsh-fast | DeepSeek Harness 的只读性能诊断。 |
| dsh-github | DSH 的 GitHub PR/issue 集成,每次写入都经审批门 |
| dsh-library | DeepSeek Harness 的本地文档知识库。 |
| dsh-local-ai | DeepSeek Harness 的本地模型(Ollama)接入。 |
| dsh-lsp-actions | 经语言服务器的 LSP 诊断、格式化、补全、代码操作与重命名 |
| dsh-mask | DeepSeek Harness 的 PII 脱敏中间件——数据到模型前匿名化,展示层还原。 |
| dsh-mcp-panel | 只读 MCP 运行时面板:/mcp 命令 + 带状态、工具与错误的设置页 |
| dsh-memento | 带审批门的跨会话记忆:ctx.memory 接缝 + SQLite + memory 工具 |
| dsh-observe | DeepSeek Harness 的 OpenTelemetry 与 Langfuse 可观测导出器。 |
| dsh-output-styles | Claude Code outputStyles 等价的运行时样式切换 |
| dsh-permission-rules | Claude Code 风格声明式 allow/deny/ask 权限规则,带审计 |
| dsh-plugin-guide | 按需 agent 技能形式的插件开发知识库 |
| dsh-score | DeepSeek Harness 插件的多指标质量评分。 |
| dsh-session-pin | 在 Web 侧边栏置顶会话,顺序持久化 |
| dsh-session-sync | DeepSeek Harness 的跨设备会话同步——会话存储的专用 git 镜像。 |
| dsh-skill-pack-security | 安全审计技能包:密钥扫描、依赖与供应链审查 |
| dsh-talk | DeepSeek Harness 的语音优先会话闭环:对它说,听它答。 |
| dsh-test-drive | DeepSeek Harness 插件的隔离式安装冒烟实测。 |
| dsh-translate | DeepSeek Harness 的厂商参数翻译与确定性 JSON 修复。 |
许可证
[Apache-2.0](LICENSE)