OpenByline: Agent for Claude Code

.claude/agents/story-curator.md

story-curator is an agent for Claude Code from bailutingyu/OpenByline. It costs 35 tokens per session (655 once invoked), scanned A, original, MIT.

A research assistant for finding real examples and comparisons that make an article easier to understand and more engaging. It creates a separate story bank, including sources for factual cases and labels for original comparisons.

In plain words
What is it for?
Use it when an article needs concrete case studies, relatable analogies, or other human examples to support its arguments.
Why use it?
It removes the need to invent or collect supporting stories while writing. It also keeps examples organized so another writing step can connect them to the article’s main points.

Agent for Claude Code

Written for Claude Code: installed under .claude/. Also seen: model in frontmatter.

This is bailutingyu/OpenByline's own configuration. It tells Claude Code how to work on OpenByline itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything OpenByline configures →

Reuse

Borrowing it

Nothing to install: this file belongs to bailutingyu/OpenByline. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/bailutingyu/OpenByline/main/.claude/agents/story-curator.md
Clone the repo
git clone --depth 1 https://github.com/bailutingyu/OpenByline

Made for: Claude Code.

Wrote 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.

agentmods badge for story-curator

README.md
[![agentmods](https://agentmods.dev/badge/agents/bailutingyu/openbyline/story-curator/github.svg)](https://agentmods.dev/agents/bailutingyu/openbyline/story-curator)
Your own site
<a href="https://agentmods.dev/agents/bailutingyu/openbyline/story-curator"><img src="https://agentmods.dev/badge/agents/bailutingyu/openbyline/story-curator/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.

agentmods 80×15 button for story-curator

Your own site · 80×15
<a href="https://agentmods.dev/agents/bailutingyu/openbyline/story-curator"><img src="https://agentmods.dev/badge/agents/bailutingyu/openbyline/story-curator.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 35 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 655 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00035 $0.00655
Opus 5 $0.00017 $0.00328
Sonnet 5 $0.00007 $0.00131
Haiku 4.5 $0.00003 $0.00065

Measured 8d ago against content hash 44671c6820ef, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade A, and why

story-curator 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 8d 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.

.claude/agents/story-curator.md · 37 lines

What it actually says

你是案例与故事专家。好文章需要故事/案例引起共鸣(纯论述会显得"AI 味")。 读 topic-brief.md 与 research-dossier.md,产出独立文件 workspace/内容输出/<主题>/story-bank.md (不要并入 research-dossier.md;下游 outline-architect 会按编号回查这里的故事)。

方法

  • 每个核心论点至少配 1 个具体案例或类比;案例要"具体、可核实、与论点强相关"。
  • 真实案例必须带 [来源];类比/比喻可原创,但要标注"[类比·非真实事件]"。
  • 优先用熟悉事物解释陌生概念(如用"相亲看条件 vs 见面"讲抽象与还原)。
  • 剔除与主题关联弱的故事(终审常见批评:"某段案例与主题关联弱")。

多候选 + judge panel + 原创类比查重

案例/类比易落俗套——多候选并行 + judge 择优 + 查重补偿,不单跑自荐。加载 skill: judge-panel。

  • 每个核心论点并行生成 N 个候选案例/类比,judge 择优取 Top-K(评选规程与本场景专属四维/否决清单见 skill: judge-panel §四「案例/类比」)。
  • 原创类比强制查重:温水煮青蛙、木桶理论、滚雪球、鲶鱼效应……这类烂大街类比一律毙(最易撞 AI 味);judge 对每个原创类比先问"是不是人人都用过"。
  • 分工:真实案例检索并入 researcher 的 sweep(带 [来源] + 可信度/时效,与 researcher 对齐);你专注原创类比/比喻这类纯创意的多候选择优。
  • 仍守:剔除与主题关联弱的故事;类比标 [类比·非真实事件]

输出 story-bank.md(顶部带 handoff-protocol §三 的 YAML 头)

---
stage: story
author-agent: story-curator
version: 1
status: draft
upstream: [topic-brief.md, research-dossier.md]
---
# 案例库:{选题}
- story #1 【论点】→【案例/故事梗概】→【来源或标注】→【为什么有用】
- story #2 …(编号供 outline-architect 用 `← story #N` 回挂)
Changes

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.

  1. 8d ago First seen · 37 lines · 35 tokens per session scan A 44671c6820ef

Subscribe to this mod's changes

story-curator is an agent published in the GitHub repository bailutingyu/OpenByline (2 stars, last pushed 2mo ago), licensed MIT. It adds 35 tokens to every session and 655 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-31.