返回 Skill 列表
extension
分类: 开发与工程无需 API Key

1

福帮手出品 | 高质量长文档手稿工具链:书籍、手册、白皮书、行业指南、长篇报道、深度专题;支持联网查证(宿主允许时启用,离线自动降级)、S/P/C/B 分层审校、中文排版与 MD/HTML 交付。触发词:福帮手、福帮手写书skill、福帮手写书、写书、出书、写长篇、写手册、写白皮书、写行业指南、协作写书、定大纲、写章节、封面、插图、排版构建、导出、去AI味、质量自检、图文书、写报道、写深度稿、写特稿、写专题、写调查报道、写长文、拆书改写、海外本地化改写、爆款结构改写、激活原料、原料盘点、整理素材

person作者: scaplehubModelScope

福帮手出品 | 高质量长文档手稿工具链(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.mdreferences/01-lifecycle/resume-progress-card.mdreferences/02-workflows/post-draft-pack.mdreferences/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.globdeps.iconv-liteok=true
  • 对用户说话的方式:不向用户暴露 Tier/调度层/内部模块名;恢复卡约 4 行、每次最多 3 条推荐、质检用成就式文案 — 见 references/05-ops/ux-agent-playbook.md
  • 价值显式表达(全局特点):当你提到术语或文件名(如 chapter-status.mddeliverables/s0-exit-gate)时,用一句话补充「这是做什么」+「对用户有什么价值」,避免只报名词不解释。
  • 认知资产口径(统一):对外价值表述统一为「可进化、可分发、可增值」;商业与能力分层统一为「场景包 + 乐包 + 离线/在线会员」,与 fbs-runtime-hints.jsoncognitiveAsset 及首响 firstResponseContext.cognitiveAssetSnapshot 对齐,避免各处口径不一。
  • 首屏(只说「福帮手」时):先一句话状态 + 最多 3 个主选项(写新书 / 接着写 / 质检或整理素材),勿首屏平铺长菜单;需求收齐后优先「一次性汇总确认再执行」— 见 references/01-core/intake-and-routing.md(WorkBuddy 实测复盘节)。
  • 宿主与对话展示(P0):向终端用户只展示 intake-router --jsonfirstResponseContext.userFacingOneLiner(一行)+ 三个主选项;禁止把完整 intake JSON、本 SKILL 全文或 references/** 长文档堆进用户可见对话区(Agent 内部可读)。恢复后不要无目的地 list_dir 整个 .fbs/(百级文件只会制造噪音);例外:可用 list_dir 仅列书稿根以确认是否存在 .fbs/ 子目录(见下条);仅在用户要看结构/排障时再按需深入列目录。
  • 项目锚定先行(P0):执行 intake-router 时若返回 projectAnchor.status=ambiguous,表示检测到多个候选项目根目录;在用户确认 bookRoot 前,禁止读取任意 .fbs/* 内容。先让用户确认路径,再用该路径重跑 intake-router
  • 渐进披露与场景包坐标(三波收口)firstResponseContext.scenePackCoordinate 仅提供 scenePackIdreferences/scene-packs/<id>.md锚点相对路径,不在首响向用户朗读全文;进入对应写作/质检阶段再 read_filesession-resume-brief.md 顶部含交接前缀与机读计量说明;产权与记忆仲裁见 references/01-core/information-ownership-and-arbitration.md
  • 宿主工具盲区(复盘 P0):部分宿主上 search_file 不进入 dot-directory(.fbs/.workbuddy/ 等)。检查 workbuddy-resume.jsonesm-state.mdsession-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 素材数 ≥ 赛道数×2S2 各章具备标题+目标字数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-gateS3.5 扩写前必跑 expansion-gate(含自动备份);S3.7 精修前必跑 polish-gate(含自动备份);S5/S6 交付后必同步 final-draft-state-machinereleases-registry,禁止仅写文件不登记状态。

S0 最小必填集降级方案(v2.1.1 新增,P0):若 intake-router.mjs 无法执行(Node.js 不可用或脚本报错),AI 必须 手动引导用户完成以下最小集,完成前不得进入 S3 成文

  1. author-meta.md:核心主张(1句)+ 目标读者(1句)+ 作者声音标签(1个)+ 目标字数
  2. 术语锁定记录.md:5–10 个核心术语(标准写法 + 禁用变体)
  3. character-registry.md:3–5 个预制案例人物(姓名 + 背景 + 适用场景)
  4. 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.mdesm-state.iterationPhase 可置 refinement | | S3.5 / S3.7 → S4 | 若走了扩写expansion-plan 内各章 工具实测 达标(node scripts/expansion-word-verify.mjsnode 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、场景包/乐包埋点(loadScenePackregisterBook)未经过开场路径。合规主文档: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.mjsnode 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] | 强制检查 全稿/终稿/终审稿 不含过程标注(如 待核实-MATMAT-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/reportsmidterm-* 工件迁移回 .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>0block) | | 检索知识卡产线 | 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.mdworkflow-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 分卷阅读(推荐)


场景包速查(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/<包名>.md
  • no_pack:必须显式告知“当前以通用规范执行,场景包不可用”,禁止静默降级

宿主与通道说明

双通道分轨

  • 源仓库采用 WorkBuddy / CodeBuddy 双通道
    • .codebuddy-plugin/plugin.jsoncodebuddy/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/ 优先,兼容 legacy memery/ 的双读策略。
  • 恢复链路统一以 .fbs/workbuddy-resume.json、宿主画像桥接与 Smart Memory 为准。
  • 系统级记忆 API(由宿主提供,名称以宿主实现为准,如 create_memory / update_memory / delete_memory):
    • create:新建一条宿主记忆(无既有 ID 时)。
    • update:更新已有记忆,须携带宿主分配的记忆 ID
    • delete:用户推翻、否定先前结论时删除对应条目,再视需要用 create 写入新真值。
  • 书稿级长篇状态仍以 .fbs/smart-memory/ 与脚本落盘为准;宿主记忆宜存 短摘要、可检索关键词,与 team-lead 中「关键时刻写宿主知识库」规则一致。

已知限制与执行边界

入口去术语化

首响优先说人话,先说明“先整理材料 / 先明确主题 / 先一起找方向”,不要把 S0WP1虚拟书房 等内部术语直接甩给用户。

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:附加备注;未传时为 null
  • files.resumeCard / files.memoryBrief / files.memorySnapshot:实际落盘路径
  • snapshotSummary.currentStage / bookTitle / nextSuggested / wordCount / chapterCount / completedCount:恢复摘要字段
  • sessionChangeSummary:git 可用时含 changedFiles(与恢复卡钉住同一份列表)
  • userMessage:给用户的标准恢复提示(git 有变更时另附一行「可核对变更路径 N 条」)
  • 恢复卡 .fbs/workbuddy-resume.jsonlastActionnextRecommendations(与 nextSuggested 同义)、modifiedFiles(git 可用时),供杜氏类审计要求的「退出可量化、下次可续」

随后再回复用户:已记录当前状态,下次输入“福帮手”可继续。只有用户明确说“不保存”,才允许跳过写盘直接退出。

兜底(宿主未执行脚本时):若无法运行 session-exit,至少人工更新 workbuddy-resume.jsonlastActionmodifiedFiles(或 session-resume-brief.md 中写明本次改动文件),避免再次出现「改了稿但恢复卡为空」。

规模与质检策略(合并口径)

单一真源references/05-ops/scale-tiers.json(写作策略档位 + xl-project-init 成稿字符分档)。脚本:scripts/lib/scale-tiers.mjsnode scripts/xl-project-init.mjsnode 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.mdquality-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/ 台账当最终交付直接展示

详细规范指针