dbs-content-system
Organizes local drafts, posts, topics, case studies, and course materials into a sustainably growing, recombinable, and reusable content engineering system. Use when the user requests structuring content assets, organizing legacy materials, or establishing topic maps.
1How It Works & Mechanism
Single-directory heavy skill: The deliverable is not a summary, but a functioning local content engineering system ready for continuous operation; SKILL.md requires self-containment.
**你交付的不是一份总结,而是一套能继续运转的系统。**
The directory self-maintains all assets: Scaffolds, templates, scripts, and documentation stay inside the skill directory and are distributed with installation (10 Node scripts + 7 templates + 4 root-level scaffolds + 6 rules + 2 documents).
**本 skill 不是轻量 prompt,而是单目录重型 skill。`SKILL.md`、脚手架、模板、脚本、文档都固定留在 `skills/dbs-content-system/` 目录内部,不依赖共享目录。**
Audit before building the project: Two threshold gates (volume and boundary); if not met, only audit findings and a downgrade path are provided.
### 原则 1:先审计,再建工程
Raw materials are copied, never modified: Source files in the source directory remain untouched; copies are placed in `01-原始素材区/完整副本/` strictly as a trace-back reference.
原目录里的原文件不碰。
Processing targets content units, not files: Initially fixed into 5 types (QST/CON/OPI/CAS/SOL), each as an independent Markdown file with YAML frontmatter.
首期只保留 5 类内容单元:
Freeze criteria for relations and deduplication beforehand: Only 4 relation types (responds/explains/proves/conflicts) and 4 deduplication types are allowed, with only exact and synonymous duplicates merged by default.
第一期只允许 4 类关系:
Four-stage phased upgrade (Audit → Sample → Batch → Full), with hard gates per stage where missing a single condition blocks progression.
只有前一档闸门全部通过,才允许进入下一档。少一条都不升档。
Delivery tooling layer included with the skill: The init script builds the directory skeleton, copies templates and scaffolds, and copies 9 tool scripts into the project's `07-脚本与工具/`.
- `tools/init-content-system.js`:初始化工程骨架
Initial sample extraction relies on a "fixed protocol + script assistance", not black-box automated semantic extraction.
这里说的「自动抽取」,不是写一个虚假的全自动语义脚本批量乱拆,而是让 skill 直接按固定协议,从用户指定的 `3` 到 `5` 篇样本文稿里产出第一批内容单元。
Structure precedes scale: First verify field/relation/deduplication stability using samples before batching; transitioning from batch to full has 7 additional gates (including misjudgments ≤3 in a 30-unit sample audit).
#### `批量模式 → 全量模式` 升档闸门
"Functional" has an acceptable definition: Delivery can occur once the skeleton, rules, material copies, initial units, topic maps, assembly drafts, relation/deduplication indices, and state overview are complete, without committing to full completion.
- `03-处理状态/处理状态总览.md` 已明确当前范围、未处理量与下一步入口
Execution discipline requires actual execution: Do not stop at advice; point out insufficient materials immediately, narrow boundaries if ambiguous, and clearly define entry points to other skills.
- 不要停留在建议层
2Core Capabilities
3External Dependencies
| Kind | Dependency / Endpoint |
|---|---|
| cli | node |
| cli | npx skills(skills.sh CLI,安装途径) |
4Recommended Governance & Evidence
- scripts/: Execute local scripts or commands: node tools/init-content-system.js <target_project_dir> (builds directory skeleton, writes status files, and copies templates/scaffolds)
- 本地工作目录: File I/O and artifact generation: Inside target project: `00-规则与索引/` `01-原始素材区/` `02-内容单元库/` `03-处理状态/` `04-模板/` `05-主题地图/` `0
5Second-Pass Verification
- [ok] 自包含声明与资产面一致 — SKILL.md 列出的 templates/(7)、scaffold/root/(4)、scaffold/rules/(6)、docs/(2)、tools/(10)与 find 清点结果逐项吻合,无缺失文件。
- [ok] 脚本仅本地读写、无网络无凭证 — 10 个脚本全部 `const fs = require("fs");` + `const path = require("path");`;grep https?://|fetch(|child_process|execSync|spawn|process.env|API_KEY 零命中。
- [ok] 写盘范围限定在目标工程 — init 脚本所有目标路径均由 skillRoot/targetRoot 派生;extract 脚本的清理用 `fs.renameSync(filePath, target)` 移入 `<root>/.trash/{日期}_{原因}/`(不删除)。
- [discrepancy] 抽取器非通用语义引擎(能力边界) — SKILL.md 声明「不是写一个虚假的全自动语义脚本批量乱拆」,但 extract-sample-units.js 内含大量作者语料特化正则(如 `if (/生产型兴趣/.test(context.conceptText) && /兴趣/.test(context.normalizedTitle) && /赚钱|变现/.test(context.normalizedTitle)) {`),换语料会退化到通用兜底分支;这不是「虚假」,但确属「对自有语料特化」,已在 risks 写明。
- [ok] 四档闸门与数量门槛 — 审计/样本/批量/全量四模式与各自闸门标题均在原文;50 文件/80000 字、≥15 单元、≥3 地图/≥2 装配稿、抽查 30 误判≤3 逐字命中。
- [ok] 源文件只读与副本制 — 「原目录里的原文件不碰。」+ 原则 3 标题「### 原则 3:原始素材不改写,只复制副本」逐字命中。
- [ok] description 与内容相符 — description(把本地文稿/推文/选题/案例/课程稿整理成可持续生长、可重组复用的内容工程)对应五类单元 + 主题地图 + 装配稿 + 四模式推进,无夸大;但「可重组复用」的可验证证据是 assemble-topic-from-units.js 的 --auto 跨主题推荐,属启发式实现。
- [ok] commit / license / 元数据 — HEAD = 8b8e33f1ecaed8cee606fe950c4426b525ead314;LICENSE = CC BY-NC 4.0(含 NonCommercial,非商业授权);stars 10121、pushed_at 2026-09-07T03:48:59Z。
6Verdict & Scenarios
b0d6fde8b85e94cf…