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:
2026-06-26 12:17:38 +08:00
parent 62b8fef18a
commit 9649e8a761
11 changed files with 1693 additions and 0 deletions
+184
View File
@@ -0,0 +1,184 @@
---
name: data-ingest
description: 录入非结构化数据(对话记录、日志、会议记录等)到 wiki
trigger: 当用户需要将原始数据转换为结构化 wiki 页面时
---
# Data Ingest
## 使用场景
- 录入 AI 对话历史
- 导入会议记录
- 处理日志文件
- 整理客户反馈
## 操作步骤
1. **识别数据类型**
- 对话记录(JSON/文本)
- 会议记录(Markdown/文本)
- 日志文件(文本/JSON
- 其他非结构化文本
2. **解析和提取**
- 解析数据结构
- 提取关键信息
- 识别时间戳
- 提取参与者
3. **结构化转换**
- 生成统一的 wiki 格式
- 添加适当的 frontmatter
- 创建索引和链接
4. **批量处理**
- 处理多个文件
- 生成汇总页面
- 更新目录索引
## 支持的数据格式
### 对话记录(JSON
```json
{
"conversation": [
{"role": "user", "content": "...", "timestamp": "..."},
{"role": "assistant", "content": "...", "timestamp": "..."}
],
"metadata": {
"title": "对话标题",
"context": "项目上下文"
}
}
```
### 会议记录
```markdown
# 会议标题
**日期**: YYYY-MM-DD
**参与者**: Alice, Bob
## 议题
1. ...
## 讨论内容
...
## 行动项
- [ ] Alice: 完成设计
- [ ] Bob: 实现功能
```
### 日志文件
```
YYYY-MM-DD HH:MM:SS [INFO] ...
YYYY-MM-DD HH:MM:SS [ERROR] ...
```
## 输出格式
```json
{
"success": true,
"processed_files": 5,
"total_entries": 120,
"categories": {
"conversations": 2,
"meetings": 2,
"logs": 1
},
"results": [
{
"source": "conversation.json",
"target": "projects/conversation-2024-01-15.md",
"entries_count": 15,
"status": "success"
}
]
}
```
## 智能处理
1. **对话记录**
- 提取问答对
- 识别关键决策
- 生成对话摘要
- 存入 `projects/``journal/`
2. **会议记录**
- 提取行动项
- 识别决策
- 创建议题索引
- 存入 `projects/``synthesis/`
3. **日志文件**
- 按日期分割
- 提取错误模式
- 识别性能问题
- 存入 `journal/``practices/`
## 页面模板
**对话记录页面**
```markdown
---
name: conversation-YYYY-MM-DD
description: 关于 X 的讨论
metadata:
type: journal
date: YYYY-MM-DD
participants: [Alice, Bob]
tags: [topic-tag]
---
# <对话主题>
**日期**: YYYY-MM-DD
**参与者**: Alice, Bob
## 背景
<对话上下文>
## 关键讨论
### Question 1
**User**: ...
**Answer**: ...
## 决策
- <决策 1>
- <决策 2>
## 行动项
- [ ] <行动项 1>
## 相关链接
- [[related-page]]
```
## MCP 集成
调用 MCP Server 工具:
- `rebuild_index` - 批量录入后重建索引
- `cross_linker` - 创建相关链接
- `tag_taxonomy` - 整理标签
## 配置选项
**`~/.sanguo-llmwiki/config.yaml`**
```yaml
ingest:
max_file_size: 10485760 # 10MB
batch_size: 50 # 批处理大小
auto_tag: true # 自动添加标签
split_long_logs: true # 分割长日志
```
## 注意事项
1. 大文件应分批处理
2. 敏感信息需要脱敏
3. 保留原始时间戳
4. 避免创建孤立页面
+157
View File
@@ -0,0 +1,157 @@
---
name: graph-colorize
description: 重写 Obsidian graph.json 按分类着色节点,增强可视化
trigger: 当用户需要更新 Obsidian 图形视图的节点颜色时
---
# Graph Colorize
## 使用场景
- 更新 Obsidian 图形可视化
- 按分类区分节点颜色
- 增强知识图谱可读性
- 自定义节点样式
## 操作步骤
1. **读取现有 graph.json**
- 定位 Obsidian vault
- 读取当前 graph.json
- 备份原文件
2. **分析节点分类**
- 从 MCP Server 获取页面分类
- 识别节点类型
- 确定着色方案
3. **生成新 graph.json**
- 为每类节点分配颜色
- 应用自定义样式
- 保存新文件
4. **验证结果**
- 检查 JSON 有效性
- 验证所有节点已着色
## 颜色方案
### 默认方案(按目录)
| 分类 | 颜色 | Hex Code |
|-----|------|----------|
| practices | 蓝色 | #3b82f6 |
| concepts | 绿色 | #10b981 |
| entities | 紫色 | #8b5cf6 |
| projects | 红色 | #ef4444 |
| skills | 黄色 | #f59e0b |
| references | 灰色 | #6b7280 |
| synthesis | 粉色 | #ec4899 |
| journal | 青色 | #06b6d4 |
### 自定义方案
用户可在配置文件中自定义颜色:
```yaml
colorize:
colors:
practices: "#3b82f6"
concepts: "#10b981"
custom_category: "#ff0000"
```
## graph.json 结构
```json
{
"colorGroups": [
{
"path": "practices",
"color": "#3b82f6",
"background": "#eff6ff"
},
{
"path": "concepts",
"color": "#10b981",
"background": "#ecfdf5"
}
]
}
```
## 输出格式
```json
{
"success": true,
"graph_json_path": "/path/to/.obsidian/graph.json",
"backup_path": "/path/to/.obsidian/graph.json.backup",
"stats": {
"total_nodes": 1353,
"colored_nodes": 1353,
"color_groups": 8
},
"color_scheme": "default"
}
```
## 高级功能
### 按生命周期着色
| 状态 | 颜色 |
|-----|------|
| draft | 灰色 (#9ca3af) |
| verified | 绿色 (#10b981) |
| archived | 暗灰色 (#4b5563) |
### 按标签着色
为特定标签分配特殊颜色:
- `important`: 红色边框
- `wip`: 黄色背景
- `done`: 绿色背景
## MCP 集成
调用 MCP Server 工具:
- `wiki_status` - 获取所有页面和分类
- `get_all_pages` - 获取节点列表
## 配置选项
**`~/.sanguo-llmwiki/config.yaml`**
```yaml
colorize:
scheme: "default" # 颜色方案
color_by: "category" # 分类方式: category/lifecycle/tag
backup_original: true # 备份原文件
force_color: {} # 强制覆盖特定节点颜色
```
## 使用示例
**使用默认方案**
```
graph-colorize
```
**使用生命周期着色**
```
graph-colorize --color-by lifecycle
```
**自定义颜色**
```yaml
colorize:
color_by: "tag"
force_color:
important: "#ef4444"
```
## 注意事项
1. 备份原始 graph.json
2. 确保 Obsidian 已关闭
3. 验证 JSON 格式正确
4. 颜色考虑可访问性
+186
View File
@@ -0,0 +1,186 @@
---
name: impl-validator
description: 验证实现是否符合其声明目标(代码审查、架构验证)
trigger: 当用户需要验证代码实现或架构设计时
---
# Impl Validator
## 使用场景
- 代码实现验证
- 架构合规性检查
- PR 审查辅助
- 技术债务评估
## 操作步骤
1. **获取待验证内容**
- 代码文件或目录
- PR/Issue 描述
- 设计文档
2. **定义验证标准**
- 从 frontmatter 或文档中提取目标
- 确定验证维度
- 设置检查点
3. **执行验证**
- 代码审查
- 架构分析
- 测试覆盖率检查
4. **生成报告**
- 评分和发现
- 改进建议
- 存入 wiki
## 验证维度
| 维度 | 检查项 |
|-----|-------|
| **正确性** | 是否实现声明功能 |
| **性能** | 是否满足性能要求 |
| **安全** | 是否存在安全风险 |
| **可维护性** | 代码是否清晰易读 |
| **测试** | 是否有充分测试 |
| **文档** | 文档是否完整 |
## 页面模板
```markdown
---
name: impl-validation-YYYY-MM-DD
description: 实现验证报告
metadata:
type: synthesis | project
validated_at: YYYY-MM-DD
scope: <component-or-pr>
tags: [validation, review]
---
# 实现验证:<组件名称>
**日期**: YYYY-MM-DD
**范围**: <组件/PR>
**目标**: <声明的实现目标>
## 声明目标
<从文档或 issue 中提取的目标>
## 验证结果
### 正确性 ✅/⚠️/❌
- [x] 功能完整性
- [x] 边界情况处理
- [ ] 错误处理
### 性能 ✅/⚠️/❌
- [x] 满足性能要求
- [x] 无明显瓶颈
- [x] 资源使用合理
### 安全 ✅/⚠️/❌
- [x] 无已知漏洞
- [x] 输入验证充分
- [ ] 敏感数据处理
### 可维护性 ✅/⚠️/❌
- [x] 代码清晰
- [x] 命名规范
- [x] 适当注释
### 测试 ✅/⚠️/❌
- [x] 单元测试覆盖
- [ ] 集成测试
- [ ] 边界测试
### 文档 ✅/⚠️/❌
- [x] API 文档
- [x] 使用示例
- [ ] 架构说明
## 发现的问题
### 问题 1:中等
**描述**: ...
**位置**: file:line
**建议**: ...
### 问题 2:低
**描述**: ...
**位置**: file:line
**建议**: ...
## 改进建议
1. **高优先级**
- 建议 1
- 建议 2
2. **中优先级**
- 建议 3
## 总体评分
| 维度 | 评分 | 备注 |
|-----|------|------|
| 正确性 | 8/10 | ... |
| 性能 | 7/10 | ... |
| 安全 | 9/10 | ... |
| 可维护性 | 8/10 | ... |
| 测试 | 6/10 | ... |
| 文档 | 7/10 | ... |
**综合评分**: 7.5/10
## 相关链接
- [[related-practice]]
- [[component-doc]]
```
## 输出格式
```json
{
"success": true,
"scope": "component-name",
"saved_to": "projects/validation-component-2024-01-15.md",
"validation_summary": {
"overall_score": 7.5,
"dimensions": {
"correctness": 8,
"performance": 7,
"security": 9,
"maintainability": 8,
"testing": 6,
"documentation": 7
},
"issues_found": 3,
"improvements": 5
}
}
```
## MCP 集成
使用 MCP 工具:
- `wiki_query` - 查找相关实践
- `wiki_lint` - 检查代码质量
- `cross_linker` - 创建相关链接
## 配置选项
**`~/.sanguo-llmwiki/config.yaml`**
```yaml
validation:
auto_save: true # 自动保存报告
include_code_snippets: true # 包含代码片段
suggest_improvements: true # 建议改进
```
## 注意事项
1. 客观评价,避免主观偏见
2. 提供具体改进建议
3. 区分必需和可选改进
4. 保留验证历史用于对比
+128
View File
@@ -0,0 +1,128 @@
---
name: ingest-url
description: 抓取 URL 内容并蒸馏为 wiki 页面
trigger: 当用户需要保存网页内容到 wiki 时
---
# Ingest URL
## 使用场景
- 保存技术文章到 wiki
- 归档博客内容
- 捕获文档页面
- 整合参考资料
## 操作步骤
1. **获取 URL**
- 从用户输入获取 URL
- 验证 URL 格式
- 检查可访问性
2. **抓取内容**
- 使用 web_reader MCP 工具
- 获取页面内容
- 提取元数据(标题、作者)
3. **蒸馏为 wiki 格式**
- 转换为 Markdown
- 提取关键信息
- 添加元数据和来源
4. **写入 wiki**
- 放入 `references/` 目录
- 创建适当的标签
- 更新索引
## 支持的 URL 类型
| URL 类型 | 处理方式 |
|---------|---------|
| 技术博客 | 提取文章内容、代码 |
| 官方文档 | 提取文档结构、API 说明 |
| GitHub README | 提取项目说明、使用方法 |
| Stack Overflow | 提取问题和答案 |
| 新闻/博客 | 提取标题、正文 |
## 页面模板
```markdown
---
name: article-slug
description: 文章简短摘要
metadata:
type: reference
source_url: <original-url>
source_title: <page-title>
author: <author-if-available>
created: <date>
tags: [tag1, tag2]
---
# <文章标题>
**来源**: [原始链接](<url>)
**作者**: <author>
**日期**: <capture-date>
**标签**: \`tag1\` \`tag2\`
## 摘要
<文章摘要或简介>
## 核心内容
<提取的主要内容和结构>
## 关键要点
- 要点 1
- 要点 2
## 相关链接
- [[related-wiki-page]]
- [[related-concept]]
```
## 输出格式
```json
{
"success": true,
"url": "https://example.com/article",
"saved_to": "references/article-slug.md",
"word_count": 1500,
"extracted": {
"title": "文章标题",
"author": "作者",
"tags": ["tag1", "tag2"],
"summary": "文章摘要"
},
"links_created": 2
}
```
## MCP 集成
使用 MCP 工具:
- `web_reader` - 抓取网页内容
- `wiki_ingest` - 蒸馏为 wiki 格式
- `cross_linker` - 创建相关链接
## 配置选项
**`~/.sanguo-llmwiki/config.yaml`**
```yaml
ingest_url:
timeout: 30 # 请求超时(秒)
max_size: 1048576 # 最大内容大小(1MB
preserve_images: false # 是否保留图片
strip_ads: true # 是否移除广告
```
## 注意事项
1. 遵守 robots.txt
2. 尊重版权信息
3. 保留原始来源链接
4. 避免抓取受限内容
+196
View File
@@ -0,0 +1,196 @@
---
name: wiki-agent
description: 从特定 AI agent 的历史记录中定向录入知识到 wiki
trigger: 当用户需要从 agent 历史记录中提取有价值信息时
---
# Wiki Agent
## 使用场景
- 从 Claude Code 对话历史提取知识
- 录入特定 agent 的工作记录
- 整理项目开发过程
- 归档问题解决经验
## 操作步骤
1. **指定 Agent 来源**
- 确定项目路径
- 定位 agent 历史文件
- 选择时间范围
2. **解析历史记录**
- 读取对话 JSONL 文件
- 提取用户和 AI 消息
- 识别代码变更
3. **智能过滤**
- 移除重复内容
- 过滤元指令
- 提取关键见解
4. **结构化处理**
- 按主题分组
- 生成页面结构
- 创建相关链接
5. **写入 wiki**
- 保存到 `projects/``journal/`
- 更新项目索引
## 支持的 Agent 类型
| Agent | 来源路径 | 说明 |
|-------|---------|------|
| Claude Code | `.claude/projects/*/.../*.jsonl` | Claude Code 对话历史 |
| Generic | 自定义路径 | 通用 JSONL 格式 |
## JSONL 格式
```jsonl
{"role": "user", "content": "问题", "timestamp": "2024-01-15T10:00:00Z"}
{"role": "assistant", "content": "回答", "timestamp": "2024-01-15T10:00:01Z"}
{"type": "tool_use", "tool": "function", "input": {...}}
{"type": "tool_result", "output": "..."}
```
## 页面模板
```markdown
---
name: agent-history-YYYY-MM-DD
description: Agent 工作记录摘要
metadata:
type: journal | project
agent: claude-code
project: project-name
date_range: YYYY-MM-DD to YYYY-MM-DD
tags: [agent, history]
---
# Agent 工作记录:<项目名称>
**日期**: YYYY-MM-DD
**Agent**: Claude Code
**消息数**: 42
## 工作摘要
<对话主题摘要>
## 关键决策
### 决策 1
**上下文**: ...
**决定**: ...
**原因**: ...
## 实施记录
### 任务 1
**问题**: ...
**解决方案**: ...
**代码变更**: file.js:100
### 任务 2
**问题**: ...
**解决方案**: ...
## 遇到的问题
### 问题 1
**描述**: ...
**解决过程**: ...
**最终方案**: ...
## 获得的见解
- 见解 1
- 见解 2
## 使用的工具
- tool1 (用途)
- tool2 (用途)
## 相关链接
- [[related-project]]
- [[related-practice]]
```
## 输出格式
```json
{
"success": true,
"agent": "claude-code",
"project": "project-name",
"saved_to": "projects/project-history-2024-01-15.md",
"summary": {
"messages_processed": 120,
"decisions_extracted": 3,
"problems_solved": 2,
"insights_captured": 5,
"tools_used": ["tool1", "tool2"]
},
"pages_created": 2
}
```
## 智能提取
1. **决策识别**
- 查找 "决定"、"选择" 等关键词
- 提取决策背景和原因
- 记录决策结果
2. **问题解决**
- 识别错误和异常
- 提取排查过程
- 记录最终方案
3. **代码变更**
- 提取文件编辑记录
- 记录变更原因
- 保存关键代码片段
4. **见解提取**
- 识别学习点
- 提取最佳实践
- 记录经验教训
## MCP 集成
调用 MCP Server 工具:
- `wiki_query` - 查找相关项目知识
- `wiki_ingest` - 蒸馏为 wiki 格式
- `cross_linker` - 创建相关链接
## 配置选项
**`~/.sanguo-llmwiki/config.yaml`**
```yaml
agent:
default_agent: "claude-code"
history_path: ".claude/projects"
max_messages: 500 # 最大处理消息数
include_code: true # 是否包含代码变更
group_by_topic: true # 按主题分组
```
## 使用示例
**录入最近的 agent 历史**
```
wiki-agent --project my-project --days 7
```
**指定时间范围**
```
wiki-agent --project my-project --from 2024-01-01 --to 2024-01-15
```
## 注意事项
1. 注意敏感信息过滤
2. 尊重数据隐私
3. 验证 JSONL 格式正确
4. 避免重复录入相同内容
+143
View File
@@ -0,0 +1,143 @@
---
name: wiki-capture
description: 将当前 AI 对话保存为结构化的 wiki 笔记,保留关键见解和决策
trigger: 当用户完成有价值的对话并希望保存到 wiki 时
---
# Wiki Capture
## 使用场景
- 保存 AI 辅助的决策过程
- 记录问题解决方案
- 捕获设计讨论
- 归档代码审查结果
## 操作步骤
1. **分析对话内容**
- 提取用户问题和 AI 回答
- 识别关键见解
- 标记重要决策
2. **结构化处理**
- 总结对话主题
- 提取可复用的模式
- 识别相关概念链接
3. **生成 wiki 页面**
- 创建对话摘要
- 保存关键代码片段
- 添加元数据(时间、上下文)
4. **写入 wiki vault**
- 放入适当的分类
- 更新日志
- 创建相关链接
## 页面模板
```markdown
---
name: conversation-slug
description: 简短摘要
metadata:
type: journal | synthesis | project
context: <project-or-task>
date: <capture-date>
tags: [tag1, tag2]
---
# <对话主题>
**日期**: YYYY-MM-DD
**上下文**: <项目/任务>
## 问题
<用户的问题>
## 解决方案
<AI 的回答>
## 关键见解
- 要点 1
- 要点 2
## 决策
<记录的重要决策>
## 相关链接
- [[related-concept]]
- [[related-practice]]
```
## 智能分类
根据对话内容自动确定分类:
| 对话类型 | 目标目录 |
|---------|---------|
| 技术问题解决 | `practices/` |
| 架构讨论 | `concepts/` |
| 项目决策 | `projects/` |
| 学习笔记 | `journal/` |
| 跨领域综合 | `synthesis/` |
## 输出格式
```json
{
"success": true,
"saved_to": "journal/conversation-title.md",
"message_count": 8,
"extraction_summary": {
"key_insights": 2,
"decisions": 1,
"code_blocks": 1,
"links_created": 3
},
"log_updated": true
}
```
## 捕获策略
1. **去噪声**
- 移除问候语
- 过滤重复确认
- 忽略元指令
2. **提取关键信息**
- 代码块和配置
- 设计决策
- 故障排查步骤
- 性能优化建议
3. **生成链接**
- 识别提及的 wiki 页面
- 创建概念链接
- 建议相关实践
## MCP 集成
调用 MCP Server 工具:
- `memory_bridge` - 查找相关记忆
- `wiki_lint` - 验证生成的页面
- `cross_linker` - 自动创建交叉引用
## 配置选项
**`~/.sanguo-llmwiki/config.yaml`**
```yaml
capture:
auto_save: false # 是否自动保存
default_type: "journal" # 默认分类
include_full_context: true # 是否包含完整对话
max_message_count: 100 # 最大消息数量限制
```
## 注意事项
1. 获取用户确认后再保存
2. 确保敏感信息不被意外记录
3. 保留对话的完整上下文链接
4. 避免保存无关的调试信息
+179
View File
@@ -0,0 +1,179 @@
---
name: wiki-export
description: 导出知识图谱为结构化格式(JSON、Markdown、GraphML
trigger: 当用户需要备份、迁移或分析 wiki 知识图谱时
---
# Wiki Export
## 使用场景
- 备份知识图谱
- 迁移到其他系统
- 分析知识结构
- 生成可视化数据
- 与其他工具集成
## 操作步骤
1. **选择导出格式**
- JSON(完整数据)
- Markdown(静态网站)
- GraphML(图可视化)
- CSV(数据分析)
2. **收集数据**
- 从 MCP Server 获取所有页面
- 获取链接关系
- 获取标签索引
- 获取元数据
3. **格式化输出**
- 转换为选定的格式
- 应用压缩(可选)
- 生成目录结构
4. **写入文件**
- 保存到指定位置
- 生成校验和
- 创建清单文件
## 导出格式
### 格式 1:完整 JSON(完整备份)
```json
{
"version": "1.0",
"exported_at": "2024-01-15T10:30:00Z",
"stats": {
"total_pages": 1353,
"total_links": 4200,
"total_tags": 156
},
"pages": [
{
"path": "practices/example.md",
"title": "示例页面",
"category": "practices",
"tags": ["tag1", "tag2"],
"summary": "页面摘要",
"content_hash": "...",
"lifecycle": "verified",
"source_tool": "claude",
"created_at": "2024-01-01",
"updated_at": "2024-01-15",
"indexed_at": "2024-01-15"
}
],
"links": [
{
"source": "practices/a.md",
"target": "concepts/b.md"
}
],
"tags": [
{
"tag": "python",
"count": 42
}
]
}
```
### 格式 2:静态 Markdown(静态网站)
保持原有目录结构,可直接用于静态网站生成。
### 格式 3GraphML(图可视化)
```xml
<?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns">
<graph id="wiki-graph" edgedefault="directed">
<node id="practices/a.md">
<data key="title">示例</data>
<data key="category">practices</data>
</node>
<edge source="practices/a.md" target="concepts/b.md"/>
</graph>
</graphml>
```
### 格式 4CSV(数据分析)
```csv
path,title,category,tags,summary,lifecycle,updated_at
practices/a.md,示例,practices,"tag1,tag2",摘要,verified,2024-01-15
```
## 输出格式
```json
{
"success": true,
"format": "json",
"output_path": "/path/to/export.json",
"stats": {
"total_pages": 1353,
"total_links": 4200,
"file_size": "5.2MB"
},
"checksum": "sha256:..."
}
```
## MCP 集成
调用 MCP Server 工具:
- `wiki_status` - 获取导出前的状态
- 查询所有页面、链接、标签
## 目录结构
导出输出目录:
```
export/
├── wiki-export-YYYYMMDD.json
├── wiki-export-YYYYMMDD.md/
│ ├── practices/
│ ├── concepts/
│ └── ...
├── wiki-export-YYYYMMDD.graphml
├── wiki-export-YYYYMMDD.csv
└── manifest.json # 导出清单
```
## 配置选项
**`~/.sanguo-llmwiki/config.yaml`**
```yaml
export:
default_format: "json" # 默认导出格式
compress_output: false # 是否压缩
include_content: true # 是否包含页面内容
split_large_files: false # 分割大文件
```
## 使用示例
**备份整个 wiki**
```
wiki-export --format json --output ~/backups/wiki.json
```
**导出用于可视化**
```
wiki-export --format graphml --output ~/analysis/wiki.graphml
```
**导出用于数据分析**
```
wiki-export --format csv --output ~/data/wiki.csv
```
## 注意事项
1. 大型 wiki 导出可能需要较长时间
2. 确保有足够的磁盘空间
3. 验证导出文件的完整性
4. 敏感信息需注意保护
+123
View File
@@ -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. 避免重复创建相同内容
+132
View File
@@ -0,0 +1,132 @@
---
name: wiki-rebuild
description: 归档现有 wiki 并重建,或从历史备份恢复
trigger: 当 wiki 索引损坏或需要从备份恢复时
---
# Wiki Rebuild
## 使用场景
- 索引文件损坏需要重建
- 迁移到新的 MCP Server 版本
- 从备份恢复 wiki
- 清理冗余数据
## 操作步骤
### 模式 A:归档并重建
1. **备份现有数据**
- 归档当前索引文件
- 创建时间戳备份
- 保留 wiki-vault 内容
2. **清理旧索引**
- 删除旧索引文件
- 清空 MCP Server 缓存
3. **重建索引**
- 调用 MCP Server `rebuild_index`
- 扫描所有 wiki 页面
- 重建 FTS5 全文索引
- 重建链接关系图
4. **验证结果**
- 检查索引完整性
- 验证页面数量
- 测试搜索功能
### 模式 B:从备份恢复
1. **列出可用备份**
- 扫描备份目录
- 显示备份时间戳
2. **用户选择备份**
- 选择恢复点
- 确认恢复操作
3. **恢复数据**
- 恢复索引文件
- 验证数据完整性
## 目录结构
```
~/.sanguo-llmwiki/
├── index.db # 当前索引
├── backups/ # 备份目录
│ ├── index-2024-01-15.db
│ ├── index-2024-01-16.db
│ └── index-latest.db
└── config.yaml
```
## 输出格式
**重建成功**
```json
{
"success": true,
"action": "rebuild",
"backup_created": "backups/index-2024-01-15.db",
"stats": {
"total_pages": 1353,
"total_links": 4200,
"total_tags": 156,
"rebuild_time": "45.2s"
},
"integrity_check": "passed"
}
```
**恢复成功**
```json
{
"success": true,
"action": "restore",
"restored_from": "backups/index-2024-01-15.db",
"stats": {
"total_pages": 1350,
"total_links": 4195
}
}
```
## MCP 集成
调用 MCP Server 工具:
- `rebuild_index` - 执行全量重建
- `wiki_status` - 获取重建前后的状态
- `check_integrity` - 验证数据库完整性
## 安全措施
1. **备份验证**
- 确保备份文件完整
- 验证文件大小
2. **原子操作**
- 先备份后操作
- 失败时自动回滚
3. **磁盘空间检查**
- 确保足够空间
- 清理旧备份
## 配置选项
**`~/.sanguo-llmwiki/config.yaml`**
```yaml
rebuild:
backup_before_rebuild: true # 重建前自动备份
max_backups: 10 # 保留的备份数量
auto_cleanup: true # 自动清理过期备份
```
## 注意事项
1. 重建操作可能需要较长时间
2. 确保重建期间没有其他写入操作
3. 验证 wiki-vault 路径正确
4. 大型 wiki 重建可能需要数分钟
+154
View File
@@ -0,0 +1,154 @@
---
name: wiki-research
description: 多轮 web 搜索研究,综合发现并存入 wiki
trigger: 当用户需要深入研究某个主题并保存结果时
---
# Wiki Research
## 使用场景
- 深入研究技术主题
- 对比不同解决方案
- 调查最佳实践
- 收集领域知识
## 操作步骤
1. **确定研究主题**
- 从用户获取研究问题
- 分解为子问题
- 制定搜索策略
2. **多轮搜索**
- 第一轮:广度搜索
- 后续轮:针对性深入
- 迭代优化关键词
3. **综合发现**
- 提取关键信息
- 对比不同观点
- 识别共识和争议
4. **生成 wiki 页面**
- 结构化研究发现
- 添加引用来源
- 创建相关链接
5. **存入 wiki**
- 放入 `concepts/``references/`
- 更新相关页面链接
## 研究模板
```markdown
---
name: research-topic-slug
description: 研究主题摘要
metadata:
type: synthesis | reference
research_date: YYYY-MM-DD
queries: ["query1", "query2"]
sources_count: 5
tags: [tag1, tag2]
---
# <研究主题>
**研究日期**: YYYY-MM-DD
**来源数量**: N
## 研究问题
<原始研究问题>
## 搜索策略
- 查询 1: ...
- 查询 2: ...
## 关键发现
### 发现 1
**来源**: [来源链接](url)
**要点**: ...
### 发现 2
**来源**: [来源链接](url)
**要点**: ...
## 对比分析
| 方案 | 优点 | 缺点 | 适用场景 |
|-----|------|------|---------|
| A | ... | ... | ... |
| B | ... | ... | ... |
## 结论
<综合结论和建议>
## 相关链接
- [[related-concept]]
- [[related-practice]]
## 来源
1. [来源 1](url)
2. [来源 2](url)
```
## 输出格式
```json
{
"success": true,
"topic": "研究主题",
"saved_to": "synthesis/research-topic.md",
"research_summary": {
"queries": ["query1", "query2"],
"sources_found": 8,
"sources_used": 5,
"key_insights": 3,
"rounds": 2
},
"links_created": 3
}
```
## 研究策略
1. **第一轮:广度搜索**
- 使用通用关键词
- 获取概览信息
- 识别重要来源
2. **第二轮:深入探索**
- 针对具体子问题
- 查找技术细节
- 收集实践经验
3. **第三轮:验证和补充**
- 验证关键信息
- 查找反面案例
- 补充缺失信息
## MCP 集成
使用 MCP 工具:
- `wiki_query` - 查找现有相关知识
- `web_search` - 进行网络搜索
- `wiki_ingest` - 蒸馏研究发现
## 配置选项
**`~/.sanguo-llmwiki/config.yaml`**
```yaml
research:
max_rounds: 3 # 最大搜索轮数
min_sources: 3 # 最少来源数量
max_sources: 10 # 最多来源数量
auto_save: true # 自动保存到 wiki
```
## 注意事项
1. 验证信息可靠性
2. 保留原始来源链接
3. 避免信息过载
4. 及时更新过期研究
+111
View File
@@ -0,0 +1,111 @@
---
name: wiki-setup
description: 初始化新 wiki vault,创建目录结构和初始配置文件
trigger: 当用户需要创建新的 wiki vault 或重新初始化现有 wiki 时
---
# Wiki Setup
## 使用场景
- 用户首次设置 wiki 系统
- 需要重新初始化现有 wiki vault
- 创建新的项目 wiki
## 操作步骤
1. **确认 wiki vault 路径**
- 默认:`/Volumes/KnowledgeBase/wiki-vault`
- 可通过环境变量 `WIKI_VAULT_PATH` 自定义
2. **创建目录结构**
```
wiki-vault/
├── .obsidian/ # Obsidian 配置
├── practices/ # 最佳实践
├── concepts/ # 概念和思维模型
├── entities/ # 人物、公司、工具
├── projects/ # 项目知识
├── skills/ # 可重用的 how-to
├── references/ # 外部资料摘要
├── synthesis/ # 跨项目分析
├── journal/ # 每日学习日志
├── index.md # 主索引
├── log.md # 查询/更新日志
└── wiki-instructions.md # 触发规则说明
```
3. **创建初始文件**
**index.md** - 主索引文件:
```markdown
# Wiki Index
## Practices
- [[performance-patterns]]
- [[design-patterns]]
## Concepts
- [[distributed-systems]]
- [[data-structures]]
## Recent Updates
See [[log.md]] for recent changes
```
**wiki-instructions.md** - Wiki 触发规则:
```markdown
# Wiki Instructions
## Query Triggers
- "What do I know about X?"
- "Find everything related to Y"
- "Check my wiki for..."
## Update Triggers
- "Update wiki"
- "Save to wiki"
- "Distill this to wiki"
```
4. **创建 Obsidian 配置**
- 创建 `.obsidian/` 目录
- 生成基本配置文件(如果需要)
5. **初始化 MCP Server 索引**
- 调用 MCP Server 的 `rebuild_index` 工具
- 确认索引路径(默认:`~/.sanguo-llmwiki/index.db`
## 输出格式
```json
{
"success": true,
"vault_path": "/path/to/wiki-vault",
"created_dirs": ["practices", "concepts", ...],
"created_files": ["index.md", "log.md", ...],
"index_initialized": true
}
```
## 配置文件
**`~/.sanguo-llmwiki/config.yaml`**(如不存在则创建):
```yaml
wiki:
vault_path: "/Volumes/KnowledgeBase/wiki-vault"
index_path: "~/.sanguo-llmwiki/index.db"
mcp:
mode: "stdio"
host: "localhost"
port: 8080
logging:
level: "INFO"
```
## 注意事项
1. 如果目录已存在,不会覆盖现有文件
2. 首次运行需要初始化 MCP Server 索引
3. 确保有足够的磁盘空间