# Section 构建与多 Agent 并行
## 铁律:一个 Section = 一个组件文件
每个 Section **必须**是独立组件文件,**坚决不允许**把多个 Section 直接写进一个组件。
```text
article/
Article.tsx # assembler(主 Agent 拥有):import + 排序各 Section
sections/
01-opening.tsx # export function SectionOpening() { return }
02-context.tsx
03-mechanism.tsx
raw-blocks/
01-token-flow.tsx # 大型 / 复用的 Raw 隔离到这里,被对应 section import
```
- 每个 `sections/NN-*.tsx` 导出一个组件,内部用 ``。
- `Article.tsx` 只做组装:
```tsx
import { Article, Hero, Lead, Conclusion } from "reacticle";
import { SectionOpening } from "./sections/01-opening";
import { SectionContext } from "./sections/02-context";
export function ArticleDoc() {
return (
…
…
);
}
```
- 文件级隔离 + reacticle 无裸 CSS(样式全走主题 token)→ 多个 Agent 改不同 section 文件
**不会互相破坏**。
## 章节序号由主 Agent 统一编(避免序号错乱)
`Section` / `Subsection` 的 `index` 是**手写字符串**,组件既不自动编号、也不校验——它只会原样显示。
所以一旦哪个 section 文件写错了序号(典型:并行模式里 subagent 看不到自己在全篇的位置,凭空写出
"第 8 章下挂一个 5.1"),就会一路漏到成品里。规则:
- **全局序号归主 Agent(assembler)所有。** 在 `Article.tsx` 排定最终顺序后,主 Agent 据此把每个
`Section` 的 `index` 校准成 `01 / 02 / 03 …`,并把每个 `Subsection` 的序号前缀对齐到所属
`Section`(第 08 章下只能是 `8.1 / 8.2 …`)。
- **subagent 不自编全局序号。** 主 Agent 在派活时直接告诉它"你是第 `` 章",subagent 用这个
`` 写 `Section index` 和本节 `Subsection` 的前缀;拿不准就留 outline 给的占位,最终由主
Agent 统一过一遍。
- **组装后必校验**:对照 TOC 显示与 `outline.md` 顺序,确认序号连续单调、子节前缀正确(并入终审
Technical Reviewer 的"章节序号全篇自洽"清单)。
## 两种开发模式(Checkpoint 2 由用户选定)
第一个 Section 无论哪种模式都先由**主 Agent 完成并验收**(风格锚点)。差异在第 2 个 Section 起:
### A · 单 Agent 顺序(默认,最稳)
主 Agent 顺序写 `02 → 03 → …`,风格最统一,随时验收。
### B · 多 Agent 并行(最快)
subagent 各**拥有一个** `sections/NN-*.tsx` 并行开发。**主 Agent 负责合并与稳定性**:
- 维护 `Article.tsx` 的 import 与 Section 顺序(唯一组装点,避免冲突),并据最终顺序**统一校准每个
Section 的 `index` 与各 Subsection 的序号前缀**(见上节"章节序号由主 Agent 统一编")。
- 每轮并行结束跑 `npm run typecheck` + `npm run build`,修构建错误。
- 兜底主题与风格一致(颜色 / 字体 / 间距走 token,气质不跑偏)。
- 解决重复 / 衔接问题(相邻 section 论点是否承接)。
风格在并行下会有轻微差异(这是预期,主题 token 兜底视觉统一)。
### 并行 subagent 的 prompt 必须包含
```text
你负责文件 article/sections/-.tsx,只改这一个文件,导出一个 Section 组件。
你是全篇第 章(这个编号由主 Agent 指定,你看不到自己在全篇的位置,不要自己另编)。
读取:plan/plan.md 的 Outline 段本节段落 + Brief 段(信息保留比例)+
source/source.md 本节对应内容 + 选定主题 theme-profiles/.md +
references/component-policy.md + references/raw-policy.md +
第一个 section 文件作为“代码风格”参考(不是抄袭对象)。
硬规则:
- 一个文件 = 一个 Section 组件;不要碰 Article.tsx 或别的 section 文件。
- 正文为主体,组件按需(默认核心组件优先),Raw 用 --ra-* token 现写。
- 符合本节 outline 任务与信息保留比例;与前后节衔接。
- 序号:;本节所有 的序号前缀必须等于
(如 =08 则小节是 8.1 / 8.2 …),不要从别的章节复制序号。
- 完工自检对照 references/review-checklist.md 的 Section 清单。
不要修改 Article.tsx(主 Agent 统一组装与序号校准),不要改主题。
```
## 每个 Section 完工(必走质检 · SubAgent · 消息返回)
按硬性质检协议创建 **Section Reviewer** SubAgent,对照清单核查:完成 outline 任务 / 符合
信息保留比例 / 与前后衔接 / 不过度组件化 / 正文充足 / Raw 与配图有明确目的 / **本节序号
自洽**(`Section index` 等于 ``,各 `Subsection` 序号前缀等于 ``)。
**SubAgent 以消息形式返回 pass/fail + 修复点**(pass 一行 OK,fail 列出修复点),**不要写
`review/section-NN-review.md` 文件**。主 Agent 收到 fail 项后直接修对应 section 文件,再
汇报本节交付。完整 prompt 模板见 `references/review-checklist.md` 的 Section 段。