feat: 实现 11 个 Wiki Skills
P0 (核心): - wiki-setup: 初始化 wiki vault - wiki-ingest: 蒸馏文档为 wiki 页面 - wiki-capture: 保存对话为 wiki 笔记 P1 (重要): - wiki-rebuild: 重建 wiki 索引 - data-ingest: 录入非结构化数据 - ingest-url: 抓取 URL 内容 - wiki-export: 导出知识图谱 P2 (可选): - wiki-research: 多轮搜索研究 - impl-validator: 验证实现 - graph-colorize: 着色 Obsidian 图形 - wiki-agent: 录入 agent 历史 Co-Authored-By: Claude Dev <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,123 @@
|
||||
---
|
||||
name: wiki-ingest
|
||||
description: 将文档(markdown、文本、代码)蒸馏为结构化、互联的 wiki 页面
|
||||
trigger: 当用户需要将现有文档、笔记或代码库转换为 wiki 页面时
|
||||
---
|
||||
|
||||
# Wiki Ingest
|
||||
|
||||
## 使用场景
|
||||
- 转换现有文档为 wiki 格式
|
||||
- 录入技术文档和设计说明
|
||||
- 将代码注释提取为 wiki 页面
|
||||
- 整理散落的笔记
|
||||
|
||||
## 操作步骤
|
||||
|
||||
1. **获取输入源**
|
||||
- 支持的格式:Markdown (.md), 纯文本 (.txt), 代码文件
|
||||
- 可以是单个文件或目录
|
||||
- 从用户或环境变量获取源路径
|
||||
|
||||
2. **分析文档结构**
|
||||
- 提取标题、章节
|
||||
- 识别代码块
|
||||
- 查找现有链接和引用
|
||||
|
||||
3. **蒸馏为 wiki 格式**
|
||||
- 添加 frontmatter(元数据)
|
||||
- 转换外部链接为 wikilinks
|
||||
- 生成适当的分类路径
|
||||
- 创建必要的标签
|
||||
|
||||
4. **智能互联**
|
||||
- 识别相关概念并创建 wikilinks
|
||||
- 建议引用现有 wiki 页面
|
||||
- 生成 [[backlinks]]
|
||||
|
||||
5. **写入 wiki vault**
|
||||
- 按分类放置文件
|
||||
- 更新 index.md
|
||||
- 记录到 log.md
|
||||
|
||||
## Frontmatter 模板
|
||||
|
||||
```yaml
|
||||
---
|
||||
name: page-slug
|
||||
description: 一句话摘要
|
||||
metadata:
|
||||
type: practice | concept | entity | project | skill | reference | synthesis
|
||||
source: <original-file-path>
|
||||
created: <date>
|
||||
tags: [tag1, tag2]
|
||||
---
|
||||
```
|
||||
|
||||
## 分类规则
|
||||
|
||||
| 内容类型 | 目标目录 |
|
||||
|---------|---------|
|
||||
| 最佳实践、经验教训 | `practices/` |
|
||||
| 概念、思维模型 | `concepts/` |
|
||||
| 人物、公司、工具 | `entities/` |
|
||||
| 项目文档 | `projects/` |
|
||||
| 如何做教程 | `skills/` |
|
||||
| 外部资料摘要 | `references/` |
|
||||
| 跨项目分析 | `synthesis/` |
|
||||
| 日常笔记 | `journal/` |
|
||||
|
||||
## 输出格式
|
||||
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"processed": 5,
|
||||
"skipped": 0,
|
||||
"failed": 0,
|
||||
"results": [
|
||||
{
|
||||
"source": "/path/to/source.md",
|
||||
"target": "practices/source.md",
|
||||
"links_created": 3,
|
||||
"status": "success"
|
||||
}
|
||||
],
|
||||
"index_updated": true
|
||||
}
|
||||
```
|
||||
|
||||
## 蒸馏规则
|
||||
|
||||
1. **标题处理**
|
||||
- 第一个 # 标题作为页面标题
|
||||
- 如无标题,从文件名推断
|
||||
|
||||
2. **链接转换**
|
||||
- HTTP(S) 链接保持不变
|
||||
- 相对路径转换为 wikilinks
|
||||
- 创建引用目标(如不存在)
|
||||
|
||||
3. **内容优化**
|
||||
- 保留代码块语法高亮
|
||||
- 转换表格为 Markdown 格式
|
||||
- 清理多余空白
|
||||
|
||||
4. **标签生成**
|
||||
- 从 frontmatter 提取
|
||||
- 从内容关键词推断
|
||||
- 使用受控词表(如配置)
|
||||
|
||||
## MCP 集成
|
||||
|
||||
调用 MCP Server 工具:
|
||||
- `rebuild_index` - 重建索引
|
||||
- `wiki_lint` - 验证页面格式
|
||||
- `cross_linker` - 自动创建交叉链接
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. 大文件可能需要分页处理
|
||||
2. 确保 wikilinks 目标最终存在
|
||||
3. 保留原始来源信息
|
||||
4. 避免重复创建相同内容
|
||||
Reference in New Issue
Block a user