# dbs-content-system Acceptance

## 什么叫「系统能用了」

首次交付不要求全量结构化完成。

首次交付的最低标准是：

- 工程骨架已建立
- 根级 `AGENTS.md / CLAUDE.md / README.md / SOURCE_OF_TRUTH.md` 已存在
- 规则文件、模板文件、脚本文件已写入
- 原始素材已复制到 `01-原始素材区/完整副本/`
- 来源候选、原始索引、待处理清单已生成
- 首批样本已经抽成内容单元
- 已出现主题地图
- 已出现选题装配稿
- 已生成关系索引
- 已生成去重候选
- 已生成处理状态总览
- 已能先分类来源，再按来源类型决定是否归一化、抽取或跳过

## 最低数量门槛

样本模式下，默认至少看到：

- `15` 个内容单元
- `1` 张主题地图
- `2` 份以上装配稿

如果不足，继续补样本，不进入批量模式。

## 关键核验点

### 单元可复用

抽取后的内容单元不能只是标题、关键词或占位符回填。

至少要满足：

- `QST.question_text` 不能等于原文标题
- `OPI.core_claim` 不能只是关键词列表或数据标签
- `CON.concept_definition` 必须对准真实核心概念，不能抽到无关段落
- `CAS.case_summary / case_process / case_result` 不能同时停留在占位状态
- `SOL.action_steps` 不能继续是 `待人工补全步骤 1`
- 主问题、主观点、主方案的 `title` 不能继续停留在「某篇文稿的核心问题 / 三步方案」这类文件名兜底
- 编号短稿不能再批量生成 `001 的核心问题`、`002 的三步方案` 这类编号占位节点

验收方式：

- 随机抽查至少 `3` 份高价值单元
- 确认单元本身在不回看原文的情况下，已经能支撑后续装配
- 抽查至少 `2` 份主问题单元，确认 `question_type`、`核心内容` 和 `拆解边界` 与文稿类型匹配，不是旧规则串台

### 来源追溯

抽取后的内容单元，`source_documents` 不能继续停留在 `SRC-*` 占位符，必须写入真实来源 ID。

### 分类有效

- `README`、`CSV`、`JSON`、批处理 `cleaned / analysis report / content library` 这类中间产物不能再直接进入内容单元库
- 推文合集必须先切块，再进入抽取
- 短视频编号文稿不能继续直接用文件名当主题名和主问题名
- 跳过项、待人工复核项必须写入 `03-处理状态/已处理清单.csv`

### 关系有效

运行：

```bash
node 07-脚本与工具/generate-link-map.js
```

之后：

- `03-处理状态/关系索引.csv` 必须存在
- `03-处理状态/关系总览.md` 必须存在
- 目标缺失数必须可见

### 去重可审计

运行：

```bash
node 07-脚本与工具/generate-duplicate-candidates.js
```

之后：

- `03-处理状态/去重候选索引.csv` 必须存在
- `03-处理状态/去重与冲突总览.md` 必须存在
- `03-处理状态/去重与冲突审计.csv` 必须存在

### Obsidian 可见

运行：

```bash
node 07-脚本与工具/fill-obsidian-links.js
```

之后：

- 内容单元正文 `## 关联单元` 里应补入 `[[文件名]]`
- 主题地图与装配稿可以在 `Obsidian` 里直接点开

### 装配不是空壳

- 主题地图 `主题定义` 不能继续停留在 `待人工补全`
- 选题装配稿 `目标受众 / 装配理由 / 建议结构 / 表达骨架` 不能全部为空
- 装配稿应能说明这篇内容为什么值得这样组，而不是只列 5 个单元文件名
- 同一主题下应能看到补充问题、补充观点、补充案例、补充方案，证明它不是一次性装配

### 自动推荐可以重组

- 运行 `assemble-topic-from-units.js --auto` 后，不能只回到原主题内部的同类单元
- 对宽题，自动推荐出的主问题、主观点、主方案至少有一项应体现跨主题重组
- 例如「年轻人怎么赚钱」这类题，允许主问题来自「兴趣变现」，但主观点应能切到「需求倒推 / 老板思维」主轴，而不是永远停在兴趣变现的原始判断里
- 自动推荐产出的装配稿，至少要让人看出：系统不是按文件名抓 5 个点，而是在按主题关系重新组织表达

### 样本覆盖面

首批正式验收，不能只验证单一文稿类型。

至少覆盖：

- 「兴趣变现 / 生产型兴趣」类
- 「找生意 / 反赛道思维」类
- 「稳定收入 / 反脆弱」类
- 「系统赚钱 / 被动收入」类
- 「需求倒推 / 老板思维」类

如果某一类仍然只能生成通用兜底标题、空泛摘要或待补字段，则不能宣布通过。

## 验收命令

```bash
node 07-脚本与工具/generate-source-registry.js
node 07-脚本与工具/rebuild-processing-ledger.js
node 07-脚本与工具/extract-sample-units.js --help
node 07-脚本与工具/generate-link-map.js
node 07-脚本与工具/generate-duplicate-candidates.js
node 07-脚本与工具/fill-obsidian-links.js
node 07-脚本与工具/summarize-system.js
node 07-脚本与工具/assemble-topic-from-units.js --title '年轻人怎么赚钱' --auto --top 3
```

## 当前正式版证据

仓库内已有一份从空目录跑通的验收样本：

`测试 dbs-content-system/正式版验收`
