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
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/Norman-bury/research-writing-skillnpx agentmods add skills/norman-bury/research-writing-skill/writing-coreWrote 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/writing-core)<a href="https://agentmods.dev/skills/norman-bury/research-writing-skill/writing-core"><img src="https://agentmods.dev/badge/skills/norman-bury/research-writing-skill/writing-core/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/writing-core"><img src="https://agentmods.dev/badge/skills/norman-bury/research-writing-skill/writing-core.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.00034 | $0.01723 |
| Opus 5 | $0.00017 | $0.00861 |
| Sonnet 5 | $0.00007 | $0.00345 |
| Haiku 4.5 | $0.00003 | $0.00172 |
Grade A, and why
writing-core 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 12d 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 — 160 lines — stays where its author put it; the contents beside it link to each section on GitHub.
核心写作规范
本技能用于控制论文写作质量,重点是中文学术论文的自然表达、去AI化改写与可提交的Markdown排版。
一、去AI化语言规范
1.1 禁用表达
| 类型 | 禁用词/句 |
|---|---|
| 机械过渡词 | 首先、其次、最后、此外、另外、接下来、总之 |
| 空壳强调句 | 值得注意的是、需要指出的是、重要的是、必须强调的是、显而易见 |
| 空洞修饰词 | 非常、极其、十分、相当(无数据支撑时) |
| 主观引导句 | 我认为、我觉得、我个人看法是(论文正文禁用) |
1.2 推荐表达
- 用语义衔接替代模板衔接
- 用数据和事实替代形容词
- 长短句交替,避免等长句连续出现
- 用"本文""实验结果表明""表X显示"等客观主语,但避免连续重复同一模板
- 保留必要的限定、承接和少量重复,使段落读起来像正常研究者的中文正文
1.3 句法与信息密度
- 列表转段落时补足主语、谓语和连接成分
- 一句话围绕一个主要关系展开,必要时保留条件、范围和解释,不要强行压成短句
- 保留方法、条件、对象和数据,不用"很多""较大提升"等模糊表述
- 去AI化不等于压缩。若改短后丢失数据口径、实验边界、评价对象或结论限制,应恢复必要说明
1.4 中文期刊论文的自然行文原则
中文期刊论文不追求每句话都极度精简。更自然的写法通常是先交代研究对象、资料范围或问题背景,再说明处理方法、结果现象和判断边界。句子可以略长,段落中可以有必要的承接、限定和少量重复,只要主语明确、关系清楚、读者能够顺着研究过程理解即可。
去AI化的重点是减少模板化、翻译腔、过度概括和空泛拔高,而不是删除所有修饰语。能够说明对象、时间范围、样本口径、方法条件、指标含义、实验边界和因果关系的成分应当保留。不要把段落改成机械的"背景-方法-结果-意义"句组,也不要让每句话都呈现"对象-动作-结论"的功能句。
当用户反馈"太AI""太精简""像翻译"时,先检查是否存在过度压缩、英文语序、模板化总结、审稿回复式表达或空泛拔高。处理顺序是补回必要信息,调整为中文自然语序,再收束过强判断。不要继续简单删词。
1.5 常见AI化症状与处理
| 症状 | 处理方式 |
|---|---|
| 句式像英文直译 | 改为中文常用语序,先说明对象和现象,再给判断 |
| 段落过度模板化 | 取消固定的"背景-方法-结果-意义"节奏,保留解释句和承接句 |
| 改写后信息变少 | 补回研究对象、数据范围、方法条件、指标口径和结论边界 |
| 审稿回复口吻 | 将"该指标反映的是""不能理解为"改成正文叙述,如"本文将...作为参照" |
| 空泛拔高 | 用具体指标、现象或限定替代"显著""关键""重要意义"等泛化词 |
二、输出排版规范
2.1 Markdown正文规范
- 正文默认不使用加粗和斜体
- 段落之间必须空一行
- 正文段落优先连续叙述,不用项目符号堆叠观点
- 同一段尽量保持单一中心观点
- 避免把一个完整观点拆成过多短段
2.2 允许使用列表的场景
仅以下场景可用列表:
- 计划文档(
plan/*.md) - 检查清单
- 参数配置
- 操作步骤
论文正文默认不用列表。
三、段落构建规则
一个标准段落包含:
- 主题句:本段核心结论
- 支撑句:依据、证据、解释
- 收束句:过渡或小结
建议长度:
- 中文正文:150-300字
- 英文正文:100-200词
四、列表转段落规则
错误写法
本研究贡献如下:
- 提出新方法
- 完成自动化流程
- 验证有效性
推荐写法
本研究提出了一种新方法,并将其整合为可执行的自动化流程。
实验结果显示,该方法在目标任务上具有稳定增益,验证了其可行性与应用价值。
五、引用与事实
六、三轮质量检查
第一轮:结构检查
- 是否存在正文列表化
- 段落是否围绕单一中心
- 章节逻辑是否连续
- 是否把正文写成机械的"背景-方法-结果-意义"模板段
第二轮:语言检查
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.
- 12d ago First seen · 160 lines · 34 tokens per session scan A 307983c131ef
writing-core is a skill published in the GitHub repository Norman-bury/research-writing-skill (3,187 stars, last pushed 3mo ago), licensed MIT. It adds 34 tokens to every session and 1,723 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
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
insight-error-page
Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…
next-cache-components-optimizer
Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…
next-partial-prefetching-adoption
Turn on Partial Prefetching in a Next.js app and work through the insights it surfaces. Use when the user wants to enable or adopt Partial Prefetching, flip the partialPrefetching flag, opt routes in with export const prefetch = 'partial', audit Link prefetch={true} behavior, preserve existing prefetched UI with…