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 brainstorming-researchgit 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/brainstorming-research)<a href="https://agentmods.dev/skills/norman-bury/research-writing-skill/brainstorming-research"><img src="https://agentmods.dev/badge/skills/norman-bury/research-writing-skill/brainstorming-research/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/brainstorming-research"><img src="https://agentmods.dev/badge/skills/norman-bury/research-writing-skill/brainstorming-research.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.00029 | $0.02881 |
| Opus 5 | $0.00015 | $0.01440 |
| Sonnet 5 | $0.00006 | $0.00576 |
| Haiku 4.5 | $0.00003 | $0.00288 |
Grade A, and why
brainstorming-research 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 — 326 lines — stays where its author put it; the contents beside it link to each section on GitHub.
科研写作头脑风暴
通过自然的协作对话,帮助用户将论文想法转化为完整的写作计划。
核心原则:一次只问一个问题,等待用户回答后再继续下一个。
交互原则:让用户少做选择,多做确认。提供推荐方案,让用户确认或微调。
你必须以对话方式进行头脑风暴,而不是列出表单让用户填写:
正确做法:
- 每次只问一个问题
- 用自然语言提问,像同事间的讨论
- 等待用户回答后,确认理解,再问下一个问题
- 提供推荐方案,让用户确认,而不是让用户从零开始选择
- 给出你的建议和理由,帮助用户做选择
错误做法:
- 一次性列出所有问题
- 把问题编号像表单一样展示
- 不等用户回答就继续
- 干巴巴地列选项不给建议
- 让用户从空白开始填写
示例对比:
❌ 错误:"请选择:1.本科 2.硕士 3.博士 4.期刊 5.会议 6.课程"
✅ 正确:"你这次要写的是什么类型的论文?是毕业论文、期刊投稿,还是课程作业?如果是毕业论文,是本科、硕士还是博士阶段的?"
无论用户的任务看起来多么"简单",都必须经过此流程。
语言默认规则
| 论文类型 | 默认语言 | 说明 |
|---|---|---|
| 本科毕业论文 | 中文 | 除非用户明确要求英文 |
| 硕士毕业论文 | 中文 | 除非用户明确要求英文 |
| 博士毕业论文 | 中文 | 除非用户明确要求英文 |
| 中文核心期刊 | 中文 | |
| SCI/SSCI期刊 | 英文 | 根据期刊要求 |
| 会议论文 | 英文 | 国际会议为主 |
| 课程论文 | 中文 | 除非课程要求英文 |
不需要主动询问语言,根据论文类型自动确定。只有当用户有特殊语言需求时才调整。
已有论文信息提示
在开始问答前,检查用户是否已有论文相关信息:
"在开始之前,如果你已经有论文的相关材料(比如题目、摘要、导师要求的结构),可以现在发给我,我会根据这些信息来规划。如果没有也没关系,我们从头开始讨论。"
等待用户回复,如果提供了材料,快速浏览并提取关键信息,然后在后续问答中确认。
反模式:"这太简单了不需要讨论"
每个论文项目都要经过这个流程。一篇课程论文、一个简单修改、一段摘要 — 都需要。"简单"的项目往往因为未经检验的假设导致最多的返工。讨论可以很简短,但必须呈现信息并获得确认。
Checklist
按顺序完成:
- 探索项目上下文 — 检查是否已有 plan/、现有文件、用户提供的信息
- 确认论文类型 — 对话式提问,等待回答
- 确认学科领域 — 对话式提问,等待回答
- 确认论文题目 — 对话式提问,等待回答
- 确认研究背景与目的 — 对话式提问,等待回答
- 确认研究方法 — 对话式提问,等待回答
- 检测 LaTeX 模板 — 如果存在,询问是否使用
- 确认章节结构 — 根据论文类型提供标准结构,让用户确认
- 汇总确认 — 展示所有信息,获得最终确认
- 创建项目结构 — 创建 plan/ 和 chapters/
- 转到章节写作 — 询问从哪章开始
流程图
digraph brainstorming_research {
"探索上下文" [shape=box];
"问论文类型" [shape=box];
"等待回答" [shape=diamond];
"问学科领域" [shape=box];
"问论文题目" [shape=box];
"问研究背景" [shape=box];
"问研究方法" [shape=box];
"检测LaTeX模板" [shape=box];
"确认章节结构" [shape=box];
"汇总确认" [shape=box];
"用户确认?" [shape=diamond];
"创建项目" [shape=box];
"开始写作" [shape=doublecircle];
"探索上下文" -> "问论文类型";
"问论文类型" -> "等待回答";
"等待回答" -> "问学科领域" [label="收到回答"];
"问学科领域" -> "等待回答";
"等待回答" -> "问论文题目" [label="收到回答"];
"问论文题目" -> "等待回答";
"等待回答" -> "问研究背景" [label="收到回答"];
"问研究背景" -> "等待回答";
"等待回答" -> "问研究方法" [label="收到回答"];
"问研究方法" -> "等待回答";
"等待回答" -> "检测LaTeX模板" [label="收到回答"];
"检测LaTeX模板" -> "确认章节结构";
"确认章节结构" -> "汇总确认";
"汇总确认" -> "用户确认?";
"用户确认?" -> "问论文类型" [label="需要修改"];
"用户确认?" -> "创建项目" [label="确认"];
"创建项目" -> "开始写作";
}
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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 · 326 lines · 29 tokens per session scan A b10feb2daed7
brainstorming-research is a skill published in the GitHub repository Norman-bury/research-writing-skill (3,195 stars, last pushed 3mo ago), licensed MIT. It adds 29 tokens to every session and 2,881 once invoked, about $0.0001 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…