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 skills add AbyssCN/oh-my-dag --skill omd-docs-driftgit clone --depth 1 https://github.com/AbyssCN/oh-my-dagWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/abysscn/oh-my-dag/omd-docs-drift)<a href="https://agentmods.dev/skills/abysscn/oh-my-dag/omd-docs-drift"><img src="https://agentmods.dev/badge/skills/abysscn/oh-my-dag/omd-docs-drift/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/abysscn/oh-my-dag/omd-docs-drift"><img src="https://agentmods.dev/badge/skills/abysscn/oh-my-dag/omd-docs-drift.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What 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.1 | $0.00119 | $0.01248 |
| Opus 5 | $0.00060 | $0.00624 |
| Sonnet 5 | $0.00024 | $0.00250 |
| Haiku 4.5 | $0.00012 | $0.00125 |
Grade A, and why
omd-docs-drift 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 10d 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.
How it starts
The opening of the file, as written. The whole thing — 77 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/omd-docs-drift — 语义文档漂移审计
结晶自 docs/plan/2026-08-11-docs-drift.md(docs-drift SDD)。确定性那半(锚存在 / 死路径 /
工具面反向)已经是 src/harness/docs/drift-gates.test.ts 里 bun test 常驻的闸,本 skill 不重做那半
——它跑不进闸的语义半:文档那句话此刻是不是还对。
何时跑
- 收尾时人拉(当天 diff),或按 D-5 的 cron 档(未开,见 SDD 未决 O-3);
- 不是每次改代码都跑——只在改了 docs-map.md 覆盖源里的文件之后跑才有意义(下面 plan 步会自己判空)。
三步
1. plan —— 裁出待审对
bun run scripts/docs-drift.ts plan
读 .dev/docs-drift-stamp(上次审计 commit,盘上记)到 HEAD 的 git diff --name-only,
乘 docs/docs-map.md(parseDocsMap)算出「文档 ↔ 命中的变更文件」对(buildDriftAuditPlan)。
覆盖源没变的文档不产生任务——省 Sonnet 调用,也是判据能跑得动的原因(上下文裁到 KB 级)。
首次跑没有 stamp 文件 → 先 bun run scripts/docs-drift.ts init 打一个基线(见下),这一轮零任务
(不是漏审,是"没有可比较的过去" —— NULL≠0)。
零任务 → 打印「无待审对」, 到此为止, 不必往下走。
2. dag_run —— 每对一个便宜叶
对 plan 打印的每一条 task({doc, sourceGlobs, anchors, changedFiles})派一个平铺 dag_run 节点
(Sonnet 座, 便宜档), task 按下面模板填:
读文档 <doc> 里与以下锚点相关的段落: <anchors>。
读它声明覆盖的变更文件: <changedFiles>(diff, 不是全量——只看这次变了什么)。
判据(窄, 不许放松):
- 若文档原句与代码矛盾, 必须给出: docQuote(逐字引用文档原句, 不许转述)+ file:line(矛盾代码锚)+ claim
(为什么矛盾)。
- 若看不出矛盾, 明确回 driftFound=false, findings=[] —— 「未见漂移」是一个合法结论, 不许为了
有产出硬凑一条泛泛建议。
- 转述文档原句 = 凭印象, 不算数; docQuote 必须是文档里真实存在的一句。
按 DriftAuditLeafResult 形状回:{ task: <原样带回>, driftFound: boolean, findings: DriftAuditFinding[] }
(结构见 `src/harness/docs/drift-audit.ts`)。
dag_status 轮询取全部叶结果, 拼成 DriftAuditLeafResult[] 数组, 写一份临时 JSON(如
/tmp/docs-drift-results.json)。
3. apply —— 过反幻觉闸, 落 suggested 票, 挪 stamp
bun run scripts/docs-drift.ts apply --results /tmp/docs-drift-results.json --run-id <runId> [--slug <slug>]
内部: buildSuggestionDrafts 过 D-3 反幻觉闸(复用 checkFindingAnchors)——幻觉锚 / 无锚 finding
被降级记账、不落票(打印出来但不算失败);合法锚点的 finding 各落一张 suggested 票
(suggestedBy=<runId>)。跑完把 stamp 挪到当前 HEAD——只在 apply 成功后挪, plan 阶段绝不挪
(挪早了会漏审 plan 和 apply 之间落地的改动)。
出口
落的是 suggested 票,不是既成事实。人 map_confirm 之后才进前沿;若确认的是「文档该改」,
直接改文档走直通 v2(改动本身不归本 skill 管——D-4:出口恒为票,改文件恒经人)。
与既有 skill 的边界
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.
- 10d ago First seen · 77 lines · 119 tokens per session scan A 278565410c47
omd-docs-drift is a skill published in the GitHub repository AbyssCN/oh-my-dag (39 stars, last pushed today), licensed MIT. It adds 119 tokens to every session and 1,248 once invoked, about $0.0006 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
skill-test
Verifies that the skill system is working correctly.
interview-and-create-plan
Before starting a Ralph RLM loop, interview the user to sharpen the goal, stress-test the design, and write an authored PLAN.md (goal, definition of done, milestones, open questions, invariants) that the loop can follow. Use when a user wants to plan, scope, or stress-test work before delegating it to the supervisor /…
setup-opencode-ralph-rlm
Set up Ralph RLM in an existing OpenCode project by installing the package, running the opencode-ralph-rlm setup command, checking generated .opencode config, and verifying the provider/worker loop wiring. Use when a user asks to install, configure, initialize, troubleshoot setup for, or add opencode-ralph-rlm / Ralph…
clinicaltrials-database
Query ClinicalTrials.gov via API v2. Search trials by condition, drug, location, status, or phase. Retrieve trial details by NCT ID, export data, for clinical research and patient matching.
esm
Comprehensive toolkit for protein language models including ESM3 (generative multimodal protein design across sequence, structure, and function) and ESM C (efficient protein embeddings and representations). Use this skill when working with protein sequences, structures, or function prediction; designing novel…
openalex-database
Query and analyze scholarly literature using the OpenAlex database. This skill should be used when searching for academic papers, analyzing research trends, finding works by authors or institutions, tracking citations, discovering open access publications, or conducting bibliometric analysis across 240M+ scholarly…