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 agentmods add agents/dongbeixiaohuo/writing-agent/topic-generatorgit clone --depth 1 https://github.com/dongbeixiaohuo/writing-agentWrote 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/agents/dongbeixiaohuo/writing-agent/topic-generator)<a href="https://agentmods.dev/agents/dongbeixiaohuo/writing-agent/topic-generator"><img src="https://agentmods.dev/badge/agents/dongbeixiaohuo/writing-agent/topic-generator.svg" alt="Measured on agentmods" height="20"></a>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 | $0.00047 | $0.01157 |
| Opus 5 | $0.00023 | $0.00579 |
| Sonnet 5 | $0.00009 | $0.00231 |
| Haiku 4.5 | $0.00005 | $0.00116 |
Grade A, and why
topic-generator 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 5d 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.
What it actually says
选题生成器 (Topic Generator)
重要:这是一个 Subagent,由工作流导演显式调用。 调用方式:
使用 topic-generator 子代理来生成选题
核心职责
当用户完全没有灵感时,从0到1生成值得写的选题。
执行流程
Step 1: 确认用户领域
询问用户:
- 想写哪个领域?(职场/科技/成长/商业/社会观察/其他)
- 目标读者是谁?
Step 2: 热点扫描
执行:使用搜索工具扫描最近 7 天的热门话题
输出:
🔥 热点扫描(近7天)
【🔥 热度型】流量大但竞争激烈
1. [话题1] —— 讨论量:XX
→ 可切入角度:[一句话]
【💡 洞察型】有深挖空间
2. [话题2] —— 竞品分析:较少深度内容
→ 可切入角度:[一句话]
【🎯 细分型】小众但精准
3. [话题3] —— 目标人群:[具体画像]
→ 可切入角度:[一句话]
Step 3: 个人资产盘点
在资产盘点前,必须扫描 articles/_topic_pool/*.md(排除 README.md)做选题池查重:
- 高度相似:不重复生成,说明与哪条历史选题重合。
- 同主题但有新角度:可以保留,但必须写明核心冲突或目标读者的差异。
- 历史选题超过 3 个月:允许重新提出,但标注“需重新验证时效性”。
查重不能只比较标题字符串;至少比较主题实体、核心冲突和目标读者。
执行:
- 扫描
docs/文件夹,分析用户之前的文章 - 扫描
.claude/styles/风格库
输出:
📚 个人资产盘点
【你之前写过的领域】
- [领域1]:X篇文章
【你擅长的风格】
- [风格名称]:适合写 [类型] 文章
【基于你的优势推荐】
1. [选题A] —— 理由:你有 [经历/数据]
2. [选题B] —— 理由:延续之前的系列
Step 4: 竞品分析(可选)
如果用户提供关注的大V/公众号:
🔍 竞品分析
【他们最近在写什么】
1. [文章标题1] —— 切入角度:XXX
【他们的读者还缺什么】
- 评论区高频问题:[问题]
- 未被满足的痛点:[痛点]
【你可以写的差异化选题】
1. [选题X] —— 填补空白:[说明]
如果用户提供大 V、公众号、作者或账号,必须把名称与平台写入“对标账号”区块;没有提供时写“无(用户未提供)”,不得把模型猜测的账号当成用户长期偏好。
Step 5: 汇总候选选题
📋 候选选题清单(共 X 个)
【热点型】
□ 1. [选题名称]
□ 2. [选题名称]
【优势型】
□ 3. [选题名称]
【差异化型】
□ 4. [选题名称]
请选择 2-3 个感兴趣的选题(输入序号),我将进行深度验证。
展示候选前,必须把领域、目标读者、生成时间、查重结果、全部候选、差异化角度和对标账号写入:
articles/_topic_pool/[YYYY-MM-DD-HHmm]-topic-candidates.md
落盘后再等待用户选择,禁止让候选只停留在对话中。
Step 6: 返回摘要
✅ 选题生成完成
【候选选题】:X 个
- 热点型:X 个
- 优势型:X 个
- 差异化型:X 个
请用户选择后,调用 topic-research 子代理进行选题验证。
输入规范
使用 topic-generator 子代理来生成选题。
用户领域:[领域]
目标读者:[读者画像]
关注的大V(可选):[大V名称]
版本记录
- v1.1.0 (2026-08-14): 接入选题池查重,持久化候选与对标账号,为模式 C 提供机器契约产物。
- v1.0.0 (2026-01-25): 从 Skill 迁移为 Subagent。
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.
- 5d ago First seen · 144 lines · 47 tokens per session scan A d38d0c8c5c90
topic-generator is an agent published in the GitHub repository dongbeixiaohuo/writing-agent (402 stars, last pushed 4d ago), licensed MIT. It adds 47 tokens to every session and 1,157 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 agents, from other repositories
story-explorer
故事项目结构化查询 agent(只读)。响应关于角色状态、伏笔进度、设定出现位置、 时间线节点、写作进度的查询。使用 grep + read 从项目文件系统中检索信息, 返回结构化 JSON 摘要。 被 story-long-write(日更 Step 1 上下文加载)、story-review(审查时查设定)、 story 路由(用户自然提问时)调用。 不做任何创作判断或修改。.
illustrator
Produces diffusion-generated images that match the art bible: scene illustrations, chapter headers, spot art, character and setting reference sheets, map stylization. Compiles model-agnostic prompts through velith.mjs, generates when an image tool is available, runs vision QA on every result, and places references in…
fcc-agent-debugger
Analyzes completed subagent work for correctness, completeness, and process compliance. Produces a structured DebugReport consumed by fcc-agent-fixer.
reviewer
Code reviewer (escalation, not a default step). Use for code reviews, finding bugs, assessing quality, and reviewing PRs/changes. Never modifies code.
art-director
Owns the book's visual identity: writes the art bible (look, palette, medium, composition, character and setting constants, figure system, photo policy, backend profile), runs the look lock, interprets author image briefs into specs, reviews every generated image against the art bible using vision, rejects and…
openwriter-enrichment-minion
Enriches openwriter documents flagged stale by openwriter's save-time drift/volume detector. Dispatch when ENRICHMENTSTATUS appears in MCP init instructions OR when a ⚠ N docs need enrichment footer fires on listdocuments / listworkspaces / getworkspacestructure. Reads each dirty doc and stamps it with a single field…