Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/pingfanfan/hello-dsh/commit-messagenpx skills add pingfanfan/hello-dsh --skill commit-messagegit clone --depth 1 https://github.com/pingfanfan/hello-dshWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00043 | $0.00912 |
| Opus 5 | $0.00022 | $0.00456 |
| Sonnet 5 | $0.00009 | $0.00182 |
| Haiku 4.5 | $0.00004 | $0.00091 |
Grade A, and why
commit-message scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
写提交信息
代码回答"改了什么",提交信息回答"为什么改"。
复述 diff 的提交信息是浪费——读的人能看到 diff。真正有价值的是那些从代码里看不出来的东西:动机、约束、被否决的方案。
格式
<类型>(<范围>): <一句话概括>
<为什么需要这个改动>
<可选:影响范围、注意事项>
类型:
| 类型 | 用于 |
|---|---|
feat |
新功能 |
fix |
修复缺陷 |
refactor |
不改变行为的重构 |
perf |
性能优化 |
test |
只动测试 |
docs |
只动文档 |
build |
构建、依赖、工具链 |
chore |
杂项,不影响源码行为 |
范围是可选的模块名,用项目里已有的叫法,不要自创。
标题行
- 祈使句:「修复登录超时」不是「修复了登录超时」
- 不超过 50 字,一行说完
- 末尾不加句号
- 说清影响,不说实现细节
对照:
✗ fix(auth): 修改了 token.ts 里的过期判断逻辑
✓ fix(auth): 修复 token 在时区偏移下提前失效
✗ feat: 加了个新方法
✓ feat(export): 支持导出为 CSV
正文
这里是提交信息真正的价值所在。 回答这些问题里相关的那些:
- 为什么需要这个改动?触发它的是什么问题?
- 为什么选这个方案?有没有更直接的方案被否决了,为什么?
- 有什么副作用或限制是后来人需要知道的?
- 有没有关联的 issue、讨论、事故?
举例:
fix(session): 会话恢复时跳过已失效的工具调用记录
历史会话里可能包含已经被移除的工具的调用记录。恢复时直接重放
会触发 UNKNOWN_TOOL,导致整个会话无法打开。
改为在投影阶段过滤掉找不到定义的工具记录,保留其余上下文。
不做数据迁移,因为旧记录仍然是有效的历史,只是不再可执行。
最后那句「不做数据迁移,因为……」是这条提交信息里最有价值的部分——它挡住了后来人重复问同一个问题。
一次提交只做一件事
如果标题里出现「以及」「顺便」「同时」,说明该拆了。
拆分依据:能不能单独回退? 不能单独回退的改动才应该在同一个提交里。
典型该拆的情况:
- 修复 + 重构 → 拆开,否则回退修复会连带回退重构
- 功能 + 格式化 → 拆开,否则 diff 里全是空白变化
- 多个不相关的修复 → 拆开
Breaking change
破坏兼容性时必须显式标注:
feat(api)!: 移除 legacy 认证方式
BREAKING CHANGE: 使用 X-Auth-Token 的客户端需要迁移到 Authorization
头。迁移说明见 docs/migration/auth.md。
类型后加 !,正文里用 BREAKING CHANGE: 说明迁移方法——只说"不兼容了"没有用。
不要做的事
- 不要写「更新代码」「修复 bug」「优化」这类没有信息量的标题
- 不要在正文里逐行复述 diff
- 不要把调试过程写进去——写结论,不写心路历程
- 不要留下「临时提交」「稍后修复」而不说明期限和条件
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 107 lines · 43 tokens per session scan A 0a8891f56da9
commit-message is a skill published in the GitHub repository pingfanfan/hello-dsh (86 stars, last pushed 18d ago), licensed MIT. It adds 43 tokens to every session and 912 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
dsh-plugin-guide
Use when developing, reviewing, packaging, debugging, or answering questions about DeepSeek Harness (DSH) plugins — the plugin-based agent harness on vendored Cordis. Applies the official plugin-development constraints (plugin contract, cordis.yml layers, services/events/effects, tool DSL, bundles/profiles) backed by…
wayfinder
把一个巨大的工作块(超过单个 agent 会话所能承载)规划为 issue tracker 上的一张共享决策 ticket 地图,并逐个解决这些 tickets,直到通往目的地的路线清晰可见。.
teach
在当前工作区内教会用户一项新技能或一个新概念。.
dsh-doc-standards
Use when writing, moving, reviewing, or auditing documentation in the deepseek-harness repo — choosing hierarchy and detail, separating tutorials from references, checking tutorial progression, trimming doc slop, responding to a verify-doc-budgets failure, or requests like "improve the docs", "audit the docs", "where…
teach
Teach the user a new skill or concept, within this workspace.
dsh-web-release
Release and publish the dsh-web monorepo (DSH Web GUI plugin family + skin collection) — bump all packages to one unified version, commit and tag (tags are cut from main after dev integration; dev is the integration branch), push the vX.Y.Z tag that triggers the GitHub Actions publish pipeline, and verify the npm…