wiki-audit
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseWiki Audit
Wiki 审核
Verify a single wiki page against its cited sources. Two phases: detect uncited factual claims, then verify cited claims by dispatching one subagent per source in parallel.
针对单个wiki页面的引用来源进行验证。分为两个阶段:检测未引用的事实性声明,然后通过为每个来源并行调度一个subagent来验证已引用的主张。
Pre-condition
前置条件
Find (search from cwd upward, or ). If not found, tell the user to run first. Read for the wiki root path and the Citations section (the rules and footnote format the audit enforces).
SCHEMA.md~/wikis/wiki-initSCHEMA.mdIf has no Citations section (older wiki, initialized before this skill existed): use the fallback convention below for this run, and offer at the end to append the Citations section to so future operations stay consistent.
SCHEMA.mdSCHEMA.mdCite every non-common-knowledge factual claim. Granularity is paragraph or claim,
never per-sentence. Format: Markdown footnotes. Two citation kinds:
Quote: [^N]: <target> <locator> — "<verbatim quote>"
Synthesis: [^N]: <target> <locator> [synthesis] — <what supports the claim>
Three rules:
1. Target is one of: [[source-slug]] (a source-type wiki page), raw/<file> or
assets/<file> (a local file path), or a URL. Never an entity / concept /
analysis page.
2. A locator is present (§section, p.N, [HH:MM:SS], URL anchor, dated post).
3. Either a verbatim quote, or the [synthesis] tag plus a description of what
the cited range supports.If the user did not name a page, ask which page to audit. Accept slug, filename, or absolute path. Resolve to . Audit one page per run.
wiki/pages/<slug>.md查找文件(从当前工作目录向上搜索,或在目录中查找)。如果未找到,请告知用户先运行命令。读取以获取wiki根路径以及引用规范部分(审核所遵循的规则和脚注格式)。
SCHEMA.md~/wikis/wiki-initSCHEMA.md若无引用规范章节(较旧的wiki,在该技能推出前初始化):本次运行使用以下 fallback 约定,并在结束时提议将引用规范章节追加到中,以便后续操作保持一致性。
SCHEMA.mdSCHEMA.mdCite every non-common-knowledge factual claim. Granularity is paragraph or claim,
never per-sentence. Format: Markdown footnotes. Two citation kinds:
Quote: [^N]: <target> <locator> — "<verbatim quote>"
Synthesis: [^N]: <target> <locator> [synthesis] — <what supports the claim>
Three rules:
1. Target is one of: [[source-slug]] (a source-type wiki page), raw/<file> or
assets/<file> (a local file path), or a URL. Never an entity / concept /
analysis page.
2. A locator is present (§section, p.N, [HH:MM:SS], URL anchor, dated post).
3. Either a verbatim quote, or the [synthesis] tag plus a description of what
the cited range supports.如果用户未指定页面,请询问要审核的页面。接受slug、文件名或绝对路径。将其解析为。每次运行仅审核一个页面。
wiki/pages/<slug>.mdProcess
流程
1. Read the target page
1. 读取目标页面
Read the full page. Note:
- The frontmatter list (which sources the page formally cites).
sources: - All footnote definitions () and references (
[^N]: ...in body text).[^N]
If the page has zero footnotes but contains factual content, that is itself the audit result — every claim becomes a Phase A finding. Still run Phase A; skip Phase B.
读取完整页面内容。记录:
- 前置元数据中的列表(页面正式引用的来源)。
sources: - 所有脚注定义()和正文中的脚注引用(
[^N]: ...)。[^N]
如果页面没有脚注但包含事实性内容,这本身就是审核结果——所有主张均为A阶段发现的问题。仍需运行A阶段;跳过B阶段。
2. Phase A — uncited claim detection (1 subagent)
2. A阶段——未引用主张检测(1个subagent)
Dispatch one subagent. Give it:
- The full page contents.
- The Citations section copied from .
SCHEMA.md - The page's list.
sources:
Task: list every non-common-knowledge factual claim that lacks a footnote. Return a structured list of .
(line number, claim text, suggested-source-from-the-sources-list-or-"unknown")The subagent applies the SCHEMA.md "what to cite" rule: paragraph- or claim-level granularity, common knowledge exempt.
调度一个subagent。向其提供:
- 完整的页面内容。
- 从复制的引用规范章节。
SCHEMA.md - 页面的列表。
sources:
任务:列出所有未加脚注的非常识性事实主张。返回结构化列表,格式为。
(行号, 主张文本, 建议来源:来自sources列表或"未知")subagent需遵循SCHEMA.md中的“引用范围”规则:粒度为段落或主张级别,常识内容无需引用。
3. Phase B — cited claim verification (N subagents, parallel)
3. B阶段——已引用主张验证(N个subagent,并行执行)
For every footnote definition in the page, parse:
- The target — one of , a path under
[[source-slug]]/raw/, or a URL.assets/ - The locator (§section, p.N, timestamp, URL anchor, dated post).
- Either the verbatim quote or the description.
[synthesis]
Resolve each target to readable content:
- → read
[[source-slug]]to find the raw file path (in itswiki/pages/<source-slug>.mdline). Then read that raw file from**Source:**orraw/.assets/ - or
raw/<file>→ read the file directly.assets/<file> - → check whether a cached copy exists in
<URL>(filename derived from URL). If yes, read it. If not, mark the footnoteassets/(do not re-fetch — that belongs in the fix step).🚫 source-missing
Any target that cannot be resolved gets verdict ; do not dispatch a subagent for it.
🚫 source-missingGroup resolvable footnotes by their resolved file (multiple footnotes against the same PDF read it once). Dispatch one subagent per file, in parallel using the tool. Each subagent gets:
Agent- The raw source content (from ,
raw/, or cached URL).assets/ - The list of footnotes against that source — for each: number, locator, and either the verbatim quote or the description.
[synthesis] - The verdict rubric below.
Each subagent returns, per footnote, one verdict and a 1-line note:
- — quote string-matches the source at the cited locator, or the
✅ supporteddescription honestly summarizes the cited range.[synthesis] - — quote not found at the cited locator, or the claim is contradicted by the source.
❌ unsupported - — quote is paraphrased rather than verbatim (and lacks the
⚠️ partialtag), or the synthesis description overstates the cited range.[synthesis]
For ❌ and ⚠️, the note must include what the source actually says, so the user can decide how to fix.
Why per-source, not per-footnote: PDFs are expensive to read. One read of a 30-page paper for five footnotes beats five reads.
针对页面中的每个脚注定义,解析:
- 目标来源——以下类型之一:、
[[source-slug]]/raw/下的路径,或URL。assets/ - 定位符(§章节、页码p.N、时间戳[HH:MM:SS]、URL锚点、标注日期的帖子)。
- 逐字引用的原文或描述。
[synthesis]
将每个目标来源解析为可读内容:
- → 读取
[[source-slug]]以找到原始文件路径(在其wiki/pages/<source-slug>.md行中)。然后从**Source:**或raw/目录读取该原始文件。assets/ - 或
raw/<file>→ 直接读取文件。assets/<file> - → 检查
<URL>目录中是否存在缓存副本(文件名由URL生成)。如果存在,读取该副本。如果不存在,将该脚注标记为assets/(请勿重新获取——此操作属于修复步骤)。🚫 source-missing
任何无法解析的目标来源将被判定为;不为其调度subagent。
🚫 source-missing按解析后的文件对可解析脚注进行分组(同一PDF对应多个脚注时,仅读取一次)。使用工具为每个文件并行调度一个subagent。每个subagent将获得:
Agent- 原始来源内容(来自、
raw/或缓存的URL)。assets/ - 针对该来源的脚注列表——每个脚注包含:编号、定位符、逐字引用的原文或描述。
[synthesis] - 以下判定标准。
每个subagent需针对每个脚注返回一个判定结果和一行说明:
- —— 引用的原文与来源中指定定位符处的内容完全匹配,或
✅ supported描述如实总结了引用范围的内容。[synthesis] - —— 在指定定位符处未找到引用的原文,或主张与来源内容矛盾。
❌ unsupported - —— 引用内容为意译而非逐字原文(且未添加
⚠️ partial标签),或[synthesis]描述夸大了引用范围的内容。synthesis
对于和结果,说明中必须包含来源的实际内容,以便用户决定如何修复。
❌⚠️为何按来源而非脚注调度: PDF文件读取成本较高。针对一份30页的论文读取一次以验证五个脚注,比读取五次更高效。
4. Write the audit report
4. 撰写审核报告
Always write — do not ask permission. Path: .
wiki/pages/audit-<page-slug>-<today>.mdmarkdown
---
title: Audit Report — <page-slug> — <today>
tags: [audit, maintenance]
sources: []
updated: <today>
---务必撰写报告——无需询问许可。路径:。
wiki/pages/audit-<page-slug>-<today>.mdmarkdown
---
title: Audit Report — <page-slug> — <today>
tags: [audit, maintenance]
sources: []
updated: <today>
---Audit Report — [[<page-slug>]] — <today>
Audit Report — [[<page-slug>]] — <today>
Summary
Summary
- Cited claims verified: N
- ✅ Supported: N ❌ Unsupported: N ⚠️ Partial: N 🚫 Source missing: N
- 🆘 Uncited factual claims: N
- Cited claims verified: N
- ✅ Supported: N ❌ Unsupported: N ⚠️ Partial: N 🚫 Source missing: N
- 🆘 Uncited factual claims: N
🆘 Uncited Claims (Phase A)
🆘 Uncited Claims (Phase A)
- Line 42: "Transformers replaced LSTMs as the default sequence model." Suggested source: [[attention-is-all-you-need]] or unknown Fix: add footnote, weaken claim, or remove
- Line 42: "Transformers replaced LSTMs as the default sequence model." Suggested source: [[attention-is-all-you-need]] or unknown Fix: add footnote, weaken claim, or remove
❌ Unsupported (Phase B)
❌ Unsupported (Phase B)
⚠️ Partial (Phase B)
⚠️ Partial (Phase B)
🚫 Source Missing
🚫 Source Missing
✅ Supported
✅ Supported
- [^1], [^2], [^4], [^6], [^8] — all verified
Add the report to `wiki/index.md` under the `Maintenance` category (create the category if it does not yet exist — `wiki-lint` uses the same category).- [^1], [^2], [^4], [^6], [^8] — all verified
将报告添加到`wiki/index.md`的**Maintenance**分类下(如果该分类不存在则创建——`wiki-lint`使用相同分类)。5. Offer concrete fixes
5. 提供具体修复方案
For each non-empty category, offer one at a time:
- 🆘 Uncited: "Search the page's list for support and propose footnotes for these claims?"
sources: - ❌ Unsupported: "Apply the corrections shown in the report? (I'll show diffs first.)"
- ⚠️ Partial: "Tighten the synthesis descriptions, or add the tag where missing? (diffs first.)"
[synthesis] - 🚫 Source missing: "Re-fetch URLs / locate misplaced PDFs back into ?"
raw/
Apply only after user confirmation. Show the exact diff before each write.
针对每个非空分类,逐一提供方案:
- 🆘 未引用主张:“是否要在页面的列表中查找支持内容,并为这些主张提议添加脚注?”
sources: - ❌ 不支持:“是否应用报告中显示的修正?(我会先展示差异内容。)”
- ⚠️ 部分支持:“是否要收紧synthesis描述,或为缺失的部分添加标签?(先展示差异内容。)”
[synthesis] - 🚫 来源缺失:“是否要重新获取URL / 将错位的PDF放回目录?”
raw/
仅在用户确认后执行修复。每次写入前展示确切的差异内容。
6. Append to wiki/log.md
wiki/log.md6. 追加到wiki/log.md
wiki/log.mdAlways append — do not ask permission:
undefined务必追加内容——无需询问许可:
undefined[<today>] audit | [[<page-slug>]] — N supported, N unsupported, N partial, N uncited
[<today>] audit | [[<page-slug>]] — N supported, N unsupported, N partial, N uncited
Report: [[audit-<page-slug>-<today>]]
Fixed: <list, or "none">
undefinedReport: [[audit-<page-slug>-<today>]]
Fixed: <list, or "none">
undefined7. Report to user
7. 向用户汇报
- Audit report:
wiki/pages/audit-<page-slug>-<today>.md - One-line verdict (e.g. "5/8 cited claims verified, 2 uncited claims found")
- Whether any fixes were applied
- 审核报告路径:
wiki/pages/audit-<page-slug>-<today>.md - 一行式判定结果(例如:“8个已引用主张中5个验证通过,发现2个未引用主张”)
- 是否已应用任何修复措施