Files
teamai-test/.teamai/skills/common/beautiful-article/references/section-build.md
T

5.3 KiB
Raw Blame History

Section 构建与多 Agent 并行

铁律:一个 Section = 一个组件文件

每个 Section 必须是独立组件文件,坚决不允许把多个 Section 直接写进一个组件。

article/
  Article.tsx          # assembler(主 Agent 拥有):import + 排序各 Section
  sections/
    01-opening.tsx     # export function SectionOpening() { return <Section .../> }
    02-context.tsx
    03-mechanism.tsx
  raw-blocks/
    01-token-flow.tsx  # 大型 / 复用的 Raw 隔离到这里,被对应 section import
  • 每个 sections/NN-*.tsx 导出一个组件,内部用 <Section index="NN" title="...">…</Section>。
  • Article.tsx 只做组装:
    import { Article, Hero, Lead, Conclusion } from "reacticle";
    import { SectionOpening } from "./sections/01-opening";
    import { SectionContext } from "./sections/02-context";
    export function ArticleDoc() {
      return (
        <Article toc width="regular">
          <Hero ... /><Lead>…</Lead>
          <SectionOpening />
          <SectionContext />
          <Conclusion>…</Conclusion>
        </Article>
      );
    }
    
  • 文件级隔离 + 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 在派活时直接告诉它"你是第 <NN> 章",subagent 用这个 <NN> 写 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 必须包含

你负责文件 article/sections/<NN>-<id>.tsx,只改这一个文件,导出一个 Section 组件。
你是全篇第 <NN> 章(这个编号由主 Agent 指定,你看不到自己在全篇的位置,不要自己另编)。
读取:plan/plan.md 的 Outline 段本节段落 + Brief 段(信息保留比例)+
      source/source.md 本节对应内容 + 选定主题 theme-profiles/<id>.md +
      references/component-policy.md + references/raw-policy.md +
      第一个 section 文件作为“代码风格”参考(不是抄袭对象)。
硬规则:
- 一个文件 = 一个 Section 组件;不要碰 Article.tsx 或别的 section 文件。
- 正文为主体,组件按需(默认核心组件优先),Raw 用 --ra-* token 现写。
- 符合本节 outline 任务与信息保留比例;与前后节衔接。
- 序号:<Section index="<NN>">;本节所有 <Subsection> 的序号前缀必须等于 <NN>
  (如 <NN>=08 则小节是 8.1 / 8.2 …),不要从别的章节复制序号。
- 完工自检对照 references/review-checklist.md 的 Section 清单。
不要修改 Article.tsx(主 Agent 统一组装与序号校准),不要改主题。

每个 Section 完工(必走质检 · SubAgent · 消息返回)

按硬性质检协议创建 Section Reviewer SubAgent,对照清单核查:完成 outline 任务 / 符合 信息保留比例 / 与前后衔接 / 不过度组件化 / 正文充足 / Raw 与配图有明确目的 / 本节序号 自洽(Section index 等于 <NN>,各 Subsection 序号前缀等于 <NN>)。

SubAgent 以消息形式返回 pass/fail + 修复点(pass 一行 OK,fail 列出修复点),不要写 review/section-NN-review.md 文件。主 Agent 收到 fail 项后直接修对应 section 文件,再 汇报本节交付。完整 prompt 模板见 references/review-checklist.md 的 Section 段。