# Kb Router

> KB Router（落盘/状态更新）

- Skill: `jiyangnan/kb-router-2` (Agent Skill)
- Install (CLI): `npx skillmds@latest add jiyangnan/kb-router-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jiyangnan/kb-router-2/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-router-2

---


# KB Router（落盘/状态更新）

把 Normalize+QA 的结果写入 Obsidian Vault，并更新防重复状态。

## 输入
- `normalize`（kb-normalize 输出 YAML）
- `qa`（kb-qa-score 输出 YAML）
- `title`（可由抓取/正文推断；需要用于文件命名）
- `text`（可选：写入 notes 的正文摘录/关键段落）

## 固定路径
- Notes：`$VAULT_ROOT/KB/notes/`
- Queue：`$VAULT_ROOT/KB/queue/`
- Processed list：`$VAULT_ROOT/KB/inputs/processed-links.md`
- State：`$WORKSPACE/KB/state/digest.json`

## 路由规则（硬规则）
- verdict=keep → 写入 notes
- verdict=queue/needs_context → 写入 queue
- verdict=discard → 不入库（只在摘要里说明原因即可）

## 人在回路（每个关键节点暂停确认）

### Step 1: 入库前确认
```
→ 展示：文件名、目标路径、verdict
→ 询问用户："确认写入？Y/N"
IF 用户确认:
  → 继续写入
ELSE:
  → 跳过本次，询问修改后重新处理
```

### Step 2: 写入后确认
```
→ 写入成功后，展示：
  - 文件路径
  - 字数/行数
  - 摘要
→ 询问："需要查看内容/修改/重新写？"
```

### Step 3: 异常处理
```
IF 写入失败（权限/磁盘满/路径不存在）:
  → 记录错误详情
  → 询问用户："手动创建/换路径/跳过？"
  → 根据用户选择处理
```

## 文件命名
- notes：`YYYY-MM-DD-<简短主题>-note.md`
- queue：`YYYY-MM-DD-<简短主题>-queue.md`

## 写入内容要求
- notes 必须包含：来源 URL、summary_one_line、claim、why_it_matters、evidence、actions。
- queue 必须包含：卡点（issues）+ 需要 boss 做什么（questions_for_boss）。

## 状态更新
- processed-links.md：追加一行（日期|标题|verdict|url）
- digest.json：追加 processed 记录（url, processed_at, verdict, title, reason 可选）

## 依赖
- 抓取统一走 `kb-fetch`；结构化与打分分别走 `kb-normalize` 与 `kb-qa-score`。

