Norman-bury/research-writing-skill is an agent skill that turns academic paper writing into a tracked, reusable workflow with planning, drafting, reviews, figures, literature work, and LaTeX outputs. It is intended for undergraduate students, graduate students, and early-career researchers working on theses, coursework papers, or initial submissions. Its catalogue entries are the skills, instructions, plugin, and hook that implement the workflow across coding-agent platforms.
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 Norman-bury/research-writing-skill --skill verificationgit clone --depth 1 https://github.com/Norman-bury/research-writing-skillWrote 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/norman-bury/research-writing-skill/verification)<a href="https://agentmods.dev/skills/norman-bury/research-writing-skill/verification"><img src="https://agentmods.dev/badge/skills/norman-bury/research-writing-skill/verification/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/norman-bury/research-writing-skill/verification"><img src="https://agentmods.dev/badge/skills/norman-bury/research-writing-skill/verification.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.00033 | $0.01259 |
| Opus 5 | $0.00016 | $0.00629 |
| Sonnet 5 | $0.00007 | $0.00252 |
| Haiku 4.5 | $0.00003 | $0.00126 |
Grade A, and why
verification 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 11d 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 — 147 lines — stays where its author put it; the contents beside it link to each section on GitHub.
验证机制
核心原则
声称完成而没有验证,是不诚实的表现。
没有验证证据,就不能声称完成
验证门控
在声称任何状态或表达满意之前:
1. 确认:什么命令/操作能证明这个声称?
2. 执行:运行完整的验证操作
3. 读取:完整输出,检查结果
4. 验证:输出是否确认声称?
- 如果否:说明实际状态和证据
- 如果是:说明声称和证据
5. 然后才能:做出声称
跳过任何步骤 = 撒谎,不是验证
常见验证场景
| 声称 | 需要的验证 | 不充分 |
|---|---|---|
| 章节完成 | 字数统计、结构检查、文件存在 | "应该写完了" |
| 引用真实 | DOI 可访问、CrossRef API 确认 | "看起来像真的" |
| 论点有支撑 | evidence map 中有段落级证据 | "这段写得像论文" |
| 格式正确 | 运行格式检查脚本 | 目测检查 |
| 无AI痕迹 | 运行风格检查脚本 | "读起来还行" |
| 文献搜索完成 | 结果数量、DOI 列表、JSON 文件存在 | "搜过了" |
| skill 改造完成 | 运行 scripts/check_skill_integrity.ps1 |
"文件都写了" |
| 初稿达到质量门 | 运行 scripts/research_quality_gate.ps1 |
只运行 style_check |
Red Flags - 停止
出现以下情况时,必须先验证:
- 使用"应该"、"可能"、"看起来"
- 在验证前表达满意("好了!"、"完成!")
- 准备提交/推送/合并而不验证
- 相信代理的成功报告
- 依赖部分验证
- 想着"就这一次"
- 疲劳想结束工作
- 任何暗示成功但没有运行验证的措辞
借口与事实
| 借口 | 事实 |
|---|---|
| "应该行了" | 运行验证命令 |
| "我很确信" | 确信 ≠ 证据 |
| "就这一次" | 没有例外 |
| "格式检查过了" | 格式检查 ≠ 内容正确 |
| "代理说成功了" | 独立验证 |
| "我累了" | 疲劳不是借口 |
| "部分检查够了" | 部分证明不了什么 |
关键验证模式
章节完成验证
✅ [运行字数统计] [看到:3000字] "章节字数达标"
✅ [检查文件存在] [看到:chapters/01-introduction.md 存在] "章节文件已创建"
✅ [运行格式检查] [看到:0 errors] "格式正确"
❌ "应该写完了" / "看起来完整"
引用验证
✅ [调用 CrossRef API] [看到:DOI 存在,信息匹配] "引用已验证"
✅ [搜索原始来源] [找到:作者、期刊、年份一致] "引用真实"
❌ "引用看起来正确" / "应该是真的"
论点支撑验证
✅ [检查 evidence-map] [看到:每个 gap claim 对应 2 条来源] "研究空白有文献支撑"
✅ [检查 citation slot] [看到:段落 P2 使用 FL-05 + FL-07] "引用位置明确"
❌ "相关工作看起来完整" / "这段有学术感"
Skill 完整性验证
powershell -ExecutionPolicy Bypass -File scripts/check_skill_integrity.ps1
用于确认新增技能、路由、验证脚本和关键门控仍然存在。
稿件质量门验证
powershell -ExecutionPolicy Bypass -File scripts/research_quality_gate.ps1 -ProjectPath <paper-project>
用于检查引用覆盖、正文污染、列表化、占位策略、figure data manifest 和 evidence map。投稿前加 -Submission,禁止未回填占位。
文献搜索验证
✅ [检查 JSON 文件] [看到:20 条结果,每条有 DOI] "搜索完成"
✅ [验证 BibTeX 输出] [看到:可解析,无错误] "BibTeX 有效"
❌ "搜过了" / "应该有结果"
验证检查清单
每项工作完成前必须验证:
- 运行了验证命令
- 读取了完整输出
- 确认结果支持声称
- 没有依赖"应该"或"可能"
- 证据在当前消息中呈现
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.
- 11d ago First seen · 147 lines · 33 tokens per session scan A 126b7a2bc7fb
verification is a skill published in the GitHub repository Norman-bury/research-writing-skill (3,187 stars, last pushed 3mo ago), licensed MIT. It adds 33 tokens to every session and 1,259 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
research-engineer
An uncompromising Academic Research Engineer. Operates with absolute scientific rigor, objective criticism, and zero flair. Focuses on theoretical correctness, formal verification, and optimal implementation across any required technology.
tika-eval-compare
Compare extracts from two Tika builds over a corpus to detect regressions in content, encoding, exceptions, and embedded-document handling. Use for "compare before/after extracts", "eval this change against the corpus".
neuron-evaluation-engineer
Create and run AI evaluations with datasets, assertions, and output drivers in Neuron AI. Use this skill whenever the user mentions evaluation, testing AI systems, creating evaluators, dataset-driven testing, assertion-based validation, or wants to measure AI system performance. Also trigger for tasks involving…
jetson-validate-image
Use after jetson-flash-image to run static BSP checks, on-target smoke/regression tests on a flashed DUT, or both. Not for build or flash steps. Triggers: validate bsp, on-target validation.
atmos-validation
Validate Atmos projects, components, arbitrary JSON Schema inputs, EditorConfig, and GitHub Actions; use affected-file selection and native CI annotations.
skill-benchmark
Benchmark AI skill effectiveness by measuring implementation quality against legacy constraints.