{"id":"199295f0-955b-4d5b-abb9-8ad428ad8017","entityType":"agent","slug":"clawhub-duhongchao-fbsir-fbs-bookwriter","name":"FBS-BookWriter","canonicalUrl":"https://www.xpersona.co/agent/clawhub-duhongchao-fbsir-fbs-bookwriter","canonicalPath":"/agent/clawhub-duhongchao-fbsir-fbs-bookwriter","generatedAt":"2026-10-10T14:54:09.617Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T11:41:30.061Z","emptyReason":null},"description":"FBS 福帮手长文档写作：书/手册/白皮书/长篇报道全流程；Node 脚本驱动 intake、会话恢复、S/P/C/B 质检与 MD/HTML 交付。用户提及写书、出书、章节、大纲、素材、质检、导出、扩写、退出保存时启用。 Skill: FBS-BookWriter Owner: duhongchao-fbsir Summary: FBS 福帮手长文档写作：书/手册/白皮书/长篇报道全流程；Node 脚本驱动 intake、会话恢复、S/P/C/B 质检与 MD/HTML 交付。用户提及写书、出书、章节、大纲、素材、质检、导出、扩写、退出保存时启用。 Tags: book:2.1.2, fbs:2.1.2, latest:2.1.2, longform:2.1.2, manuscript:2.1.2, openclaw:2.1.2, writing:2.1.2 Version history: v2.1.2 | 2026-04-16T23:49:11.256Z | user OpenClaw 通道 v2.1.2 Archive index: Archive v2.1.2: 452 files, 1366534 bytes Files: _plugi","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.5K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s17efgbsdhwhb8aadtw87g7ht184zsfv:fbs-bookwriter","sourceUrl":"https://clawhub.ai/duhongchao-fbsir/fbs-bookwriter","homepage":"https://clawhub.ai/duhongchao-fbsir/skills/fbs-bookwriter","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/duhongchao-fbsir/fbs-bookwriter","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/duhongchao-fbsir/skills/fbs-bookwriter","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":63,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"FBS 福帮手长文档写作：书/手册/白皮书/长篇报道全流程；Node 脚本驱动 intake、会话恢复、S/P/C/B 质检与 MD/HTML 交付。用户提及写书、出书、章节、大纲、素材、质检、导出、扩写、退出保存时启用。 Skill: FBS-BookWriter Owner: duhongchao-fbsir Su"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T11:41:30.061Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T11:41:30.061Z","emptyReason":null},"stars":null,"forks":null,"downloads":1458,"packageName":null,"latestVersion":"2.1.2","tractionLabel":"1.5K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T11:41:30.061Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T11:41:30.061Z","lastCrawledAt":"2026-10-10T11:41:30.061Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T11:41:30.061Z","lastVerifiedAt":null,"highlights":[{"version":"2.1.2","createdAt":"2026-04-16T23:49:11.256Z","changelog":"OpenClaw 通道 v2.1.2","fileCount":452,"zipByteSize":1366534}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17efgbsdhwhb8aadtw87g7ht184zsfv:fbs-bookwriter","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-duhongchao-fbsir-fbs-bookwriter/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-duhongchao-fbsir-fbs-bookwriter/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-duhongchao-fbsir-fbs-bookwriter/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-duhongchao-fbsir-fbs-bookwriter/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-duhongchao-fbsir-fbs-bookwriter/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-duhongchao-fbsir-fbs-bookwriter/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T14:54:09.615Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-duhongchao-fbsir-fbs-bookwriter/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-duhongchao-fbsir-fbs-bookwriter/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-duhongchao-fbsir-fbs-bookwriter/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-duhongchao-fbsir-fbs-bookwriter/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T11:41:30.061Z","emptyReason":null},"readme":"Skill: FBS-BookWriter\n\nOwner: duhongchao-fbsir\n\nSummary: FBS 福帮手长文档写作：书/手册/白皮书/长篇报道全流程；Node 脚本驱动 intake、会话恢复、S/P/C/B 质检与 MD/HTML 交付。用户提及写书、出书、章节、大纲、素材、质检、导出、扩写、退出保存时启用。\n\nTags: book:2.1.2, fbs:2.1.2, latest:2.1.2, longform:2.1.2, manuscript:2.1.2, openclaw:2.1.2, writing:2.1.2\n\nVersion history:\n\nv2.1.2 | 2026-04-16T23:49:11.256Z | user\n\nOpenClaw 通道 v2.1.2\n\nArchive index:\n\nArchive v2.1.2: 452 files, 1366534 bytes\n\nFiles: _plugin_meta.json (5390b), assets/books.config.mjs (2989b), assets/build.mjs (29318b), assets/style.css (12984b), assets/template-fallback.html (2071b), CHANGELOG.md (27330b), docs/history/README.md (973b), docs/history/SMART-MEMORY-ARCHITECTURE-v2.0.2.md (13311b), docs/history/version-baseline-v2.1.1.md (2451b), docs/history/version-baseline-v2.1.2.md (2481b), fbs-runtime-hints.json (11189b), package.json (15886b), README-v2.1.2.md (1924b), README.md (1167b), references/01-core/brand-platform-convention.md (5070b), references/01-core/documentation-layers.md (5933b), references/01-core/execution-contract-brief.md (4082b), references/01-core/expansion-fact-tagging.md (784b), references/01-core/information-ownership-and-arbitration.md (2008b), references/01-core/intake-and-routing.md (27381b), references/01-core/intent-canonical.generated.md (1594b), references/01-core/intent-canonical.json (5105b), references/01-core/intent-capability-map.md (2587b), references/01-core/memory-layer-matrix.md (2235b), references/01-core/offline-online-upgrade-guide.md (4169b), references/01-core/outline-freeze.md (1583b), references/01-core/qc-agent-briefing-template.md (2914b), references/01-core/runtime-mandatory-contract.md (6727b), references/01-core/s0-material-phase-guard.md (5317b), references/01-core/s3-expansion-phase.md (7870b), references/01-core/s3-refinement-phase.md (1436b), references/01-core/scene-pack-activation-guide.md (6879b), references/01-core/section-3-workflow.full.md (127995b), references/01-core/section-3-workflow.md (2873b), references/01-core/section-4-commands.md (14223b), references/01-core/section-6-tech.md (9656b), references/01-core/section-8-onboarding.md (20973b), references/01-core/section-nlu.md (6288b), references/01-core/section-s6-transformation.md (17828b), references/01-core/session-protocols.md (12591b), references/01-core/skill-authoritative-supplement.md (16390b), references/01-core/skill-cli-bridge-matrix.md (2880b), references/01-core/skill-full-spec.md (6157b), references/01-core/skill-index.md (12861b), references/01-core/ux-optimization-rules.md (3596b), references/01-core/workbuddy-agent-briefings.md (20749b), references/01-core/workflow-volumes/workflow-s0.md (11433b), references/01-core/workflow-volumes/workflow-s1.md (8828b), references/01-core/workflow-volumes/workflow-s2.5.md (3706b), references/01-core/workflow-volumes/workflow-s2.md (3620b), references/01-core/workflow-volumes/workflow-s3-closure.md (2608b), references/01-core/workflow-volumes/workflow-s3-core.md (11636b), references/01-core/workflow-volumes/workflow-s3-writing-guide.md (14929b), references/01-core/workflow-volumes/workflow-s3.md (1734b), references/01-core/workflow-volumes/workflow-s4.md (5316b), references/01-core/workflow-volumes/workflow-s5.md (5559b), references/01-core/workflow-volumes/workflow-s6.md (2110b), references/02-quality/abbreviation-audit-lexicon.json (504b), references/02-quality/ai-pattern-lexicon.json (13587b), references/02-quality/book-level-consistency.md (3618b), references/02-quality/citation-format.md (3106b), references/02-quality/cross-chapter-consistency.md (8256b), references/02-quality/genre-completion-checklist.md (1203b), references/02-quality/metrics.md (7409b), references/02-quality/quality-AI-scan.md (5893b), references/02-quality/quality-check.md (14577b), references/02-quality/quality-PLC.md (15860b), references/02-quality/quality-S.md (11204b), references/02-quality/s2-imperative-lexicon.json (275b), references/02-quality/s2-quality-machine-lexicon.json (1655b), references/02-quality/s5-buzzword-lexicon.json (2297b), references/02-quality/writing-phase-alert-tiers.md (2486b), references/03-product/01-user-install-guide.md (10601b), references/03-product/04-templates.md (10579b), references/03-product/06-typography.md (7612b), references/03-product/07-ux-design.md (7933b), references/03-product/08-visual.md (7048b), references/03-product/10-case-library.md (1339b), references/03-product/fbs-value-one-pager.md (3711b), references/03-product/lexical-editor-guide.md (1916b) (+52 more)\n\nFile v2.1.2:docs/history/README.md\n\n# 历史文档索引\n\n> 历史信息用于追溯，不作为当前执行依据。当前执行以 **`2.1.2`** 基线为准。\n\n## 首读（单一口径）\n\n| 文档 | 说明 |\n|------|------|\n| [**version-baseline-v2.1.2.md**](version-baseline-v2.1.2.md) | **当前**基线与既往版本能力归纳（推荐先读） |\n| [**version-baseline-v2.1.1.md**](version-baseline-v2.1.1.md) | v2.1.1 正式发布线历史归纳（对照用） |\n\n## 保留留档（按需）\n\n| 文档 | 说明 |\n|------|------|\n| [SMART-MEMORY-ARCHITECTURE-v2.0.2.md](SMART-MEMORY-ARCHITECTURE-v2.0.2.md) | 记忆体系历史设计留档（仅追溯用途） |\n| `internal-evolution-2.0.2-to-2.1.0.md`（源码仓） | 内部演进说明（发布包默认排除） |\n| `changelog-archive-internal-lines.md`（源码仓） | 旧内部迭代长记录（发布包默认排除） |\n| `changelog-appendix-2.0.2-patch-supplement.md`（源码仓） | 旧补丁附录长记录（发布包默认排除） |\n\nFile v2.1.2:README.md\n\n# FBS-BookWriter · OpenClaw（v2.1.2）\r\n\r\n本仓库即 **OpenClaw** 通道技能**源码树**（与主项目 `npm run pack:openclaw` 产出一致），仓库根目录即为技能根：`SKILL.md`、`package.json`、`references/`、`scripts/` 等。不含 WorkBuddy / CodeBuddy 市场清单。\r\n\r\n## ClawHub\r\n\r\n- 列表页：<https://clawhub.ai/skills/fbs-bookwriter>（发布后可用）\r\n- 安装：`openclaw skills install fbs-bookwriter` 或 `npx clawhub@latest install fbs-bookwriter`，然后在技能根目录执行 `npm install`\r\n- 维护者从主仓发布：`npm run publish:clawhub`（需先执行 `npx clawhub@latest login`）\r\n\r\n## 使用方式（Git 克隆）\r\n\r\n将仓库克隆为技能目录名 **`fbs_bookwriter`**（与 `SKILL.md` 中 `name` 一致），再安装依赖：\r\n\r\n```bash\r\ngit clone https://github.com/duhongchao-Fbsir/fbs-bookwriter-openclaw.git fbs_bookwriter\r\ncd fbs_bookwriter\r\nnpm install\r\n```\r\n\r\n然后按包内 [`SKILL.md`](./SKILL.md)「安装（OpenClaw）」配置 OpenClaw 技能扫描路径，并用 `openclaw skills list` 确认加载。\r\n\r\n## 版本\r\n\r\n当前：**2.1.2**。上游主页：<https://fbs-bookwriter.u3w.com/>\n\nFile v2.1.2:releases/README.md\n\n# releases/ 目录说明\n\n> **版本口径**：**v2.1.2** 为当前上架与送审主口径；**v2.1.1** 及更早的 review 备忘作历史对照保留。更早快照在**完整源码仓**的 `archive/versions/releases/`（不随本 skill ZIP 分发）。统一版本归纳见 [`../docs/history/version-baseline-v2.1.2.md`](../docs/history/version-baseline-v2.1.2.md)。\n\n## 当前保留（含 v2.1.2 与历史对照）\n\n| 文件 | 用途 |\n|------|------|\n| [`workbuddy-integration-checklist.md`](./workbuddy-integration-checklist.md) | WorkBuddy 集成与上架前核对 |\n| [`workbuddy-review-v2.1.2.md`](./workbuddy-review-v2.1.2.md) | WorkBuddy 通道 v2.1.2 review 备忘 |\n| [`codebuddy-review-v2.1.2.md`](./codebuddy-review-v2.1.2.md) | CodeBuddy 通道 v2.1.2 review 备忘 |\n| [`workbuddy-review-v2.1.1.md`](./workbuddy-review-v2.1.1.md) | WorkBuddy 通道 v2.1.1 review 备忘（历史） |\n| [`codebuddy-review-v2.1.1.md`](./codebuddy-review-v2.1.1.md) | CodeBuddy 通道 v2.1.1 review 备忘（历史） |\n\n书稿运行时生成的 `*-release.json`、升级摘要等仍按工作流写入本目录，不在此枚举。\n\nFile v2.1.2:scripts/_deprecated/README.md\n\n# scripts/_deprecated — 废弃脚本归档目录\r\n\r\n> **归档时间**：2026-04-11（v2.0.3）  \r\n> **说明**：此目录存放已被替代或不再使用的历史脚本，保留以备查阅，不参与正常执行流程。\r\n\r\n## 归档文件说明\r\n\r\n### nlu-optimization.mjs（31.37 KB）\r\n\r\n- **归档原因**：v2.0.3 引入 Sub-Agent 声明式定义（`.codebuddy/agents/`），\r\n  `fbs-researcher.md` 的 `description` 字段可由宿主原生自动委派替代该脚本的意图识别功能。\r\n  LLM 原生意图识别与此脚本存在大量功能重叠，保留会增加约 31KB 不必要的加载体积。\r\n- **替代方案**：`.codebuddy/agents/fbs-researcher.md`（S0情报收集）\r\n\r\n### nlu-optimization-enhanced.mjs（30.14 KB）\r\n\r\n- **归档原因**：同上，为 `nlu-optimization.mjs` 的增强版，功能重叠更甚。\r\n  v2.0.3 的 12 意图群路由表（`references/01-core/intake-and-routing.md §意图群路由`）\r\n  已覆盖原有的 66 条离散指令，以更轻量的方式实现等效路由。\r\n- **替代方案**：`references/01-core/intake-and-routing.md`（意图路由规范）\r\n\r\n## 注意事项\r\n\r\n- **不要直接运行**此目录下的任何脚本，其依赖的上下文可能已不存在\r\n- **不要从主流程引用**此目录下的任何脚本\r\n- 如需恢复某个功能，请先阅读相应替代方案，评估是否真的需要回滚\n\nFile v2.1.2:scripts/README.md\n\n# FBS-BookWriter 脚本索引\n\n> **用途**：为 `scripts/` 目录提供统一导航，说明常用脚本的职责、触发条件和典型调用入口。  \n> **适用对象**：维护者、宿主 AI、需要排查或扩展 FBS 工作流的开发者。\n\n---\n\n## 目录分层\n\n| 路径 | 作用 | 何时进入 |\n|---|---|---|\n| `scripts/` 顶层 | 入口脚本、工作流脚本、质检脚本、打包脚本 | 需要直接执行 FBS 主流程时 |\n| `scripts/agents/` | 供多智能体或后台任务调用的辅助脚本 | 处理审计、简报、协同任务时 |\n| `scripts/lib/` | 共享运行时与工具库 | 修改底层能力、宿主桥接、公共函数时 |\n| `scripts/test/` | `vitest` 回归测试 | 修改规则、元数据、路由、打包逻辑后 |\n| `scripts/wecom/` | 企业微信相关桥接与投递 | 需要企业微信分发链路时 |\n| `scripts/_deprecated/` | 已弃用或兼容保留脚本 | 只在追溯历史行为或兼容旧包时进入 |\n| `archive/versions/scripts/` | 历史 `pack-v202` / `v210` 等别名脚本归档（**不可直接执行**，路径已失效） | 仅溯源旧版打包入口 |\n\n---\n\n## npm 脚本速查（与 CI 对齐）\n\n| 脚本 | 用途 |\n|------|------|\n| `npm test` | 全量 Vitest（CI 默认） |\n| `npm run test:contract` | 契约/版本/hints 快测，适合提交前首跑 |\n| `npm run test:integration` | 除契约包外的其余测试 |\n| `npm run audit:all` | P0 六段审计，**默认书根** `fixtures/ci-book-root`（与 CI 一致） |\n| `npm run audit:all:strict` | 同上 + `--strict`（与 CI **P0 audits strict** 一致） |\n| `npm run validate:runtime-hints` | 校验 `fbs-runtime-hints.json`（已含于 `pack:skill-gates`） |\n| `npm run manifest:scripts` | 生成 `scripts/generated/scripts-manifest.json`（CI 与 `evolution-gate` 前执行） |\n| `npm run clean:dist` | 删除 `dist/*-temp`、`dist/test-unzip` 等打包复检残留 |\n| `npm run clean:dist:prune` | 同上 + 删除 `dist` 内旧版 zip 及同名校验 JSON |\n| `npm run fbs:progress-snapshot` | 写出 `.fbs/progress-snapshot.md`（可选抽查） |\n\n自定义书稿根：`npm run audit:all -- --book-root <绝对或相对路径>`（后者覆盖默认）。\n\n---\n\n## 高频入口脚本\n\n### 入口 / 恢复 / 会话生命周期\n\n| 脚本 | 职责 | 典型触发 |\n|---|---|---|\n| `intake-router.mjs` | 统一首响入口；自动做宿主检测、恢复工件补写、意图路由 | 首次进入、`bookRoot` 变更、只说“福帮手/写书” |\n| `host-capability-detect.mjs` | 探测 WorkBuddy / CodeBuddy 宿主能力与 Tier1/2 可用性 | 启动前、切换宿主后、打包前校验 |\n| `workbuddy-session-snapshot.mjs` | 生成 `.fbs/workbuddy-resume.json` 恢复卡 | 阶段完成、退出前、跨会话恢复 |\n| `write-progress-snapshot.mjs` | 生成 `.fbs/progress-snapshot.md` 文本进度块（对照 UX 规则抽查，非门禁） | `npm run fbs:progress-snapshot`；阶段切换 / 章节完成后可选 |\n| `apply-book-memory-template.mjs` | 生成 Smart Memory 快照与 `session-resume-brief.md` | 首响补写、退出补写、恢复链修复 |\n| `session-exit.mjs` | 标准退出脚本；默认先保存恢复卡与摘要再退出 | 命中“退出 / 停止 / 退出福帮手” |\n| `workbuddy-user-profile-bridge.mjs` | 吸收宿主画像到当前书稿上下文 | 首响恢复、偏好同步 |\n| `release-feedback-bridge.mjs` | 汇总宿主反馈 / 提审反馈进入书稿工作面 | 提审后、回传问题时 |\n| `collect-host-diagnostics.mjs` | 收集宿主 / 乐包 / 二进制登记等诊断（路径脱敏） | 排障、策略 A 现场快照 |\n| `fbs-cleanup.mjs` | 清理过期缓存（如 stale p0-audit-report） | 门禁误阻断排障、会话前清理 |\n| `emit-upgrade-summary.mjs` | 对比旧版技能根与当前仓库，生成 `releases/upgrade-capability-summary-*.md` | 装包前后、策略 C 留档 |\n| `propose-lexicon-refresh.mjs` | 生成词表更新提案模板 | 策略 C、季度词表评审 |\n\n### 初始化 / 工作流推进\n\n| 脚本 | 职责 | 典型触发 |\n|---|---|---|\n| `init-fbs-multiagent-artifacts.mjs` | 初始化 `.fbs/`、`deliverables/`、`releases/` 三层工作面 | 新项目、新书稿、裸目录补底座 |\n| `rewrite-plan-bootstrap.mjs` | 生成拆书改写最小执行计划模板（`.fbs/rewrite-plan.md`） | 进入“拆书式改写”前锁定保留/替换/新增清单 |\n| `workflow-progressor.mjs` | 推进 S0–S6 阶段状态 | 阶段切换、自动化推进 |\n| `s3-start-gate.mjs` | S3 写稿前门禁检查 | 从大纲进入写作前 |\n| `chapter-dependency-gate.mjs` | 校验章节依赖与写作先后关系 | 多章并行、章节顺序敏感时 |\n| `save-chapter-brief.mjs` | 固化章节简报 / 写作 brief | S2 定稿、S3 开写前 |\n| `shared-knowledge-base.mjs` | 建立或更新共享知识底座 | 长书项目、多人协同时 |\n\n### 搜索 / 原料 / 记忆\n\n| 脚本 | 职责 | 典型触发 |\n|---|---|---|\n| `record-search-preflight.mjs` | 记录检索前置合同 | 进入 S0 / S1 / S2 联网检索前 |\n| `enforce-search-policy.mjs` | 校验检索记录是否满足阶段规则 | S2 / S2.5 / S3 门禁前 |\n| `link-search-ledger-to-chapters.mjs` | 将搜索记录与章节台账关联 | 证据回填、阶段复盘 |\n| `smart-memory-core.mjs` | FBS 本地记忆核心管理 | 查看偏好、写入记忆、恢复摘要 |\n| `knowledge-fetcher.mjs` | 抓取知识源并转成结构化输入 | 深度研究、知识回填 |\n| `knowledge-delta-extractor.mjs` | 比较新旧知识变化 | 连续调研、迭代更新 |\n\n### 质检 / 审校 / 审计\n\n| 脚本 | 职责 | 典型触发 |\n|---|---|---|\n| `quality-auditor-lite.mjs` | 轻量四层评分 | 常规去 AI 味、存量质检 |\n| `quality-auditor.mjs` | 机器可检项扫描 / 自动修复 | 深度质检、批量扫描 |\n| `quality-panorama-orchestrator.mjs` | Panorama / Deep 双阶段总控 | 大规模书稿、全景质检 |\n| `quality-audit-incremental.mjs` | 增量质检 | 只检查本轮修改范围 |\n| `quick-scan.ps1` | 无 Node 环境下的 PowerShell 快扫 | Windows 宿主、应急降级 |\n| `consistency-audit.mjs` | 版本/NLU/配置/SKILL 引用脚本一致性巡检 | `npm run audit:consistency`、打包前 |\n| `build-intent-canonical-assets.mjs` | 由意图单真源生成快照与文档资产 | 调整触发词/冲突矩阵后 |\n| `intent-ops-report.mjs` | 输出意图识别澄清率与低置信率治理报告 | 词典调整后、周报收口 |\n| `validate-runtime-hints.mjs` | 校验 `fbs-runtime-hints.json` 键、路径与 `package.json` 版本对齐 | `npm run validate:runtime-hints`、`pack:skill-gates` |\n| `validate-skill-frontmatter.mjs` | `SKILL.md` YAML 顶层键白名单 | `npm run validate:skill-frontmatter`、`pack:skill-gates` |\n| `fbs-doctor.mjs` | 聚合预检（frontmatter + runtime-hints + env-preflight + Node 引擎） | `npm run doctor` |\n| `ux-flow-guard.mjs` | 体验规则门禁（恢复卡、最多 3 条推荐等） | 打包前、`npm run pack:skill-gates` |\n| `audit-broken-links.mjs` | 文档链接检查 | 改文档索引、重构 references 后 |\n| `audit-pending-verification.mjs` | 待核实清单清零检查 | S5 前、交付前 |\n\n### 展示 / 交付 / 打包\n\n| 脚本 | 职责 | 典型触发 |\n|---|---|---|\n| `host-consume-presentation.mjs` | 处理宿主展示消费链路 | 交付预览、展示结果 |\n| `launch-presentation-preview.mjs` | 启动展示预览流程 | 需要本地预览 HTML / 交付物 |\n| `presentation-preview-server.mjs` | 本地预览服务器 | HTML 预览、S5 展示 |\n| `html-delivery-smoke.mjs` | HTML 交付冒烟检查 | 打包前、展示链校验 |\n| `pack-workbuddy-marketplace.mjs` | 生成 WorkBuddy 审核包 | 提审 WorkBuddy 时 |\n| `pack-codebuddy-plugin.mjs` | 生成 CodeBuddy 插件包 | 发布 CodeBuddy 通道时 |\n| `pack-release.mjs` | 默认仅生成 WorkBuddy 主包；可用 `--all` 生成三通道发布产物 | 正式发版、重打送审包 |\n| `lib/pack-skill-gates.mjs` | 打包前 Skill 全量门禁（含 vitest 契约、ux-flow、consistency-audit） | `npm run pack:skill-gates` |\n| `version-bump.mjs` | 统一版本号变更 | 发新版本前 |\n| `version.mjs` | 输出当前版本真值 | 校验版本一致性 |\n\n---\n\n## 维护类脚本分组说明\n\n- **`audit-*`**：针对特定质量问题或一致性问题的专项巡检脚本。\n- **`phase*` / `execute-phase*`**：阶段性优化、性能实验或历史改造脚本。\n- **`*optimization*` / `*enhanced*`**：优化版实现或实验性增强逻辑，修改前应先看对应测试覆盖。\n- **`workspace-*` / `plan-board.mjs` / `heartbeat-monitor.mjs`**：运行时管理、心跳和工作区治理脚本。\n\n---\n\n## Windows 与路径说明\n\n- 仓库可在 **Windows** 本地开发与在 **Linux**（如 GitHub Actions）上跑 CI；请以 **正斜杠** 或 Node 提供的 `path` 拼接路径，避免硬编码盘符。\n- `quick-scan.ps1` 等 **PowerShell 脚本** 仅在 Windows/PowerShell 环境适用；文档中若写「无 Node 时快扫」，请勿在仅 bash 的 CI 中强依赖。\n- `session-exit` / `intake-router` 等要求 **`--book-root` 指向书稿根**；在书稿子目录执行时勿假定 `cwd` 即书根。\n\n---\n\n## 修改脚本前的建议顺序\n\n1. 先确认这是**入口脚本**、**规则脚本**还是**打包脚本**。\n2. 若涉及 `SKILL.md`、`plugin.json`、`channel-manifest.json`，同步检查 `scripts/test/skill-package-consistency.test.mjs`。\n3. 若涉及质检规则，至少同步检查：\n   - `references/02-quality/quality-check.md`\n   - `references/02-quality/quality-S.md`\n   - `references/02-quality/quality-PLC.md`\n4. 若涉及退出 / 恢复链路，至少联动检查：\n   - `intake-router.mjs`\n   - `session-exit.mjs`\n   - `apply-book-memory-template.mjs`\n   - `workbuddy-session-snapshot.mjs`\n5. 修改完成后优先运行相关定向测试，再跑全量测试与打包。\n\n---\n\n## 相关入口\n\n- 文档总索引：`references/01-core/skill-index.md`\n- 技能主入口：`SKILL.md`\n- 平台运维简报：`references/05-ops/platform-ops-brief.md`\n- 发版核对清单：`references/05-ops/release-checklist.md`\n- 多智能体写入隔离：`references/05-ops/multi-agent-horizontal-sync.md`\n\nFile v2.1.2:references/01-core/brand-platform-convention.md\n\n# 品牌与平台规范（FBS × 福帮手 × 双通道宿主）\n\n> **版本**：1.3 · **日期**：2026-04-12  \n> **用途**：约束当前 `WorkBuddy Marketplace` 与 `CodeBuddy Plugin` 双通道中的品牌、平台和宿主能力表述  \n> **数据来源**：`host-capability-detect.mjs`、`workbuddy/channel-manifest.json`、`codebuddy/channel-manifest.json`\n\n---\n\n## 一、当前分发结构\n\n当前正式发布分为两条通道：\n\n- **WorkBuddy Marketplace 包**：`dist/fbs-bookwriter-v212-workbuddy.zip`\n- **CodeBuddy Plugin 包**：`dist/fbs-bookwriter-v212-codebuddy.zip`\n\n共同约束：\n\n- **用户侧品牌名**：福帮手\n- **技术标识**：FBS / FBS-BookWriter / `fbs-bookwriter`\n- **宿主真值入口**：`scripts/host-capability-detect.mjs`\n- **插件级元数据**：`.codebuddy-plugin/plugin.json`\n- **代理定义目录**：`.codebuddy/agents/`\n- **发布后反馈回流**：`scripts/release-feedback-bridge.mjs` → `.fbs/org-feedback/`\n\n> 从这一版开始，宿主能力描述统一以 **探测脚本快照 + 通道 manifest** 为准，不再允许文档各自维护一套“手工判断”。\n\n---\n\n## 二、品牌区隔规则\n\n### 2.1 名称映射\n\n| 场景 | 使用名称 | 说明 |\n|------|---------|------|\n| 与用户交互（对话、通知、通报） | **福帮手** | 中文品牌名，用户侧 |\n| 代码/技术标识符 | **FBS** / **FBS-BookWriter** / `fbs-bookwriter` | 内部技术代号 |\n| 提及宿主平台 | **WorkBuddy** / **CodeBuddy** | 只在明确说明通道差异时出现 |\n| 插件包内部元数据 | **`fbs-bookwriter`** | 与 `SKILL.md` frontmatter `name` 对齐 |\n\n### 2.2 禁止示例\n\n```text\n❌ 「当前还是单一 WorkBuddy 审核包」\n❌ 「一个包同时表示 WorkBuddy / CodeBuddy 的全部能力」\n❌ 「minimax-xlsx 是 WorkBuddy Tier1」\n❌ 「plugin.json 只是源码内参考，不需要随包交付」\n```\n\n### 2.3 正确示例\n\n```text\n✅ 「福帮手已就绪，你要写什么？」\n✅ 「当前在 WorkBuddy 通道，已检测到本地市场与已启用插件」\n✅ 「当前在 CodeBuddy 通道，默认代理是 fbs-team-lead」\n✅ 「Excel 能力当前统一走 xlsx 插件，这是唯一方案」\n```\n\n---\n\n## 三、通道能力对照表\n\n| 能力 | WorkBuddy Marketplace | CodeBuddy Plugin | 说明 |\n|------|-----------------------|------------------|------|\n| 通道清单 | `workbuddy/channel-manifest.json` | `codebuddy/channel-manifest.json` | 各自的随包真值 |\n| 插件元数据 | `.codebuddy-plugin/plugin.json` | `.codebuddy-plugin/plugin.json` | 两包都要随包交付 |\n| 代理目录 | `.codebuddy/agents/` | `.codebuddy/agents/` | 两包都要随包交付 |\n| Provider 注册表 | `.codebuddy/providers/provider-registry.yml` | `.codebuddy/providers/provider-registry.yml` | 两包共用策略真值 |\n| Tier1 本地市场 | ✅ `~/.workbuddy/skills-marketplace/` | ❌ | 仅 WorkBuddy 包使用 |\n| Tier2 宿主插件 | ✅ `~/.workbuddy/settings.json` | ✅ 宿主插件与工作区 `.codebuddy/` | 都支持，但来源不同 |\n| 默认代理 | `fbs-team-lead` | `fbs-team-lead` | 由插件元数据定义 |\n| 组织反馈回流 | ✅ | ✅ | 回流到 `.fbs/org-feedback/` |\n| XLSX 本地市场技能 | ❌ 无 `minimax-xlsx` | ❌ 无 | Excel 统一只走 `xlsx` 插件 |\n\n---\n\n## 四、运行时平台检测\n\n在入口路由或宿主能力检测时，统一使用 `scripts/host-capability-detect.mjs`：\n\n- **WorkBuddy**：检查 `~/.workbuddy`、`settings.json`、`skills-marketplace/skills/`\n- **CodeBuddy**：检查 `%APPDATA%/CodeBuddy` / `CODEBUDDY_HOME` 与当前工作区 `.codebuddy/`\n- **Fallback**：都不可用时进入 `script-only` 模式\n\n对外说明时，必须始终带上“当前通道”这一层：\n\n```text\n✅ 「当前是 WorkBuddy 包，优先走本地市场技能」\n✅ 「当前是 CodeBuddy 包，优先走插件元数据与代理目录」\n❌ 「当前宿主平台自己会判断」\n```\n\n---\n\n## 五、发布与回流规范\n\n### 5.1 打包入口\n\n- `npm run pack:workbuddy`\n- `npm run pack:codebuddy`\n- `npm run pack:release`（一次生成双通道产物）\n\n### 5.2 发布后反馈回流\n\n- 记录反馈：`node scripts/release-feedback-bridge.mjs record <bookRoot> ...`\n- 汇总反馈：`node scripts/release-feedback-bridge.mjs summary <bookRoot>`\n- 应用反馈：`node scripts/release-feedback-bridge.mjs apply <bookRoot> --feedback-id <id> ...`\n\n反馈记录必须落盘到 `.fbs/org-feedback/`，并同步回 `releases/*-release.json` 的 `organizationFeedback` 摘要。\n\n---\n\n## 六、自检清单\n\n- [ ] `SKILL.md` 是否已改成双通道分轨说明\n- [ ] `_plugin_meta.json` 是否声明 `workbuddy-marketplace` 与 `codebuddy-plugin`\n- [ ] `.codebuddy-plugin/plugin.json` 是否随包交付且默认代理为 `fbs-team-lead`\n- [ ] `workbuddy/channel-manifest.json` 与 `codebuddy/channel-manifest.json` 是否都已生成\n- [ ] `scripts/release-feedback-bridge.mjs` 是否已进入包内并可写入 `.fbs/org-feedback/`\n- [ ] 所有 XLSX 描述是否都明确为“仅有 `xlsx` 插件方案”\n\nFile v2.1.2:references/01-core/documentation-layers.md\n\n# 文档分层说明\n\n> **版本**：2.1.2\n> **更新日期**：2026-04-12\n\n---\n\n## 概述\n\nFBS-BookWriter 采用三侧分层架构：\n\n| 侧别 | 目标用户 | 主要内容 |\n|------|---------|---------|\n| 🟢 用户侧 | 写作者 / 主编 | 技能入口、工作流、质量规则、交付说明 |\n| 🔵 企业侧 | 机构 / 组织协作 | 场景包、协同机制、组织级执行规范 |\n| ⚙️ 平台侧 | 维护者 / CI / 发布 | 打包、分发、构建、审核、运行守卫 |\n\n---\n\n## 🟢 用户侧（本包默认包含）\n\n### 核心入口\n\n- `SKILL.md` - 技能主入口与执行速查卡\n- `references/01-core/skill-full-spec.md` - 完整规范\n- `references/01-core/section-3-workflow.md` - 工作流总入口\n- `references/01-core/workflow-volumes/` - 各阶段分卷执行规范\n- `references/01-core/intake-and-routing.md` - 快速起步与路径分发\n- `references/01-core/session-protocols.md` - 四类会议机制\n\n### 质量体系\n\n- `references/02-quality/quality-check.md` - 评分体系权威入口\n- `references/02-quality/quality-PLC.md` - P / C / B 规则权威源\n- `references/02-quality/quality-S.md` - S 层句级规则\n- `references/02-quality/s5-buzzword-lexicon.json` - buzzword 词库\n- `references/02-quality/abbreviation-audit-lexicon.json` - 缩写审计词表（**当前本包已包含**）\n\n### 价值与培训（可选）\n\n- `references/03-product/fbs-value-one-pager.md` - 用户向一页纸：能力边界、触发词、离线/在线（与 `SKILL.md` 一致）\n\n### 运行与交付\n\n- `scripts/quality-auditor-lite.mjs` - 轻量质量审计器\n- `scripts/init-fbs-multiagent-artifacts.mjs` - 虚拟书房初始化\n- `scripts/host-capability-detect.mjs` - 宿主能力快照\n- `scripts/host-consume-presentation.mjs` - 结果展示消费入口\n- `assets/build.mjs` - Markdown → HTML / PDF / DOCX 构建\n\n---\n\n## 🔵 企业侧（按授权范围提供）\n\n以下内容可能出现在企业侧或组织协作包中，是否随当前用户包分发以实际授权为准：\n\n- `references/04-business/scene-pack-spec.md` - 场景包规范\n- `references/04-business/team-protocol.md` - 协同机制\n- `references/01-core/workbuddy-agent-briefings.md` - 多智能体委派话术\n- `references/01-core/execution-contract-brief.md` - 执行契约简报\n\n> 如需企业侧扩展，请联系 **商务 / 授权**：`unique@u3w.com`\n\n---\n\n## ⚙️ 平台侧（维护 / 发布 / CI）\n\n- `.codebuddy-plugin/plugin.json` - CodeBuddy 插件元数据\n- `.codebuddy/providers/provider-registry.yml` - Provider 注册表\n- `.codebuddy/agents/` - team-lead / researcher / writer / reviewer agents\n- `codebuddy/channel-manifest.json` - CodeBuddy 通道清单\n- `workbuddy/channel-manifest.json` - WorkBuddy 通道清单\n- `scripts/pack-workbuddy-marketplace.mjs` - WorkBuddy 审核包入口\n- `scripts/pack-release.mjs` - 三通道打包入口（WorkBuddy + CodeBuddy + OpenClaw）\n- `references/05-ops/release-checklist.md` - 发版与产物核对清单\n- `dist/` - 打包产物与 verification 报告目录\n\n### 持续改进与机读约定（与 `fbs-runtime-hints.json` 对齐）\n\n- `references/05-ops/fbs-continuous-improvement.md` — 执行轨迹（JSONL）、演进提案、`evolution-gate` 与发版同级\n- `references/05-ops/fbs-context-compression.md` — 上下文压缩策略边界\n- `references/05-ops/fbs-auxiliary-tasks.md` — 辅助任务用途与路由约定\n- `fbs-runtime-hints.json` — 顶层键 `trace` / `bookIndex` / `evolutionGate` / `contextCompression` / `auxiliaryTasks`；变更时需同步 `scripts/validate-runtime-hints.mjs` 中 `REQUIRED_TOP` 与 `PATH_CHECKS`，并跑 `npm run validate:runtime-hints`\n- `scripts/generated/scripts-manifest.json` — `npm run manifest:scripts` 生成；`npm run gate:evolution` 校验存在性\n\n### 分发产物说明\n\n- `dist/` 为**分发产物目录**，可由本地或 CI 构建生成\n- 常用命令：\n  - `npm run pack:workbuddy`\n  - `npm run pack:release`\n- 送审 / 验收以 `dist/*.verification.json` 为最终校验真值\n\n---\n\n## 通道与宿主说明\n\n| 通道 | 主清单 | 说明 |\n|------|--------|------|\n| WorkBuddy | `workbuddy/channel-manifest.json` | 审核包、Tier1 本地市场能力 |\n| CodeBuddy | `.codebuddy-plugin/plugin.json` + `codebuddy/channel-manifest.json` | 插件包、Tier2 宿主插件能力 |\n\n> 源仓库采用 **WorkBuddy / CodeBuddy 双通道分轨**，不是 WorkBuddy-only 单通道。\n\n### 记忆分层与宿主策略（A / B / C）\n\n- 真值与契约：[`memory-layer-matrix.md`](./memory-layer-matrix.md)（与 `runtime-mandatory-contract.md` §5 配套）\n- Teams 与收件箱：[`../05-ops/teams-inbox-mapping.md`](../05-ops/teams-inbox-mapping.md)\n- 词表演进：[`../05-ops/lexicon-governance.md`](../05-ops/lexicon-governance.md)\n\n### 质检分层与 CI 建议\n\n| 层级 | 脚本 / 入口 | 适用场景 |\n|------|-------------|----------|\n| 轻量（默认） | `quality-auditor-lite`（`npm run quality:audit`） | 日常写作、单文件快速检查；不扫描 `references/**` |\n| 全量（enforce） | `quality-auditor` + `references/**/*.md`（`npm run quality:audit:full`） | 发布前、PR、CI；与 `pack:release` 产物一致时需以 `dist` 内校验为准 |\n\n- **CI**：建议至少跑 `npm test`、`npm run pack:skill-gates`（内含 `validate-runtime-hints`）、`npm run quality:audit:full`；`run-p0-audits --strict` 与 fixture 书根见 `fixtures/ci-book-root/`（含 `next-action.md`、`search-ledger.jsonl`、`writing-notes/pending-verification.md` 等，避免 UX / P0 严模式跳过或失败）。\n- **断链审计**：以 `npm run pack:release` 生成的 `dist` 为准；若只改源文件未打包，可先 `npm run build:check`。\n\n---\n\n## 联系方式\n\n- **技术支持**：`dev@u3w.com`\n- **商务 / 授权**：`unique@u3w.com`\n- **主页**：`https://fbs-bookwriter.u3w.com/`\n- **公司**：悟空共创（杭州）智能科技有限公司\n\nFile v2.1.2:references/01-core/execution-contract-brief.md\n\n# 执行契约简报（宿主 × 模型 × workspace）\r\n\r\n**版本**：2.0.2 · **层级**：L0' 补充（与 `SKILL.md`、`intake-and-routing.md` 同读）\r\n\r\n## 1. 各方职责边界\r\n\r\n| 角色 | 必须保证 |\r\n|------|----------|\r\n| **宿主（IDE / WorkBuddy 等）** | 提供可验证的 workspace 写入、可用 CLI（Node）及网络检索能力声明；不虚构声称已跑过某脚本（unless 实际执行过） |\r\n| **模型（本 Skill 驱动）** | 按 `WP1 → 搜索前置合同 → WP2` 的顺序推进；状态宣告、台账写入与结果展示以当前 `bookRoot` 为准，不依赖对话内易失记忆 |\r\n| **用户 / 主编** | 指定本书根目录、触发门禁与合稿；对豁免项书面确认（文体豁免、时间范围约定等） |\r\n\r\n## 2. 双工作面合同（WP1 / WP2）\r\n\r\n| 工作面 | 发生时机 | 面向用户如何说 | 内部约束 |\r\n|--------|----------|----------------|----------|\r\n| **WP1 起步工作面** | `INTAKE` 首响 | 先说「整理材料 / 明确主题 / 一起找方向」 | 不把「虚拟书房 / 路径A/B/C / S0」当首句入口术语 |\r\n| **WP2 书稿工作面** | 锁定路径后、进入 `INTAKE → RESEARCH` | 说明「资料、进度、交付都在当前工作区」 | 将 `.fbs/`、`deliverables/`、`releases/` 作为首个可用工作面 |\r\n\r\n**绑定规则**：\r\n\r\n1. 先在 `WP1` 用日常语言锁定用户入口。\r\n2. 再宣告搜索前置合同（为什么查 / 查什么 / 查完去哪一步 / 不能联网怎么办）。\r\n3. 最后进入 `WP2`，把三层 workspace 与当前阶段动作绑定起来。\r\n\r\n## 3. 搜索前置合同\r\n\r\n进入任意 `S0/S1/S2` 调研或章节前置检索前，必须在对话里先说清四件事：\r\n\r\n- **为什么现在要查**：本轮检索要解决什么不确定性或推进哪一步。\r\n- **要查哪几类内容**：如主题现状、同类内容、目标读者、时间基准。\r\n- **查完后直接进入哪一步**：例如进入大纲、素材盘点或章节写作。\r\n- **离线如何降级**：无法联网时要显式说明为离线降级，而不是静默改用模型知识。\r\n\r\n推荐口径：\r\n\r\n> 我先查一下当前主题的同类内容、目标读者和时间基准，查完就给你整理出下一步写法；如果现在不能联网，我会明确标注为离线降级。\r\n\r\n## 4. workspace 真值与治理边界\r\n\r\n以下路径为**跨会话可审计**真相；对话摘要、artifact 文档、宿主记忆不可替代：\r\n\r\n| 路径/范围 | 角色 | 说明 |\r\n|-----------|------|------|\r\n| `.fbs/` | **内部真值层** | ESM 状态、检索台账、章节状态、待核实项等过程真值 |\r\n| `deliverables/` | **对外交付层** | `md/html/package` 等用户可见交付物 |\r\n| `releases/` | **发布准备层** | `*-release.json` 与发布映射入口 |\r\n| `brain/<conversation-id>/` | **artifact 层** | 过程性报告/评审稿，可展示但**不得充当项目真值** |\r\n| `.workbuddy/memory` / 宿主记忆 | **参考层** | 只读偏好与背景，不得覆盖本书 workspace 状态 |\r\n\r\n首个可用工作面成立条件：\r\n\r\n- `.fbs/`、`deliverables/`、`releases/` 三层目录已存在；\r\n- `.fbs/esm-state.md`、`.fbs/规范执行状态.md`、`.fbs/chapter-status.md` 可作为状态入口；\r\n- 对用户的说明先是「当前工作区已就绪」，再按需介绍“虚拟书房”这一术语。\r\n\r\n## 5. 原子性与宣告\r\n\r\n- 状态切换须满足 `search-policy.json` 的 `esmAnnouncementAtomicity`（旧→新、原因、自检出口、下一步同次输出）。\r\n- P0 阻断条件见 `p0-cli-map.md` 的 `p0AutomationIndex`；脚本存在 ≠ 已执行，以实际命令与退出码为准。\r\n- 若声称已进入 `WP2` 或已完成搜索前置合同，必须能在对话文本与 workspace 状态文件中找到对应证据。\r\n\r\n## 6. 相关条文\r\n\r\n- 入口路由与首响约束：`references/01-core/intake-and-routing.md`\r\n- 多 Writer 磁盘协同：`references/05-ops/multi-agent-horizontal-sync.md`\r\n- 承诺与工具对照：`references/05-ops/promise-code-user-alignment.md`\n\nFile v2.1.2:references/01-core/expansion-fact-tagging.md\n\n# 扩写与精修中的事实标注（MAT / 待证实）\r\n\r\n> **配套**：[`s3-expansion-phase.md`](./s3-expansion-phase.md) · [`quality-PLC.md`](../02-quality/quality-PLC.md) §C\r\n\r\n---\r\n\r\n## 规则\r\n\r\n1. **新增**数据、引语、可核验案例：须能对应 `material-library.md` 或检索 ledger，正文用 **`[MAT-xxx]`** 或团队约定编号。\r\n2. **无素材支撑**但需保留的表述：标 **「作者观察」** 或 **「行业共识（待补证）」**，不得伪装为已引用事实。\r\n3. 精修阶段 **删除** 无法标注又声称可核验的句子，或改为上述两类之一。\r\n\r\n## 扩写后抽检\r\n\r\n- 运行 `quality-auditor-lite` 时关注 **事实无出处** 类告警；C 层人工勾选「新增段是否均有来源或已标待证实」。\n\nFile v2.1.2:references/01-core/information-ownership-and-arbitration.md\n\n# 信息产权、场景包坐标与记忆仲裁\r\n\r\n> **目的**：把「用户话 / 磁盘真值 / 系统策略」三类信息分开，避免模型把摘要、画像或场景包规则当成用户本轮新指令。与 `fbs-runtime-hints.json`、`session-resume-brief` 机读计量、`intake-router` 的 `compliance` 字段对齐。\r\n\r\n---\r\n\r\n## 1. 三类产权\r\n\r\n| 类别 | 典型来源 | 处理原则 |\r\n|------|----------|----------|\r\n| **用户主权** | 当前气泡、当轮确认 | 最高优先级；摘要与记忆不得覆盖 |\r\n| **世界状态** | `.fbs/`、`chapter-status.md`、已交付文件 | 以磁盘为准；变更需写入或经用户确认 |\r\n| **系统策略** | 场景包、`SKILL.md` 流程、质检规则 | 只读引用；不冒充用户命令 |\r\n\r\n---\r\n\r\n## 2. 场景包坐标（单先验）\r\n\r\n- **推断**：`intake-runtime-hooks.mjs` 的 `inferScenePackIdFromText` → `scenePackId`。\r\n- **主规则**：`references/scene-packs/<scenePackId>.md`\r\n- **质量补丁（L3）**：`references/scene-packs/<scenePackId>-local-rule.md`\r\n- **首响**：不向用户朗读全文；`intake-router` JSON 的 `firstResponseContext.scenePackCoordinate` 仅提供 **相对路径锚点**，进入对应阶段再 `read_file`。\r\n\r\n---\r\n\r\n## 3. 记忆仲裁（冲突时听谁）\r\n\r\n1. **用户最新明确陈述** 覆盖旧摘要与旧记忆条目。\r\n2. **本书** `.fbs/smart-memory/` 与 **`session-exit` 原子写** 的恢复卡 / brief，优先于未落盘的闲聊推断。\r\n3. **宿主系统级记忆**（如 `~/.workbuddy`）与本书冲突时：**以用户当轮确认 + 本书写盘** 为准（见 `fbs-runtime-hints.json` → `hostMemory`）。\r\n\r\n---\r\n\r\n## 4. 与上下文引擎的关系\r\n\r\n- `runtime.contextEngine.scenePackId` 与场景包推断一致时，**压缩条数/字数上限**为该坐标下的策略；见 `scripts/lib/context-engine.mjs`。\r\n- 若未跑 `intake-router`，`session-resume-brief.md` 顶部仍提示以 **最近一次 intake JSON** 的 `policy` 为准。\n\nFile v2.1.2:references/01-core/intake-and-routing.md\n\n# 快速起步与路由（Intake & Routing）\n\n> **版本**：2.1.2（与 SKILL.md frontmatter version 对齐）\n> **用途**：定义 FBS-BookWriter v2.1.2 **快速起步三条路径**，帮助 AI 在首轮就把用户推进到正确阶段，降低空转追问。本文件是 Skill 的核心入口文件。\n\n> **重要约束**：本文件和 ESM 的 INTAKE 状态直接绑定。进入 INTAKE 后请结合 `section-3-workflow.md` 的 RESEARCH 相关步骤执行，不要在此阶段跳转到写作。\n\n**环境预检落盘**：`intake-router --intent inspect`（或任意 intent 加 `--with-env-preflight`）会在书稿 `.fbs/env-preflight.json` 刷新 `env-preflight.mjs` 的 JSON 输出，供宿主展示「环境受限」；失败**不阻断** intake（见 `section-6-tech.md`）。\n\n---\n\n## ⚡ 新用户入口（P0-2 修复：S0.5 先行）\n\n> **P0 强制规则**：**首次使用本 Skill 的用户，必须先走 S0.5 新手引导，再进入路径判断。** 已有书稿或已建虚拟书房的用户可直接跳过 S0.5，进入路径判断。\n\n**新用户判断条件**（满足任一即为新用户）：\n- 当前目录无 `.fbs/` 目录（虚拟书房未初始化）\n- 当前目录无 `chapter-status.md`\n- 用户明确说\"第一次用\"或\"不知道怎么开始\"\n\n**新用户流程**：\n```\nS0.5 新手引导（2轮对话）\n  第1轮（轻松开场）：\n    「想写什么呢？随便说说就行——\n      比如\"想写一本理财入门书\"、\n      \"有一堆访谈记录想整理成报告\"、\n      \"想写白皮书但不知道怎么开始\"都可以。\n      手头有没有现成的材料也可以顺便说一声。」\n  第2轮：AI 根据回答说明当前打算怎么做（用日常语言），直接开始；\n          不要求用户确认，不展示系统术语（虚拟书房/路径A/B/C/S0）\n  → 完成后进入路径判断（继续阅读本文件后续内容）\n```\n\n**续写用户（老用户）流程**：直接读取 `.fbs/chapter-status.md`，确认当前进度，说明下一步，**不重复引导**。\n\n---\n\n## ⚡ 触发词 → 路径快速映射（P0-3 修复：桥接声明）\n\n| 触发词 / 用户说法 | 直接路由 | 说明 |\n|-----------------|---------|------|\n| 激活原料 / 原料盘点 / 整理素材 | **路径 A** | 有素材信号，跳过 WP1 询问，直接进入素材盘点 |\n| 我有文档/PDF/资料/笔记/访谈 | **路径 A** | 同上 |\n| 写书/写手册/写白皮书 + 有主题 | **路径 B** | 有主题无素材，直接进入情报收集 |\n| 写书/写长篇（无其他信息） | **路径 C** | 无信号，触发新手引导或探索问卷 |\n| 继续写稿 / 接着写 / 继续上次 | **续写路径** | 读取 `chapter-status.md`，从上次断点继续 |\n| 质量自检 / 去AI味 | **质检入口** | 直接进入 `quality-auditor-lite.mjs` 执行，不重走路径判断 |\n\n> **规则**：收到\"激活原料/原料盘点/整理素材\"等素材类触发词时，**禁止走完整 WP1 问询流程**，直接进入路径 A 素材盘点，第一句说「好，我们先整理你的材料」。\n\n---\n\n## ⚡ 续写路径完整路由（UX-P1-02 修复：补全断点恢复逻辑）\n\n> 触发词：「继续写稿」「接着写」「继续上次」「继续第X章」「还差几章」\n\n**完整续写流程**：\n\n```\nStep 1：读取进度台账\n  → 优先读 .fbs/workbuddy-resume.json（v2.1.1 会话快照，含 currentStage/nextSuggested/wordCount）\n    如快照存在且 updatedAt 在 24 小时内：直接使用快照信息跳至 Step 4，无需读取全部文件\n  → **时间窗对照（避免与记忆摘要混淆）**  \n    - **恢复卡** `workbuddy-resume.json`：**24 小时内**视为「热恢复」，intake 可优先减少全量扫盘。  \n    - **记忆摘要** `.fbs/smart-memory/session-resume-brief.md`：**48 小时内**在 team-lead 首响中优先加载（见 `fbs-team-lead.md`）。二者为不同工件，阈值不同是**刻意设计**，不是文档冲突。  \n  → 次优先读 .fbs/chapter-status.md（内部真值层）\n  → 若不存在，读根目录 chapter-status.md\n  → 若均不存在，说明书房未初始化，提示先运行 init-fbs-multiagent-artifacts.mjs\n\nStep 2：确认当前断点\n  → 找到状态为 in_progress / writing / partial 的章节 → 这是\"断点章节\"\n  → 若无断点章节，找最后一个 completed 章节后的第一个 pending 章节\n\nStep 3：加载断点章节上下文\n  → 读 .fbs/book-context-brief.md（书稿背景简报）\n  → 读 .fbs/smart-memory/session-resume-brief.md（记忆摘要，若存在）\n  → 读断点章节文件（若存在）\n\nStep 4：向用户说明状态，直接告知而不追问\n  AI 首响模板（自然语言，有温度）：\n  「上次写到第[N]章《[章节名]》，[已有X字/刚开了个头/写到一半]。\n   我接着写，从[具体段落/位置]继续。\n   [如有术语锁定：有 N 个专有名词已锁定，风格保持一致。]」\n\nStep 5：直接开始写，不等待用户确认\n  → 按 section-3-workflow.md §S3 执行章节写作\n  → 写完当章后，由 team-lead 统一更新 .fbs/chapter-status.md\n  → 只有遇到结构分歧（如章节顺序需要调整）或原料明确不足时，才暂停说明，其余情况直接推进\n```\n\n**断点章节定位优先级**：\n1. 状态 `in_progress`（最高优先级，明确在写）\n2. 状态 `partial`（已有内容但未完成）\n3. 状态 `pending`（排在已完成章节之后的第一个）\n4. 若全部 `completed`，说明书稿已完成，提示进入 S5/S6 交付阶段\n\n**记忆恢复**：\n- 若 `.fbs/smart-memory/session-resume-brief.md` 存在，将其内容纳入上下文\n- 若不存在，可运行 `node scripts/apply-book-memory-template.mjs --book-root <本书根>` 生成\n- 不要求用户手动操作；新会话默认先做三级恢复检测，用户说「继续上次」时直接进入本续写路径\n\n---\n\n## WorkBuddy 实测复盘（2026-04-13）：首屏 · 确认 · 退出\n\n> 来源：宿主侧会话复盘；与 `intake-router` 的 `firstResponseContext.openingGuidance` 对齐。\n\n### 首屏三秒（P0）\n\n- 用户只说「福帮手」时：**不要**首屏平铺 5 条以上同级菜单。\n- 先给**一句话状态** + **最多 3 个主动作**：写新书、接着写、质检或整理素材；更多能力等用户说「其他」再展开。\n- **宿主展示**：优先使用 `intake-router --json` → `firstResponseContext.userFacingOneLiner`（已含「这次想做什么？」），**禁止**把完整 JSON 或 SKILL 规范全文塞进用户可见区。\n- **禁止元指令泄露**：勿向用户复述「按版本规范」「JSON 输出」「不重复读文件」「干净首屏」等——属 Agent/宿主内部约定，**不是**用户文案。\n- **禁止**在恢复检测后无目的地 `list_dir` 整个 `.fbs/`（动辄上百文件，仅增加噪音）；用户要看目录结构或排障时再按需列举。\n- 与 [`ux-optimization-rules.md`](./ux-optimization-rules.md)「首屏三秒原则」一致。\n\n### 文件工具与 dot-directory（2026-04-14 复盘，P0）\n\n> 来源：WorkBuddy Windows 会话复盘（`search_file` 对 `.fbs/` 内文件返回 Found 0，但磁盘上文件存在）。\n\n- 在部分宿主上 **`search_file` 默认不进入**以 `.` 开头的目录（`.fbs/`、`.workbuddy/` 等）。因此 **禁止**用 `search_file` 探测 `workbuddy-resume.json`、`esm-state.md`、`session-resume-brief.md` 是否存在于书稿下——会得到 **0 结果**，易误判为「未检测到 FBS 工作区」。\n- **正确做法**：\n  - **读取台账**：对固定相对路径使用 **`read_file`**（例如 `<bookRoot>/.fbs/workbuddy-resume.json`）；不存在时再走无恢复卡分支。\n  - **确认是否有 `.fbs/`**：对 **书稿根** `list_dir`（非递归 `.fbs` 内部），看列表中是否含 `.fbs`。\n- **禁止**：仅凭 `search_file` → Found 0 得出「未初始化」结论；须换工具复核。全文见 [`skill-full-spec.md`](./skill-full-spec.md) §2.4。\n\n### 一次性确认 + 分步执行（P0）\n\n- 书名 / 字数 / 读者 / 结构等**信息收齐后**，先**汇总成清单**，请用户说「开始」或「改第几项」再进入长链路；避免连续多轮只让用户选「下一步选哪个数字」。\n- 小决策（如改一个词）可直接执行后汇报，不必再开一轮总确认。\n\n### 退出前软询问（P0）\n\n- 用户说「退出 / 先到这」时：可先问**是否还有其他需要**或说明**进度会保存**，再执行 `session-exit`；见 `session-exit` JSON 的 `agentGuidance.beforeExit`。\n\n### 意图外输入（P1）\n\n- **状态类**（乐包余额、进度、文件在哪）：可直接简短回答，再回到主流程。\n- **探索类**（某工具是什么）：先澄清「想了解概念」还是「要在本书里用」再展开检索。\n\n### 「继续」与 S0 阶段推进（2026-04-13 复盘，P0）\n\n- 用户说「继续 / 继续完成未完成的任务」时：**不得**默认等于「继续补 S0 素材」。若素材条数已达本书约定充分线，须**提议进入 S1/S2**（需求确认/大纲），见 [`s0-material-phase-guard.md`](./s0-material-phase-guard.md)。\n- 外部技能（如 `wechat-article-search`）**批量入库后**，若条数从不足变为达标，须做一次 **S0 退出评估**并给出阶段推进话术。\n\n---\n\n## 阶段推进门禁（v2.1.1 新增，P0）\n\n> **背景**：实测发现 S0 阶段可被静默跳过，AI 直接进入 S3 成文，导致 author-meta 全空、术语漂移、承诺遗忘。v2.1.1 将门禁从「纸面规则」升级为「执行锁」。\n\n### 门禁检查矩阵\n\nAI 在每次推进阶段前，**必须**读取 `esm-state.md` 并逐条检查前置条件。不满足时向用户说明缺失项，**禁止静默跳过**：\n\n| 推进方向 | 前置条件 | 不满足时的 AI 行为 |\n|---------|---------|-----------------|\n| **S0 → S1** | `author-meta.md` 核心主张已填写（非空）| 「先确认几个关键点，写出来才不会跑偏」，引导补填 |\n| **S1 → S2** | 大纲已用户确认 + `story-bank.md ≥ 3 条` | 「还缺几个案例故事，补完再定目录更稳」 |\n| **S2 → S3** | 目录已用户确认 + `commitments.md` 已创建 | 「先建一张承诺清单，后面写完能对账」 |\n| **S3 → S4** | `chapter-status.md` 中全部章节标「成文」 | 列出未完成章节，询问是否先跳过 |\n| **S4 → S5** | S4 20+3 条质检勾选表全部通过 + 字数完成度 ≥ 50% | 列出❌项和字数缺口，禁止以高分掩盖 |\n\n### 脚本不可用时的降级方案（P0）\n\n当 `intake-router.mjs` 无法执行（Node.js 不可用 / 脚本报错 / 宿主限制）时，AI **必须**手动引导用户完成 S0 最小集，**完成前不得进入 S3 成文**：\n\n```\nS0 最小集（脚本降级手动版）\n\nStep 1：author-meta.md\n  → 引导用户说出：「这本书想解决什么问题？」「目标读者是谁？」「你的写作风格偏……（举例）？」「预计写多少字？」\n  → 写入 .fbs/author-meta.md，保留用户原话\n\nStep 2：术语锁定记录.md\n  → 「书里会出现哪些专业词汇？哪些容易被说成好几种叫法？」\n  → 写入 .fbs/术语锁定记录.md，格式：标准写法 | 禁用变体\n\nStep 3：character-registry.md（预制人物）\n  → 「书里打算用什么类型的案例人物？给我提供几个名字和背景，我来帮你安排」\n  → 写入 .fbs/character-registry.md（3–5 个）\n\nStep 4：commitments.md（创建空表）\n  → 「这本书会对读者做什么承诺？比如『每个赛道有行动挑战』？」\n  → 写入 .fbs/commitments.md 的承诺注册表，即使为空也要建文件\n\n完成后：\n  - esm-state.md 标记 phase: S0_done, s0ManualFallback: true\n  - 向宿主写入系统记忆：FBS-{书名}-主题锁 / 术语锁 / 字数目标\n  - 告知用户：「好，基础信息确认完了，我们开始定大纲」\n```\n\n> **为什么不能跳过**：LLM 在 S3 写作时，S0 确立的约束（目标读者、作者声音、术语标准）因上下文漂移已不可见。7 锁文件是将这些约束「钉住」到磁盘的唯一机制，脚本降级时靠手动补全，不靠 AI 自觉。\n\n---\n\n## 入口表达合同（先说人话，再引入术语）\n\n- **首响先说用户动作**：优先使用「先整理现有材料 / 先明确主题 / 先一起找方向」这类日常表达，不要把「虚拟书房 / 路径A/B/C / S0」直接作为首句入口文案。\n- **术语后置**：确需引入内部术语时，先用白话说明，再在第二句或括号中补一句内部名词，例如「我先把这次写作工作区准备好（内部叫虚拟书房）」。\n- **路径字母只做内部路由**：`路径 A/B/C` 主要用于内部判路与文档说明，不要求用户在第一轮自行理解字母系统。\n\n## WP1 / WP2 双工作面绑定\n\n| 工作面 | 时机 | 面向用户的说法 | 内部动作 |\n|--------|------|----------------|----------|\n| `WP1` 起步工作面 | `INTAKE` 首响 | 整理材料 / 明确主题 / 一起找方向 | 锁定 `路径A/B/C`，但不展开内部术语 |\n| `WP2` 书稿工作面 | `INTAKE → RESEARCH` | 当前工作区已就绪，资料/进度/交付都在这里 | 绑定 `.fbs/`、`deliverables/`、`releases/` 三层目录与当前阶段动作 |\n\n**切换顺序固定**：\n\n1. 在 `WP1` 先判断用户属于材料驱动 / 主题驱动 / 探索驱动。\n2. 宣告搜索前置合同（为什么查、查什么、查完去哪一步、离线如何降级）。\n3. **初始化虚拟书房**（WP1→WP2 过渡必做）：运行 `node scripts/init-fbs-multiagent-artifacts.mjs --book-root <本书根>` 构建 `.fbs/`、`deliverables/`、`releases/` 三层底座及基础工件；首次使用或书根变更时执行，已初始化可跳过（详见 [`workbuddy-agent-briefings.md`](./workbuddy-agent-briefings.md) §S3 写作前 team-lead 必做）。\n4. 再进入 `WP2`，说明首个可用工作面已经准备好。\n\n## 搜索前置合同（进入 RESEARCH 前必须说清楚）\n\n进入任意 `S0/S1/S2` 调研前，必须先向用户说清：\n\n- **为什么现在要查**：本轮检索要解决什么问题；\n- **要查哪几类内容**：如主题现状、同类内容、目标读者、时间基准；\n- **查完马上进入哪一步**：如素材盘点、目录草稿、章节写作；\n- **离线时如何降级**：无法联网时明确告知为离线降级，而非静默改用模型知识。\n\n推荐口径：\n\n> 我先查一下当前主题的同类内容、目标读者和时间基准，查完就给你整理出下一步写法；如果现在不能联网，我会明确标注为离线降级。\n\n---\n\n## 快速起步（Quick Start）总逻辑\n\n\n### 三步触发流程\n\n> **零步前置动作**：用户输入触发 Skill 后，AI 先用一句简单自然的话说清**现在打算做什么**——不要一上来就给出菜单或追问，也不要说「技能已加载」类套话。感知到用户有素材就直接说「好，我先看看这些材料」；有主题就说「好，我先查查这个方向的同类内容」；都不确定再问一句。\n\n用户输入触发 Skill 后，AI **先完成起步判断，再不询问、直接锁定入口路径**：\n\n\n\n1. **有素材信号**：用户提及\"原料 / 文档 / PDF / 资料 / 笔记 / 访谈 / 讲义 / 书稿\" → 路径 A\n2. **有主题信号**：用户有明确想写的主题，但没有现成素材 → 路径 B\n3. **无信号**：用户输入模糊，无主题无素材 → 路径 C\n\n### 路径选择决策矩阵\n\nAI **直接给出\"已确定路径，进入 X\"**，而非列菜单等待选择：\n\n```\n路径 A（有素材）\n  素材信号 → 用户提及\"原料 / 文档 / PDF / 资料 / 笔记 / 访谈 / 讲义 / 书稿\"\n  处理逻辑 → 直接进入素材盘点流程，输出 material-inventory.md\n  终点     → 进入 S0 素材激活\n\n路径 B（有主题）\n  主题信号 → 用户有明确想写的主题，但没有现成素材\n  处理逻辑 → 锁定 topicLock，进入快速情报收集\n  终点     → 进入 S0/S0-B 情报收集\n\n路径 C（探索驱动）\n  无信号   → 用户输入模糊，无主题无素材\n  处理逻辑 → 触发探索问卷，3-5 题引导出主题\n```\n\n**决策原则**：\n- 素材信号优先级最高，有素材信号即走 **路径 A（激活原料）**\n- 主题信号次之，无素材但有主题即走 **路径 B（快速情报收集）**\n- **兜底路径 C**：若 A/B 条件均不满足，触发探索问卷\n\n| 条件组合 | 置信度 | 推荐路径 | 说明 |\n|------|--------|------|------|\n| A✓ B✓ C✓（有素材+有主题+联网可用） | 高 | **路径 A（激活原料+情报收集）** | 素材信号优先，情报收集作为补充 |\n| A✓ B✓ C✗（有素材+有主题+离线） | 高 | **路径 A（激活原料，离线情报降级）** | 素材信号优先；P0-7修复：原错误路由至路径B |\n| A✓ B✗ C✗（有素材+主题模糊+离线） | 高 | **路径 A（素材盘点先行，从素材中提炼主题）** | P0-7修复：原错误路由至路径B |\n| A✗ B✓ C✓（无素材+有主题+联网可用） | 中 | **路径 B（快速情报收集）** | 主题驱动，联网补充情报 |\n| A✗ B✓ C✗（无素材+有主题+离线） | 中 | **路径 B（快速情报，离线降级）** | P0-7修复：原错误路由至路径C，有主题应走路径B |\n| A✗ B✗ C✗（无素材+无主题） | 低 | **路径 C（全探索模式，引导式问卷）** | 兜底路径 |\n\n### 特殊：AI 无法直接搜索时的降级策略\n\n```\n宿主无内容搜索时（路径 A 或 B 均有降级）\n\n    终止节点 → 告知\"我目前无法联网搜索，\n    但我们可以进入 [素材清单/文档盘点] 先梳理您已有内容\"\n    路径被迫降级 → 走 路径 C，或 [仅本地规则] 补充写作\n```\n\n**兜底策略**：\n- 素材信号高且索引内容不可检索时，**直接进入**路径 A/B 但标注\"未验证\"\n- 主题信号高但检索无结果时，**直接进入**路径 B 但标注\"待查证\"\n- **优先路径** A/B/C 均以\"先给素材盘点再说\"为兜底动作\n\n---\n\n## 路径详解\n\n### 路径 A（有素材：激活原料）\n\n**适用场景**：用户已有材料（PDF、文档、笔记、访谈录音整理等），希望 AI 帮助结构化。\n\n**关键动作（原子步骤）**：\n\n```\n路径 A 流程：\n\n[S0-A 素材激活]\n    ① AI 说：\"请直接告诉我您有哪些素材（原料 / 文档 / PDF 等）\"\n    ② 用户列出清单，AI 按「格式/内容/来源/新鲜度」分析\n    ③ AI 自动标注每份素材的可用度、缺口\n    ④ AI 写出 .fbs/material-inventory.md\n\n[S0 情报收集]\n    ⑤ 根据素材缺口判断 = 素材完整度得分，补充缺口 / 提示用户补材料\n    ⑥ 执行 L3/L4 级情报 + 触发内容策略（竞品、读者画像、时间标签）\n\n[S0-B 深度情报（可选）]\n    ⑦ 结合情报收集 2-4 轮问题，补充认知\n\n[进入 PLAN → 目标路径生成至 S1/S2]\n```\n\n**路径 A 注意事项**：\n\n- 素材盘点完成后进入 S0 情报，AI 主动问：\"希望本书的读者是谁（职业/年龄/目标读者群），重点写哪个方向？\"\n  - `时间标签` 标注每份素材的\"新鲜度（近一年/一年前/已过时）\"\n  - `关键内容` 标注\"待验证 → 执行 L4 情报 + CR 补证\"\n  - 检查→ 对用户提供的素材\"可信度打分\"\n\n- 宿主支持 S0 时，AI 主动说：\"已完成素材盘点，进入 S0 情报，检索 [主题 X] 相关内容，已找到 [N] 个角度：[标题一，标题二，标题三...]\"\n\n### 路径 B（有主题：快速情报）\n\n**适用场景**：用户没有素材，但有明确想写的主题（书名/方向/大纲草稿）。\n\n```\n路径 B 流程：\n\n[S0 情报收集（快速）]\n    ① 锁定 topicLock + 标注时间 + 情报收集 + 读者画像 + 关键词分析\n    ② 执行 L4 同类书情报 + L5 深度情报（异步）\n    \n[S0-B 深度情报（可选）]\n    ③ 结合情报收集 2-4 轮问题\n\n[生成目录草稿（含 AI 主动触发 A 路径素材探问）\n    ④ 提示约 10-15 个章节标题，按「核心/进阶/实操」分层\n    ⑤ 写出 .fbs/story-bank.md\n\n[进入 PLAN → 目标路径生成至 A 路径素材 / S1/S2]\n```\n\n### 路径 C（探索驱动）\n\n**适用场景**：用户想写书但主题模糊，如\"想写点什么但不知道写什么主题 / 想写家谱 / 有很多事想记录\"。\n\n```\n路径 C 流程：\n\n[激活探索问卷（异步）→ 触发 Path-C 探索问卷机制\n    ① 3 个 Agent 发出 10 道问题，3 个不同角度\n    ② 收集用户答案，标注 topicLock\n    \n[后续进入 S1（根据问卷结论分流）]\n    ③ 若问卷确认有素材 → 进入路径 A → S0 素材激活 → S1\n    ④ 若问卷确认有主题 → 进入路径 B → S0 情报收集 → S1\n    ⑤ 若仍无明确方向 → 以探索模式直接进入 S1（以宽主题开始）\n```\n\n---\n\n## 特殊场景：S0-B 深度情报\n\n**触发场景**：路径 A 或路径 B 均在 S0 执行情报时，若 A 路径素材不足或 B 路径情报不够，则触发 S0-B 深度情报。\n\n**关键角色**：Researcher Agent 执行，每个 Agent 角色独立搜索。\n\n### 深度情报分级\n\nResearcher 角色分级，AI 自动分析主题，触发对应级别（**原则上不超过 200 个搜索词**）：\n\n当用户说出\"职业规划的书该怎么入手写，有哪些关键内容 / 如何写好，什么值得参考\"：\n\n```\n深度情报收集策略（举例）：\n\n结合主题逐一 + 每类搜索词 → 含 主题关键词\n    \n[200搜索词\n\n---\n收集 2-3 个关键问题（可含关键词盘点搜索）\n执行 L4 情报（同类书情报），按级别搜索\n深度情报 → 自动补充到目录草稿，修改 + 完善\n```\n\n### 素材盘点完成信号的 AI 后续写出规划进 INTAKE 状态\n\n素材盘点完成后，AI 自动生成 `.fbs/work-intelligence.md`：\n\n- 标注每个章节的情报来源（待处理/待补）\n- 确认读者语言与目标族群\n- 判断情报缺口是否影响目录，补充后续动作（修改或不修改）\n\n### 工件输出\n\n- `.fbs/work-intel-{slug}.md`（路径 A/B）情报搜索写入\n- `.fbs/work-intelligence.md`（路径 A/B）标注情报+确认读者群\n- `.fbs/story-bank.md`（路径 B/S0 路径 A/B）目录草稿/情报汇总\n\n---\n\n## 搜索分级策略与说明\n\n遵循 `search-policy.json` 配置，情报收集按以下级别执行：\n\n| 搜索级别 | 适用场景 | 触发阶段 | 约束 |\n|------|------|---------|------|\n| L1 主题确认 | 书名/主题关键词/专业词 | S0/S3/S5 | 必须执行 |\n| L2 内容竞品 | 同类书/报告/同类项目 | S0 | 必须执行 |\n| L3 深度情报 | 结合章节标题+关键问题+相关案例 | S0-B | 建议执行 |\n| L4 同类情报 | 搜索同一主题不同角度/市场数据 | S1/内容补充 | 建议执行 |\n| L5 深度读者情报 | 用户口语+论坛问题+关键词 | S0 情报补充 | 建议执行 |\n\n### L4 同类情报搜索策略\n\n根据 Chapter Brief 执行同类书情报，收集\"同类书目录\"\n\n```\n搜索词结构举例：  \"主题关键词 + \"同类书目录\" / \"主题\" / \"方向\" / \"关键问题\"\n搜索逻辑补充：同类书情报注重\"读者期望\"而非单纯\"关键词\"，多检索\"有读者认为有价值的内容\"\n工件输出 → Chapter Brief 补全后须包含 200 搜索词\n执行者 A 搜同类书目录，B 搜主题问题结构，C 搜读者真实表达\n```\n\n### L5 深度读者情报（S0 情报补充）\n\n```\n搜索词结构举例：  用户口语 + [目标读者 + 关键词 / 论坛问题 + 关键词]\n搜索逻辑补充：\n  › 深度读者情报：按读者\"真实问题\"结构化搜索 → 不强调专业词\n  › 情报收集：根据关键词 → 尝试在搜索中融入\"读者口语/问题\"\n  › 结果收集：找\"论坛帖/知乎问答/读书会讨论\" → 补充到读者语言档\n\n工件输出：fbs/reader-language.md（关键词 + 读者口语 + 反向验证）\n```\n\n**关键说明**：如果宿主没有 JS 搜索端点，则检查 Bing RSS 降级策略，基于搜索词执行 `effectiveEndpointStrategy` 路由至可用搜索节点，再补充写入 `reader-language.md`\n\n---\n\n## 会话摘要与工件管理\n\n### 每次 INTAKE/启动后须写入虚拟书房工件\n\n\n> **路径工件说明**：路径工件写入目录在 `.fbs/sessions/` 下，建议参考 2.0.1 优化，配合 `session-protocols.md` 与 `search-policy.json` `outputFile` 路由。\n\n| 工件名 | 生成阶段 | 路径 | 说明 |\n|------|---------|------|------|\n| `material-inventory.md` | S0-A | A | 素材盘点 + 可用度/缺口打分 |\n| `work-intel-{slug}.md` | S0-B | A/B | 深度情报搜索写入（配合 `search-policy.json` `s0WorkIntelPolicy.outputFile`，默认 `.fbs/work-intel-{slug}.md`，`{slug}` 根据搜索词+情报轮次命名） |\n| `work-intelligence.md` | S0-B | A/B | 情报汇总 + 读者群确认 |\n| `story-bank.md` | S0-B/S0 | A/B | 目录草稿/情报汇总 |\n| `reader-language.md` | S0 L5 | A/B | 深度读者口语 + 反向验证 |\n| `GLOSSARY.md` | **S0-A完成后，路径确认时**（P0-5修复：明确生成阶段） | 全路径 | 术语锁定文件；触发条件：用户提到专业术语/行业词汇/内部名词时，由 AI 主动创建并在后续写作中维护一致性；`workbuddy-agent-briefings.md` 要求的术语写入目标 |\n| `sessions/creative-session.md` | 创意会 | 全路径 | 创意会记录（2.0.1 迁移到 `sessions/` 下） |\n| `sessions/reader-session.md` | 写作阶段 | A路径 | 读者会记录（2.0.1 迁移到 `sessions/` 下） |\n| `sessions/adversarial-session.md` | 对抗会 | 全路径 | 对抗会（与 v2.0.1 的 `argumentation-test.md` 相互对应） |\n| `sessions/review-session.md` | 评审会 | A路径 | 评审会（2.0.1 迁移到 `sessions/` 下） |\n| `sessions-summary.md` | 每次会话 | 全路径 | 每次工作流结束后写入 |\n| `[S6]-content-units.md` | S6 | A/B | 内容单元资产化，具体见 `section-3-workflow.md` §S6 |\n| `[S6]-product-roadmap.md` | S6 | A/B | 内容资产化路线图，具体见 `section-3-workflow.md` §S6 |\n| `[S6]-release-map.md` | S6 发布映射 | A/B | 内部发布映射台账，记录待发布 / 已发布 / 反馈中 / 回流修改 |\n| `releases/<chapterId>-release.json` | S6 发布准备 | A/B | 发布区初始清单，关联 S5 交付物与对外渠道 |\n\n---\n\n## S0 联网检索强制说明（P0）\n\n> 优先级高于上方原有 S0 一般说明。\n\n在任何写作流程启动前，**S0 联网检索阶段必须完成并留有记录**：\n\n- 宿主支持 CLI 时：查看 `.fbs/search-ledger.jsonl` 确认存在 S0 阶段记录（`stage: \"S0\"` 或 `workflowStage: \"S0\"`）\n- 宿主为对话模式时：显式声明\"S0 已完成\"或\"S0 离线降级（原因：xxx）\"\n- 未完成 S0 且无离线降级声明 → ❌ 禁止进入 S1\n\n**违规后果**：`s3-start-gate.mjs` 会检查 `search-ledger.jsonl` 中的 S0 时间戳检索证据，未完成 S0 将导致 S3 启动门禁失败（`process.exit(1)`）。\n\n**专项深化**：为何必须联网、如何锚定最新时间、如何做时态验证、如何把检索反哺方法论与知识库，见 [`references/05-ops/web-search-strategy-deep.md`](../05-ops/web-search-strategy-deep.md)。\n\nFile v2.1.2:references/01-core/intent-canonical.generated.md\n\n# Intent Canonical Snapshot\n\n- version: 2.1.2\n- schemaVersion: 1.0.0\n- confidence: high>=0.85, medium>=0.6\n\n| Intent | Priority | Route | 强触发词(中文) |\n|---|---|---|---|\n| ACTIVATE_ONLY | P0 | activate_only | 福帮手、福帮手写书skill、启动福帮手、打开福帮手 |\n| WRITE_BOOK | P0 | S0/S1 | 写书、写一本、帮我写、写手册 |\n| ACTIVATE_MATERIAL | P0 | S0-A | 激活原料、原料盘点、整理素材、盘点材料 |\n| CONTINUE | P0 | resume_current | 继续、继续上次、接着写、往下写 |\n| REVIEW | P1 | critic_review | 质量自检、自检、质量检查、去AI味 |\n| EXPORT | P1 | S4 | 导出、导出PDF、导出Word、打包下载 |\n| STRATEGY | P1 | S2 | 换策略、切换模式、改策略、调整深度 |\n| STATUS | P1 | status_echo | 进度如何、到哪了、当前状态、还在吗 |\n| STOP | P0 | safe_stop | 停止、取消、中断、退出 |\n| HELP | P1 | command_guide | 怎么用、帮助、帮帮我、指令列表 |\n| CONFIRM_TOPIC | P1 | topic_confirmed_continue | 确认、确认继续、没错、是这个主题 |\n| CHECK_BALANCE | P1 | credits_balance_display | 查看乐包、乐包余额、我的乐包、还有多少乐包 |\n| UPGRADE_HINT | P1 | upgrade_hint_display | 怎么解锁、如何升级、怎么获得乐包、还差多少 |\n| FULL_BOOK_VIEW | P1 | full_book_status | 全书视图、目录总览、全书章节 |\n| LIST_COMMANDS | P1 | command_list_display | 全部指令、所有命令、命令清单 |\n| OTHER | P2 | fallback_help |  |\n\n> Generated by `scripts/build-intent-canonical-assets.mjs`.","readmeExcerpt":"Skill: FBS-BookWriter Owner: duhongchao-fbsir Summary: FBS 福帮手长文档写作：书/手册/白皮书/长篇报道全流程；Node 脚本驱动 intake、会话恢复、S/P/C/B 质检与 MD/HTML 交付。用户提及写书、出书、章节、大纲、素材、质检、导出、扩写、退出保存时启用。 Tags: book:2.1.2, fbs:2.1.2, latest:2.1.2, longform:2.1.2, manuscript:2.1.2, openclaw:2.1.2, writing:2.1.2 Version history: v2.1.2 | 2026-04-16T23:49:11.256Z | user OpenClaw 通道 v2.1.2 Archive index: Archive v2.1.2: 452 files, 1366534 bytes Files: _plugi","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"❌ 「当前还是单一 WorkBuddy 审核包」\n❌ 「一个包同时表示 WorkBuddy / CodeBuddy 的全部能力」\n❌ 「minimax-xlsx 是 WorkBuddy Tier1」\n❌ 「plugin.json 只是源码内参考，不需要随包交付」"},{"language":"text","snippet":"✅ 「福帮手已就绪，你要写什么？」\n✅ 「当前在 WorkBuddy 通道，已检测到本地市场与已启用插件」\n✅ 「当前在 CodeBuddy 通道，默认代理是 fbs-team-lead」\n✅ 「Excel 能力当前统一走 xlsx 插件，这是唯一方案」"},{"language":"text","snippet":"✅ 「当前是 WorkBuddy 包，优先走本地市场技能」\n✅ 「当前是 CodeBuddy 包，优先走插件元数据与代理目录」\n❌ 「当前宿主平台自己会判断」"},{"language":"text","snippet":"S0.5 新手引导（2轮对话）\n  第1轮（轻松开场）：\n    「想写什么呢？随便说说就行——\n      比如\"想写一本理财入门书\"、\n      \"有一堆访谈记录想整理成报告\"、\n      \"想写白皮书但不知道怎么开始\"都可以。\n      手头有没有现成的材料也可以顺便说一声。」\n  第2轮：AI 根据回答说明当前打算怎么做（用日常语言），直接开始；\n          不要求用户确认，不展示系统术语（虚拟书房/路径A/B/C/S0）\n  → 完成后进入路径判断（继续阅读本文件后续内容）"},{"language":"text","snippet":"Step 1：读取进度台账\n  → 优先读 .fbs/workbuddy-resume.json（v2.1.1 会话快照，含 currentStage/nextSuggested/wordCount）\n    如快照存在且 updatedAt 在 24 小时内：直接使用快照信息跳至 Step 4，无需读取全部文件\n  → **时间窗对照（避免与记忆摘要混淆）**  \n    - **恢复卡** `workbuddy-resume.json`：**24 小时内**视为「热恢复」，intake 可优先减少全量扫盘。  \n    - **记忆摘要** `.fbs/smart-memory/session-resume-brief.md`：**48 小时内**在 team-lead 首响中优先加载（见 `fbs-team-lead.md`）。二者为不同工件，阈值不同是**刻意设计**，不是文档冲突。  \n  → 次优先读 .fbs/chapter-status.md（内部真值层）\n  → 若不存在，读根目录 chapter-status.md\n  → 若均不存在，说明书房未初始化，提示先运行 init-fbs-multiagent-artifacts.mjs\n\nStep 2：确认当前断点\n  → 找到状态为 in_progress / writing / partial 的章节 → 这是\"断点章节\"\n  → 若无断点章节，找最后一个 completed 章节后的第一个 pending 章节\n\nStep 3：加载断点章节上下文\n  → 读 .fbs/book-context-brief.md（书稿背景简报）\n  → 读 .fbs/smart-memory/session-resume-brief.md（记忆摘要，若存在）\n  → 读断点章节文件（若存在）\n\nStep 4：向用户说明状态，直接告知而不追问\n  AI 首响模板（自然语言，有温度）：\n  「上次写到第[N]章《[章节名]》，[已有X字/刚开了个头/写到一半]。\n   我接着写，从[具体段落/位置]继续。\n   [如有术语锁定：有 N 个专有名词已锁定，风格保持一致。]」\n\nStep 5：直接开始写，不等待用户确认\n  → 按 section-3-workflow.md §S3 执行章节写作\n  → 写完当章后，由 team-lead 统一更新 .fbs/chapter-status.md\n  → 只有遇到结构分歧（如章节顺序需要调整）或原料明确不足时，才暂停说明，其余情况直接推进"},{"language":"text","snippet":"S0 最小集（脚本降级手动版）\n\nStep 1：author-meta.md\n  → 引导用户说出：「这本书想解决什么问题？」「目标读者是谁？」「你的写作风格偏……（举例）？」「预计写多少字？」\n  → 写入 .fbs/author-meta.md，保留用户原话\n\nStep 2：术语锁定记录.md\n  → 「书里会出现哪些专业词汇？哪些容易被说成好几种叫法？」\n  → 写入 .fbs/术语锁定记录.md，格式：标准写法 | 禁用变体\n\nStep 3：character-registry.md（预制人物）\n  → 「书里打算用什么类型的案例人物？给我提供几个名字和背景，我来帮你安排」\n  → 写入 .fbs/character-registry.md（3–5 个）\n\nStep 4：commitments.md（创建空表）\n  → 「这本书会对读者做什么承诺？比如『每个赛道有行动挑战』？」\n  → 写入 .fbs/commitments.md 的承诺注册表，即使为空也要建文件\n\n完成后：\n  - esm-state.md 标记 phase: S0_done, s0ManualFallback: true\n  - 向宿主写入系统记忆：FBS-{书名}-主题锁 / 术语锁 / 字数目标\n  - 告知用户：「好，基础信息确认完了，我们开始定大纲」"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"docs/history/README.md","content":"# 历史文档索引\n\n> 历史信息用于追溯，不作为当前执行依据。当前执行以 **`2.1.2`** 基线为准。\n\n## 首读（单一口径）\n\n| 文档 | 说明 |\n|------|------|\n| [**version-baseline-v2.1.2.md**](version-baseline-v2.1.2.md) | **当前**基线与既往版本能力归纳（推荐先读） |\n| [**version-baseline-v2.1.1.md**](version-baseline-v2.1.1.md) | v2.1.1 正式发布线历史归纳（对照用） |\n\n## 保留留档（按需）\n\n| 文档 | 说明 |\n|------|------|\n| [SMART-MEMORY-ARCHITECTURE-v2.0.2.md](SMART-MEMORY-ARCHITECTURE-v2.0.2.md) | 记忆体系历史设计留档（仅追溯用途） |\n| `internal-evolution-2.0.2-to-2.1.0.md`（源码仓） | 内部演进说明（发布包默认排除） |\n| `changelog-archive-internal-lines.md`（源码仓） | 旧内部迭代长记录（发布包默认排除） |\n| `changelog-appendix-2.0.2-patch-supplement.md`（源码仓） | 旧补丁附录长记录（发布包默认排除） |"},{"path":"README.md","content":"# FBS-BookWriter · OpenClaw（v2.1.2）\r\n\r\n本仓库即 **OpenClaw** 通道技能**源码树**（与主项目 `npm run pack:openclaw` 产出一致），仓库根目录即为技能根：`SKILL.md`、`package.json`、`references/`、`scripts/` 等。不含 WorkBuddy / CodeBuddy 市场清单。\r\n\r\n## ClawHub\r\n\r\n- 列表页：<https://clawhub.ai/skills/fbs-bookwriter>（发布后可用）\r\n- 安装：`openclaw skills install fbs-bookwriter` 或 `npx clawhub@latest install fbs-bookwriter`，然后在技能根目录执行 `npm install`\r\n- 维护者从主仓发布：`npm run publish:clawhub`（需先执行 `npx clawhub@latest login`）\r\n\r\n## 使用方式（Git 克隆）\r\n\r\n将仓库克隆为技能目录名 **`fbs_bookwriter`**（与 `SKILL.md` 中 `name` 一致），再安装依赖：\r\n\r\n```bash\r\ngit clone https://github.com/duhongchao-Fbsir/fbs-bookwriter-openclaw.git fbs_bookwriter\r\ncd fbs_bookwriter\r\nnpm install\r\n```\r\n\r\n然后按包内 [`SKILL.md`](./SKILL.md)「安装（OpenClaw）」配置 OpenClaw 技能扫描路径，并用 `openclaw skills list` 确认加载。\r\n\r\n## 版本\r\n\r\n当前：**2.1.2**。上游主页：<https://fbs-bookwriter.u3w.com/>"},{"path":"releases/README.md","content":"# releases/ 目录说明\n\n> **版本口径**：**v2.1.2** 为当前上架与送审主口径；**v2.1.1** 及更早的 review 备忘作历史对照保留。更早快照在**完整源码仓**的 `archive/versions/releases/`（不随本 skill ZIP 分发）。统一版本归纳见 [`../docs/history/version-baseline-v2.1.2.md`](../docs/history/version-baseline-v2.1.2.md)。\n\n## 当前保留（含 v2.1.2 与历史对照）\n\n| 文件 | 用途 |\n|------|------|\n| [`workbuddy-integration-checklist.md`](./workbuddy-integration-checklist.md) | WorkBuddy 集成与上架前核对 |\n| [`workbuddy-review-v2.1.2.md`](./workbuddy-review-v2.1.2.md) | WorkBuddy 通道 v2.1.2 review 备忘 |\n| [`codebuddy-review-v2.1.2.md`](./codebuddy-review-v2.1.2.md) | CodeBuddy 通道 v2.1.2 review 备忘 |\n| [`workbuddy-review-v2.1.1.md`](./workbuddy-review-v2.1.1.md) | WorkBuddy 通道 v2.1.1 review 备忘（历史） |\n| [`codebuddy-review-v2.1.1.md`](./codebuddy-review-v2.1.1.md) | CodeBuddy 通道 v2.1.1 review 备忘（历史） |\n\n书稿运行时生成的 `*-release.json`、升级摘要等仍按工作流写入本目录，不在此枚举。"},{"path":"scripts/_deprecated/README.md","content":"# scripts/_deprecated — 废弃脚本归档目录\r\n\r\n> **归档时间**：2026-04-11（v2.0.3）  \r\n> **说明**：此目录存放已被替代或不再使用的历史脚本，保留以备查阅，不参与正常执行流程。\r\n\r\n## 归档文件说明\r\n\r\n### nlu-optimization.mjs（31.37 KB）\r\n\r\n- **归档原因**：v2.0.3 引入 Sub-Agent 声明式定义（`.codebuddy/agents/`），\r\n  `fbs-researcher.md` 的 `description` 字段可由宿主原生自动委派替代该脚本的意图识别功能。\r\n  LLM 原生意图识别与此脚本存在大量功能重叠，保留会增加约 31KB 不必要的加载体积。\r\n- **替代方案**：`.codebuddy/agents/fbs-researcher.md`（S0情报收集）\r\n\r\n### nlu-optimization-enhanced.mjs（30.14 KB）\r\n\r\n- **归档原因**：同上，为 `nlu-optimization.mjs` 的增强版，功能重叠更甚。\r\n  v2.0.3 的 12 意图群路由表（`references/01-core/intake-and-routing.md §意图群路由`）\r\n  已覆盖原有的 66 条离散指令，以更轻量的方式实现等效路由。\r\n- **替代方案**：`references/01-core/intake-and-routing.md`（意图路由规范）\r\n\r\n## 注意事项\r\n\r\n- **不要直接运行**此目录下的任何脚本，其依赖的上下文可能已不存在\r\n- **不要从主流程引用**此目录下的任何脚本\r\n- 如需恢复某个功能，请先阅读相应替代方案，评估是否真的需要回滚"},{"path":"scripts/README.md","content":"# FBS-BookWriter 脚本索引\n\n> **用途**：为 `scripts/` 目录提供统一导航，说明常用脚本的职责、触发条件和典型调用入口。  \n> **适用对象**：维护者、宿主 AI、需要排查或扩展 FBS 工作流的开发者。\n\n---\n\n## 目录分层\n\n| 路径 | 作用 | 何时进入 |\n|---|---|---|\n| `scripts/` 顶层 | 入口脚本、工作流脚本、质检脚本、打包脚本 | 需要直接执行 FBS 主流程时 |\n| `scripts/agents/` | 供多智能体或后台任务调用的辅助脚本 | 处理审计、简报、协同任务时 |\n| `scripts/lib/` | 共享运行时与工具库 | 修改底层能力、宿主桥接、公共函数时 |\n| `scripts/test/` | `vitest` 回归测试 | 修改规则、元数据、路由、打包逻辑后 |\n| `scripts/wecom/` | 企业微信相关桥接与投递 | 需要企业微信分发链路时 |\n| `scripts/_deprecated/` | 已弃用或兼容保留脚本 | 只在追溯历史行为或兼容旧包时进入 |\n| `archive/versions/scripts/` | 历史 `pack-v202` / `v210` 等别名脚本归档（**不可直接执行**，路径已失效） | 仅溯源旧版打包入口 |\n\n---\n\n## npm 脚本速查（与 CI 对齐）\n\n| 脚本 | 用途 |\n|------|------|\n| `npm test` | 全量 Vitest（CI 默认） |\n| `npm run test:contract` | 契约/版本/hints 快测，适合提交前首跑 |\n| `npm run test:integration` | 除契约包外的其余测试 |\n| `npm run audit:all` | P0 六段审计，**默认书根** `fixtures/ci-book-root`（与 CI 一致） |\n| `npm run audit:all:strict` | 同上 + `--strict`（与 CI **P0 audits strict** 一致） |\n| `npm run validate:runtime-hints` | 校验 `fbs-runtime-hints.json`（已含于 `pack:skill-gates`） |\n| `npm run manifest:scripts` | 生成 `scripts/generated/scripts-manifest.json`（CI 与 `evolution-gate` 前执行） |\n| `npm run clean:dist` | 删除 `dist/*-temp`、`dist/test-unzip` 等打包复检残留 |\n| `npm run clean:dist:prune` | 同上 + 删除 `dist` 内旧版 zip 及同名校验 JSON |\n| `npm run fbs:progress-snapshot` | 写出 `.fbs/progress-snapshot.md`（可选抽查） |\n\n自定义书稿根：`npm run audit:all -- --book-root <绝对或相对路径>`（后者覆盖默认）。\n\n---\n\n## 高频入口脚本\n\n### 入口 / 恢复 / 会话生命周期\n\n| 脚本 | 职责 | 典型触发 |\n|---|---|---|\n| `intake-router.mjs` | 统一首响入口；自动做宿主检测、恢复工件补写、意图路由 | 首次进入、`bookRoot` 变更、只说“福帮手/写书” |\n| `host-capability-detect.mjs` | 探测 WorkBuddy / CodeBuddy 宿主能力与 Tier1/2 可用性 | 启动前、切换宿主后、打包前校验 |\n| `workbuddy-session-snapshot.mjs` | 生成 `.fbs/workbuddy-resume.json` 恢复卡 | 阶段完成、退出前、跨会话恢复 |\n| `write-progress-snapshot.mjs` | 生成 `.fbs/progress-snapshot.md` 文本进度块（对照 UX 规则抽查，非门禁） | `npm run fbs:progress-snapshot`；阶段切换 / 章节完成后可选 |\n| `apply-book-memory-template.mjs` | 生成 Smart Memory 快照与 `session-resume-brief.md` | 首响补写、退出补写、恢复链修复 |\n| `session-exit.mjs` | 标准退出脚本；默认先保存恢复卡与摘要再退出 | 命中“退出 / 停止 / 退出福帮手” |\n| `workbuddy-user-profile-bridge.mjs` | 吸收宿主画像到当前书稿上下文 | 首响恢复、偏好同步 |\n| `release-feedback-bridge.mjs` | 汇总宿主反馈 / 提审反馈进入书稿工作面 | 提审后、回传问题时 |\n| `collect-host-diagnostics.mjs` | 收集宿主 / 乐包 / 二进制登记等诊断（路径脱敏） | 排障、策略 A 现场快照 |\n| `fbs-cleanup.mjs` | 清理过期缓存（如 stale p0-audit-report） | 门禁误阻断排障、会话前清理 |\n| `emit-upgrade-summary.mjs` | 对比旧版技能根与当前仓库，生成 `releases/upgrade-capability-summary-*.md` | 装包前后、策略 C 留档 |\n| `propose-lexicon-refresh.mjs` | 生成词表更新提案模板 | 策略 C、季度词表评审 |\n\n### 初始化 / 工作流推进\n\n| 脚本 | 职责 | 典型触发 |\n|---|---|---|\n| `init-fbs-multiagent-artifacts.mjs` | 初始化 `.fbs/`、`deliverables/`、`releases/` 三层工作面 | 新项目、新书稿、裸目录补底座 |\n| `rewrite-plan-bootstrap.mjs` | 生成拆书改写最小执行计划模板（`.fbs/rewrite-plan.md`） | 进入“拆书式改写”前锁定保留/替换/新增清单 |\n| `workflow-progressor.mjs` | 推进 S0–S6 阶段状态 | 阶段切换、自动化推进 |\n| `s3-start-gate.mjs` | S3 写稿前门禁检查 | 从大纲进入写作前 |\n| `chapter-dependency-gate.mjs` | 校验章节依赖与写作先后关系 | 多章并行、章节顺序敏感时 |\n| `save-chapter-brief.mjs` | 固化章节简报 / 写作 brief | S2 "}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"FBS 福帮手长文档写作：书/手册/白皮书/长篇报道全流程；Node 脚本驱动 intake、会话恢复、S/P/C/B 质检与 MD/HTML 交付。用户提及写书、出书、章节、大纲、素材、质检、导出、扩写、退出保存时启用。 Skill: FBS-BookWriter Owner: duhongchao-fbsir Summary: FBS 福帮手长文档写作：书/手册/白皮书/长篇报道全流程；Node 脚本驱动 intake、会话恢复、S/P/C/B 质检与 MD/HTML 交付。用户提及写书、出书、章节、大纲、素材、质检、导出、扩写、退出保存时启用。 Tags: book:2.1.2, fbs:2.1.2, latest:2.1.2, longform:2.1.2, manuscript:2.1.2, openclaw:2.1.2, writing:2.1.2 Version history: v2.1.2 | 2026-04-16T23:49:11.256Z | user OpenClaw 通道 v2.1.2 Archive index: Archive v2.1.2: 452 files, 1366534 bytes Files: _plugi","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":782,"uniquenessScore":50,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T11:41:30.061Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T11:41:30.061Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T14:54:09.617Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}