# Kb Normalize

> KB Normalize（结构化字段）

- Skill: `jiyangnan/kb-normalize` (Agent Skill)
- Install (CLI): `npx skillmds@latest add jiyangnan/kb-normalize`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jiyangnan/kb-normalize/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: jiyangnan (https://skillmd.com/u/jiyangnan)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/jiyangnan/kb-normalize

---


# KB Normalize（结构化字段）

统一输出格式，给下游 QA/Router 使用。

## 输入
- `source.url`
- `source.type`（tweet/article/chat/doc/web）
- `source.author`（可空）
- `source.published_at`（可空）
- `text`（抓取到的正文）
- `user_note`（可选：用户发链接时的备注/意图）

## 输出（YAML，必须包含这些字段）
```yaml
source:
  url: ""
  type: tweet|article|chat|doc|web
  author: ""
  published_at: ""
summary_one_line: ""
claim: ""
why_it_matters: ""
evidence:
  - quote: ""
    url: ""
    note: ""
actions:
  - ""
risks_unknowns:
  - ""
reuse_tags:
  - ""
```

## 字段规则（严格化）

| 字段 | 规则 |
|------|------|
| **summary_one_line** | ≤50字，一句话说清楚这篇文章/推文讲什么 |
| **claim** | 一句话事实性主张，不能是观点/感受 |
| **why_it_matters** | 为什么值得存（与我有啥关系/能用在哪） |
| **evidence** | 至少 1 条；quote 必须来自原文原句（用引号）；标注来源 URL |
| **actions** | 用动词开头，且可执行；不要超过 3 条 |
| **risks_unknowns** | 可能的风险/不确定因素；不要编造 |
| **reuse_tags** | 场景标签，便于后续检索 |

### user_note 处理
- 如果 `user_note` 存在：写入 `why_it_matters` 或 `reuse_tags` 的上下文中（标注"用户意图: ..."）

## 依赖
- 本 skill 不负责抓取正文：抓取统一走 `kb-fetch`。

