From composir
Generate a structured plan.md from an existing brainstorm.md for popular science writing. Use after /composir:brainstorm completes, or when the user has a brainstorm document and wants to produce an executable writing plan with article details, research needs, and progress tracking.
How this skill is triggered — by the user, by Claude, or both
Slash command
/composir:planThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
所有对外部 URL 的抓取走下面三层,**不要直接调 WebFetch**。
所有对外部 URL 的抓取走下面三层,不要直接调 WebFetch。
占位符约定:下面代码里
<URL>、<your prompt>、<在这里...>等尖括号项是你要替换的占位符,不是字面字符串。执行前换成实际值。
P=$(${CLAUDE_PLUGIN_ROOT}/bin/composir-fetch "<URL>") && echo "$P"
exit 0 → Read "$P",用 Grep 定位需要的事实/引文,结束。
W=$(${CLAUDE_PLUGIN_ROOT}/bin/composir-fetch --wf-path "<URL>")
[ -s "$W" ] && cat "$W"
扫一遍已有的 ## Q: ... 条目。若某条 Q 的答案能覆盖当前问题,引用,结束。
判断原则:语义覆盖,不是字符匹配——"发布年份"能答"发布时间";但"具体哪一天"不一定被"哪一年"覆盖。
分两步:
3a. 调 WebFetch(响应进入你当前对话上下文,不是 shell 变量):
WebFetch "<URL>" "<your prompt>"
3b. 把响应文本追加到 wf-cache($W 是上一步 §2 已拿到的路径;若尚未求值,先 W=$(${CLAUDE_PLUGIN_ROOT}/bin/composir-fetch --wf-path "<URL>")):
# 首次写入先加 header(幂等)
[ ! -f "$W" ] && printf '# WebFetch cache for %s\n' "<URL>" > "$W"
# 追加 Q/A 条目;heredoc 用未引号的 WFEOF 以便 $TS 展开
TS=$(date -u +%Y-%m-%dT%H:%M:%SZ)
cat >> "$W" <<WFEOF
## Q: <your prompt> ($TS)
<在这里直接粘贴 WebFetch 返回的完整响应文本>
---
WFEOF
下次同 URL 的 agent 在 §2 就能命中这条记录。
读取 brainstorm.md,产出结构化的 plan.md——包含每篇文章的详细规划、关键术语、需要研究的内容、核查要点,以及进度追踪表。
参数 $ARGUMENTS:指向 brainstorm.md 的路径(形如 <系列目录>/.composir/<slug>-brainstorm.md)。如果省略,按以下顺序找:
.composir/*-brainstorm.mdAskUserQuestion 让用户选用 Read 工具读取 brainstorm.md 的完整内容。从文件名里提取 slug——文件名形如 <slug>-brainstorm.md,剥掉 -brainstorm.md 后缀即得 slug。这个 slug 会用在后面写出的 plan.md 文件名里。
确认它是由 /composir:brainstorm 生成的结构化文档。如果文件不存在或格式不匹配,停下来问用户:"找不到 .composir/<slug>-brainstorm.md,请告诉我它在哪里,或者先运行 /composir:brainstorm 生成一份。"
快速扫描 brainstorm.md,确认以下信息都有了:
如果有缺失,用 AskUserQuestion 补齐——不要自己脑补。权威源如果 brainstorm.md 里没写,一定要补一份(核查阶段需要),可以按主题推断一份初稿让用户确认。
特别地,如果 brainstorm.md 显示主题涉及代码分析但只有 GitHub URL、没有本地路径:停下来要求用户 clone 到本地。理由同 brainstorm Skill(本地读文件比 WebFetch 抓 GitHub 页面高效得多)。拿到本地路径后再继续。
对每一篇文章,产出这几项:
## 级章节标题/research Skill 查权威来源本文是"AI之旅"合集 系列名 系列的第N篇。本文是"[合集名]"合集的一篇。把所有内容整理成结构化 Markdown,保存到 brainstorm.md 所在的同一个 .composir/ 目录,文件名为 <slug>-plan.md——其中 <slug> 和第 1 步从 brainstorm 文件名提取的 slug 一致。完整路径:<系列目录>/.composir/<slug>-plan.md。
输出完成后明确告诉用户:"plan.md 已生成在 <path>,请审核——如果有需要调整的地方,直接告诉我修改哪里,或者用 Ctrl+G 之类的方式手动编辑。定稿后,我们可以开始写第一篇。"
不要自动进入写作阶段。
# 写作计划:[主题/系列名]
**日期**:YYYY-MM-DD
**关联 brainstorm**:`./<slug>-brainstorm.md`(plan 和 brainstorm 同在 `.composir/` 下,共用 slug)
**状态**:plan 已生成,待用户审核
## 合集与系列
- **合集(中文)**:[合集名,如"AI之旅";无合集则写"无"]
- **合集(英文)**:[英文译名,如"AI Journey";无合集或不写英文则留空]
- **形式**:[单篇 / 系列(N 篇)]
- **系列名**:... (仅系列)
- **逻辑线**:... (仅系列)
## 定位
- **主题**:...
- **目标读者**:...
- **切入角度**:...
## 代码库位置(如果主题涉及代码分析)
- **GitHub URL**:...
- **本地路径**:...(写作阶段直接从这里读代码;核查阶段两个 agent 也会从这里读,禁止用 WebFetch 去抓 GitHub)
- **基于 commit/tag**:...(写作时讨论的是哪个版本;核查员会尝试在这个版本上验证)
如果主题不涉及代码分析,删除这一节。
## 写作约定
- 风格:大白话科普,多用类比,少用术语
- 字数:2000-3000 字/篇
- 中英文同步:先中文 → 用户定稿 → 再英文(用户明确要求后才写英文)
- 系列过渡:每篇结尾自然引出下一篇
- 格式规范:参见 `composir:writing-style` Skill
## 权威源
**核查阶段(`/composir:review-cycle`)两个 agent 认的一手源**。只有这些源支持的断言可以被标为 Critical;其他来源(个人博客、SNS、二手转述)最多支持 Warning。
- [具体源 1:例 `claude.com/en/*`]
- [具体源 2:例 `github.com/anthropics/claude-code`]
- [具体源 3:例 某篇 arxiv 论文的 URL]
- ...
**本地代码库**(如适用):
- 路径:[同"代码库位置"节]
- 基于 commit/tag:[如适用]
## 文章详细规划
### 第 1 篇:[标题]
- **副标题**(如需要):...
- **核心问题**:...
- **关键概念**:
- 概念 A:...
- 概念 B:...
- **主要类比**:[主题] 像 [生活中的 Y],因为 ...
- **结构大纲**:
1. ## [第一节标题]
2. ## [第二节标题]
3. ## ...
- **关键术语/事实(需研究)**:
- [术语 1]:需要查 [来源]
- [事实 1]:需要核实 [具体内容]
- **核查要点**:
- fact-checker 特别关注:...
- academic-reviewer 特别关注:...
- **结尾过渡**:[怎么引出第 2 篇](仅系列)
### 第 2 篇:[标题]
...(同上结构)
## 进度追踪
| # | 中文标题 | 中文状态 | 中文核查迭代 | 英文状态 | 备注 |
|---|---------|---------|-------------|---------|------|
| 1 | ... | 待写 | 0 / 5 | 未开始 | |
| 2 | ... | 待写 | 0 / 5 | 未开始 | |
| ... | ... | ... | ... | ... | |
### 状态值说明
- **中文状态**:待写 / 写作中 / 核查中 / 定稿
- **中文核查迭代**:`X / 5` 表示已迭代 X 次(最多 5 次,超过会问用户是否继续)
- **英文状态**:未开始 / 写作中 / 核查中 / 完成 / 不写(用户决定)
## 下一步
1. 用户审核本 plan.md,有需要调整的地方直接告知或手动编辑
2. 用户确认后,开始写第 1 篇中文版
3. 中文写完 → 用户追问/修改 → 定稿
4. 用户明确说"可以写英文"后再写英文版(或用户说不写英文则跳过)
5. 每完成一篇,更新本文档的"进度追踪"表
.composir/ 目录——和文章本体分离,系列根目录只剩文章文件[待定]Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub agenticfish/marketplace --plugin composir