{"id":"835f4a77-9520-46a3-9a8b-f1f023b163ee","entityType":"agent","slug":"clawhub-z625662197-novel-architect","name":"Novel Architect","canonicalUrl":"https://www.xpersona.co/agent/clawhub-z625662197-novel-architect","canonicalPath":"/agent/clawhub-z625662197-novel-architect","generatedAt":"2026-10-10T23:48:14.444Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T19:53:13.092Z","emptyReason":null},"description":"爽文小说全流程工坊：整合 FBS 工作流 + 爽文生成器。从方向提炼 → 大纲规划 → 逐章生成 → 质检收口，全程追踪。Trigger: 用户提及写小说/写书/章节/大纲/爽文/写作/架构。 Skill: Novel Architect Owner: z625662197 Summary: 爽文小说全流程工坊：整合 FBS 工作流 + 爽文生成器。从方向提炼 → 大纲规划 → 逐章生成 → 质检收口，全程追踪。Trigger: 用户提及写小说/写书/章节/大纲/爽文/写作/架构。 Tags: latest:1.2.0 Version history: v1.2.0 | 2026-05-22T04:40:07.956Z | auto - Removed 202 files related to internal references and documentation, including package-lock.json and most files under references/01-core/. - No changes to code or user-facing features; core workf","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.3K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s174r1vp9r60xhry1gxxd8wd05856799:novel-architect","sourceUrl":"https://clawhub.ai/z625662197/novel-architect","homepage":"https://clawhub.ai/z625662197/skills/novel-architect","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/z625662197/novel-architect","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/z625662197/skills/novel-architect","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":62,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"爽文小说全流程工坊：整合 FBS 工作流 + 爽文生成器。从方向提炼 → 大纲规划 → 逐章生成 → 质检收口，全程追踪。Trigger: 用户提及写小说/写书/章节/大纲/爽文/写作/架构。 Skill: Novel Architect Owner: z625662197 Summary: 爽文小说全流程工坊：整合 "},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T19:53:13.092Z","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-10T19:53:13.092Z","emptyReason":null},"stars":null,"forks":null,"downloads":1275,"packageName":null,"latestVersion":"1.2.0","tractionLabel":"1.3K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T19:53:13.092Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T19:53:13.092Z","lastCrawledAt":"2026-10-10T19:53:13.092Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T19:53:13.092Z","lastVerifiedAt":null,"highlights":[{"version":"1.2.0","createdAt":"2026-05-22T04:40:07.956Z","changelog":"- Removed 202 files related to internal references and documentation, including package-lock.json and most files under references/01-core/. - No changes to code or user-facing features; core workflow and SKILL.md remain unchanged. - Skill structure is now more lightweight, focusing only on essential files.","fileCount":236,"zipByteSize":688485},{"version":"1.1.0","createdAt":"2026-05-22T04:26:36.568Z","changelog":"- Added package-lock.json for improved dependency management and reproducibility. - Updated package.json; no breaking changes to functionality. - No changes to user workflow or core logic.","fileCount":437,"zipByteSize":1322231},{"version":"1.0.3","createdAt":"2026-05-21T21:38:08.990Z","changelog":"- No changes detected in this version. - Version number and all skill documentation remain unchanged.","fileCount":436,"zipByteSize":1311518},{"version":"1.0.2","createdAt":"2026-05-21T21:30:56.462Z","changelog":"- No changes detected in this version. - Version number updated to 1.0.2, but all content remains the same as the previous release.","fileCount":436,"zipByteSize":1311518},{"version":"1.0.1","createdAt":"2026-05-21T21:24:56.973Z","changelog":"- Major upgrade: project restructured for full standalone operation. - Integrated all required dependencies and references directly; no longer depends on external fbs_bookwriter directory. - Moved scripts, assets, configuration, and reference files into the skill root. - Updated documentation to reflect the new file structure and usage instructions. - Adjusted command-line usage and paths for simpler invocation within the novel-architect skill.","fileCount":436,"zipByteSize":1311517},{"version":"1.0.0","createdAt":"2026-05-21T21:12:33.234Z","changelog":"novel-architect 1.0.0 - 首次发布：集成 FBS 工作流与爽文生成器，覆盖爽文小说从方向、提炼、大纲、写作到质检、交付全流程。 - 明确分阶段（S0–S4）细化流程，门禁和文件结构标准化。 - 支持项目初始化、记忆统一、章节追踪、自动生成并质检各阶段稿件。 - 配套命令行脚本速查表，保证流程透明与可追溯。 - 为爽文创作提供一站式协作与自动化写作工坊。","fileCount":2,"zipByteSize":3150}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s174r1vp9r60xhry1gxxd8wd05856799:novel-architect","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","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-z625662197-novel-architect/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-z625662197-novel-architect/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-z625662197-novel-architect/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-z625662197-novel-architect/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-z625662197-novel-architect/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-z625662197-novel-architect/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-10T23:48:14.440Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-z625662197-novel-architect/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-z625662197-novel-architect/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-z625662197-novel-architect/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-z625662197-novel-architect/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-10T19:53:13.092Z","emptyReason":null},"readme":"Skill: Novel Architect\n\nOwner: z625662197\n\nSummary: 爽文小说全流程工坊：整合 FBS 工作流 + 爽文生成器。从方向提炼 → 大纲规划 → 逐章生成 → 质检收口，全程追踪。Trigger: 用户提及写小说/写书/章节/大纲/爽文/写作/架构。\n\nTags: latest:1.2.0\n\nVersion history:\n\nv1.2.0 | 2026-05-22T04:40:07.956Z | auto\n\n- Removed 202 files related to internal references and documentation, including package-lock.json and most files under references/01-core/.\n- No changes to code or user-facing features; core workflow and SKILL.md remain unchanged.\n- Skill structure is now more lightweight, focusing only on essential files.\n\nv1.1.0 | 2026-05-22T04:26:36.568Z | auto\n\n- Added package-lock.json for improved dependency management and reproducibility.\n- Updated package.json; no breaking changes to functionality.\n- No changes to user workflow or core logic.\n\nv1.0.3 | 2026-05-21T21:38:08.990Z | auto\n\n- No changes detected in this version.\n- Version number and all skill documentation remain unchanged.\n\nv1.0.2 | 2026-05-21T21:30:56.462Z | auto\n\n- No changes detected in this version.  \n- Version number updated to 1.0.2, but all content remains the same as the previous release.\n\nv1.0.1 | 2026-05-21T21:24:56.973Z | auto\n\n- Major upgrade: project restructured for full standalone operation.\n- Integrated all required dependencies and references directly; no longer depends on external fbs_bookwriter directory.\n- Moved scripts, assets, configuration, and reference files into the skill root.\n- Updated documentation to reflect the new file structure and usage instructions.\n- Adjusted command-line usage and paths for simpler invocation within the novel-architect skill.\n\nv1.0.0 | 2026-05-21T21:12:33.234Z | auto\n\nnovel-architect 1.0.0\n\n- 首次发布：集成 FBS 工作流与爽文生成器，覆盖爽文小说从方向、提炼、大纲、写作到质检、交付全流程。\n- 明确分阶段（S0–S4）细化流程，门禁和文件结构标准化。\n- 支持项目初始化、记忆统一、章节追踪、自动生成并质检各阶段稿件。\n- 配套命令行脚本速查表，保证流程透明与可追溯。\n- 为爽文创作提供一站式协作与自动化写作工坊。\n\nArchive index:\n\nArchive v1.2.0: 236 files, 688485 bytes\n\nFiles: assets/books.config.mjs (2938b), assets/build.mjs (29318b), assets/style.css (12530b), assets/template-fallback.html (1985b), package.json (15728b), scripts/_deprecated/nlu-optimization-enhanced.mjs (30020b), scripts/_deprecated/nlu-optimization.mjs (32577b), scripts/_deprecated/README.md (1370b), scripts/adjacent-chapter-similarity.mjs (2113b), scripts/apply-book-memory-template.mjs (13276b), scripts/approval-policy.mjs (899b), scripts/audit-broken-links.mjs (3439b), scripts/audit-entry-performance.mjs (9580b), scripts/audit-garble.mjs (10599b), scripts/audit-pending-verification.mjs (1645b), scripts/audit-query-optimization.mjs (2051b), scripts/audit-temporal-accuracy.mjs (2251b), scripts/audit-term-consistency.mjs (3094b), scripts/auto-update-esm-state.mjs (11821b), scripts/book-health-snapshot.mjs (9192b), scripts/book-state-weekly-export.mjs (5738b), scripts/build-intent-canonical-assets.mjs (1795b), scripts/build-search-knowledge-cards.mjs (4636b), scripts/build-search-policy.mjs (1741b), scripts/chapter-dependency-gate.mjs (2056b), scripts/chapter-scheduler-hint.mjs (4559b), scripts/chapter-status-drift.mjs (4065b), scripts/check-and-init-artifacts.mjs (5869b), scripts/citation-format-check.mjs (1516b), scripts/clean-dist.mjs (2686b), scripts/cleanup-dev-data.mjs (14010b), scripts/cn-source-router.mjs (3144b), scripts/collect-host-diagnostics.mjs (3237b), scripts/command-approval-policy.mjs (2925b), scripts/consistency-audit.mjs (29472b), scripts/content-safety-precheck.mjs (2744b), scripts/delivery-chain.mjs (3563b), scripts/emit-upgrade-summary.mjs (2799b), scripts/encoding-governance.mjs (7640b), scripts/enforce-search-policy.mjs (7143b), scripts/env-preflight.mjs (3524b), scripts/esm-exit-hook.mjs (6041b), scripts/evolution-gate.mjs (1539b), scripts/evolution-natural.mjs (19423b), scripts/evolution-propose.mjs (2486b), scripts/exa-search-enhancer.mjs (21983b), scripts/execute-phase1.mjs (11919b), scripts/execute-phase2.mjs (11189b), scripts/execute-phase3.mjs (16135b), scripts/expansion-gate.mjs (8164b), scripts/expansion-plan-vs-material.mjs (2140b), scripts/expansion-word-verify.mjs (6842b), scripts/extract-search-policy-parts.mjs (1180b), scripts/fbs-auto-archive.mjs (5686b), scripts/fbs-cleanup.mjs (3074b), scripts/fbs-cli-bridge.mjs (5731b), scripts/fbs-doctor.mjs (3903b), scripts/fbs-quality-full.mjs (5323b), scripts/fbs-record-esm-transition.mjs (8609b), scripts/file-growth-guard.mjs (5527b), scripts/final-draft-state-machine.mjs (5878b), scripts/final-manuscript-clean-gate.mjs (3787b), scripts/generate-book-context-index.mjs (3764b), scripts/generate-scripts-manifest.mjs (1533b), scripts/generated/intent-canonical.snapshot.json (6298b), scripts/generated/scripts-manifest.json (8982b), scripts/heartbeat-monitor.mjs (8470b), scripts/high-risk-dual-source-gate.mjs (3387b), scripts/host-bridge.mjs (7507b), scripts/host-capability-detect.mjs (2739b), scripts/host-consume-presentation.mjs (7553b), scripts/html-delivery-smoke.mjs (8251b), scripts/init-fbs-multiagent-artifacts.mjs (45977b), scripts/init-project-memory.mjs (5329b), scripts/intake-router.mjs (85963b), scripts/intake-runtime-hooks.mjs (6418b), scripts/intent-ops-report.mjs (1560b), scripts/knowledge-delta-extractor.mjs (2435b), scripts/knowledge-fetcher.mjs (32469b), scripts/knowledge-reuse-kpi.mjs (3218b)\n\nFile v1.2.0:SKILL.md\n\n---\nname: novel-architect\ndescription: \"爽文小说全流程工坊：整合 FBS 工作流 + 爽文生成器。从方向提炼 → 大纲规划 → 逐章生成 → 质检收口，全程追踪。Trigger: 用户提及写小说/写书/章节/大纲/爽文/写作/架构。\"\nversion: 1.0.0\nlicense: MIT\nlanguage: zh-CN\n---\n\n# Novel Workshop · 爽文全流程工坊\n\n整合 **FBS 工作流引擎**（S→P→C→B 全流程追踪、质检门禁）与 **爽文生成器**（提示词完善、世界观构建、逐章生成），实现从方向到大纲到成稿的完整闭环。\n\n---\n\n## 架构\n\n```\n用户方向\n    ↓\n[FBS intake-router]  ← 项目初始化，确定 bookRoot\n    ↓\n世界观 & 提示词完善（novel-generator 逻辑）\n    ↓\n章节大纲（FBS S1 输出 → novel-generator 大纲模板）\n    ↓\n逐章生成（novel-generator 逐章逻辑 + FBS 章节追踪）\n    ↓\n质检 & 收口（FBS polish-gate / release-governor）\n```\n\n---\n\n## 记忆系统（统一）\n\n**书稿根目录**：`{bookRoot}/`\n\n```\n{bookRoot}/\n├── .fbs/                        # FBS 工作流核心\n│   ├── workbuddy-resume.json    # 会话恢复点\n│   ├── esm-state.md             # 当前阶段（S0-S4）\n│   ├── chapter-status.md        # 各章进度台账\n│   ├── plan/                    # 大纲（来自 S1）\n│   └── expansion-plan.md       # 扩写计划（来自 S3.5）\n├── .learnings/                  # novel-generator 记忆（内置于 FBS）\n│   ├── CHARACTERS.md            # 角色设定（随写作更新）\n│   ├── LOCATIONS.md            # 地点设定\n│   ├── PLOT_POINTS.md          # 关键情节点\n│   └── ERRORS.md               # 生成失败记录 & 改进\n├── output/                      # 章节正文（每章一个 .md）\n└── deliverables/               # 交付物\n```\n\n> 所有写作上下文统一存在 `{bookRoot}/.learnings/`，FBS 和 novel-generator 共用同一套记忆，无需重复维护。\n\n---\n\n## 工作流阶段（FBS 标准）\n\n### S0 · 素材收集\n- 用户输入方向（题材/关键词/灵感/一句话）\n- 执行 `intake-router.mjs --book-root \"{bookRoot}\" --intent auto --json`\n- 整理为初始素材（来自 novel-generator 的\"提示词完善\"逻辑）\n- **门禁**：素材数 ≥ 赛道数 × 2\n\n### S1 · 规划\n- 生成完整大纲（使用 novel-generator 的大纲结构）\n- 包含：章节目录、每章目标字数、起承转合设计、爽点分布\n- 写入 `.fbs/plan/`\n- **门禁**：`s1-exit-gate`（章标题 + 目标字数确认）\n\n### S2 · 写作\n- 按章顺序逐章生成\n- 每章生成前读取 `.learnings/` 更新上下文\n- 生成后写入 `output/第XX章.md`\n- 用 `chapter-status.md` 更新进度\n- **门禁**：`s2-exit-gate`（章数 ≥ 3 + 字数达标）\n\n### S3 · 扩写 & 精修\n- **扩写**：基于 `expansion-plan.md` 增加字数/情节深度\n- **精修**：执行 `polish-gate.mjs` 质检后再改稿\n- 扩写前必须备份：`source-write-backup.mjs`\n- **门禁**：扩写字数以脚本实测为准，不许纯模型估算\n\n### S4 · 质检 & 交付\n- 执行 `final-manuscript-clean-gate.mjs`（检测过程标注，有则不交付）\n- 执行 `material-marker-governor.mjs --fix`（清理待核实标注）\n- 执行 `release-governor.mjs`（终稿唯一版本 + 归档）\n- 交付前确认无残留 `[DISCARDED-*]` / `待核实-MAT` 标注\n\n---\n\n## 提示词完善流程（novel-generator 逻辑）\n\n收到用户方向后，自动补全：\n\n```\n1. 题材定位    → 主类型 + 子类型（如：都市 + 修仙）\n2. 世界观设定  → 力量体系、社会规则、时代背景\n3. 主角人设    → 初始身份、性格、金手指/挂\n4. 核心冲突    → 主线矛盾 + 前3章即时冲突\n5. 爽点设计    → 打脸节奏、升级频率、装逼方式\n6. 节奏规划    → 每N章一个小高潮、每M章一个大高潮\n7. 配角框架    → 对手/盟友/红颜各至少1人\n8. 开篇钩子    → 第一章用什么抓住读者\n```\n\n完善后请用户确认，再进入大纲阶段。\n\n---\n\n## 执行命令速查\n\n| 场景 | 命令 |\n|------|------|\n| 初始化项目 | `node scripts/intake-router.mjs --book-root \"{bookRoot}\" --intent auto --json --enforce-required` |\n| 门禁检查 | `node scripts/s0-exit-gate.mjs --book-root \"{bookRoot}\" --json --confirm-advance` |\n| 进入下一阶段 | 按 esm-state.md 中的阶段推进阈值判断 |\n| 章节进度 | `node scripts/chapter-status-drift.mjs --book-root \"{bookRoot}\"` |\n| 精修质检 | `node scripts/polish-gate.mjs --book-root \"{bookRoot}\"` |\n| 扩写备份 | `node scripts/source-write-backup.mjs --book-root \"{bookRoot}\" --scope expansion --json` |\n| 扩写门禁 | `node scripts/expansion-gate.mjs --book-root \"{bookRoot}\"` |\n| 终稿清理 | `node scripts/final-manuscript-clean-gate.mjs --book-root \"{bookRoot}\"` |\n| 交付收口 | `node scripts/release-governor.mjs --book-root \"{bookRoot}\"` |\n| 退出/保存 | `node scripts/fbs-cli-bridge.mjs exit -- --book-root \"{bookRoot}\" --json` |\n\n> `scripts/` 在本技能根目录下，直接使用 `node scripts/<file>` 调用，`cwd` 为 novel-architect 技能根目录。\n\n> ⚠️ 依赖已嵌入：`node_modules/` 和 `references/` 已复制到本技能根目录，**无需依赖外部 fbs_bookwriter 目录**。\n\n---\n\n## 规则\n\n1. **串行优先**：每轮最多改 2 个文件，不要并行生成多章\n2. **先备份再精修**：执行 `polish-gate` 前必须先 `source-write-backup`\n3. **门禁不可绕过**：任何\"已完成/已通过\"结论必须附脚本证据\n4. **统一记忆**：角色/地点/情节统一写入 `.learnings/`，不要散落在别处\n5. **交付前检查**：`final-manuscript-clean-gate` 检测到标注则不得交付\n\n---\n\n## Trigger\n\n- 用户说：写小说/写书/章节/大纲/爽文/写作/续写\n- 用户说：开始下一章/继续写/这个情节怎么发展\n- 用户说：检查章节进度/质量审核\n- 用户说：导出终稿/打印/交付\n\nFile v1.2.0:scripts/_deprecated/README.md\n\n# scripts/_deprecated — 废弃脚本归档目录\n\n> **归档时间**：2026-04-11（v2.0.3）  \n> **说明**：此目录存放已被替代或不再使用的历史脚本，保留以备查阅，不参与正常执行流程。\n\n## 归档文件说明\n\n### nlu-optimization.mjs（31.37 KB）\n\n- **归档原因**：v2.0.3 引入 Sub-Agent 声明式定义（`.codebuddy/agents/`），\n  `fbs-researcher.md` 的 `description` 字段可由宿主原生自动委派替代该脚本的意图识别功能。\n  LLM 原生意图识别与此脚本存在大量功能重叠，保留会增加约 31KB 不必要的加载体积。\n- **替代方案**：`.codebuddy/agents/fbs-researcher.md`（S0情报收集）\n\n### nlu-optimization-enhanced.mjs（30.14 KB）\n\n- **归档原因**：同上，为 `nlu-optimization.mjs` 的增强版，功能重叠更甚。\n  v2.0.3 的 12 意图群路由表（`references/01-core/intake-and-routing.md §意图群路由`）\n  已覆盖原有的 66 条离散指令，以更轻量的方式实现等效路由。\n- **替代方案**：`references/01-core/intake-and-routing.md`（意图路由规范）\n\n## 注意事项\n\n- **不要直接运行**此目录下的任何脚本，其依赖的上下文可能已不存在\n- **不要从主流程引用**此目录下的任何脚本\n- 如需恢复某个功能，请先阅读相应替代方案，评估是否真的需要回滚\n\nFile v1.2.0: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 v1.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn7d6swzg6fj8ajsd6e6306x6x856a6k\",\n  \"slug\": \"novel-architect\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1779424807956\n}\n\nFile v1.2.0:scripts/generated/intent-canonical.snapshot.json\n\n{\n  \"schemaVersion\": \"1.0.0\",\n  \"version\": \"2.1.2\",\n  \"updatedAt\": \"2026-04-16T00:00:00.000Z\",\n  \"confidenceBands\": {\n    \"high\": 0.85,\n    \"medium\": 0.6\n  },\n  \"fallbackIntent\": \"OTHER\",\n  \"stopIntents\": [\n    \"STOP\"\n  ],\n  \"conflictPairs\": [\n    [\n      \"CONTINUE\",\n      \"CONFIRM_TOPIC\"\n    ],\n    [\n      \"STOP\",\n      \"EXPORT\"\n    ],\n    [\n      \"WRITE_BOOK\",\n      \"REVIEW\"\n    ],\n    [\n      \"ACTIVATE_MATERIAL\",\n      \"WRITE_BOOK\"\n    ]\n  ],\n  \"weakSignals\": [\n    \"好\",\n    \"嗯\",\n    \"可以\",\n    \"行\",\n    \"帮我\",\n    \"看看\",\n    \"看下\",\n    \"好的\"\n  ],\n  \"intents\": [\n    {\n      \"id\": \"ACTIVATE_ONLY\",\n      \"priority\": \"P0\",\n      \"routes_to\": \"activate_only\",\n      \"strongTriggersZh\": [\n        \"福帮手\",\n        \"福帮手写书skill\",\n        \"启动福帮手\",\n        \"打开福帮手\"\n      ],\n      \"strongTriggersEn\": [\n        \"activate skill\",\n        \"fbs-bookwriter\"\n      ],\n      \"slots\": []\n    },\n    {\n      \"id\": \"WRITE_BOOK\",\n      \"priority\": \"P0\",\n      \"routes_to\": \"S0/S1\",\n      \"strongTriggersZh\": [\n        \"写书\",\n        \"写一本\",\n        \"帮我写\",\n        \"写手册\",\n        \"写白皮书\",\n        \"写行业指南\",\n        \"定大纲\",\n        \"写章节\",\n        \"拆书改写\",\n        \"海外本地化改写\",\n        \"爆款结构改写\"\n      ],\n      \"strongTriggersEn\": [\n        \"write book\",\n        \"write guide\"\n      ],\n      \"slots\": [\n        \"bookRoot\",\n        \"stage\"\n      ]\n    },\n    {\n      \"id\": \"ACTIVATE_MATERIAL\",\n      \"priority\": \"P0\",\n      \"routes_to\": \"S0-A\",\n      \"strongTriggersZh\": [\n        \"激活原料\",\n        \"原料盘点\",\n        \"整理素材\",\n        \"盘点材料\"\n      ],\n      \"strongTriggersEn\": [\n        \"activate material\",\n        \"material inventory\"\n      ],\n      \"slots\": [\n        \"bookRoot\"\n      ]\n    },\n    {\n      \"id\": \"CONTINUE\",\n      \"priority\": \"P0\",\n      \"routes_to\": \"resume_current\",\n      \"strongTriggersZh\": [\n        \"继续\",\n        \"继续上次\",\n        \"接着写\",\n        \"往下写\",\n        \"继续写稿\"\n      ],\n      \"strongTriggersEn\": [\n        \"continue\",\n        \"go on\"\n      ],\n      \"slots\": [\n        \"bookRoot\",\n        \"stage\",\n        \"targetChapter\"\n      ]\n    },\n    {\n      \"id\": \"REVIEW\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"critic_review\",\n      \"strongTriggersZh\": [\n        \"质量自检\",\n        \"自检\",\n        \"质量检查\",\n        \"去AI味\",\n        \"审一审\"\n      ],\n      \"strongTriggersEn\": [\n        \"quality check\",\n        \"review\"\n      ],\n      \"slots\": [\n        \"bookRoot\",\n        \"scope\"\n      ]\n    },\n    {\n      \"id\": \"EXPORT\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"S4\",\n      \"strongTriggersZh\": [\n        \"导出\",\n        \"导出PDF\",\n        \"导出Word\",\n        \"打包下载\",\n        \"生成HTML\"\n      ],\n      \"strongTriggersEn\": [\n        \"export\",\n        \"download\",\n        \"package output\"\n      ],\n      \"slots\": [\n        \"bookRoot\",\n        \"outputFormat\"\n      ]\n    },\n    {\n      \"id\": \"STRATEGY\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"S2\",\n      \"strongTriggersZh\": [\n        \"换策略\",\n        \"切换模式\",\n        \"改策略\",\n        \"调整深度\"\n      ],\n      \"strongTriggersEn\": [\n        \"change strategy\",\n        \"switch mode\"\n      ],\n      \"slots\": [\n        \"mode\"\n      ]\n    },\n    {\n      \"id\": \"STATUS\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"status_echo\",\n      \"strongTriggersZh\": [\n        \"进度如何\",\n        \"到哪了\",\n        \"当前状态\",\n        \"还在吗\"\n      ],\n      \"strongTriggersEn\": [\n        \"status\",\n        \"progress\"\n      ],\n      \"slots\": [\n        \"bookRoot\"\n      ]\n    },\n    {\n      \"id\": \"STOP\",\n      \"priority\": \"P0\",\n      \"routes_to\": \"safe_stop\",\n      \"strongTriggersZh\": [\n        \"停止\",\n        \"取消\",\n        \"中断\",\n        \"退出\",\n        \"退出福帮手\",\n        \"停止当前任务\"\n      ],\n      \"strongTriggersEn\": [\n        \"stop\",\n        \"cancel\",\n        \"exit\"\n      ],\n      \"slots\": [\n        \"bookRoot\"\n      ]\n    },\n    {\n      \"id\": \"HELP\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"command_guide\",\n      \"strongTriggersZh\": [\n        \"怎么用\",\n        \"帮助\",\n        \"帮帮我\",\n        \"指令列表\"\n      ],\n      \"strongTriggersEn\": [\n        \"help\",\n        \"how to use\"\n      ],\n      \"slots\": []\n    },\n    {\n      \"id\": \"CONFIRM_TOPIC\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"topic_confirmed_continue\",\n      \"strongTriggersZh\": [\n        \"确认\",\n        \"确认继续\",\n        \"没错\",\n        \"是这个主题\"\n      ],\n      \"strongTriggersEn\": [\n        \"confirm\",\n        \"confirmed topic\"\n      ],\n      \"slots\": [\n        \"topic\"\n      ]\n    },\n    {\n      \"id\": \"CHECK_BALANCE\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"credits_balance_display\",\n      \"strongTriggersZh\": [\n        \"查看乐包\",\n        \"乐包余额\",\n        \"我的乐包\",\n        \"还有多少乐包\"\n      ],\n      \"strongTriggersEn\": [\n        \"check balance\",\n        \"credits balance\"\n      ],\n      \"slots\": []\n    },\n    {\n      \"id\": \"UPGRADE_HINT\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"upgrade_hint_display\",\n      \"strongTriggersZh\": [\n        \"怎么解锁\",\n        \"如何升级\",\n        \"怎么获得乐包\",\n        \"还差多少\"\n      ],\n      \"strongTriggersEn\": [\n        \"upgrade hint\",\n        \"how to unlock\"\n      ],\n      \"slots\": []\n    },\n    {\n      \"id\": \"FULL_BOOK_VIEW\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"full_book_status\",\n      \"strongTriggersZh\": [\n        \"全书视图\",\n        \"目录总览\",\n        \"全书章节\"\n      ],\n      \"strongTriggersEn\": [\n        \"full book view\",\n        \"book overview\"\n      ],\n      \"slots\": [\n        \"bookRoot\"\n      ]\n    },\n    {\n      \"id\": \"LIST_COMMANDS\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"command_list_display\",\n      \"strongTriggersZh\": [\n        \"全部指令\",\n        \"所有命令\",\n        \"命令清单\"\n      ],\n      \"strongTriggersEn\": [\n        \"list commands\",\n        \"all commands\"\n      ],\n      \"slots\": []\n    },\n    {\n      \"id\": \"OTHER\",\n      \"priority\": \"P2\",\n      \"routes_to\": \"fallback_help\",\n      \"strongTriggersZh\": [],\n      \"strongTriggersEn\": [],\n      \"slots\": []\n    }\n  ],\n  \"byId\": {}\n}\n\nFile v1.2.0:scripts/generated/scripts-manifest.json\n\n{\n  \"version\": 1,\n  \"generatedAt\": \"2026-04-16T23:39:24.831Z\",\n  \"skillRoot\": \"FBS-BookWriter\",\n  \"scripts\": [\n    \"adjacent-chapter-similarity.mjs\",\n    \"agents/agent-base.mjs\",\n    \"agents/agent-pool.mjs\",\n    \"agents/audit-agent.mjs\",\n    \"agents/audit-chapter-brief.mjs\",\n    \"agents/audit-esm-self-check.mjs\",\n    \"agents/audit-query-optimization.mjs\",\n    \"agents/audit-report-brief.mjs\",\n    \"agents/audit-state-transition.mjs\",\n    \"agents/audit-temporal-accuracy.mjs\",\n    \"agents/audit-term-consistency.mjs\",\n    \"agents/concurrency-controller.mjs\",\n    \"agents/cross-pipeline-coordinator.mjs\",\n    \"agents/deploy-agent.mjs\",\n    \"agents/esm-orchestrator.mjs\",\n    \"agents/esm-state-executor.mjs\",\n    \"agents/event-bus.mjs\",\n    \"agents/event-subscriber.mjs\",\n    \"agents/failure-recovery.mjs\",\n    \"agents/load-balancer.mjs\",\n    \"agents/parallel-orchestrator.mjs\",\n    \"agents/performance-optimizer.mjs\",\n    \"agents/pipeline-orchestrator.mjs\",\n    \"agents/progress-monitor.mjs\",\n    \"agents/research-agent.mjs\",\n    \"agents/review-agent.mjs\",\n    \"agents/session-agent-constants.mjs\",\n    \"agents/session-agent.mjs\",\n    \"agents/shutdown-protocol.mjs\",\n    \"agents/task-queue.mjs\",\n    \"agents/validation-agent.mjs\",\n    \"agents/writing-agent.mjs\",\n    \"apply-book-memory-template.mjs\",\n    \"approval-policy.mjs\",\n    \"audit-broken-links.mjs\",\n    \"audit-entry-performance.mjs\",\n    \"audit-garble.mjs\",\n    \"audit-pending-verification.mjs\",\n    \"audit-query-optimization.mjs\",\n    \"audit-temporal-accuracy.mjs\",\n    \"audit-term-consistency.mjs\",\n    \"auto-update-esm-state.mjs\",\n    \"book-health-snapshot.mjs\",\n    \"book-state-weekly-export.mjs\",\n    \"build-intent-canonical-assets.mjs\",\n    \"build-search-knowledge-cards.mjs\",\n    \"build-search-policy.mjs\",\n    \"chapter-dependency-gate.mjs\",\n    \"chapter-scheduler-hint.mjs\",\n    \"chapter-status-drift.mjs\",\n    \"check-and-init-artifacts.mjs\",\n    \"citation-format-check.mjs\",\n    \"clean-dist.mjs\",\n    \"cleanup-dev-data.mjs\",\n    \"cn-source-router.mjs\",\n    \"collect-host-diagnostics.mjs\",\n    \"command-approval-policy.mjs\",\n    \"consistency-audit.mjs\",\n    \"content-safety-precheck.mjs\",\n    \"delivery-chain.mjs\",\n    \"emit-upgrade-summary.mjs\",\n    \"encoding-governance.mjs\",\n    \"enforce-search-policy.mjs\",\n    \"env-preflight.mjs\",\n    \"esm-exit-hook.mjs\",\n    \"evolution-gate.mjs\",\n    \"evolution-natural.mjs\",\n    \"evolution-propose.mjs\",\n    \"exa-search-enhancer.mjs\",\n    \"execute-phase1.mjs\",\n    \"execute-phase2.mjs\",\n    \"execute-phase3.mjs\",\n    \"expansion-gate.mjs\",\n    \"expansion-plan-vs-material.mjs\",\n    \"expansion-word-verify.mjs\",\n    \"extract-search-policy-parts.mjs\",\n    \"fbs-auto-archive.mjs\",\n    \"fbs-cleanup.mjs\",\n    \"fbs-cli-bridge.mjs\",\n    \"fbs-doctor.mjs\",\n    \"fbs-quality-full.mjs\",\n    \"fbs-record-esm-transition.mjs\",\n    \"file-growth-guard.mjs\",\n    \"final-draft-state-machine.mjs\",\n    \"final-manuscript-clean-gate.mjs\",\n    \"generate-book-context-index.mjs\",\n    \"generate-scripts-manifest.mjs\",\n    \"heartbeat-monitor.mjs\",\n    \"high-risk-dual-source-gate.mjs\",\n    \"host-bridge.mjs\",\n    \"host-capability-detect.mjs\",\n    \"host-consume-presentation.mjs\",\n    \"html-delivery-smoke.mjs\",\n    \"init-fbs-multiagent-artifacts.mjs\",\n    \"init-project-memory.mjs\",\n    \"intake-router.mjs\",\n    \"intake-runtime-hooks.mjs\",\n    \"intent-ops-report.mjs\",\n    \"knowledge-delta-extractor.mjs\",\n    \"knowledge-fetcher.mjs\",\n    \"knowledge-reuse-kpi.mjs\",\n    \"large-file-inspector.mjs\",\n    \"launch-presentation-preview.mjs\",\n    \"lib/book-state-db.mjs\",\n    \"lib/channel-pack.mjs\",\n    \"lib/chapter-md-resolve.mjs\",\n    \"lib/context-engine.mjs\",\n    \"lib/entry-contract-runtime.mjs\",\n    \"lib/fbs-book-projects-registry.mjs\",\n    \"lib/fbs-book-snippet-index.mjs\",\n    \"lib/fbs-context-fences.mjs\",\n    \"lib/fbs-trace-logger.mjs\",\n    \"lib/git-workspace-changes.mjs\",\n    \"lib/governance-artifacts.mjs\",\n    \"lib/intake-router-gates.mjs\",\n    \"lib/intake-ux-enhancements.mjs\",\n    \"lib/intent-canonical.mjs\",\n    \"lib/memory-adapter.mjs\",\n    \"lib/memory-preference-dedupe.mjs\",\n    \"lib/memory-provider.mjs\",\n    \"lib/node-env-check.mjs\",\n    \"lib/onboarding-config.mjs\",\n    \"lib/onboarding-progress-service.mjs\",\n    \"lib/onboarding-store.mjs\",\n    \"lib/pack-skill-gates.mjs\",\n    \"lib/presentation-runtime.mjs\",\n    \"lib/quality-runtime.mjs\",\n    \"lib/runtime-result-store.mjs\",\n    \"lib/s2-quality-lexicon.mjs\",\n    \"lib/safe-fbs-json-write.mjs\",\n    \"lib/scale-tiers.mjs\",\n    \"lib/search-policy-parts.mjs\",\n    \"lib/skill-frontmatter.mjs\",\n    \"lib/suppress-node-sqlite-experimental-warning.mjs\",\n    \"lib/ux-concurrency-controller.mjs\",\n    \"lib/ux-memory-manager.mjs\",\n    \"lib/ux-optimization-enhanced-config.mjs\",\n    \"lib/ux-progress-reporter.mjs\",\n    \"lib/workbuddy-host-runtime.mjs\",\n    \"lib/workbuddy-workspace-memory.mjs\",\n    \"link-search-ledger-to-chapters.mjs\",\n    \"lockfile-diff-summary.mjs\",\n    \"material-marker-governor.mjs\",\n    \"material-marker-scan.mjs\",\n    \"md-mermaid-to-pdf.mjs\",\n    \"merge-chapters.mjs\",\n    \"merge-expansion-batch.mjs\",\n    \"method-drift-detector.mjs\",\n    \"midterm-execution-chain.mjs\",\n    \"midterm-governance-report.mjs\",\n    \"midterm-milestone-report.mjs\",\n    \"midterm-performance-dashboard.mjs\",\n    \"midterm-target-streak-check.mjs\",\n    \"midterm-trend-summary.mjs\",\n    \"multiagent-orchestrator.mjs\",\n    \"nlu-optimization-enhanced.mjs\",\n    \"nlu-optimization.mjs\",\n    \"normalize-governance-artifacts.mjs\",\n    \"normalize-ledger-dimensions.mjs\",\n    \"northstar-kpi.mjs\",\n    \"onboarding-system.mjs\",\n    \"optimization-package-final.mjs\",\n    \"output-validator.mjs\",\n    \"pack-codebuddy-plugin.mjs\",\n    \"pack-openclaw-skill.mjs\",\n    \"pack-release.mjs\",\n    \"pack-team-handoff.mjs\",\n    \"pack-workbuddy-marketplace.mjs\",\n    \"pack.ps1\",\n    \"phase1-nlu-performance.mjs\",\n    \"phase1-onboarding-enhanced.mjs\",\n    \"plan-board.mjs\",\n    \"plugin-capability-snapshot.mjs\",\n    \"plugin-routing-kpi.mjs\",\n    \"polish-gate.mjs\",\n    \"presentation-preview-server.mjs\",\n    \"propagation-debt-tracker.mjs\",\n    \"propose-lexicon-refresh.mjs\",\n    \"publish-clawhub.mjs\",\n    \"quality-audit-incremental.mjs\",\n    \"quality-auditor-lite.mjs\",\n    \"quality-auditor.mjs\",\n    \"quality-coverage-auditor.mjs\",\n    \"quality-improvement-phases.mjs\",\n    \"quality-panorama-orchestrator.mjs\",\n    \"quick-scan.ps1\",\n    \"record-search-preflight.mjs\",\n    \"reflective-repair-orchestrator.mjs\",\n    \"release-feedback-bridge.mjs\",\n    \"release-governor.mjs\",\n    \"releases-registry.mjs\",\n    \"repair-esm-state-from-table.mjs\",\n    \"repair-expansion-plan-skeleton.mjs\",\n    \"retrieval-evaluator.mjs\",\n    \"retro-action-sync.mjs\",\n    \"retro-mapping-matrix.mjs\",\n    \"retro-to-skill-candidates.mjs\",\n    \"rewrite-plan-bootstrap.mjs\",\n    \"run-p0-audits.mjs\",\n    \"runtime-nudge.mjs\",\n    \"s0-exit-gate.mjs\",\n    \"s3-guard.mjs\",\n    \"s3-start-gate.mjs\",\n    \"save-chapter-brief.mjs\",\n    \"scan-adjacent-chapters.mjs\",\n    \"search-query-planner.mjs\",\n    \"security-fence.mjs\",\n    \"self-enhancement-evolution.mjs\",\n    \"session-exit.mjs\",\n    \"session-recall-summarizer.mjs\",\n    \"session-state-manager.mjs\",\n    \"shared-knowledge-base.mjs\",\n    \"skill-import-security-scan.mjs\",\n    \"skills-import-guard.mjs\",\n    \"smart-memory-core.mjs\",\n    \"smart-memory-natural.mjs\",\n    \"smart-memory-security-enhanced.mjs\",\n    \"smoke-pack-verify.mjs\",\n    \"source-write-backup.mjs\",\n    \"split-workflow-full.mjs\",\n    \"standard-execution-chain.mjs\",\n    \"structural-bottleneck-guard.mjs\",\n    \"style-learning.mjs\",\n    \"sync-book-chapter-index.mjs\",\n    \"sync-chapter-status-chars.mjs\",\n    \"template-recommender.mjs\",\n    \"temporal-anchor-missing-checklist.mjs\",\n    \"terminology-gate.mjs\",\n    \"test-probe-gate.mjs\",\n    \"time-anchor-resolver.mjs\",\n    \"tool-output-budget-gate.mjs\",\n    \"tools/list-large-sources.mjs\",\n    \"upgrade-diff-scan.mjs\",\n    \"ux-flow-guard.mjs\",\n    \"ux-optimization-enhanced.mjs\",\n    \"ux-optimization.mjs\",\n    \"validate-runtime-hints.mjs\",\n    \"validate-skill-frontmatter.mjs\",\n    \"verify-chapter-status-truth.mjs\",\n    \"verify-expansion-plan-structure.mjs\",\n    \"verify-expected-artifacts.mjs\",\n    \"version-bump.mjs\",\n    \"version.mjs\",\n    \"visible-tech-action-kpi.mjs\",\n    \"watermark-utils.mjs\",\n    \"wecom/auth-check.mjs\",\n    \"wecom/lib/_state.mjs\",\n    \"wecom/lib/credits-ledger.mjs\",\n    \"wecom/lib/entitlement.mjs\",\n    \"wecom/lib/fbs-points.mjs\",\n    \"wecom/lib/scene-pack-schema.mjs\",\n    \"wecom/lib/user-config.mjs\",\n    \"wecom/lib/utils.mjs\",\n    \"wecom/scene-pack-admin.mjs\",\n    \"wecom/scene-pack-loader.mjs\",\n    \"wecom/verify-member.mjs\",\n    \"wecom/wecom-client.mjs\",\n    \"workbuddy-session-snapshot.mjs\",\n    \"workbuddy-user-profile-bridge.mjs\",\n    \"workflow-progressor.mjs\",\n    \"workspace-inspector.mjs\",\n    \"workspace-manifest.mjs\",\n    \"workspace-runtime.mjs\",\n    \"write-merge-report.mjs\",\n    \"write-progress-snapshot.mjs\",\n    \"writing-contract-gate.mjs\",\n    \"xl-project-init.mjs\"\n  ],\n  \"count\": 267\n}\n\nFile v1.2.0:skill-card.md\n\n## Description:\n\nA Chinese-language novel-writing workflow skill that guides an agent from story direction through outline planning, chapter drafting, quality checks, and final delivery using FBS workflow scripts.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[z625662197](https://clawhub.ai/user/z625662197)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal writers, developers, and agent operators use this skill to plan and produce long-form Chinese web-novel manuscripts with structured stages, persistent book memory, chapter tracking, quality gates, and delivery checks.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill may read project files and possibly WorkBuddy profile or memory data.\n\nMitigation: Use it only in workspaces where that access is acceptable; disable or review host-profile import before using confidential manuscripts.\n\nRisk: External search can expose manuscript context or research queries outside the local workspace.\n\nMitigation: Disable or explicitly review network search for confidential projects and keep search use auditable.\n\nRisk: Bundled maintenance, publishing, and self-evolution scripts can change project state or release artifacts.\n\nMitigation: Require explicit manual review and command approval before running those scripts.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/z625662197/skills/novel-architect)\n- [FBS-BookWriter Homepage](https://fbs-bookwriter.u3w.com/)\n- [Artifact Skill Definition](artifact/SKILL.md)\n- [Artifact Script Index](artifact/scripts/README.md)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Code, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown guidance with inline shell commands and generated project files]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May write manuscript state, memory files, chapter drafts, deliverables, and audit reports under a configured book root.]\n\n## Skill Version(s):\n\n1.2.0 (source: ClawHub release metadata; artifact frontmatter reports 1.0.0 and package.json reports 2.1.2)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.2.0:package.json\n\n{\n  \"name\": \"fbs-bookwriter\",\n  \"version\": \"2.1.2\",\n  \"description\": \"福帮手出品 | 高质量长文档手稿工具链：书籍、手册、白皮书、行业指南、长篇报道、深度专题；支持联网查证（宿主允许时启用，离线自动降级）、S/P/C/B 分层审校、中文排版与 MD/HTML 交付。触发词：福帮手、福帮手写书skill、福帮手写书、写书、出书、写长篇、写手册、写白皮书、写行业指南、协作写书、定大纲、写章节、封面、插图、排版构建、导出、去AI味、质量自检、图文书、写报道、写深度稿、写特稿、写专题、写调查报道、写长文、激活原料、原料盘点、整理素材\",\n  \"author\": \"悟空共创（杭州）智能科技有限公司\",\n  \"homepage\": \"https://fbs-bookwriter.u3w.com/\",\n  \"license\": \"MIT\",\n  \"private\": true,\n  \"type\": \"module\",\n  \"engines\": {\n    \"node\": \">=18\",\n    \"workbuddy\": \">=1.1\",\n    \"codebuddy\": \">=1.0\"\n  },\n  \"dependencies\": {\n    \"glob\": \"^13.0.6\",\n    \"iconv-lite\": \"^0.7.2\"\n  },\n  \"scripts\": {\n    \"build\": \"node assets/build.mjs\",\n    \"build:check\": \"node assets/build.mjs --check\",\n    \"test\": \"vitest run --config vitest.config.mjs\",\n    \"test:smoke\": \"node scripts/smoke-pack-verify.mjs\",\n    \"test:unit\": \"npm test\",\n    \"test:contract\": \"vitest run --config vitest.config.mjs scripts/test/skill-package-consistency.test.mjs scripts/test/entry-contracts.test.mjs scripts/test/version.test.mjs scripts/test/validate-runtime-hints.test.mjs scripts/test/evolution-gate.test.mjs scripts/test/progress-snapshot.test.mjs scripts/test/workbuddy-session-snapshot.test.mjs scripts/test/host-presentation-contract.test.mjs scripts/test/channel-pack-triple.test.mjs\",\n    \"test:integration\": \"vitest run --config vitest.config.mjs --exclude scripts/test/skill-package-consistency.test.mjs --exclude scripts/test/entry-contracts.test.mjs --exclude scripts/test/version.test.mjs --exclude scripts/test/validate-runtime-hints.test.mjs --exclude scripts/test/evolution-gate.test.mjs --exclude scripts/test/progress-snapshot.test.mjs --exclude scripts/test/workbuddy-session-snapshot.test.mjs\",\n    \"test:standard-chain\": \"vitest run --config vitest.config.mjs scripts/test/standard-execution-chain.test.mjs\",\n    \"test:s3-gate\": \"vitest run --config vitest.config.mjs scripts/test/s3-start-gate.test.mjs\",\n    \"test:s3-guard\": \"vitest run --config vitest.config.mjs scripts/test/s3-guard.test.mjs\",\n    \"host:detect\": \"node scripts/host-capability-detect.mjs --book-root . --json\",\n    \"intake:route\": \"node scripts/intake-router.mjs\",\n    \"intake:new\": \"node scripts/intake-router.mjs --intent new-session\",\n    \"intake:edit\": \"node scripts/intake-router.mjs --intent edit\",\n    \"intake:resume\": \"node scripts/intake-router.mjs --intent resume\",\n    \"intake:qc\": \"node scripts/intake-router.mjs --intent qc\",\n    \"init:fbs\": \"node scripts/init-fbs-multiagent-artifacts.mjs\",\n    \"gate:s3\": \"node scripts/s3-start-gate.mjs\",\n    \"gate:s0-exit\": \"node scripts/s0-exit-gate.mjs\",\n    \"gate:s3:strict\": \"node scripts/s3-start-gate.mjs --verify-stages\",\n    \"gate:polish\": \"node scripts/polish-gate.mjs\",\n    \"gate:chapter:strict\": \"node scripts/enforce-search-policy.mjs --verify-stages --stage-scope pre-s3 --verify-atomicity\",\n    \"run:standard-chain\": \"node scripts/standard-execution-chain.mjs\",\n    \"serve:presentation\": \"node scripts/presentation-preview-server.mjs\",\n    \"preview:latest\": \"node scripts/launch-presentation-preview.mjs\",\n    \"consume:presentation\": \"node scripts/host-consume-presentation.mjs\",\n    \"monitor:heartbeat\": \"node scripts/heartbeat-monitor.mjs\",\n    \"verify:chapter-status\": \"node scripts/verify-chapter-status-truth.mjs\",\n    \"gate:writing-contract\": \"node scripts/writing-contract-gate.mjs\",\n    \"verify:expansion\": \"node scripts/expansion-word-verify.mjs\",\n    \"rewrite:plan\": \"node scripts/rewrite-plan-bootstrap.mjs\",\n    \"backup:source-write\": \"node scripts/source-write-backup.mjs\",\n    \"verify:expansion-plan\": \"node scripts/verify-expansion-plan-structure.mjs\",\n    \"gate:expansion\": \"node scripts/expansion-gate.mjs\",\n    \"audit:expansion-plan\": \"node scripts/expansion-plan-vs-material.mjs\",\n    \"scan:adjacent\": \"node scripts/adjacent-chapter-similarity.mjs\",\n    \"merge:expansion-batch\": \"node scripts/merge-expansion-batch.mjs\",\n    \"env:preflight\": \"node scripts/env-preflight.mjs\",\n    \"doctor\": \"node scripts/fbs-doctor.mjs\",\n    \"validate:skill-frontmatter\": \"node scripts/validate-skill-frontmatter.mjs --skill-root .\",\n    \"merge:chapters\": \"node scripts/merge-chapters.mjs\",\n    \"sync:chapter-status-chars\": \"node scripts/sync-chapter-status-chars.mjs\",\n    \"book-health:snapshot\": \"node scripts/book-health-snapshot.mjs --book-root ./fixtures/ci-book-root --skill-root . --skip-expansion-gate\",\n    \"ci:fast\": \"npm test && npm run validate:runtime-hints && npm run check:search-policy && npm run audit:consistency\",\n    \"ci:release\": \"npm run ci:fast && npm run audit:all && npm run manifest:scripts && npm run gate:evolution\",\n    \"guard:s3\": \"node scripts/s3-guard.mjs\",\n    \"guard:s3:full\": \"node scripts/s3-guard.mjs --verify-stages --audit-broken-links-enforce\",\n    \"guard:s3:midterm\": \"node scripts/s3-guard.mjs --skill-root . --book-root ./fixtures/ci-book-root --with-midterm-chain --midterm-days 7\",\n    \"audit:broken-links\": \"node scripts/audit-broken-links.mjs --root . --channel user --enforce\",\n    \"audit:all\": \"node scripts/run-p0-audits.mjs --skill-root . --book-root ./fixtures/ci-book-root\",\n    \"audit:all:strict\": \"node scripts/run-p0-audits.mjs --skill-root . --book-root ./fixtures/ci-book-root --strict\",\n    \"audit:entry-gate\": \"node scripts/audit-entry-performance.mjs --skill-root . --book-root . --channel all --enforce\",\n    \"inspect:large-files\": \"node scripts/large-file-inspector.mjs --root . --top 30 --min-kb 20\",\n    \"inspect:large-lines\": \"node scripts/tools/list-large-sources.mjs\",\n    \"guard:file-growth\": \"node scripts/file-growth-guard.mjs\",\n    \"archive:fbs-auto\": \"node scripts/fbs-auto-archive.mjs\",\n    \"state:weekly-export\": \"node scripts/book-state-weekly-export.mjs\",\n    \"midterm:dashboard\": \"node scripts/midterm-performance-dashboard.mjs --book-root ./fixtures/ci-book-root --days 7\",\n    \"midterm:governance\": \"node scripts/midterm-governance-report.mjs --book-root ./fixtures/ci-book-root --week-label 2026-W16 --json\",\n    \"midterm:trend\": \"node scripts/midterm-trend-summary.mjs --book-root ./fixtures/ci-book-root --json\",\n    \"midterm:milestone\": \"node scripts/midterm-milestone-report.mjs --book-root ./fixtures/ci-book-root --week-label 2026-W16 --json\",\n    \"knowledge:cards\": \"node scripts/build-search-knowledge-cards.mjs --book-root ./fixtures/ci-book-root --json\",\n    \"knowledge:reuse\": \"node scripts/knowledge-reuse-kpi.mjs --book-root ./fixtures/ci-book-root --json\",\n    \"intent:ops:report\": \"node scripts/intent-ops-report.mjs\",\n    \"kpi:visible-tech-action\": \"node scripts/visible-tech-action-kpi.mjs --skill-root . --book-root ./fixtures/ci-book-root --mode runtime --min-reason-coverage 90\",\n    \"gate:tool-output-budget\": \"node scripts/tool-output-budget-gate.mjs --book-root ./fixtures/ci-book-root --max-per-file-kb 512 --max-total-mb 8\",\n    \"gate:command-approval\": \"node scripts/approval-policy.mjs --command \\\"node scripts/pack-release.mjs\\\" --json\",\n    \"scan:skill-import-security\": \"node scripts/skills-import-guard.mjs --skill-root .\",\n    \"session:recall\": \"node scripts/session-recall-summarizer.mjs --book-root ./fixtures/ci-book-root\",\n    \"guard:content-safety\": \"node scripts/content-safety-precheck.mjs --input-file ./SKILL.md\",\n    \"kpi:plugin-capability\": \"node scripts/plugin-capability-snapshot.mjs --book-root ./fixtures/ci-book-root --skill-root . --intent auto\",\n    \"kpi:plugin-routing\": \"node scripts/plugin-routing-kpi.mjs --book-root ./fixtures/ci-book-root\",\n    \"kpi:northstar\": \"node scripts/northstar-kpi.mjs --book-root ./fixtures/ci-book-root\",\n    \"workflow:delivery-chain\": \"node scripts/delivery-chain.mjs --book-root ./fixtures/ci-book-root\",\n    \"gate:dual-source\": \"node scripts/high-risk-dual-source-gate.mjs --book-root ./fixtures/ci-book-root --enforce\",\n    \"audit:temporal-checklist\": \"node scripts/temporal-anchor-missing-checklist.mjs --book-root ./fixtures/ci-book-root --json\",\n    \"retro:mapping-matrix\": \"node scripts/retro-mapping-matrix.mjs --book-root ./fixtures/ci-book-root --json\",\n    \"target:streak\": \"node scripts/midterm-target-streak-check.mjs --book-root ./fixtures/ci-book-root --json\",\n    \"governance:normalize\": \"node scripts/normalize-governance-artifacts.mjs --book-root ./fixtures/ci-book-root --prune-on-exists --json\",\n    \"midterm:chain\": \"node scripts/midterm-execution-chain.mjs --book-root ./fixtures/ci-book-root --skill-root . --days 7 --json\",\n    \"midterm:chain:strict\": \"node scripts/midterm-execution-chain.mjs --book-root ./fixtures/ci-book-root --skill-root . --days 7 --enforce\",\n    \"guard:structure\": \"node scripts/structural-bottleneck-guard.mjs --skill-root .\",\n    \"workflow:split\": \"node scripts/split-workflow-full.mjs --full-file ./references/01-core/section-3-workflow.full.md --out-dir ./references/01-core/workflow-volumes\",\n    \"lockfile:summary\": \"node scripts/lockfile-diff-summary.mjs --root . && node scripts/lockfile-diff-summary.mjs --root . --out fixtures/ci-book-root/.fbs/lockfile-summary.json\",\n    \"audit:encoding\": \"node scripts/encoding-governance.mjs --root .\",\n    \"quality:audit\": \"node scripts/quality-auditor-lite.mjs --inputs ./SKILL.md,./references/01-core/section-3-workflow.md,./references/01-core/section-nlu.md --min-score 7.5\",\n    \"quality:full\": \"node scripts/fbs-quality-full.mjs --book-root ./fixtures/ci-book-root\",\n    \"quality:audit:full\": \"node scripts/quality-auditor.mjs --glob \\\"references/**/*.md\\\" --enforce\",\n    \"quality:audit:incremental\": \"node scripts/quality-audit-incremental.mjs --skill-root . --book-root . --mode auto --since-hours 72 --max-files 30 --min-score 7.5\",\n    \"quality:audit:panorama\": \"node scripts/quality-panorama-orchestrator.mjs --skill-root . --book-root . --mode auto --since-hours 72 --max-files 30 --timeout-minutes 15 --max-turns 12 --max-retries 1\",\n    \"fbs:esm\": \"node scripts/fbs-record-esm-transition.mjs\",\n    \"fbs:search-preflight\": \"node scripts/record-search-preflight.mjs\",\n    \"audit:retro-sync\": \"node scripts/retro-action-sync.mjs\",\n    \"nudge:runtime\": \"node scripts/runtime-nudge.mjs\",\n    \"retro:skill-candidates\": \"node scripts/retro-to-skill-candidates.mjs\",\n    \"state:final-draft\": \"node scripts/final-draft-state-machine.mjs\",\n    \"govern:release\": \"node scripts/release-governor.mjs\",\n    \"govern:material\": \"node scripts/material-marker-governor.mjs\",\n    \"gate:final-clean\": \"node scripts/final-manuscript-clean-gate.mjs\",\n    \"fbs:cli\": \"node scripts/fbs-cli-bridge.mjs\",\n    \"session:state\": \"node scripts/session-state-manager.mjs\",\n    \"memory:smart:core\": \"node scripts/smart-memory-core.mjs\",\n    \"memory:smart:natural\": \"node scripts/smart-memory-natural.mjs\",\n    \"memory:preference:show\": \"node scripts/smart-memory-core.mjs preference-show .\",\n    \"memory:preference:update\": \"node scripts/smart-memory-core.mjs preference-update . --preference-json\",\n    \"memory:preference:freeze\": \"node scripts/smart-memory-core.mjs preference-freeze .\",\n    \"memory:preference:unfreeze\": \"node scripts/smart-memory-core.mjs preference-unfreeze .\",\n    \"memory:preference:history\": \"node scripts/smart-memory-core.mjs preference-history .\",\n    \"search:planner\": \"node scripts/search-query-planner.mjs\",\n    \"search:time-anchor\": \"node scripts/time-anchor-resolver.mjs\",\n    \"search:router\": \"node scripts/cn-source-router.mjs\",\n    \"search:repair\": \"node scripts/reflective-repair-orchestrator.mjs\",\n    \"guard:ux-flow\": \"node scripts/ux-flow-guard.mjs --skill-root . --book-root .\",\n    \"test:retrieval-chain\": \"vitest run --config vitest.config.mjs scripts/test/retrieval-execution-chain.test.mjs\",\n    \"test:midterm-dashboard\": \"vitest run --config vitest.config.mjs scripts/test/midterm-performance-dashboard.test.mjs\",\n    \"test:midterm-governance\": \"vitest run --config vitest.config.mjs scripts/test/midterm-governance-report.test.mjs\",\n    \"test:governance-normalize\": \"vitest run --config vitest.config.mjs scripts/test/normalize-governance-artifacts.test.mjs\",\n    \"test:midterm-chain\": \"vitest run --config vitest.config.mjs scripts/test/midterm-execution-chain.test.mjs\",\n    \"test:midterm-addons\": \"vitest run --config vitest.config.mjs scripts/test/midterm-pipeline-addons.test.mjs\",\n    \"test:writing-agent\": \"vitest run --config vitest.config.mjs scripts/test/writing-agent-runtime.test.mjs\",\n    \"test:intent-canonical\": \"vitest run --config vitest.config.mjs scripts/test/intent-canonical.test.mjs\",\n    \"test:intent-ops-report\": \"vitest run --config vitest.config.mjs scripts/test/intent-ops-report.test.mjs\",\n    \"init:project-memory\": \"node scripts/init-project-memory.mjs\",\n    \"memory:apply-template\": \"node scripts/apply-book-memory-template.mjs\",\n    \"fbs:normalize-ledger-dim\": \"node scripts/normalize-ledger-dimensions.mjs\",\n    \"scene-pack:check\": \"node scripts/wecom/scene-pack-admin.mjs check\",\n    \"scene-pack:init\": \"node scripts/wecom/scene-pack-admin.mjs init --official\",\n    \"scene-pack:status\": \"node scripts/wecom/scene-pack-admin.mjs status\",\n    \"feedback:record\": \"node scripts/release-feedback-bridge.mjs record .\",\n    \"feedback:summary\": \"node scripts/release-feedback-bridge.mjs summary .\",\n    \"feedback:apply\": \"node scripts/release-feedback-bridge.mjs apply .\",\n    \"version:bump\": \"node scripts/version-bump.mjs\",\n    \"upgrade:diff-scan\": \"node scripts/upgrade-diff-scan.mjs\",\n    \"emit:upgrade-summary\": \"node scripts/emit-upgrade-summary.mjs\",\n    \"propose:lexicon-refresh\": \"node scripts/propose-lexicon-refresh.mjs\",\n    \"diagnostics:host\": \"node scripts/collect-host-diagnostics.mjs\",\n    \"test:probe-gate\": \"node scripts/test-probe-gate.mjs\",\n    \"pack:workbuddy\": \"node scripts/pack-workbuddy-marketplace.mjs\",\n    \"pack:team-handoff\": \"node scripts/pack-team-handoff.mjs\",\n    \"pack:internal-docs\": \"node scripts/pack-team-handoff.mjs\",\n    \"pack:codebuddy\": \"node scripts/pack-codebuddy-plugin.mjs\",\n    \"pack:skill-gates\": \"node scripts/lib/pack-skill-gates.mjs\",\n    \"audit:manuscript-full\": \"node scripts/quality-auditor.mjs --profile manuscript-full --book-root ./fixtures/ci-book-root --skill-root .\",\n    \"drift:chapter-status\": \"node scripts/chapter-status-drift.mjs --book-root ./fixtures/ci-book-root\",\n    \"audit:consistency\": \"node scripts/consistency-audit.mjs\",\n    \"validate:runtime-hints\": \"node scripts/validate-runtime-hints.mjs --skill-root .\",\n    \"build:search-policy\": \"node scripts/build-search-policy.mjs\",\n    \"build:intent-canonical\": \"node scripts/build-intent-canonical-assets.mjs\",\n    \"check:search-policy\": \"node scripts/build-search-policy.mjs --check\",\n    \"extract:search-policy\": \"node scripts/extract-search-policy-parts.mjs\",\n    \"manifest:scripts\": \"node scripts/generate-scripts-manifest.mjs\",\n    \"fbs:progress-snapshot\": \"node scripts/write-progress-snapshot.mjs\",\n    \"gate:evolution\": \"node scripts/evolution-gate.mjs\",\n    \"evolution:propose\": \"node scripts/evolution-propose.mjs\",\n    \"pack:openclaw\": \"node scripts/pack-openclaw-skill.mjs\",\n    \"publish:clawhub\": \"node scripts/publish-clawhub.mjs\",\n    \"pack:release\": \"node scripts/pack-release.mjs\",\n    \"pack:release:all\": \"node scripts/pack-release.mjs --all\",\n    \"clean:dist\": \"node scripts/clean-dist.mjs\",\n    \"clean:dist:prune\": \"node scripts/clean-dist.mjs --prune-pre-211\"\n  },\n  \"scene-pack-version\": \"2.1.2\",\n  \"devDependencies\": {\n    \"adm-zip\": \"^0.5.17\",\n    \"vitest\": \"^4.1.3\"\n  }\n}\n\nArchive v1.1.0: 437 files, 1322231 bytes\n\nFiles: assets/books.config.mjs (2938b), assets/build.mjs (29318b), assets/style.css (12530b), assets/template-fallback.html (1985b), package-lock.json (46813b), package.json (15728b), references/01-core/brand-platform-convention.md (5070b), references/01-core/documentation-layers.md (5933b), references/01-core/execution-contract-brief.md (4014b), references/01-core/expansion-fact-tagging.md (769b), references/01-core/information-ownership-and-arbitration.md (1971b), references/01-core/intake-and-routing.md (27381b), references/01-core/intent-canonical.generated.md (1594b), references/01-core/intent-canonical.json (4948b), references/01-core/intent-capability-map.md (2535b), references/01-core/memory-layer-matrix.md (2191b), references/01-core/offline-online-upgrade-guide.md (4072b), references/01-core/outline-freeze.md (1540b), references/01-core/qc-agent-briefing-template.md (2829b), references/01-core/runtime-mandatory-contract.md (6615b), references/01-core/s0-material-phase-guard.md (5224b), references/01-core/s3-expansion-phase.md (7870b), references/01-core/s3-refinement-phase.md (1395b), 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 (20522b), references/01-core/section-nlu.md (6288b), references/01-core/section-s6-transformation.md (17828b), references/01-core/session-protocols.md (12291b), references/01-core/skill-authoritative-supplement.md (16390b), references/01-core/skill-cli-bridge-matrix.md (2823b), 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 (3639b), references/01-core/workflow-volumes/workflow-s2.md (3501b), references/01-core/workflow-volumes/workflow-s3-closure.md (2546b), references/01-core/workflow-volumes/workflow-s3-core.md (11380b), references/01-core/workflow-volumes/workflow-s3-writing-guide.md (14562b), 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 (5453b), references/01-core/workflow-volumes/workflow-s6.md (2110b), references/02-quality/abbreviation-audit-lexicon.json (492b), references/02-quality/ai-pattern-lexicon.json (13309b), references/02-quality/book-level-consistency.md (3618b), references/02-quality/citation-format.md (3038b), references/02-quality/cross-chapter-consistency.md (8066b), references/02-quality/genre-completion-checklist.md (1166b), references/02-quality/metrics.md (7138b), references/02-quality/quality-AI-scan.md (5704b), 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 (269b), references/02-quality/s2-quality-machine-lexicon.json (1655b), references/02-quality/s5-buzzword-lexicon.json (2181b), references/02-quality/writing-phase-alert-tiers.md (2448b), references/03-product/01-user-install-guide.md (10243b), references/03-product/04-templates.md (10132b), references/03-product/06-typography.md (7328b), references/03-product/07-ux-design.md (7933b), references/03-product/08-visual.md (6820b), references/03-product/10-case-library.md (1307b), references/03-product/fbs-value-one-pager.md (3637b), references/03-product/lexical-editor-guide.md (1866b), references/03-product/mermaid-templates/flowchart.md (3372b), references/03-product/mermaid-templates/gantt.md (3168b), references/03-product/mermaid-templates/mindmap.md (2839b), references/03-product/mermaid-templates/sequence.md (3126b), references/03-product/mermaid-templates/state.md (3417b), references/03-product/mermaid-templates/timeline.md (2705b), references/05-ops/agent-task-strategy.md (5661b), references/05-ops/anti-stall-guide.md (1751b) (+37 more)\n\nFile v1.1.0:scripts/_deprecated/README.md\n\n# scripts/_deprecated — 废弃脚本归档目录\n\n> **归档时间**：2026-04-11（v2.0.3）  \n> **说明**：此目录存放已被替代或不再使用的历史脚本，保留以备查阅，不参与正常执行流程。\n\n## 归档文件说明\n\n### nlu-optimization.mjs（31.37 KB）\n\n- **归档原因**：v2.0.3 引入 Sub-Agent 声明式定义（`.codebuddy/agents/`），\n  `fbs-researcher.md` 的 `description` 字段可由宿主原生自动委派替代该脚本的意图识别功能。\n  LLM 原生意图识别与此脚本存在大量功能重叠，保留会增加约 31KB 不必要的加载体积。\n- **替代方案**：`.codebuddy/agents/fbs-researcher.md`（S0情报收集）\n\n### nlu-optimization-enhanced.mjs（30.14 KB）\n\n- **归档原因**：同上，为 `nlu-optimization.mjs` 的增强版，功能重叠更甚。\n  v2.0.3 的 12 意图群路由表（`references/01-core/intake-and-routing.md §意图群路由`）\n  已覆盖原有的 66 条离散指令，以更轻量的方式实现等效路由。\n- **替代方案**：`references/01-core/intake-and-routing.md`（意图路由规范）\n\n## 注意事项\n\n- **不要直接运行**此目录下的任何脚本，其依赖的上下文可能已不存在\n- **不要从主流程引用**此目录下的任何脚本\n- 如需恢复某个功能，请先阅读相应替代方案，评估是否真的需要回滚\n\nFile v1.1.0: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 v1.1.0: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 v1.1.0: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 v1.1.0:references/01-core/execution-contract-brief.md\n\n# 执行契约简报（宿主 × 模型 × workspace）\n\n**版本**：2.0.2 · **层级**：L0' 补充（与 `SKILL.md`、`intake-and-routing.md` 同读）\n\n## 1. 各方职责边界\n\n| 角色 | 必须保证 |\n|------|----------|\n| **宿主（IDE / WorkBuddy 等）** | 提供可验证的 workspace 写入、可用 CLI（Node）及网络检索能力声明；不虚构声称已跑过某脚本（unless 实际执行过） |\n| **模型（本 Skill 驱动）** | 按 `WP1 → 搜索前置合同 → WP2` 的顺序推进；状态宣告、台账写入与结果展示以当前 `bookRoot` 为准，不依赖对话内易失记忆 |\n| **用户 / 主编** | 指定本书根目录、触发门禁与合稿；对豁免项书面确认（文体豁免、时间范围约定等） |\n\n## 2. 双工作面合同（WP1 / WP2）\n\n| 工作面 | 发生时机 | 面向用户如何说 | 内部约束 |\n|--------|----------|----------------|----------|\n| **WP1 起步工作面** | `INTAKE` 首响 | 先说「整理材料 / 明确主题 / 一起找方向」 | 不把「虚拟书房 / 路径A/B/C / S0」当首句入口术语 |\n| **WP2 书稿工作面** | 锁定路径后、进入 `INTAKE → RESEARCH` | 说明「资料、进度、交付都在当前工作区」 | 将 `.fbs/`、`deliverables/`、`releases/` 作为首个可用工作面 |\n\n**绑定规则**：\n\n1. 先在 `WP1` 用日常语言锁定用户入口。\n2. 再宣告搜索前置合同（为什么查 / 查什么 / 查完去哪一步 / 不能联网怎么办）。\n3. 最后进入 `WP2`，把三层 workspace 与当前阶段动作绑定起来。\n\n## 3. 搜索前置合同\n\n进入任意 `S0/S1/S2` 调研或章节前置检索前，必须在对话里先说清四件事：\n\n- **为什么现在要查**：本轮检索要解决什么不确定性或推进哪一步。\n- **要查哪几类内容**：如主题现状、同类内容、目标读者、时间基准。\n- **查完后直接进入哪一步**：例如进入大纲、素材盘点或章节写作。\n- **离线如何降级**：无法联网时要显式说明为离线降级，而不是静默改用模型知识。\n\n推荐口径：\n\n> 我先查一下当前主题的同类内容、目标读者和时间基准，查完就给你整理出下一步写法；如果现在不能联网，我会明确标注为离线降级。\n\n## 4. workspace 真值与治理边界\n\n以下路径为**跨会话可审计**真相；对话摘要、artifact 文档、宿主记忆不可替代：\n\n| 路径/范围 | 角色 | 说明 |\n|-----------|------|------|\n| `.fbs/` | **内部真值层** | ESM 状态、检索台账、章节状态、待核实项等过程真值 |\n| `deliverables/` | **对外交付层** | `md/html/package` 等用户可见交付物 |\n| `releases/` | **发布准备层** | `*-release.json` 与发布映射入口 |\n| `brain/<conversation-id>/` | **artifact 层** | 过程性报告/评审稿，可展示但**不得充当项目真值** |\n| `.workbuddy/memory` / 宿主记忆 | **参考层** | 只读偏好与背景，不得覆盖本书 workspace 状态 |\n\n首个可用工作面成立条件：\n\n- `.fbs/`、`deliverables/`、`releases/` 三层目录已存在；\n- `.fbs/esm-state.md`、`.fbs/规范执行状态.md`、`.fbs/chapter-status.md` 可作为状态入口；\n- 对用户的说明先是「当前工作区已就绪」，再按需介绍“虚拟书房”这一术语。\n\n## 5. 原子性与宣告\n\n- 状态切换须满足 `search-policy.json` 的 `esmAnnouncementAtomicity`（旧→新、原因、自检出口、下一步同次输出）。\n- P0 阻断条件见 `p0-cli-map.md` 的 `p0AutomationIndex`；脚本存在 ≠ 已执行，以实际命令与退出码为准。\n- 若声称已进入 `WP2` 或已完成搜索前置合同，必须能在对话文本与 workspace 状态文件中找到对应证据。\n\n## 6. 相关条文\n\n- 入口路由与首响约束：`references/01-core/intake-and-routing.md`\n- 多 Writer 磁盘协同：`references/05-ops/multi-agent-horizontal-sync.md`\n- 承诺与工具对照：`references/05-ops/promise-code-user-alignment.md`\n\nFile v1.1.0:references/01-core/expansion-fact-tagging.md\n\n# 扩写与精修中的事实标注（MAT / 待证实）\n\n> **配套**：[`s3-expansion-phase.md`](./s3-expansion-phase.md) · [`quality-PLC.md`](../02-quality/quality-PLC.md) §C\n\n---\n\n## 规则\n\n1. **新增**数据、引语、可核验案例：须能对应 `material-library.md` 或检索 ledger，正文用 **`[MAT-xxx]`** 或团队约定编号。\n2. **无素材支撑**但需保留的表述：标 **「作者观察」** 或 **「行业共识（待补证）」**，不得伪装为已引用事实。\n3. 精修阶段 **删除** 无法标注又声称可核验的句子，或改为上述两类之一。\n\n## 扩写后抽检\n\n- 运行 `quality-auditor-lite` 时关注 **事实无出处** 类告警；C 层人工勾选「新增段是否均有来源或已标待证实」。\n\nFile v1.1.0:references/01-core/information-ownership-and-arbitration.md\n\n# 信息产权、场景包坐标与记忆仲裁\n\n> **目的**：把「用户话 / 磁盘真值 / 系统策略」三类信息分开，避免模型把摘要、画像或场景包规则当成用户本轮新指令。与 `fbs-runtime-hints.json`、`session-resume-brief` 机读计量、`intake-router` 的 `compliance` 字段对齐。\n\n---\n\n## 1. 三类产权\n\n| 类别 | 典型来源 | 处理原则 |\n|------|----------|----------|\n| **用户主权** | 当前气泡、当轮确认 | 最高优先级；摘要与记忆不得覆盖 |\n| **世界状态** | `.fbs/`、`chapter-status.md`、已交付文件 | 以磁盘为准；变更需写入或经用户确认 |\n| **系统策略** | 场景包、`SKILL.md` 流程、质检规则 | 只读引用；不冒充用户命令 |\n\n---\n\n## 2. 场景包坐标（单先验）\n\n- **推断**：`intake-runtime-hooks.mjs` 的 `inferScenePackIdFromText` → `scenePackId`。\n- **主规则**：`references/scene-packs/<scenePackId>.md`\n- **质量补丁（L3）**：`references/scene-packs/<scenePackId>-local-rule.md`\n- **首响**：不向用户朗读全文；`intake-router` JSON 的 `firstResponseContext.scenePackCoordinate` 仅提供 **相对路径锚点**，进入对应阶段再 `read_file`。\n\n---\n\n## 3. 记忆仲裁（冲突时听谁）\n\n1. **用户最新明确陈述** 覆盖旧摘要与旧记忆条目。\n2. **本书** `.fbs/smart-memory/` 与 **`session-exit` 原子写** 的恢复卡 / brief，优先于未落盘的闲聊推断。\n3. **宿主系统级记忆**（如 `~/.workbuddy`）与本书冲突时：**以用户当轮确认 + 本书写盘** 为准（见 `fbs-runtime-hints.json` → `hostMemory`）。\n\n---\n\n## 4. 与上下文引擎的关系\n\n- `runtime.contextEngine.scenePackId` 与场景包推断一致时，**压缩条数/字数上限**为该坐标下的策略；见 `scripts/lib/context-engine.mjs`。\n- 若未跑 `intake-router`，`session-resume-brief.md` 顶部仍提示以 **最近一次 intake JSON** 的 `policy` 为准。\n\nFile v1.1.0: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 v1.1.0: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`.\n\nFile v1.1.0:references/01-core/intent-canonical.json\n\n{\n  \"schemaVersion\": \"1.0.0\",\n  \"version\": \"2.1.2\",\n  \"updatedAt\": \"2026-04-16T00:00:00.000Z\",\n  \"confidenceBands\": {\n    \"high\": 0.85,\n    \"medium\": 0.6\n  },\n  \"fallbackIntent\": \"OTHER\",\n  \"stopIntents\": [\"STOP\"],\n  \"conflictPairs\": [\n    [\"CONTINUE\", \"CONFIRM_TOPIC\"],\n    [\"STOP\", \"EXPORT\"],\n    [\"WRITE_BOOK\", \"REVIEW\"],\n    [\"ACTIVATE_MATERIAL\", \"WRITE_BOOK\"]\n  ],\n  \"weakSignals\": [\n    \"好\",\n    \"嗯\",\n    \"可以\",\n    \"行\",\n    \"帮我\",\n    \"看看\",\n    \"看下\",\n    \"好的\"\n  ],\n  \"intents\": [\n    {\n      \"id\": \"ACTIVATE_ONLY\",\n      \"priority\": \"P0\",\n      \"routes_to\": \"activate_only\",\n      \"strongTriggersZh\": [\"福帮手\", \"福帮手写书skill\", \"启动福帮手\", \"打开福帮手\"],\n      \"strongTriggersEn\": [\"activate skill\", \"fbs-bookwriter\"],\n      \"slots\": []\n    },\n    {\n      \"id\": \"WRITE_BOOK\",\n      \"priority\": \"P0\",\n      \"routes_to\": \"S0/S1\",\n      \"strongTriggersZh\": [\"写书\", \"写一本\", \"帮我写\", \"写手册\", \"写白皮书\", \"写行业指南\", \"定大纲\", \"写章节\", \"拆书改写\", \"海外本地化改写\", \"爆款结构改写\"],\n      \"strongTriggersEn\": [\"write book\", \"write guide\"],\n      \"slots\": [\"bookRoot\", \"stage\"]\n    },\n    {\n      \"id\": \"ACTIVATE_MATERIAL\",\n      \"priority\": \"P0\",\n      \"routes_to\": \"S0-A\",\n      \"strongTriggersZh\": [\"激活原料\", \"原料盘点\", \"整理素材\", \"盘点材料\"],\n      \"strongTriggersEn\": [\"activate material\", \"material inventory\"],\n      \"slots\": [\"bookRoot\"]\n    },\n    {\n      \"id\": \"CONTINUE\",\n      \"priority\": \"P0\",\n      \"routes_to\": \"resume_current\",\n      \"strongTriggersZh\": [\"继续\", \"继续上次\", \"接着写\", \"往下写\", \"继续写稿\"],\n      \"strongTriggersEn\": [\"continue\", \"go on\"],\n      \"slots\": [\"bookRoot\", \"stage\", \"targetChapter\"]\n    },\n    {\n      \"id\": \"REVIEW\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"critic_review\",\n      \"strongTriggersZh\": [\"质量自检\", \"自检\", \"质量检查\", \"去AI味\", \"审一审\"],\n      \"strongTriggersEn\": [\"quality check\", \"review\"],\n      \"slots\": [\"bookRoot\", \"scope\"]\n    },\n    {\n      \"id\": \"EXPORT\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"S4\",\n      \"strongTriggersZh\": [\"导出\", \"导出PDF\", \"导出Word\", \"打包下载\", \"生成HTML\"],\n      \"strongTriggersEn\": [\"export\", \"download\", \"package output\"],\n      \"slots\": [\"bookRoot\", \"outputFormat\"]\n    },\n    {\n      \"id\": \"STRATEGY\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"S2\",\n      \"strongTriggersZh\": [\"换策略\", \"切换模式\", \"改策略\", \"调整深度\"],\n      \"strongTriggersEn\": [\"change strategy\", \"switch mode\"],\n      \"slots\": [\"mode\"]\n    },\n    {\n      \"id\": \"STATUS\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"status_echo\",\n      \"strongTriggersZh\": [\"进度如何\", \"到哪了\", \"当前状态\", \"还在吗\"],\n      \"strongTriggersEn\": [\"status\", \"progress\"],\n      \"slots\": [\"bookRoot\"]\n    },\n    {\n      \"id\": \"STOP\",\n      \"priority\": \"P0\",\n      \"routes_to\": \"safe_stop\",\n      \"strongTriggersZh\": [\"停止\", \"取消\", \"中断\", \"退出\", \"退出福帮手\", \"停止当前任务\"],\n      \"strongTriggersEn\": [\"stop\", \"cancel\", \"exit\"],\n      \"slots\": [\"bookRoot\"]\n    },\n    {\n      \"id\": \"HELP\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"command_guide\",\n      \"strongTriggersZh\": [\"怎么用\", \"帮助\", \"帮帮我\", \"指令列表\"],\n      \"strongTriggersEn\": [\"help\", \"how to use\"],\n      \"slots\": []\n    },\n    {\n      \"id\": \"CONFIRM_TOPIC\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"topic_confirmed_continue\",\n      \"strongTriggersZh\": [\"确认\", \"确认继续\", \"没错\", \"是这个主题\"],\n      \"strongTriggersEn\": [\"confirm\", \"confirmed topic\"],\n      \"slots\": [\"topic\"]\n    },\n    {\n      \"id\": \"CHECK_BALANCE\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"credits_balance_display\",\n      \"strongTriggersZh\": [\"查看乐包\", \"乐包余额\", \"我的乐包\", \"还有多少乐包\"],\n      \"strongTriggersEn\": [\"check balance\", \"credits balance\"],\n      \"slots\": []\n    },\n    {\n      \"id\": \"UPGRADE_HINT\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"upgrade_hint_display\",\n      \"strongTriggersZh\": [\"怎么解锁\", \"如何升级\", \"怎么获得乐包\", \"还差多少\"],\n      \"strongTriggersEn\": [\"upgrade hint\", \"how to unlock\"],\n      \"slots\": []\n    },\n    {\n      \"id\": \"FULL_BOOK_VIEW\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"full_book_status\",\n      \"strongTriggersZh\": [\"全书视图\", \"目录总览\", \"全书章节\"],\n      \"strongTriggersEn\": [\"full book view\", \"book overview\"],\n      \"slots\": [\"bookRoot\"]\n    },\n    {\n      \"id\": \"LIST_COMMANDS\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"command_list_display\",\n      \"strongTriggersZh\": [\"全部指令\", \"所有命令\", \"命令清单\"],\n      \"strongTriggersEn\": [\"list commands\", \"all commands\"],\n      \"slots\": []\n    },\n    {\n      \"id\": \"OTHER\",\n      \"priority\": \"P2\",\n      \"routes_to\": \"fallback_help\",\n      \"strongTriggersZh\": [],\n      \"strongTriggersEn\": [],\n      \"slots\": []\n    }\n  ]\n}\n\nFile v1.1.0:references/01-core/intent-capability-map.md\n\n# 意图-能力映射表（权威版）\n\n> 版本：v2.1.0  \n> 生效范围：WorkBuddy / CodeBuddy 的福帮手编排层  \n> 目标：用户说自然语言，系统自动路由能力；**不要求用户知道技能ID**。\n\n---\n\n## 1) 映射原则\n\n- 用户侧只说**中文功能名**，不暴露内部 Skill ID。\n- 对用户只说平台差异（如“在 WorkBuddy 上更强”），不说 Tier。\n- 映射失败时先回退到“通用检索 + 本地能力”，并给出下一步建议。\n\n---\n\n## 2) 主要意图映射\n\n| 用户自然语言 | 标准意图 | 能力路由（优先 → 备选） | 平台提示 |\n|---|---|---|---|\n| 润色、读起来更自然、去AI感、去AI味 | `deai_polish` | `humanizer` → 内置 `ai-pattern-scan` | WorkBuddy效果更强 |\n| 查资料、找来源、深度调研、做情报 | `research_deep` | `deep-research` → `multi-search-engine` → `web_search` | 中文任务优先国内源 |\n| 搜公众号文章、微信文章 | `wechat_lookup` | `wechat-article-search` → 站点限定检索 | 以中文内容为主 |\n| 学术引用、参考文献、格式化引用 | `citation_format` | `citation-manager` → 手工引用模板 | 学术场景建议开启 |\n| 导出 PDF、打印版、排版精美 | `deliver_pdf` | `minimax-pdf` → `pdf` → HTML打印 | 两平台均可 |\n| 导出 Word、正式报告 | `deliver_docx` | `minimax-docx` → `docx` → Markdown交付 | 两平台均可 |\n| 做课件、PPT、演讲稿 | `deliver_pptx` | `deck-generator` → `pptx` → Markdown大纲 | WorkBuddy链路更完整 |\n| 表格、数据整理、Excel | `deliver_xlsx` | `xlsx` → Markdown表格 | 两平台通用 |\n| 专家评审、质量评分、质检 | `quality_review` | `content-ops` → FBS S/P/C/B | 默认“主动陪伴”模式 |\n| 发公众号、多平台分发、短视频脚本 | `content_repurpose` | `content-factory` → `content-repurposer` | WorkBuddy优先 |\n\n---\n\n## 3) 用户可见表达规范\n\n- 说“我帮你做深度调研”，不说“调用 deep-research”。\n- 说“我先查中文权威来源”，不说“执行 CN Router”。\n- 说“这是建议动作”，不说“内部调度状态变迁”。\n\n---\n\n## 4) 回退与兜底\n\n当目标能力不可用时，按顺序回退：\n\n1. 同类能力备选链路\n2. `web_search` + 本地规则\n3. 离线降级说明（明确告知，不静默）\n\n输出模板：\n\n> 你这个需求我先按「{功能中文名}」走。当前优先链路不可用，我已切到「{备选链路}」，结果会保持同样目标。\n\nFile v1.1.0:references/01-core/memory-layer-matrix.md\n\n# 记忆分层与写入矩阵（策略 A / B / C 总览）\n\n> **版本**：2.1.2\n> **目的**：界定「书稿真值」「宿主系统记忆」「工作区叙事」边界，避免双写冲突与恢复链断裂。  \n> **战略口径**：认知资产「三化」与商业机制映射见 [`cognitive-asset-threeization.md`](../05-ops/cognitive-asset-threeization.md)（与本矩阵中的策略 A/B/C 互补：本表管分层写入，该文管价值叙事与机读对齐）。\n\n---\n\n## 1. 分层模型\n\n| 层级 | 典型位置 | 写入方式 | 权威内容 |\n|------|-----------|----------|----------|\n| **L1 书稿真值** | `书稿根/.fbs/` | `intake-router`、`session-exit`、`smart-memory-core`、各质检脚本 | 阶段、恢复卡、章节台账、偏好 JSON、检索账本 |\n| **L2 宿主系统记忆** | 宿主 API（create / update / delete） | 模型在关键时刻调用宿主工具 | 短摘要、可检索条目；**update 须带 ID**；用户推翻时用 **delete** |\n| **L3 工作区叙事** | `书稿根/.workbuddy/memory/*.md` | `session-exit` 默认追加镜像（可 `--no-workbuddy-mirror` 关闭） | 给人看的日志、排障、审计；**不替代 L1** |\n| **L4 用户全局** | `~/.workbuddy/` | 宿主与技能安装 | 技能副本、乐包账本、`settings.json`、二进制登记 |\n\n---\n\n## 2. 写入矩阵（谁写谁）\n\n| 场景 | L1 | L2 | L3 |\n|------|----|----|-----|\n| 首响 / intake | ✅ host-capability、恢复卡补写 | ✅ 可选摘要 | — |\n| 阶段完成 | ✅ esm / chapter-status | ✅ create/update | — |\n| 用户否定旧偏好 | ✅ 偏好 JSON | ✅ delete + create | — |\n| 退出 | ✅ resume + brief | — | ✅ 默认镜像 |\n\n---\n\n## 3. 冲突处理\n\n1. **以用户最新陈述 + L1 最新落盘为准**。  \n2. L2 与 L1 冲突 → 先修正 L1 文件，再 **update** 或 **delete** 宿主记忆。  \n3. L3 仅作叙事；若与 L1 不一致，以 L1 为准。\n\n---\n\n## 4. 相关脚本\n\n- 排障包：`node scripts/collect-host-diagnostics.mjs --book-root <书稿根> --json`  \n- 退出镜像：见 `session-exit.mjs`（`--no-workbuddy-mirror`）\n\n详见 [`runtime-mandatory-contract.md`](./runtime-mandatory-contract.md)。\n\nArchive v1.0.3: 436 files, 1311518 bytes\n\nFiles: assets/books.config.mjs (2938b), assets/build.mjs (29318b), assets/style.css (12530b), assets/template-fallback.html (1985b), package.json (15886b), references/01-core/brand-platform-convention.md (5070b), references/01-core/documentation-layers.md (5933b), references/01-core/execution-contract-brief.md (4014b), references/01-core/expansion-fact-tagging.md (769b), references/01-core/information-ownership-and-arbitration.md (1971b), references/01-core/intake-and-routing.md (27381b), references/01-core/intent-canonical.generated.md (1594b), references/01-core/intent-canonical.json (4948b), references/01-core/intent-capability-map.md (2535b), references/01-core/memory-layer-matrix.md (2191b), references/01-core/offline-online-upgrade-guide.md (4072b), references/01-core/outline-freeze.md (1540b), references/01-core/qc-agent-briefing-template.md (2829b), references/01-core/runtime-mandatory-contract.md (6615b), references/01-core/s0-material-phase-guard.md (5224b), references/01-core/s3-expansion-phase.md (7870b), references/01-core/s3-refinement-phase.md (1395b), 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 (20522b), references/01-core/section-nlu.md (6288b), references/01-core/section-s6-transformation.md (17828b), references/01-core/session-protocols.md (12291b), references/01-core/skill-authoritative-supplement.md (16390b), references/01-core/skill-cli-bridge-matrix.md (2823b), 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 (3639b), references/01-core/workflow-volumes/workflow-s2.md (3501b), references/01-core/workflow-volumes/workflow-s3-closure.md (2546b), references/01-core/workflow-volumes/workflow-s3-core.md (11380b), references/01-core/workflow-volumes/workflow-s3-writing-guide.md (14562b), 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 (5453b), references/01-core/workflow-volumes/workflow-s6.md (2110b), references/02-quality/abbreviation-audit-lexicon.json (492b), references/02-quality/ai-pattern-lexicon.json (13309b), references/02-quality/book-level-consistency.md (3618b), references/02-quality/citation-format.md (3038b), references/02-quality/cross-chapter-consistency.md (8066b), references/02-quality/genre-completion-checklist.md (1166b), references/02-quality/metrics.md (7138b), references/02-quality/quality-AI-scan.md (5704b), 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 (269b), references/02-quality/s2-quality-machine-lexicon.json (1655b), references/02-quality/s5-buzzword-lexicon.json (2181b), references/02-quality/writing-phase-alert-tiers.md (2448b), references/03-product/01-user-install-guide.md (10243b), references/03-product/04-templates.md (10132b), references/03-product/06-typography.md (7328b), references/03-product/07-ux-design.md (7933b), references/03-product/08-visual.md (6820b), references/03-product/10-case-library.md (1307b), references/03-product/fbs-value-one-pager.md (3637b), references/03-product/lexical-editor-guide.md (1866b), references/03-product/mermaid-templates/flowchart.md (3372b), references/03-product/mermaid-templates/gantt.md (3168b), references/03-product/mermaid-templates/mindmap.md (2839b), references/03-product/mermaid-templates/sequence.md (3126b), references/03-product/mermaid-templates/state.md (3417b), references/03-product/mermaid-templates/timeline.md (2705b), references/05-ops/agent-task-strategy.md (5661b), references/05-ops/anti-stall-guide.md (1751b), references/05-ops/audit-optimization-summary-v201.md (16654b) (+36 more)\n\nFile v1.0.3:scripts/_deprecated/README.md\n\n# scripts/_deprecated — 废弃脚本归档目录\n\n> **归档时间**：2026-04-11（v2.0.3）  \n> **说明**：此目录存放已被替代或不再使用的历史脚本，保留以备查阅，不参与正常执行流程。\n\n## 归档文件说明\n\n### nlu-optimization.mjs（31.37 KB）\n\n- **归档原因**：v2.0.3 引入 Sub-Agent 声明式定义（`.codebuddy/agents/`），\n  `fbs-researcher.md` 的 `description` 字段可由宿主原生自动委派替代该脚本的意图识别功能。\n  LLM 原生意图识别与此脚本存在大量功能重叠，保留会增加约 31KB 不必要的加载体积。\n- **替代方案**：`.codebuddy/agents/fbs-researcher.md`（S0情报收集）\n\n### nlu-optimization-enhanced.mjs（30.14 KB）\n\n- **归档原因**：同上，为 `nlu-optimization.mjs` 的增强版，功能重叠更甚。\n  v2.0.3 的 12 意图群路由表（`references/01-core/intake-and-routing.md §意图群路由`）\n  已覆盖原有的 66 条离散指令，以更轻量的方式实现等效路由。\n- **替代方案**：`references/01-core/intake-and-routing.md`（意图路由规范）\n\n## 注意事项\n\n- **不要直接运行**此目录下的任何脚本，其依赖的上下文可能已不存在\n- **不要从主流程引用**此目录下的任何脚本\n- 如需恢复某个功能，请先阅读相应替代方案，评估是否真的需要回滚\n\nFile v1.0.3: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 v1.0.3: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 v1.0.3: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 v1.0.3:references/01-core/execution-contract-brief.md\n\n# 执行契约简报（宿主 × 模型 × workspace）\n\n**版本**：2.0.2 · **层级**：L0' 补充（与 `SKILL.md`、`intake-and-routing.md` 同读）\n\n## 1. 各方职责边界\n\n| 角色 | 必须保证 |\n|------|----------|\n| **宿主（IDE / WorkBuddy 等）** | 提供可验证的 workspace 写入、可用 CLI（Node）及网络检索能力声明；不虚构声称已跑过某脚本（unless 实际执行过） |\n| **模型（本 Skill 驱动）** | 按 `WP1 → 搜索前置合同 → WP2` 的顺序推进；状态宣告、台账写入与结果展示以当前 `bookRoot` 为准，不依赖对话内易失记忆 |\n| **用户 / 主编** | 指定本书根目录、触发门禁与合稿；对豁免项书面确认（文体豁免、时间范围约定等） |\n\n## 2. 双工作面合同（WP1 / WP2）\n\n| 工作面 | 发生时机 | 面向用户如何说 | 内部约束 |\n|--------|----------|----------------|----------|\n| **WP1 起步工作面** | `INTAKE` 首响 | 先说「整理材料 / 明确主题 / 一起找方向」 | 不把「虚拟书房 / 路径A/B/C / S0」当首句入口术语 |\n| **WP2 书稿工作面** | 锁定路径后、进入 `INTAKE → RESEARCH` | 说明「资料、进度、交付都在当前工作区」 | 将 `.fbs/`、`deliverables/`、`releases/` 作为首个可用工作面 |\n\n**绑定规则**：\n\n1. 先在 `WP1` 用日常语言锁定用户入口。\n2. 再宣告搜索前置合同（为什么查 / 查什么 / 查完去哪一步 / 不能联网怎么办）。\n3. 最后进入 `WP2`，把三层 workspace 与当前阶段动作绑定起来。\n\n## 3. 搜索前置合同\n\n进入任意 `S0/S1/S2` 调研或章节前置检索前，必须在对话里先说清四件事：\n\n- **为什么现在要查**：本轮检索要解决什么不确定性或推进哪一步。\n- **要查哪几类内容**：如主题现状、同类内容、目标读者、时间基准。\n- **查完后直接进入哪一步**：例如进入大纲、素材盘点或章节写作。\n- **离线如何降级**：无法联网时要显式说明为离线降级，而不是静默改用模型知识。\n\n推荐口径：\n\n> 我先查一下当前主题的同类内容、目标读者和时间基准，查完就给你整理出下一步写法；如果现在不能联网，我会明确标注为离线降级。\n\n## 4. workspace 真值与治理边界\n\n以下路径为**跨会话可审计**真相；对话摘要、artifact 文档、宿主记忆不可替代：\n\n| 路径/范围 | 角色 | 说明 |\n|-----------|------|------|\n| `.fbs/` | **内部真值层** | ESM 状态、检索台账、章节状态、待核实项等过程真值 |\n| `deliverables/` | **对外交付层** | `md/html/package` 等用户可见交付物 |\n| `releases/` | **发布准备层** | `*-release.json` 与发布映射入口 |\n| `brain/<conversation-id>/` | **artifact 层** | 过程性报告/评审稿，可展示但**不得充当项目真值** |\n| `.workbuddy/memory` / 宿主记忆 | **参考层** | 只读偏好与背景，不得覆盖本书 workspace 状态 |\n\n首个可用工作面成立条件：\n\n- `.fbs/`、`deliverables/`、`releases/` 三层目录已存在；\n- `.fbs/esm-state.md`、`.fbs/规范执行状态.md`、`.fbs/chapter-status.md` 可作为状态入口；\n- 对用户的说明先是「当前工作区已就绪」，再按需介绍“虚拟书房”这一术语。\n\n## 5. 原子性与宣告\n\n- 状态切换须满足 `search-policy.json` 的 `esmAnnouncementAtomicity`（旧→新、原因、自检出口、下一步同次输出）。\n- P0 阻断条件见 `p0-cli-map.md` 的 `p0AutomationIndex`；脚本存在 ≠ 已执行，以实际命令与退出码为准。\n- 若声称已进入 `WP2` 或已完成搜索前置合同，必须能在对话文本与 workspace 状态文件中找到对应证据。\n\n## 6. 相关条文\n\n- 入口路由与首响约束：`references/01-core/intake-and-routing.md`\n- 多 Writer 磁盘协同：`references/05-ops/multi-agent-horizontal-sync.md`\n- 承诺与工具对照：`references/05-ops/promise-code-user-alignment.md`\n\nFile v1.0.3:references/01-core/expansion-fact-tagging.md\n\n# 扩写与精修中的事实标注（MAT / 待证实）\n\n> **配套**：[`s3-expansion-phase.md`](./s3-expansion-phase.md) · [`quality-PLC.md`](../02-quality/quality-PLC.md) §C\n\n---\n\n## 规则\n\n1. **新增**数据、引语、可核验案例：须能对应 `material-library.md` 或检索 ledger，正文用 **`[MAT-xxx]`** 或团队约定编号。\n2. **无素材支撑**但需保留的表述：标 **「作者观察」** 或 **「行业共识（待补证）」**，不得伪装为已引用事实。\n3. 精修阶段 **删除** 无法标注又声称可核验的句子，或改为上述两类之一。\n\n## 扩写后抽检\n\n- 运行 `quality-auditor-lite` 时关注 **事实无出处** 类告警；C 层人工勾选「新增段是否均有来源或已标待证实」。\n\nFile v1.0.3:references/01-core/information-ownership-and-arbitration.md\n\n# 信息产权、场景包坐标与记忆仲裁\n\n> **目的**：把「用户话 / 磁盘真值 / 系统策略」三类信息分开，避免模型把摘要、画像或场景包规则当成用户本轮新指令。与 `fbs-runtime-hints.json`、`session-resume-brief` 机读计量、`intake-router` 的 `compliance` 字段对齐。\n\n---\n\n## 1. 三类产权\n\n| 类别 | 典型来源 | 处理原则 |\n|------|----------|----------|\n| **用户主权** | 当前气泡、当轮确认 | 最高优先级；摘要与记忆不得覆盖 |\n| **世界状态** | `.fbs/`、`chapter-status.md`、已交付文件 | 以磁盘为准；变更需写入或经用户确认 |\n| **系统策略** | 场景包、`SKILL.md` 流程、质检规则 | 只读引用；不冒充用户命令 |\n\n---\n\n## 2. 场景包坐标（单先验）\n\n- **推断**：`intake-runtime-hooks.mjs` 的 `inferScenePackIdFromText` → `scenePackId`。\n- **主规则**：`references/scene-packs/<scenePackId>.md`\n- **质量补丁（L3）**：`references/scene-packs/<scenePackId>-local-rule.md`\n- **首响**：不向用户朗读全文；`intake-router` JSON 的 `firstResponseContext.scenePackCoordinate` 仅提供 **相对路径锚点**，进入对应阶段再 `read_file`。\n\n---\n\n## 3. 记忆仲裁（冲突时听谁）\n\n1. **用户最新明确陈述** 覆盖旧摘要与旧记忆条目。\n2. **本书** `.fbs/smart-memory/` 与 **`session-exit` 原子写** 的恢复卡 / brief，优先于未落盘的闲聊推断。\n3. **宿主系统级记忆**（如 `~/.workbuddy`）与本书冲突时：**以用户当轮确认 + 本书写盘** 为准（见 `fbs-runtime-hints.json` → `hostMemory`）。\n\n---\n\n## 4. 与上下文引擎的关系\n\n- `runtime.contextEngine.scenePackId` 与场景包推断一致时，**压缩条数/字数上限**为该坐标下的策略；见 `scripts/lib/context-engine.mjs`。\n- 若未跑 `intake-router`，`session-resume-brief.md` 顶部仍提示以 **最近一次 intake JSON** 的 `policy` 为准。\n\nFile v1.0.3: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 v1.0.3: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`.\n\nFile v1.0.3:references/01-core/intent-canonical.json\n\n{\n  \"schemaVersion\": \"1.0.0\",\n  \"version\": \"2.1.2\",\n  \"updatedAt\": \"2026-04-16T00:00:00.000Z\",\n  \"confidenceBands\": {\n    \"high\": 0.85,\n    \"medium\": 0.6\n  },\n  \"fallbackIntent\": \"OTHER\",\n  \"stopIntents\": [\"STOP\"],\n  \"conflictPairs\": [\n    [\"CONTINUE\", \"CONFIRM_TOPIC\"],\n    [\"STOP\", \"EXPORT\"],\n    [\"WRITE_BOOK\", \"REVIEW\"],\n    [\"ACTIVATE_MATERIAL\", \"WRITE_BOOK\"]\n  ],\n  \"weakSignals\": [\n    \"好\",\n    \"嗯\",\n    \"可以\",\n    \"行\",\n    \"帮我\",\n    \"看看\",\n    \"看下\",\n    \"好的\"\n  ],\n  \"intents\": [\n    {\n      \"id\": \"ACTIVATE_ONLY\",\n      \"priority\": \"P0\",\n      \"routes_to\": \"activate_only\",\n      \"strongTriggersZh\": [\"福帮手\", \"福帮手写书skill\", \"启动福帮手\", \"打开福帮手\"],\n      \"strongTriggersEn\": [\"activate skill\", \"fbs-bookwriter\"],\n      \"slots\": []\n    },\n    {\n      \"id\": \"WRITE_BOOK\",\n      \"priority\": \"P0\",\n      \"routes_to\": \"S0/S1\",\n      \"strongTriggersZh\": [\"写书\", \"写一本\", \"帮我写\", \"写手册\", \"写白皮书\", \"写行业指南\", \"定大纲\", \"写章节\", \"拆书改写\", \"海外本地化改写\", \"爆款结构改写\"],\n      \"strongTriggersEn\": [\"write book\", \"write guide\"],\n      \"slots\": [\"bookRoot\", \"stage\"]\n    },\n    {\n      \"id\": \"ACTIVATE_MATERIAL\",\n      \"priority\": \"P0\",\n      \"routes_to\": \"S0-A\",\n      \"strongTriggersZh\": [\"激活原料\", \"原料盘点\", \"整理素材\", \"盘点材料\"],\n      \"strongTriggersEn\": [\"activate material\", \"material inventory\"],\n      \"slots\": [\"bookRoot\"]\n    },\n    {\n      \"id\": \"CONTINUE\",\n      \"priority\": \"P0\",\n      \"routes_to\": \"resume_current\",\n      \"strongTriggersZh\": [\"继续\", \"继续上次\", \"接着写\", \"往下写\", \"继续写稿\"],\n      \"strongTriggersEn\": [\"continue\", \"go on\"],\n      \"slots\": [\"bookRoot\", \"stage\", \"targetChapter\"]\n    },\n    {\n      \"id\": \"REVIEW\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"critic_review\",\n      \"strongTriggersZh\": [\"质量自检\", \"自检\", \"质量检查\", \"去AI味\", \"审一审\"],\n      \"strongTriggersEn\": [\"quality check\", \"review\"],\n      \"slots\": [\"bookRoot\", \"scope\"]\n    },\n    {\n      \"id\": \"EXPORT\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"S4\",\n      \"strongTriggersZh\": [\"导出\", \"导出PDF\", \"导出Word\", \"打包下载\", \"生成HTML\"],\n      \"strongTriggersEn\": [\"export\", \"download\", \"package output\"],\n      \"slots\": [\"bookRoot\", \"outputFormat\"]\n    },\n    {\n      \"id\": \"STRATEGY\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"S2\",\n      \"strongTriggersZh\": [\"换策略\", \"切换模式\", \"改策略\", \"调整深度\"],\n      \"strongTriggersEn\": [\"change strategy\", \"switch mode\"],\n      \"slots\": [\"mode\"]\n    },\n    {\n      \"id\": \"STATUS\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"status_echo\",\n      \"strongTriggersZh\": [\"进度如何\", \"到哪了\", \"当前状态\", \"还在吗\"],\n      \"strongTriggersEn\": [\"status\", \"progress\"],\n      \"slots\": [\"bookRoot\"]\n    },\n    {\n      \"id\": \"STOP\",\n      \"priority\": \"P0\",\n      \"routes_to\": \"safe_stop\",\n      \"strongTriggersZh\": [\"停止\", \"取消\", \"中断\", \"退出\", \"退出福帮手\", \"停止当前任务\"],\n      \"strongTriggersEn\": [\"stop\", \"cancel\", \"exit\"],\n      \"slots\": [\"bookRoot\"]\n    },\n    {\n      \"id\": \"HELP\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"command_guide\",\n      \"strongTriggersZh\": [\"怎么用\", \"帮助\", \"帮帮我\", \"指令列表\"],\n      \"strongTriggersEn\": [\"help\", \"how to use\"],\n      \"slots\": []\n    },\n    {\n      \"id\": \"CONFIRM_TOPIC\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"topic_confirmed_continue\",\n      \"strongTriggersZh\": [\"确认\", \"确认继续\", \"没错\", \"是这个主题\"],\n      \"strongTriggersEn\": [\"confirm\", \"confirmed topic\"],\n      \"slots\": [\"topic\"]\n    },\n    {\n      \"id\": \"CHECK_BALANCE\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"credits_balance_display\",\n      \"strongTriggersZh\": [\"查看乐包\", \"乐包余额\", \"我的乐包\", \"还有多少乐包\"],\n      \"strongTriggersEn\": [\"check balance\", \"credits balance\"],\n      \"slots\": []\n    },\n    {\n      \"id\": \"UPGRADE_HINT\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"upgrade_hint_display\",\n      \"strongTriggersZh\": [\"怎么解锁\", \"如何升级\", \"怎么获得乐包\", \"还差多少\"],\n      \"strongTriggersEn\": [\"upgrade hint\", \"how to unlock\"],\n      \"slots\": []\n    },\n    {\n      \"id\": \"FULL_BOOK_VIEW\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"full_book_status\",\n      \"strongTriggersZh\": [\"全书视图\", \"目录总览\", \"全书章节\"],\n      \"strongTriggersEn\": [\"full book view\", \"book overview\"],\n      \"slots\": [\"bookRoot\"]\n    },\n    {\n      \"id\": \"LIST_COMMANDS\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"command_list_display\",\n      \"strongTriggersZh\": [\"全部指令\", \"所有命令\", \"命令清单\"],\n      \"strongTriggersEn\": [\"list commands\", \"all commands\"],\n      \"slots\": []\n    },\n    {\n      \"id\": \"OTHER\",\n      \"priority\": \"P2\",\n      \"routes_to\": \"fallback_help\",\n      \"strongTriggersZh\": [],\n      \"strongTriggersEn\": [],\n      \"slots\": []\n    }\n  ]\n}\n\nFile v1.0.3:references/01-core/intent-capability-map.md\n\n# 意图-能力映射表（权威版）\n\n> 版本：v2.1.0  \n> 生效范围：WorkBuddy / CodeBuddy 的福帮手编排层  \n> 目标：用户说自然语言，系统自动路由能力；**不要求用户知道技能ID**。\n\n---\n\n## 1) 映射原则\n\n- 用户侧只说**中文功能名**，不暴露内部 Skill ID。\n- 对用户只说平台差异（如“在 WorkBuddy 上更强”），不说 Tier。\n- 映射失败时先回退到“通用检索 + 本地能力”，并给出下一步建议。\n\n---\n\n## 2) 主要意图映射\n\n| 用户自然语言 | 标准意图 | 能力路由（优先 → 备选） | 平台提示 |\n|---|---|---|---|\n| 润色、读起来更自然、去AI感、去AI味 | `deai_polish` | `humanizer` → 内置 `ai-pattern-scan` | WorkBuddy效果更强 |\n| 查资料、找来源、深度调研、做情报 | `research_deep` | `deep-research` → `multi-search-engine` → `web_search` | 中文任务优先国内源 |\n| 搜公众号文章、微信文章 | `wechat_lookup` | `wechat-article-search` → 站点限定检索 | 以中文内容为主 |\n| 学术引用、参考文献、格式化引用 | `citation_format` | `citation-manager` → 手工引用模板 | 学术场景建议开启 |\n| 导出 PDF、打印版、排版精美 | `deliver_pdf` | `minimax-pdf` → `pdf` → HTML打印 | 两平台均可 |\n| 导出 Word、正式报告 | `deliver_docx` | `minimax-docx` → `docx` → Markdown交付 | 两平台均可 |\n| 做课件、PPT、演讲稿 | `deliver_pptx` | `deck-generator` → `pptx` → Markdown大纲 | WorkBuddy链路更完整 |\n| 表格、数据整理、Excel | `deliver_xlsx` | `xlsx` → Markdown表格 | 两平台通用 |\n| 专家评审、质量评分、质检 | `quality_review` | `content-ops` → FBS S/P/C/B | 默认“主动陪伴”模式 |\n| 发公众号、多平台分发、短视频脚本 | `content_repurpose` | `content-factory` → `content-repurposer` | WorkBuddy优先 |\n\n---\n\n## 3) 用户可见表达规范\n\n- 说“我帮你做深度调研”，不说“调用 deep-research”。\n- 说“我先查中文权威来源”，不说“执行 CN Router”。\n- 说“这是建议动作”，不说“内部调度状态变迁”。\n\n---\n\n## 4) 回退与兜底\n\n当目标能力不可用时，按顺序回退：\n\n1. 同类能力备选链路\n2. `web_search` + 本地规则\n3. 离线降级说明（明确告知，不静默）\n\n输出模板：\n\n> 你这个需求我先按「{功能中文名}」走。当前优先链路不可用，我已切到「{备选链路}」，结果会保持同样目标。\n\nFile v1.0.3:references/01-core/memory-layer-matrix.md\n\n# 记忆分层与写入矩阵（策略 A / B / C 总览）\n\n> **版本**：2.1.2\n> **目的**：界定「书稿真值」「宿主系统记忆」「工作区叙事」边界，避免双写冲突与恢复链断裂。  \n> **战略口径**：认知资产「三化」与商业机制映射见 [`cognitive-asset-threeization.md`](../05-ops/cognitive-asset-threeization.md)（与本矩阵中的策略 A/B/C 互补：本表管分层写入，该文管价值叙事与机读对齐）。\n\n---\n\n## 1. 分层模型\n\n| 层级 | 典型位置 | 写入方式 | 权威内容 |\n|------|-----------|----------|----------|\n| **L1 书稿真值** | `书稿根/.fbs/` | `intake-router`、`session-exit`、`smart-memory-core`、各质检脚本 | 阶段、恢复卡、章节台账、偏好 JSON、检索账本 |\n| **L2 宿主系统记忆** | 宿主 API（create / update / delete） | 模型在关键时刻调用宿主工具 | 短摘要、可检索条目；**update 须带 ID**；用户推翻时用 **delete** |\n| **L3 工作区叙事** | `书稿根/.workbuddy/memory/*.md` | `session-exit` 默认追加镜像（可 `--no-workbuddy-mirror` 关闭） | 给人看的日志、排障、审计；**不替代 L1** |\n| **L4 用户全局** | `~/.workbuddy/` | 宿主与技能安装 | 技能副本、乐包账本、`settings.json`、二进制登记 |\n\n---\n\n## 2. 写入矩阵（谁写谁）\n\n| 场景 | L1 | L2 | L3 |\n|------|----|----|-----|\n| 首响 / intake | ✅ host-capability、恢复卡补写 | ✅ 可选摘要 | — |\n| 阶段完成 | ✅ esm / chapter-status | ✅ create/update | — |\n| 用户否定旧偏好 | ✅ 偏好 JSON | ✅ delete + create | — |\n| 退出 | ✅ resume + brief | — | ✅ 默认镜像 |\n\n---\n\n## 3. 冲突处理\n\n1. **以用户最新陈述 + L1 最新落盘为准**。  \n2. L2 与 L1 冲突 → 先修正 L1 文件，再 **update** 或 **delete** 宿主记忆。  \n3. L3 仅作叙事；若与 L1 不一致，以 L1 为准。\n\n---\n\n## 4. 相关脚本\n\n- 排障包：`node scripts/collect-host-diagnostics.mjs --book-root <书稿根> --json`  \n- 退出镜像：见 `session-exit.mjs`（`--no-workbuddy-mirror`）\n\n详见 [`runtime-mandatory-contract.md`](./runtime-mandatory-contract.md)。\n\nArchive v1.0.2: 436 files, 1311518 bytes\n\nFiles: assets/books.config.mjs (2938b), assets/build.mjs (29318b), assets/style.css (12530b), assets/template-fallback.html (1985b), package.json (15886b), references/01-core/brand-platform-convention.md (5070b), references/01-core/documentation-layers.md (5933b), references/01-core/execution-contract-brief.md (4014b), references/01-core/expansion-fact-tagging.md (769b), references/01-core/information-ownership-and-arbitration.md (1971b), references/01-core/intake-and-routing.md (27381b), references/01-core/intent-canonical.generated.md (1594b), references/01-core/intent-canonical.json (4948b), references/01-core/intent-capability-map.md (2535b), references/01-core/memory-layer-matrix.md (2191b), references/01-core/offline-online-upgrade-guide.md (4072b), references/01-core/outline-freeze.md (1540b), references/01-core/qc-agent-briefing-template.md (2829b), references/01-core/runtime-mandatory-contract.md (6615b), references/01-core/s0-material-phase-guard.md (5224b), references/01-core/s3-expansion-phase.md (7870b), references/01-core/s3-refinement-phase.md (1395b), 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 (20522b), references/01-core/section-nlu.md (6288b), references/01-core/section-s6-transformation.md (17828b), references/01-core/session-protocols.md (12291b), references/01-core/skill-authoritative-supplement.md (16390b), references/01-core/skill-cli-bridge-matrix.md (2823b), 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 (3639b), references/01-core/workflow-volumes/workflow-s2.md (3501b), references/01-core/workflow-volumes/workflow-s3-closure.md (2546b), references/01-core/workflow-volumes/workflow-s3-core.md (11380b), references/01-core/workflow-volumes/workflow-s3-writing-guide.md (14562b), 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 (5453b), references/01-core/workflow-volumes/workflow-s6.md (2110b), references/02-quality/abbreviation-audit-lexicon.json (492b), references/02-quality/ai-pattern-lexicon.json (13309b), references/02-quality/book-level-consistency.md (3618b), references/02-quality/citation-format.md (3038b), references/02-quality/cross-chapter-consistency.md (8066b), references/02-quality/genre-completion-checklist.md (1166b), references/02-quality/metrics.md (7138b), references/02-quality/quality-AI-scan.md (5704b), 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 (269b), references/02-quality/s2-quality-machine-lexicon.json (1655b), references/02-quality/s5-buzzword-lexicon.json (2181b), references/02-quality/writing-phase-alert-tiers.md (2448b), references/03-product/01-user-install-guide.md (10243b), references/03-product/04-templates.md (10132b), references/03-product/06-typography.md (7328b), references/03-product/07-ux-design.md (7933b), references/03-product/08-visual.md (6820b), references/03-product/10-case-library.md (1307b), references/03-product/fbs-value-one-pager.md (3637b), references/03-product/lexical-editor-guide.md (1866b), references/03-product/mermaid-templates/flowchart.md (3372b), references/03-product/mermaid-templates/gantt.md (3168b), references/03-product/mermaid-templates/mindmap.md (2839b), references/03-product/mermaid-templates/sequence.md (3126b), references/03-product/mermaid-templates/state.md (3417b), references/03-product/mermaid-templates/timeline.md (2705b), references/05-ops/agent-task-strategy.md (5661b), references/05-ops/anti-stall-guide.md (1751b), references/05-ops/audit-optimization-summary-v201.md (16654b) (+36 more)\n\nFile v1.0.2:scripts/_deprecated/README.md\n\n# scripts/_deprecated — 废弃脚本归档目录\n\n> **归档时间**：2026-04-11（v2.0.3）  \n> **说明**：此目录存放已被替代或不再使用的历史脚本，保留以备查阅，不参与正常执行流程。\n\n## 归档文件说明\n\n### nlu-optimization.mjs（31.37 KB）\n\n- **归档原因**：v2.0.3 引入 Sub-Agent 声明式定义（`.codebuddy/agents/`），\n  `fbs-researcher.md` 的 `description` 字段可由宿主原生自动委派替代该脚本的意图识别功能。\n  LLM 原生意图识别与此脚本存在大量功能重叠，保留会增加约 31KB 不必要的加载体积。\n- **替代方案**：`.codebuddy/agents/fbs-researcher.md`（S0情报收集）\n\n### nlu-optimization-enhanced.mjs（30.14 KB）\n\n- **归档原因**：同上，为 `nlu-optimization.mjs` 的增强版，功能重叠更甚。\n  v2.0.3 的 12 意图群路由表（`references/01-core/intake-and-routing.md §意图群路由`）\n  已覆盖原有的 66 条离散指令，以更轻量的方式实现等效路由。\n- **替代方案**：`references/01-core/intake-and-routing.md`（意图路由规范）\n\n## 注意事项\n\n- **不要直接运行**此目录下的任何脚本，其依赖的上下文可能已不存在\n- **不要从主流程引用**此目录下的任何脚本\n- 如需恢复某个功能，请先阅读相应替代方案，评估是否真的需要回滚\n\nFile v1.0.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 v1.0.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 v1.0.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 通道...","readmeExcerpt":"Skill: Novel Architect Owner: z625662197 Summary: 爽文小说全流程工坊：整合 FBS 工作流 + 爽文生成器。从方向提炼 → 大纲规划 → 逐章生成 → 质检收口，全程追踪。Trigger: 用户提及写小说/写书/章节/大纲/爽文/写作/架构。 Tags: latest:1.2.0 Version history: v1.2.0 | 2026-05-22T04:40:07.956Z | auto - Removed 202 files related to internal references and documentation, including package-lock.json and most files under references/01-core/. - No changes to code or user-facing features; core workf","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"用户方向\n    ↓\n[FBS intake-router]  ← 项目初始化，确定 bookRoot\n    ↓\n世界观 & 提示词完善（novel-generator 逻辑）\n    ↓\n章节大纲（FBS S1 输出 → novel-generator 大纲模板）\n    ↓\n逐章生成（novel-generator 逐章逻辑 + FBS 章节追踪）\n    ↓\n质检 & 收口（FBS polish-gate / release-governor）"},{"language":"text","snippet":"{bookRoot}/\n├── .fbs/                        # FBS 工作流核心\n│   ├── workbuddy-resume.json    # 会话恢复点\n│   ├── esm-state.md             # 当前阶段（S0-S4）\n│   ├── chapter-status.md        # 各章进度台账\n│   ├── plan/                    # 大纲（来自 S1）\n│   └── expansion-plan.md       # 扩写计划（来自 S3.5）\n├── .learnings/                  # novel-generator 记忆（内置于 FBS）\n│   ├── CHARACTERS.md            # 角色设定（随写作更新）\n│   ├── LOCATIONS.md            # 地点设定\n│   ├── PLOT_POINTS.md          # 关键情节点\n│   └── ERRORS.md               # 生成失败记录 & 改进\n├── output/                      # 章节正文（每章一个 .md）\n└── deliverables/               # 交付物"},{"language":"text","snippet":"1. 题材定位    → 主类型 + 子类型（如：都市 + 修仙）\n2. 世界观设定  → 力量体系、社会规则、时代背景\n3. 主角人设    → 初始身份、性格、金手指/挂\n4. 核心冲突    → 主线矛盾 + 前3章即时冲突\n5. 爽点设计    → 打脸节奏、升级频率、装逼方式\n6. 节奏规划    → 每N章一个小高潮、每M章一个大高潮\n7. 配角框架    → 对手/盟友/红颜各至少1人\n8. 开篇钩子    → 第一章用什么抓住读者"},{"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❌ 「当前宿主平台自己会判断」"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: novel-architect\ndescription: \"爽文小说全流程工坊：整合 FBS 工作流 + 爽文生成器。从方向提炼 → 大纲规划 → 逐章生成 → 质检收口，全程追踪。Trigger: 用户提及写小说/写书/章节/大纲/爽文/写作/架构。\"\nversion: 1.0.0\nlicense: MIT\nlanguage: zh-CN\n---\n\n# Novel Workshop · 爽文全流程工坊\n\n整合 **FBS 工作流引擎**（S→P→C→B 全流程追踪、质检门禁）与 **爽文生成器**（提示词完善、世界观构建、逐章生成），实现从方向到大纲到成稿的完整闭环。\n\n---\n\n## 架构\n\n```\n用户方向\n    ↓\n[FBS intake-router]  ← 项目初始化，确定 bookRoot\n    ↓\n世界观 & 提示词完善（novel-generator 逻辑）\n    ↓\n章节大纲（FBS S1 输出 → novel-generator 大纲模板）\n    ↓\n逐章生成（novel-generator 逐章逻辑 + FBS 章节追踪）\n    ↓\n质检 & 收口（FBS polish-gate / release-governor）\n```\n\n---\n\n## 记忆系统（统一）\n\n**书稿根目录**：`{bookRoot}/`\n\n```\n{bookRoot}/\n├── .fbs/                        # FBS 工作流核心\n│   ├── workbuddy-resume.json    # 会话恢复点\n│   ├── esm-state.md             # 当前阶段（S0-S4）\n│   ├── chapter-status.md        # 各章进度台账\n│   ├── plan/                    # 大纲（来自 S1）\n│   └── expansion-plan.md       # 扩写计划（来自 S3.5）\n├── .learnings/                  # novel-generator 记忆（内置于 FBS）\n│   ├── CHARACTERS.md            # 角色设定（随写作更新）\n│   ├── LOCATIONS.md            # 地点设定\n│   ├── PLOT_POINTS.md          # 关键情节点\n│   └── ERRORS.md               # 生成失败记录 & 改进\n├── output/                      # 章节正文（每章一个 .md）\n└── deliverables/               # 交付物\n```\n\n> 所有写作上下文统一存在 `{bookRoot}/.learnings/`，FBS 和 novel-generator 共用同一套记忆，无需重复维护。\n\n---\n\n## 工作流阶段（FBS 标准）\n\n### S0 · 素材收集\n- 用户输入方向（题材/关键词/灵感/一句话）\n- 执行 `intake-router.mjs --book-root \"{bookRoot}\" --intent auto --json`\n- 整理为初始素材（来自 novel-generator 的\"提示词完善\"逻辑）\n- **门禁**：素材数 ≥ 赛道数 × 2\n\n### S1 · 规划\n- 生成完整大纲（使用 novel-generator 的大纲结构）\n- 包含：章节目录、每章目标字数、起承转合设计、爽点分布\n- 写入 `.fbs/plan/`\n- **门禁**：`s1-exit-gate`（章标题 + 目标字数确认）\n\n### S2 · 写作\n- 按章顺序逐章生成\n- 每章生成前读取 `.learnings/` 更新上下文\n- 生成后写入 `output/第XX章.md`\n- 用 `chapter-status.md` 更新进度\n- **门禁**：`s2-exit-gate`（章数 ≥ 3 + 字数达标）\n\n### S3 · 扩写 & 精修\n- **扩写**：基于 `expansion-plan.md` 增加字数/情节深度\n- **精修**：执行 `polish-gate.mjs` 质检后再改稿\n- 扩写前必须备份：`source-write-backup.mjs`\n- **门禁**：扩写字数以脚本实测为准，不许纯模型估算\n\n### S4 · 质检 & 交付\n- 执行 `final-manuscript-clean-gate.mjs`（检测过程标注，有则不交付）\n- 执行 `material-marker-governor.mjs --fix`（清理待核实标注）\n- 执行 `release-governor.mjs`（终稿唯一版本 + 归档）\n- 交付前确认无残留 `[DISCARDED-*]` / `待核实-MAT` 标注\n\n---\n\n## 提示词完善流程（novel-generator 逻辑）\n\n收到用户方向后，自动补全：\n\n```\n1. 题材定位    → 主类型 + 子类型（如：都市 + 修仙）\n2. 世界观设定  → 力量体系、社会规则、时代背景\n3. 主角人设    → 初始身份、性格、金手指/挂\n4. 核心冲突    → 主线矛盾 + 前3章即时冲突\n5. 爽点设计    → 打脸节奏、升级频率、装逼方式\n6. 节奏规划    → 每N章一个小高潮、每M章一个大高潮\n7. 配角框架    → 对手/盟友/红颜各至少1人\n8. 开篇钩子    → 第一章用什么抓住读者\n```\n\n完善后请用户确认，再进入大纲阶段。\n\n---\n\n## 执行命令速查\n\n| 场景 | 命令 |\n|------|------|\n| 初始化项目 | `node scripts/intake-router.mjs --book-root \"{bookRoot}\" --intent auto --json --enforce-required` |\n| 门禁检查 | `node scripts/s0-exit-gate.mjs --book-root \"{bookRoot}\" --json --confirm-advance` |\n| 进入下一阶段 | 按 esm-state.md 中的阶段推进阈值判断 |\n| 章节进度 | `node scripts/chapter-status-drift.mjs --book-root \"{bookRoot}\"` |\n| 精修质检 | `node scripts/polish-gate.mjs --book-root \"{bookRoot}\"` |\n| 扩写备份 | `node scripts/source-write-backup.mjs --book-root \"{bookRoot}\" --scope expansion --json` |\n| 扩写门禁 | `node scripts/expansion-gate."},{"path":"scripts/_deprecated/README.md","content":"# scripts/_deprecated — 废弃脚本归档目录\n\n> **归档时间**：2026-04-11（v2.0.3）  \n> **说明**：此目录存放已被替代或不再使用的历史脚本，保留以备查阅，不参与正常执行流程。\n\n## 归档文件说明\n\n### nlu-optimization.mjs（31.37 KB）\n\n- **归档原因**：v2.0.3 引入 Sub-Agent 声明式定义（`.codebuddy/agents/`），\n  `fbs-researcher.md` 的 `description` 字段可由宿主原生自动委派替代该脚本的意图识别功能。\n  LLM 原生意图识别与此脚本存在大量功能重叠，保留会增加约 31KB 不必要的加载体积。\n- **替代方案**：`.codebuddy/agents/fbs-researcher.md`（S0情报收集）\n\n### nlu-optimization-enhanced.mjs（30.14 KB）\n\n- **归档原因**：同上，为 `nlu-optimization.mjs` 的增强版，功能重叠更甚。\n  v2.0.3 的 12 意图群路由表（`references/01-core/intake-and-routing.md §意图群路由`）\n  已覆盖原有的 66 条离散指令，以更轻量的方式实现等效路由。\n- **替代方案**：`references/01-core/intake-and-routing.md`（意图路由规范）\n\n## 注意事项\n\n- **不要直接运行**此目录下的任何脚本，其依赖的上下文可能已不存在\n- **不要从主流程引用**此目录下的任何脚本\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 "},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7d6swzg6fj8ajsd6e6306x6x856a6k\",\n  \"slug\": \"novel-architect\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1779424807956\n}"},{"path":"scripts/generated/intent-canonical.snapshot.json","content":"{\n  \"schemaVersion\": \"1.0.0\",\n  \"version\": \"2.1.2\",\n  \"updatedAt\": \"2026-04-16T00:00:00.000Z\",\n  \"confidenceBands\": {\n    \"high\": 0.85,\n    \"medium\": 0.6\n  },\n  \"fallbackIntent\": \"OTHER\",\n  \"stopIntents\": [\n    \"STOP\"\n  ],\n  \"conflictPairs\": [\n    [\n      \"CONTINUE\",\n      \"CONFIRM_TOPIC\"\n    ],\n    [\n      \"STOP\",\n      \"EXPORT\"\n    ],\n    [\n      \"WRITE_BOOK\",\n      \"REVIEW\"\n    ],\n    [\n      \"ACTIVATE_MATERIAL\",\n      \"WRITE_BOOK\"\n    ]\n  ],\n  \"weakSignals\": [\n    \"好\",\n    \"嗯\",\n    \"可以\",\n    \"行\",\n    \"帮我\",\n    \"看看\",\n    \"看下\",\n    \"好的\"\n  ],\n  \"intents\": [\n    {\n      \"id\": \"ACTIVATE_ONLY\",\n      \"priority\": \"P0\",\n      \"routes_to\": \"activate_only\",\n      \"strongTriggersZh\": [\n        \"福帮手\",\n        \"福帮手写书skill\",\n        \"启动福帮手\",\n        \"打开福帮手\"\n      ],\n      \"strongTriggersEn\": [\n        \"activate skill\",\n        \"fbs-bookwriter\"\n      ],\n      \"slots\": []\n    },\n    {\n      \"id\": \"WRITE_BOOK\",\n      \"priority\": \"P0\",\n      \"routes_to\": \"S0/S1\",\n      \"strongTriggersZh\": [\n        \"写书\",\n        \"写一本\",\n        \"帮我写\",\n        \"写手册\",\n        \"写白皮书\",\n        \"写行业指南\",\n        \"定大纲\",\n        \"写章节\",\n        \"拆书改写\",\n        \"海外本地化改写\",\n        \"爆款结构改写\"\n      ],\n      \"strongTriggersEn\": [\n        \"write book\",\n        \"write guide\"\n      ],\n      \"slots\": [\n        \"bookRoot\",\n        \"stage\"\n      ]\n    },\n    {\n      \"id\": \"ACTIVATE_MATERIAL\",\n      \"priority\": \"P0\",\n      \"routes_to\": \"S0-A\",\n      \"strongTriggersZh\": [\n        \"激活原料\",\n        \"原料盘点\",\n        \"整理素材\",\n        \"盘点材料\"\n      ],\n      \"strongTriggersEn\": [\n        \"activate material\",\n        \"material inventory\"\n      ],\n      \"slots\": [\n        \"bookRoot\"\n      ]\n    },\n    {\n      \"id\": \"CONTINUE\",\n      \"priority\": \"P0\",\n      \"routes_to\": \"resume_current\",\n      \"strongTriggersZh\": [\n        \"继续\",\n        \"继续上次\",\n        \"接着写\",\n        \"往下写\",\n        \"继续写稿\"\n      ],\n      \"strongTriggersEn\": [\n        \"continue\",\n        \"go on\"\n      ],\n      \"slots\": [\n        \"bookRoot\",\n        \"stage\",\n        \"targetChapter\"\n      ]\n    },\n    {\n      \"id\": \"REVIEW\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"critic_review\",\n      \"strongTriggersZh\": [\n        \"质量自检\",\n        \"自检\",\n        \"质量检查\",\n        \"去AI味\",\n        \"审一审\"\n      ],\n      \"strongTriggersEn\": [\n        \"quality check\",\n        \"review\"\n      ],\n      \"slots\": [\n        \"bookRoot\",\n        \"scope\"\n      ]\n    },\n    {\n      \"id\": \"EXPORT\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"S4\",\n      \"strongTriggersZh\": [\n        \"导出\",\n        \"导出PDF\",\n        \"导出Word\",\n        \"打包下载\",\n        \"生成HTML\"\n      ],\n      \"strongTriggersEn\": [\n        \"export\",\n        \"download\",\n        \"package output\"\n      ],\n      \"slots\": [\n        \"bookRoot\",\n        \"outputFormat\"\n      ]\n    },\n    {\n      \"id\": \"STRATEGY\",\n      \"priority\": \"P1\",\n      \"routes_to\": \"S2\",\n      \"strongTriggersZh\": [\n        \"换策略\",\n        \"切换模式\",\n        \"改策略\",\n        \"调整深度\"\n      ],\n      \"strongTriggersEn\": [\n        \"change strategy\",\n        \"switch mode"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"爽文小说全流程工坊：整合 FBS 工作流 + 爽文生成器。从方向提炼 → 大纲规划 → 逐章生成 → 质检收口，全程追踪。Trigger: 用户提及写小说/写书/章节/大纲/爽文/写作/架构。 Skill: Novel Architect Owner: z625662197 Summary: 爽文小说全流程工坊：整合 FBS 工作流 + 爽文生成器。从方向提炼 → 大纲规划 → 逐章生成 → 质检收口，全程追踪。Trigger: 用户提及写小说/写书/章节/大纲/爽文/写作/架构。 Tags: latest:1.2.0 Version history: v1.2.0 | 2026-05-22T04:40:07.956Z | auto - Removed 202 files related to internal references and documentation, including package-lock.json and most files under references/01-core/. - No changes to code or user-facing features; core workf","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1121,"uniquenessScore":48,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T19:53:13.092Z","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-10T19:53:13.092Z","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-10T23:48:14.444Z","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"}]}}}