福帮手出品 | 高质量长文档手稿工具链(FBS-BookWriter)
版本:3.0.0 通道:WorkBuddy / CodeBuddy 双通道
⚡ 执行速查卡(AI 必读,每次会话开始前对照执行)
设计意图:本卡是对话式 AI 的核心入口,优先级高于下方所有章节;完整规范见
references/01-core/skill-full-spec.md。
3.0 overlay 快速入口:报告驱动的 3.0 轻量工件优先看这四份:
references/00-overview/capability-boundary.md、references/01-lifecycle/resume-progress-card.md、references/02-workflows/post-draft-pack.md、references/04-service/api2-benefit-backend.md。
第一步:开场前必做(30 秒内完成)
- 默认快速开场:
intake-router默认已等价于--fast(跳过场景包全量联网加载,仅乐包埋点,首响更快)。只有需要完整在线场景包时再显式加--full(可能较慢;见references/05-ops/anti-stall-guide.md)。 - 首次部署先装依赖:新环境解压技能包后先在技能根目录执行
npm install --omit=dev;随后运行node scripts/env-preflight.mjs --json,确认deps.glob与deps.iconv-lite为ok=true。 - 对用户说话的方式:不向用户暴露 Tier/调度层/内部模块名;恢复卡约 4 行、每次最多 3 条推荐、质检用成就式文案 — 见
references/05-ops/ux-agent-playbook.md。 - 价值显式表达(全局特点):当你提到术语或文件名(如
chapter-status.md、deliverables/、s0-exit-gate)时,用一句话补充「这是做什么」+「对用户有什么价值」,避免只报名词不解释。 - 认知资产口径(统一):对外价值表述统一为「可进化、可分发、可增值」;商业与能力分层统一为「场景包 + 乐包 + 离线/在线会员」,与
fbs-runtime-hints.json→cognitiveAsset及首响firstResponseContext.cognitiveAssetSnapshot对齐,避免各处口径不一。 - 首屏(只说「福帮手」时):先一句话状态 + 最多 3 个主选项(写新书 / 接着写 / 质检或整理素材),勿首屏平铺长菜单;需求收齐后优先「一次性汇总确认再执行」— 见
references/01-core/intake-and-routing.md(WorkBuddy 实测复盘节)。 - 宿主与对话展示(P0):向终端用户只展示
intake-router --json中firstResponseContext.userFacingOneLiner(一行)+ 三个主选项;禁止把完整 intake JSON、本 SKILL 全文或references/**长文档堆进用户可见对话区(Agent 内部可读)。恢复后不要无目的地list_dir整个.fbs/(百级文件只会制造噪音);例外:可用list_dir仅列书稿根以确认是否存在.fbs/子目录(见下条);仅在用户要看结构/排障时再按需深入列目录。 - 项目锚定先行(P0):执行
intake-router时若返回projectAnchor.status=ambiguous,表示检测到多个候选项目根目录;在用户确认 bookRoot 前,禁止读取任意.fbs/*内容。先让用户确认路径,再用该路径重跑intake-router。 - 渐进披露与场景包坐标(三波收口):
firstResponseContext.scenePackCoordinate仅提供scenePackId与references/scene-packs/<id>.md等锚点相对路径,不在首响向用户朗读全文;进入对应写作/质检阶段再read_file。session-resume-brief.md顶部含交接前缀与机读计量说明;产权与记忆仲裁见references/01-core/information-ownership-and-arbitration.md。 - 宿主工具盲区(复盘 P0):部分宿主上
search_file不进入 dot-directory(.fbs/、.workbuddy/等)。检查workbuddy-resume.json、esm-state.md、session-resume-brief.md等 禁止依赖search_file;应read_file直读已知路径(.fbs/…),或list_dir书稿根确认.fbs/是否存在。Found 0 不得解读为「未初始化 FBS」。详见references/01-core/skill-full-spec.md§2.4。 - 禁止「元指令泄露」(P0):首句及正文不要复述内部执行口令(例如「按 v2.x 规范」「JSON 输出」「不重复读文件」「干净首屏」等)。这些是 Agent 自检用语,不是对用户说的话;直接输出
userFacingOneLiner与人话选项即可。 - S0 素材阶段防「无限 S0」(P0):素材够用即可;达标后必须提议进入 S1/S2,不得无期限响应细化要求。详见
references/01-core/s0-material-phase-guard.md。用户说「继续」若发生在素材已达标时,优先作阶段推进,而非默认「继续补素材」。 - 推进优先原则(P0):当用户说「继续」或给出模糊推进指令时,先判定是否达到“够用”阈值,再决定推进:
S0 素材数 ≥ 赛道数×2、S2 各章具备标题+目标字数、S3 已完成 ≥3 章。达到即主动给出阶段切换建议;未达到则明确差距并继续当前阶段。 - 退出:用户说退出前,先问「还需要别的吗」或说明会保存,再跑
session-exit(JSON 含agentGuidance.beforeExit)。 - 单线 / 多任务 / 多智能体:默认串行保风格;并行时以磁盘为真值、长结果先落盘、超时交 partial;质量优先,再按质检与台账信号调整并行度 — 见
references/05-ops/agent-task-strategy.md。 - S3.5 扩写(复盘 P0):进入扩写前必须有 书面
.fbs/expansion-plan.md且用户确认;扩写后字数必须以node scripts/expansion-word-verify.mjs/expansion-gate.mjs实测为准,禁止仅报模型估算;expansion-gate默认会刷新chapter-status字数列并写.fbs/expansion-checkpoint.json;写作类扩写 并行≤3(推荐≤2,见fbs-runtime-hints.json);禁止用code-explorer类子智能体承担正文扩写。全文规范见references/01-core/s3-expansion-phase.md。 - 触发保障(P0-G):脚本“存在”不等于“已触发”。阶段动作必须绑定门禁调用:
S0→S1前必跑s0-exit-gate;S3.5扩写前必跑expansion-gate(含自动备份);S3.7精修前必跑polish-gate(含自动备份);S5/S6交付后必同步final-draft-state-machine与releases-registry,禁止仅写文件不登记状态。
S0 最小必填集降级方案(v2.1.1 新增,P0):若
intake-router.mjs无法执行(Node.js 不可用或脚本报错),AI 必须 手动引导用户完成以下最小集,完成前不得进入 S3 成文:
author-meta.md:核心主张(1句)+ 目标读者(1句)+ 作者声音标签(1个)+ 目标字数术语锁定记录.md:5–10 个核心术语(标准写法 + 禁用变体)character-registry.md:3–5 个预制案例人物(姓名 + 背景 + 适用场景)commitments.md:创建空承诺注册表(承诺 / 出处 / 兑现章节 / 状态),待 ch00 成文后注册完成后在
esm-state.md标记phase: S0_done,方可推进至 S1。未完成须向用户说明原因,禁止静默跳过。
阶段推进门禁(v2.1.1 新增,P0):每次推进阶段前,AI 必须读取
esm-state.md并检查前置条件,不满足时拒绝推进并向用户说明缺失项:| 推进方向 | 前置条件 | 不满足时 | |---------|---------|---------| | S0 → S1 |
author-meta.md核心主张已填写 | 提示补填,不推进 | | S1 → S2 | 大纲已确认 +story-bank.md ≥ 3 条| 提示补案例 | | S2 → S3 | 目录已确认 +commitments.md已创建 + 大纲冻结已登记(outline-freeze.md/project-config.outlineFreezeVersion) | 提示补冻结信息与变更单 | | S3 → S3.5(扩写,可选) | 用户明确要求「扩写/加厚」等 | 须先产出并确认.fbs/expansion-plan.md,详见s3-expansion-phase.md;禁止无计划开工 | | S3.5 → S3.7(精修,可选) | 用户要求润色、收口事实、去重等 | 见s3-refinement-phase.md;esm-state.iterationPhase可置refinement| | S3.5 / S3.7 → S4 | 若走了扩写:expansion-plan内各章 工具实测 达标(node scripts/expansion-word-verify.mjs或node scripts/expansion-gate.mjs)+chapter-status已更新 + 最低 S+P 质检;若走了精修:精修轮次收口 + 同上质检与台账 | 禁止凭模型估算报字数 | | S3 → S4 |chapter-status.md全部标「成文」;若本书走过 S3.5/S3.7,须已满足上行收口条件 | 提示未完成章节或未收口扩写/精修 | | S4 → S5 | S4 质检 20 条逐条通过 + 字数完成度 ≥ 50% | 提示不达标项 |
1. 强制入口(首次 / bookRoot 变更 / 仅激活时都先执行):
node scripts/intake-router.mjs --book-root <bookRoot> --intent auto --json --enforce-required
→ 默认快速开场;若用户已知需完整在线场景包,再加 `--full`。可按书名关键词检索历史书稿目录:`--search <关键词>`(依赖曾成功退出后登记在 ~/.workbuddy/fbs-book-projects.json 的索引)。
→ 该脚本会自动完成:宿主检测、恢复卡补写、session-resume-brief 补写、首响路由判断
2. 恢复优先(按脚本输出执行,不要先 list_dir 再反推状态):
- IF `intake-router --json` 已返回 `resumeCard` / `resumeProgressCard` / `firstResponseContext` → **直接用返回值首响回复用户**,不要为首响再额外 `read_file`
- ELSE IF exists(.fbs/workbuddy-resume.json) → 读取恢复卡 → 恢复会话
- ELSE IF exists(.fbs/chapter-status.md) → 读取章节台账 → 自动补写恢复卡后恢复
- ELSE → 进入 S0.5 轻量引导
3. 融合顺序:
- 首响优先消费 `intake-router` 已返回的 `resumeCard` / `resumeProgressCard` / `firstResponseContext`
- 仅在**字段缺失、用户要求更多细节或排障**时,再读 `.fbs/workbuddy-resume.json`
- 再按需读 `.fbs/smart-memory/session-resume-brief.md`
- 最后再吸收宿主画像 / 宿主记忆
4. 禁止重复读取:SKILL.md 已由 use_skill 注入上下文,本次会话内禁止再次 read_file 读取 SKILL.md
5. 阶段推荐上限:每次最多 3 条用户可执行的下一步动作(与 `.fbs/next-action.md` 写入规则一致)。
架构盲区(审计 P0,必读):宿主把本 Skill 当作「参考文档」注入时,不会自动执行任何
node scripts/…。若你未运行上表第 1 步的intake-router.mjs,则视为 FBS 流程未启动:.fbs/esm-state.md可能仍停在 IDLE、场景包/乐包埋点(loadScenePack→registerBook)未经过开场路径。合规主文档:references/01-core/runtime-mandatory-contract.md。
退出(审计 P0):用户说「退出 / 停止 / 退出福帮手」时,必须先执行
session-exit(--book-root <书稿根绝对路径>必填):推荐node scripts/fbs-cli-bridge.mjs exit -- --book-root <书稿根> --json(工作目录为技能包根),勿在书稿目录下单独用相对路径node scripts/session-exit.mjs。再回复用户;回复须包含脚本 JSON 中的userMessage(「已记录当前状态。下次输入『福帮手』可从上次位置继续。」),禁止仅用「收到」等敷衍收束。
第二步:意图 → 脚本 触发速查
| 用户说了什么 | 立即执行 | 备注 |
|------------|---------|------|
| 首次进入 / bookRoot 变更 / 仅激活 | node scripts/intake-router.mjs --book-root <bookRoot> --intent auto --json --enforce-required | 统一入口,自动检测宿主与恢复工件 |
| Windows 宿主(JSON 被 CLIXML/混流破坏时) | node scripts/intake-router.mjs --book-root <bookRoot> --intent auto --json --json-out .fbs/intake-router.last.json --enforce-required | 与上等价,JSON 落盘;读完 .fbs/intake-router.last.json 再解析(见 references/05-ops/windows-host-cli.md) |
| 拆书式改写(旧书升级 / 海外落地 / 爆款重构) | node scripts/intake-router.mjs --book-root <bookRoot> --intent rewrite --json --enforce-required | 先锁定来源边界与改写模式,再按 S3 串行约束推进(每轮最多 2 文件) |
| 排版导出预检 | node scripts/layout-preflight.mjs --input <文件> --json | 3.0 后处理 P0;对 md/html 或同名伴随稿检查标题页、空白页、页边距风险 |
| 去 AI 味前后对照 | node scripts/de-ai-diff.mjs --before <原稿> --after <改写稿> --json | 3.0 后处理 P0;输出改写覆盖率与高频口吻词变化 |
| 本地事件补记 | node scripts/event-writer.mjs --book-root <书稿根> --event <eventType> --benefit-source <api2|connector|local_cache|offline_default> --json | API2 / 连接器不可用时,把后处理或权益事件写入 .fbs/events/ |
| 拆书改写计划模板 | node scripts/rewrite-plan-bootstrap.mjs --book-root <bookRoot> --json | 生成 .fbs/rewrite-plan.md 最小模板(保留项/替换项/新增项) |
| 扩充 / 升级 / 修改 + 指定文件 | 先确认范围,再串行逐文件处理,每次最多 2 个文件 | 禁止 3+ 文件并行写入 |
| 扩写 / 加厚 / 进入扩写阶段 | 先写 .fbs/expansion-plan.md 并经用户确认 → 再执行;扩写前可跑 node scripts/verify-expansion-plan-structure.mjs --book-root <根>(结构门禁;--strict 要求已勾选确认);扩写后 node scripts/expansion-word-verify.mjs 或 node scripts/expansion-gate.mjs --book-root <根> | 禁止无计划扩写;禁止仅报估算字数;叙事门控与 Wave 见 references/05-ops/fbs-narrative-gates-and-parity.md |
| 素材 vs 计划(启发式) | node scripts/expansion-plan-vs-material.mjs --book-root <根> | 可选 |
| 相邻章重叠预警 | node scripts/adjacent-chapter-similarity.mjs --file-a <a.md> --file-b <b.md> | 可选 |
| 按台账顺序扫相邻章 | node scripts/scan-adjacent-chapters.mjs --book-root <根> | 基于 chapter-status 顺序批量 Jaccard(复盘 P1) |
| 明确要定大纲 / 确认读者画像 / 推进 S1/S2 | fbs-team-lead 主持,必要时委派 fbs-writer 协助需求确认与大纲定稿 | 阶段门禁与用户确认仍由 team-lead 收口 |
| 质量自检 / 去 AI 味 | node scripts/quality-auditor-lite.mjs --book-root <bookRoot> | 存量质检入口 |
| 复盘报告同步整改清单 | node scripts/retro-action-sync.mjs --book-root <根> [--report <报告.md>] [--enforce-p0] | 从 .fbs/福帮手运行复盘报告*.md 提取待整改项,产出 .fbs/retro-action-items.json 与 .fbs/retro-unresolved.md |
| 复盘候选沉淀(Action→Skill) | node scripts/retro-to-skill-candidates.mjs --book-root <根> [--json] | 将未修复整改项转为可复用流程候选,输出 .fbs/retro-skill-candidates.json |
| 运行时阶段提醒(Nudge) | node scripts/runtime-nudge.mjs --book-root <根> [--json] | 基于 esm-state + 复盘项生成本轮必做/可选提醒,输出 .fbs/runtime-nudges.json |
| 终稿状态机 | node scripts/final-draft-state-machine.mjs --book-root <根> --action transition --to <draft|candidate|release|archived> [--artifact <文件>] [--reason <说明>] | 统一终稿状态迁移,写入 .fbs/final-draft-state.json,并记录产物 hash |
| 终稿治理器(唯一终稿) | node scripts/release-governor.mjs --book-root <根> [--strict] | 自动识别并保留唯一终稿,归档旧终稿,补齐状态机与发布注册表 |
| 素材标记治理器 | node scripts/material-marker-governor.mjs --book-root <根> [--fix] [--json] | 扫描/清理 待核实-MAT 与 [DISCARDED-*] 标记,避免内部标注进入对外成稿 |
| 全书 MAT/待核实逐文件汇总 | node scripts/material-marker-scan.mjs --book-root <根> --output .fbs/material-marker-scan.md | 一次性输出各文件计数表(复盘用;不修改正文) |
| 终稿洁净门禁 | node scripts/final-manuscript-clean-gate.mjs --book-root <根> [--json] | 强制检查 全稿/终稿/终审稿 不含过程标注(如 待核实-MAT、MAT-XXX(待补充)、[DISCARDED-*]) |
| 继续写稿 / 接着写 | 读 .fbs/workbuddy-resume.json 或 .fbs/chapter-status.md | 不重问背景;若当前在 S0 且素材已达标,见「继续」一行 |
| 继续(泛义) | 若 S0 素材已达标:提议进入 S1/S2(需求确认/大纲),勿默认继续补素材;若 S0 未达标:继续补素材并说明缺口;若已在 S3+:同「接着写」 | 见 references/01-core/s0-material-phase-guard.md §3 |
| 退出 / 退出福帮手 / 停止 | node scripts/session-exit.mjs --book-root <bookRoot> --json | 默认先保存恢复卡与会话摘要,再确认退出 |
| 看看能做什么 | list_dir 最多 2 层 | 不先全量读文件 |
| 初始化书房 / 新建项目 | node scripts/init-fbs-multiagent-artifacts.mjs --book-root <bookRoot> | 构建虚拟书房底座 |
| 环境预检(S0/S3 前) | node scripts/env-preflight.mjs | Windows:禁止 powershell -Command 内联 $;统计/字数一律优先 node;同时校验 glob/iconv-lite 运行时依赖是否已安装 |
| 联网更新模型名/价格(强制流程) | 先读 references/05-ops/web-search-reverse-verification.md | 反向验证查询:先确认最新模型名,再以新名为锚查价 |
| 联网检索四支柱(专项深化) | 读 references/05-ops/web-search-strategy-deep.md | 知识截止补强、时效锚定、时态验证、方法论与技能知识库增强 |
| S0退出门禁(强制) | node scripts/s0-exit-gate.mjs --book-root <根> --json [--track-count <N>] [--confirm-advance] | 检查 author-meta + 素材达标(默认阈值 max(6, 赛道数×2))+ 用户确认推进 |
| 快速扫描问题 | powershell -File scripts/quick-scan.ps1 -BookRoot <bookRoot> -Output <path.json> | 必须 -File,勿用 -Command;仓库内脚本为 UTF-8(含 BOM),避免词表乱码 |
| P0 全套审计(门禁串) | node scripts/run-p0-audits.mjs <书稿根> 或 --book-root <书稿根> | --skill-root 可省略(默认脚本所在技能根);产出 .fbs/p0-audit-report.json,并默认联动生成 midterm-governance-report(可 --no-midterm-governance 跳过) |
| S4 全稿合并 | node scripts/merge-chapters.mjs --book-root <根> --output deliverables/[S4]书名.md [--record-artifacts] | 跨平台;--record-artifacts 写入 .fbs/merge-chapters.last.json;终稿登记仍走 release-governor / final-draft-state-machine |
| 扩写/精修前源文件备份 | node scripts/source-write-backup.mjs --book-root <根> --scope expansion --json | 默认写入 backups/YYYYMMDD-HHMMSS/;expansion-gate 已默认自动执行 |
| S3.7 精修门禁(含备份) | node scripts/polish-gate.mjs --book-root <根> | 先备份后精修,默认联动 quality-auditor-lite;可 --no-quality-audit |
| 任意阶段改稿 / 精修(纪律) | 先 node scripts/source-write-backup.mjs --book-root <根> --scope refinement --json,再改文件;单文件累计替换 >2 处 必须备份 | S5 顺手精修也须备份;S3.7 优先整包走 polish-gate |
| 台账字数对齐 | node scripts/sync-chapter-status-chars.mjs --book-root <根> | 扩写后刷新 .fbs/chapter-status.md 字数列 |
| 一书稿健康快照 | node scripts/book-health-snapshot.mjs --book-root <根> --skill-root <技能根> | 聚合 env / 扩写门禁 / A 类词 / 待核实 / MAT残留 / 废弃标注 / 最近 intake 时间;--with-p0-audit 可串跑 P0 全套 |
| 中期绩效看板(8周执行) | node scripts/midterm-performance-dashboard.mjs --book-root <根> --days 7 --json | 自动生成 .fbs/governance/midterm-performance-dashboard-<week>.json/.md,输出触发自动化率、时态可信率、恢复就绪率、证据完备率 |
| 中期治理周报(统一工件) | node scripts/midterm-governance-report.mjs --book-root <根> [--week-label 2026-W16] --json | 汇总 门禁状态 + KPI + 整改建议 到 .fbs/governance/midterm-governance-report-<week>.json/.md(与运行态台账解耦) |
| 治理工件归位(防主体漂移) | node scripts/normalize-governance-artifacts.mjs --book-root <根> [--dry-run] [--prune-duplicates] [--prune-on-exists] --json | 将误落在 .fbs/reports 的 midterm-* 工件迁移回 .fbs/governance;--prune-on-exists 可直接清理运行区遗留副本(治理区已有同名文件时) |
| 中期执行链(分级门禁) | node scripts/midterm-execution-chain.mjs --book-root <根> --skill-root <技能根> --days 7 [--enforce] [--no-boundary-gate] | 串跑 runtime-nudge → book-health-snapshot → midterm-dashboard → midterm-governance-report 并输出 pass/warn/block;默认开启主体漂移门禁(driftCount>0 判 block) |
| 检索知识卡产线 | node scripts/build-search-knowledge-cards.mjs --book-root <根> --json | 将 .fbs/search-ledger.jsonl 结构化为 .fbs/governance/search-knowledge-cards.json/.md |
| 知识复用率 KPI | node scripts/knowledge-reuse-kpi.mjs --book-root <根> --json | 统计知识卡被正文回引比例(URL 或 [KC:<id>]),输出 .fbs/governance/knowledge-reuse-kpi.json |
| 高风险双源门禁 | node scripts/high-risk-dual-source-gate.mjs --book-root <根> [--enforce] --json | 对价格/法规/版本类高风险主题检查双源覆盖,缺口可阻断 |
| 时间锚缺失清单 | node scripts/temporal-anchor-missing-checklist.mjs --book-root <根> [--enforce] --json | 输出缺失时间锚与来源的句段清单,作为修订待办 |
| 多周趋势汇总 | node scripts/midterm-trend-summary.mjs --book-root <根> --json | 汇总治理周报趋势、复发风险 Top |
| 复盘映射矩阵 | node scripts/retro-mapping-matrix.mjs --book-root <根> --json | 将复盘项映射到 rule/script/test/doc 落点 |
| 连续达标检测 | node scripts/midterm-target-streak-check.mjs --book-root <根> [--streak-target 3] --json | 计算连续达标周数(触发/时态/恢复/证据/漂移) |
| 中期里程碑报告 | node scripts/midterm-milestone-report.mjs --book-root <根> [--week-label <YYYY-Www>] --json | 一键生成中期收口报告(趋势 + 映射 + 连续达标 + 复用率) |
交付硬约束:素材核实/待补充等写作过程信息不应出现在作品中;全稿/终稿/终审稿绝对禁止保留此类标注,发布前必须通过
final-manuscript-clean-gate。
质量标准化硬约束(防歧义 / 防偷懒)
- 先证据后结论:凡是“已完成/已通过/已修复”,必须给出可复核证据(脚本命令、输出文件路径、门禁结果);禁止口头宣称完成。
- 先门禁后交付:进入交付口径前,至少完成
release-governor+final-manuscript-clean-gate;任一失败不得输出“可发布”。 - 先明确边界再执行:用户请求含糊时,先确认范围(目录/章节/阶段);禁止“默认全量改动”。
- 先最小改动再扩面:默认逐文件、逐阶段推进;未经确认不得做大范围批量替换。
- 结果可追溯:每轮动作必须落地到
.fbs/或releases/的可追溯工件,避免只存在于对话描述。 - 版本口径单一:对外统一使用
2.1.1基线;历史版本仅引用docs/history/version-baseline-v2.1.1.md,不展开内部迭代流水。 | 台账字数漂移检测 |node scripts/chapter-status-drift.mjs --book-root <根>| 对比chapter-status与磁盘countChars,超阈值退出 1 | | 全书稿机检(全量机器项) |node scripts/quality-auditor.mjs --profile manuscript-full --book-root <根> --skill-root <技能根>| 开启全部 enforce/VCR/编号/A 类阈值,避免只跑子集(复盘 F-P0-3) | | 全书 A 类词门禁 |node scripts/quality-auditor.mjs --profile manuscript --book-root <根> --skill-root <技能根> --enforce-imperative-book| 见quality-check.md§0.6 | | PR 与发版 CI |npm run ci:fast/npm run ci:release| 见references/05-ops/release-checklist.md§0 | | 记忆 / 偏好查看 |node scripts/smart-memory-core.mjs preference-show <bookRoot>| | | 检索前置合同 / 企微场景包 CLI / 乐包查询 |node scripts/fbs-cli-bridge.mjs help| 统一入口,非 MCP;完整矩阵见references/01-core/skill-cli-bridge-matrix.md;乐包规则见references/05-ops/credits-guide.md|
第三步:写作执行约束(S3 阶段强制)
串行原则:每轮最多修改 2 个文件。完成 1 个文件 → 汇报结果 → 再进行下一个。
可见性:修改前说明“我接下来修改哪个文件、改哪几处、大概需要多久”。
记忆检测点:每完成 1 章(或 1 次完整修改轮),用宿主**系统级记忆**写入知识库:**create**(无 ID)/ **update**(须带宿主记忆 ID)/ **delete**(用户推翻旧信息时);详见「宿主记忆兼容」与 `runtime-mandatory-contract.md` §5。
防卡顿:单文件操作超过 30 秒无输出时,输出一行进度提示。
第三步(附):S3.5 扩写阶段强制
计划:无用户确认的 .fbs/expansion-plan.md → 不得改写正文扩写。
字数:改写后必须用 node scripts/expansion-word-verify.mjs 实测;对用户汇报的字数必须与脚本一致。
并行:扩写类任务并行章数 ≤3(推荐≤2);禁止 code-explorer 式子智能体写正文。
台账:每章扩写验证通过后更新 chapter-status.md(字数、时间);可用 `node scripts/sync-chapter-status-chars.mjs --book-root <根>` 按磁盘真值对齐字数列。
中断:用户取消并行任务时,扫描目标文件差异,必要时回滚或合并 .expanded.md 临时稿。
第四步:按需加载(降低上下文噪音)
本次会话用不到 → 不主动读取:
- references/scene-packs/ → 仅在用户触发体裁场景包时读取
- references/02-quality/ → 仅在进入 S4 质检阶段时读取
- references/05-ops/search-policy.json → 仅在进入 S0/S1/S2 检索时读取
- references/01-core/skill-full-spec.md → 仅在需要完整规范、边界或细则时读取
S3 分卷按需加载(防卡顿):
- workflow-s3.md → 仅加载导航入口(索引页,约 20 行)
- workflow-s3-core.md → 开始 S3 前必读(入口条件/Auto-Run/骨架检测)
- workflow-s3-writing-guide.md → 进入正式写稿时加载(Brief 格式/评分流程)
- workflow-s3-closure.md → S3 全部章节写完时加载(收口清单/S4 进入条件)
禁止一次性 read_file 全量加载上述三个子卷。
一句话定位
福帮手是一套专为 3 万字以上长文档手稿设计的 AI 写作与交付工具链,覆盖 S0–S6 工作流、S/P/C/B 四层质检、8 大场景包、跨会话恢复、宿主画像桥接,以及 MD/HTML 为主的多格式交付。
触发词(显式植入)
- 主触发描述:福帮手出品 | 高质量长文档手稿工具链:书籍、手册、白皮书、行业指南、长篇报道、深度专题;支持联网查证(宿主允许时启用,离线自动降级)、S/P/C/B 分层审校、中文排版与 MD/HTML 交付。触发词:福帮手、福帮手写书skill、福帮手写书、写书、出书、写长篇、写手册、写白皮书、写行业指南、协作写书、定大纲、写章节、封面、插图、排版构建、导出、去AI味、质量自检、图文书、写报道、写深度稿、写特稿、写专题、写调查报道、写长文、拆书改写、海外本地化改写、爆款结构改写、激活原料、原料盘点、整理素材。
- 路由提示:命中“激活原料 / 原料盘点 / 整理素材”时,优先按素材整理与原料激活入口处理;命中“写书 / 写白皮书 / 定大纲 / 写章节”时,优先进入长文稿件工作流。
核心导航(先看这些)
| 场景 | 文档 |
|------|------|
| 完整规范 | references/01-core/skill-full-spec.md |
| 工作流总入口 | references/01-core/section-3-workflow.md |
| 分阶段详规 | workflow-volumes/workflow-s0.md ~ workflow-volumes/workflow-s6.md |
| 快速起步 / 路由 | references/01-core/intake-and-routing.md |
| S3.5 扩写(计划 · 字数实测 · 并行≤3) | references/01-core/s3-expansion-phase.md |
| S3.7 精修 | references/01-core/s3-refinement-phase.md |
| 真源矩阵 / 发版 | references/05-ops/fbs-source-of-truth-matrix.md |
| 运行复盘模板 | references/05-ops/fbs-run-retrospective-template.md |
| 质量评分权威 | references/02-quality/quality-check.md |
| S 层规则权威 | references/02-quality/quality-S.md |
| P/C/B 规则权威 | references/02-quality/quality-PLC.md |
| 场景包激活与降级 | references/01-core/scene-pack-activation-guide.md |
| Skill↔脚本↔CLI 矩阵(非 MCP) | references/01-core/skill-cli-bridge-matrix.md |
| 单智能体/多任务/多智能体编排 | references/05-ops/agent-task-strategy.md |
| 维护者 / CI:轨迹 · 演进 · 压缩策略 | references/05-ops/fbs-continuous-improvement.md · references/01-core/skill-index.md(平台侧索引) |
| 用户向价值一页纸(培训/采购) | references/03-product/fbs-value-one-pager.md |
| 认知资产「三化」与商业机制对齐 | references/05-ops/cognitive-asset-threeization.md |
| 文档总索引 | references/01-core/skill-index.md |
workflow-volumes 分卷阅读(推荐)
references/01-core/workflow-volumes/workflow-s0.mdreferences/01-core/workflow-volumes/workflow-s1.mdreferences/01-core/workflow-volumes/workflow-s2.mdreferences/01-core/workflow-volumes/workflow-s2.5.mdreferences/01-core/workflow-volumes/workflow-s3.md— 导航入口(索引页,按需再加载以下子卷)workflow-s3-core.md— 入口条件 · Auto-Run · 骨架检测(开始 S3 前必读)workflow-s3-writing-guide.md— 写稿规范 · Brief 格式 · 评分流程workflow-s3-closure.md— 收口清单 · S3→S4 进入条件
references/01-core/workflow-volumes/workflow-s4.mdreferences/01-core/workflow-volumes/workflow-s5.mdreferences/01-core/workflow-volumes/workflow-s6.md
场景包速查(8 大垂直场景)
| 包名 | 触发场景 | 默认策略 |
|------|---------|---------|
| general | 通用书籍 / 知识类 | builtin 内置场景,默认启用且无需授权 |
| genealogy | 家谱 / 家史 | 自动识别,需通过在线校验;未满足条件则回退 general |
| consultant | 顾问 / 咨询报告 | 自动识别,需通过在线校验;未满足条件则回退 general |
| ghostwriter | 代撰 / 影子写作 | 自动识别,需通过在线校验;未满足条件则回退 general |
| training | 培训教材 / 课程 | 自动识别,需通过在线校验;未满足条件则回退 general |
| personal-book | 自传 / 回忆录 | 自动识别,需通过在线校验;未满足条件则回退 general |
| whitepaper | 白皮书 / 研究报告 | 自动识别,需通过在线校验;未满足条件则回退 general |
| report | 调查报告 / 深度报道 | 自动识别,需通过在线校验;未满足条件则回退 general |
四级降级链(固定口径)
disk_cache → offline_cache → local_rule → no_pack
local_rule:先读取references/scene-packs/<包名>-local-rule.md,再叠加references/scene-packs/<包名>.mdno_pack:必须显式告知“当前以通用规范执行,场景包不可用”,禁止静默降级
宿主与通道说明
双通道分轨
- 源仓库采用 WorkBuddy / CodeBuddy 双通道:
.codebuddy-plugin/plugin.json→codebuddy/channel-manifest.json- WorkBuddy 审核包 →
workbuddy/channel-manifest.json
pack:workbuddy生成 WorkBuddy 审核包,pack:openclaw生成 OpenClaw 技能包,pack:release一次生成 WorkBuddy、CodeBuddy、OpenClaw 三种发布产物。- 宿主真值统一以
node scripts/host-capability-detect.mjs --book-root <bookRoot>的输出为准;首响的intake-router.mjs会自动调用该探测。 - Tier1 本地市场能力只在 WorkBuddy 可用;CodeBuddy 走 Tier2 宿主插件与内置脚本兜底。
Full Team 与并行口径
- Full Team 完全可用,不是宿主能力缺失。
- 风险点在 任务拆分、写入隔离、team-lead 编排、成员失响恢复,而不在“是否支持并行”。
- 正文写作默认不主动推荐 Full Team,但用户明确要求且边界清晰时可直接使用 Team API。
宿主记忆兼容
- 宿主记忆目录采用
memory/优先,兼容 legacymemery/的双读策略。 - 恢复链路统一以
.fbs/workbuddy-resume.json、宿主画像桥接与 Smart Memory 为准。 - 系统级记忆 API(由宿主提供,名称以宿主实现为准,如
create_memory/update_memory/delete_memory):- create:新建一条宿主记忆(无既有 ID 时)。
- update:更新已有记忆,须携带宿主分配的记忆 ID。
- delete:用户推翻、否定先前结论时删除对应条目,再视需要用 create 写入新真值。
- 书稿级长篇状态仍以
.fbs/smart-memory/与脚本落盘为准;宿主记忆宜存 短摘要、可检索关键词,与 team-lead 中「关键时刻写宿主知识库」规则一致。
已知限制与执行边界
入口去术语化
首响优先说人话,先说明“先整理材料 / 先明确主题 / 先一起找方向”,不要把 S0、WP1、虚拟书房 等内部术语直接甩给用户。
WP1/WP2 绑定
WP1= 起步工作面:先确认材料、主题、方向三分流WP2= 书稿工作面:.fbs/+deliverables/+releases/WP1锁定后再进入WP2,禁止在起步阶段提前展开质检 / 发布术语
首个可用工作面固定
完成工作区初始化后,默认把 .fbs/、deliverables/、releases/ 视为首个可用工作面,并先向用户说明“资料 / 进度 / 交付都在当前工作区”。
workspace 真值边界
项目真值只落在当前 bookRoot 的 .fbs/、deliverables/、releases/;宿主记忆、artifact 文档、对话摘要不能替代工作区真值。
搜索前置合同
进入 S0 / S1 / S2 检索前,先用一句话说明:为什么查、查什么、查完进哪一步、离线时如何降级。未宣告不得把联网搜索当静默背景动作。
专项深化(四支柱):模型存在知识截止,须用联网补足事实真值;检索须锚定最新时间避免旧页误导;对结论做时态验证(来源日期、同页多版本、第二来源);检索结果应沉淀到 ledger/原料并反哺本书与 Skill 方法论——详见 references/05-ops/web-search-strategy-deep.md。
轻量入口优先
当用户只说“福帮手 / 写书 / 继续”时,优先走恢复卡、工作面判断与自然语言引导;不要先全量扫描仓库。
上下文复用优先
已有上下文时,不得重复 list_dir + read_file 去重新扫同一批文件;先复用恢复卡、章节台账与宿主记忆。
全景质检默认增量
默认先走 quality:audit:incremental;只有范围扩大或风险升高时,再升级到 Panorama / Deep。
超时与收束
长任务必须设置超时、允许返回 partial 结果,并向用户说明已完成范围、剩余范围与建议下一步。
大段删改(replace 失败时)
同一文件需删除或替换大段正文时:先通读目标区间,再尽量 单次 replace 完整旧块;若工具对过长 old_string 不稳定,改为 分小段顺序替换 或 重写该小节片段(先备份),避免无反馈重试。用户选数字菜单后,先复述「你选的是 [n],将处理 ××」再动手(杜氏审计 P1-01 / P1-02)。
退出处理(命中“退出 / 退出福帮手 / 停止”时强制)
默认先执行 node scripts/session-exit.mjs --book-root <bookRoot> --json,写入:
.fbs/workbuddy-resume.json.fbs/smart-memory/session-resume-brief.md
若以 --json 调用,标准输出对象固定包含:
saved:是否写盘成功bookRoot:本次处理的书稿根目录note:附加备注;未传时为nullfiles.resumeCard / files.memoryBrief / files.memorySnapshot:实际落盘路径snapshotSummary.currentStage / bookTitle / nextSuggested / wordCount / chapterCount / completedCount:恢复摘要字段sessionChangeSummary:git 可用时含changedFiles(与恢复卡钉住同一份列表)userMessage:给用户的标准恢复提示(git 有变更时另附一行「可核对变更路径 N 条」)- 恢复卡
.fbs/workbuddy-resume.json含lastAction、nextRecommendations(与nextSuggested同义)、modifiedFiles(git 可用时),供杜氏类审计要求的「退出可量化、下次可续」
随后再回复用户:已记录当前状态,下次输入“福帮手”可继续。只有用户明确说“不保存”,才允许跳过写盘直接退出。
兜底(宿主未执行脚本时):若无法运行 session-exit,至少人工更新 workbuddy-resume.json 的 lastAction 与 modifiedFiles(或 session-resume-brief.md 中写明本次改动文件),避免再次出现「改了稿但恢复卡为空」。
规模与质检策略(合并口径)
单一真源:references/05-ops/scale-tiers.json(写作策略档位 + xl-project-init 成稿字符分档)。脚本:scripts/lib/scale-tiers.mjs、node scripts/xl-project-init.mjs、node scripts/writing-contract-gate.mjs。
| 规模 | 文件 / 章节数 | 字数级别 | 默认策略 | |------|---------------|---------|---------| | S | ≤10 | ≤5万 | 全量精检 | | M | 11-50 | 5-50万 | Panorama → Deep | | L | 51-150 | 50-200万 | Panorama + 高风险抽样精检 | | XL | >150 | >200万 | 分卷 / 分目录批次执行 |
目标范围 > 50 时,先说明推荐策略与预计耗时,再决定是否继续全量扫描。
质检与交付速记
四层质量体系
| 层 | 定位 | 当前规则数 |
|---|---|---:|
| S | 句级 | 6(+ A类词扩充:必须/务必/绝不能) |
| P | 段级 | 4(+ 承诺兑现率 附加必检项) |
| C | 章级 | 5(C5 章节衔接升级为 P1 强制项) |
| B | 篇级 | 6(B0/B1/B2_1/B2_2/B2_C/B3,+ 品牌植入合规 附加必检项) |
v2.1.1 变更:C5 从「建议项」升级为 P1 强制,不区分串行/并行。S4 质检须输出 20+3 条完整勾选表,字数完成度 < 50% 时不得判「通过」。
评分公式
综合分 = (S + P + C + B) ÷ 4
| 层 | 计算方式 | 规则来源 |
|---|---|---|
| S | 通过条数 ÷ 6 × 10 | quality-S.md |
| P | 通过条数 ÷ 4 × 10 | quality-PLC.md §P |
| C | 通过条数 ÷ 5 × 10(C5 升级为 P1 强制,纳入计分) | quality-PLC.md §C |
| B | 通过条数 ÷ 6 × 10 | quality-PLC.md §B |
B 层当前机读项固定为
B0 / B1 / B2_1 / B2_2 / B2_C / B3,与quality-check.md、quality-PLC.md、reviewer 定义保持一致。
G 分项:门禁制
G = pass / fail(不并入综合分,单独列示)
- 任一 G 项触发红灯,该章或该轮结果不得宣称通过,即使综合分 ≥ 7.5
- G 结果必须与综合分并列展示,不能只报分不报门禁
- G 分项适用于:事实核查、版权核查、数据来源核查、定制规范核查等人工复核场景
- 通过条件:综合分 ≥ 7.5 且 G 全绿;否则为弱通过或不通过
完整 G 分项定义见
quality-check.md§1.4。
结果展示
- 先执行
node scripts/host-consume-presentation.mjs --book-root "<bookRoot>" --json,由宿主统一解析最终展示入口 workbuddy/channel-manifest.json中的presentationConsumer是宿主结果展示入口,负责返回下一步hostAction,不是自动执行脚本- 有 HTML 时优先走
preview_url - 非 HTML 结果再走
open_result_view - 仅返回
hostAction/url/target_file不等于“已经打开”;宿主仍需实际调用preview_url/open_result_view - 需要牵引宿主启动其他 Skill、专家、内置能力或后台子任务时,使用
hostDirective合同;先执行node scripts/host-directive-contract.mjs suite --json或读取firstResponseContext.hostDirectiveContract,再由宿主执行并回传 receipt hostDirective只代表“可执行请求”,不代表服务侧已经直接启动了 Skill/Expert,也不代表自然同 binding 业务闭环已经成立- 禁止把
references/、SKILL.md、.fbs/台账当最终交付直接展示
详细规范指针
- 完整行为规范:
references/01-core/skill-full-spec.md - 场景包加载与 local-rule:
references/01-core/scene-pack-activation-guide.md - 并行治理与写入隔离:
references/05-ops/multi-agent-horizontal-sync.md - S3 写入约束(每轮文件数等):
references/05-ops/s3-write-constraints.md· 运行时提示见根目录fbs-runtime-hints.json - 搜索前置合同(机读):
references/05-ops/search-preflight-contract.json - WorkBuddy 宿主最小集成:
references/06-plugin/workbuddy-host-integration.md - 宿主牵引扩展合同:
references/06-plugin/host-directive-contract.md - 平台运维与交付链路:
references/05-ops/platform-ops-brief.md - 文档导航与联系方式:
references/01-core/skill-index.md
微信扫一扫