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,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. 避免创建孤立页面
|
||||||
@@ -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. 颜色考虑可访问性
|
||||||
@@ -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. 保留验证历史用于对比
|
||||||
@@ -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. 避免抓取受限内容
|
||||||
@@ -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. 避免重复录入相同内容
|
||||||
@@ -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. 避免保存无关的调试信息
|
||||||
@@ -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(静态网站)
|
||||||
|
|
||||||
|
保持原有目录结构,可直接用于静态网站生成。
|
||||||
|
|
||||||
|
### 格式 3:GraphML(图可视化)
|
||||||
|
|
||||||
|
```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>
|
||||||
|
```
|
||||||
|
|
||||||
|
### 格式 4:CSV(数据分析)
|
||||||
|
|
||||||
|
```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. 敏感信息需注意保护
|
||||||
@@ -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. 避免重复创建相同内容
|
||||||
@@ -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 重建可能需要数分钟
|
||||||
@@ -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. 及时更新过期研究
|
||||||
@@ -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. 确保有足够的磁盘空间
|
||||||
Reference in New Issue
Block a user