From 9649e8a761b6cd20532aefab7402ef26bd2a40ae Mon Sep 17 00:00:00 2001 From: claude_dev Date: Fri, 26 Jun 2026 12:17:38 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=9E=E7=8E=B0=2011=20=E4=B8=AA=20W?= =?UTF-8?q?iki=20Skills?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- skills/data-ingest/SKILL.md | 184 +++++++++++++++++++++++++++++++ skills/graph-colorize/SKILL.md | 157 ++++++++++++++++++++++++++ skills/impl-validator/SKILL.md | 186 +++++++++++++++++++++++++++++++ skills/ingest-url/SKILL.md | 128 +++++++++++++++++++++ skills/wiki-agent/SKILL.md | 196 +++++++++++++++++++++++++++++++++ skills/wiki-capture/SKILL.md | 143 ++++++++++++++++++++++++ skills/wiki-export/SKILL.md | 179 ++++++++++++++++++++++++++++++ skills/wiki-ingest/SKILL.md | 123 +++++++++++++++++++++ skills/wiki-rebuild/SKILL.md | 132 ++++++++++++++++++++++ skills/wiki-research/SKILL.md | 154 ++++++++++++++++++++++++++ skills/wiki-setup/SKILL.md | 111 +++++++++++++++++++ 11 files changed, 1693 insertions(+) create mode 100644 skills/data-ingest/SKILL.md create mode 100644 skills/graph-colorize/SKILL.md create mode 100644 skills/impl-validator/SKILL.md create mode 100644 skills/ingest-url/SKILL.md create mode 100644 skills/wiki-agent/SKILL.md create mode 100644 skills/wiki-capture/SKILL.md create mode 100644 skills/wiki-export/SKILL.md create mode 100644 skills/wiki-ingest/SKILL.md create mode 100644 skills/wiki-rebuild/SKILL.md create mode 100644 skills/wiki-research/SKILL.md create mode 100644 skills/wiki-setup/SKILL.md diff --git a/skills/data-ingest/SKILL.md b/skills/data-ingest/SKILL.md new file mode 100644 index 0000000..129b0a4 --- /dev/null +++ b/skills/data-ingest/SKILL.md @@ -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. 避免创建孤立页面 diff --git a/skills/graph-colorize/SKILL.md b/skills/graph-colorize/SKILL.md new file mode 100644 index 0000000..ac575a2 --- /dev/null +++ b/skills/graph-colorize/SKILL.md @@ -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. 颜色考虑可访问性 diff --git a/skills/impl-validator/SKILL.md b/skills/impl-validator/SKILL.md new file mode 100644 index 0000000..e2bf55e --- /dev/null +++ b/skills/impl-validator/SKILL.md @@ -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: + 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. 保留验证历史用于对比 diff --git a/skills/ingest-url/SKILL.md b/skills/ingest-url/SKILL.md new file mode 100644 index 0000000..5b79d0d --- /dev/null +++ b/skills/ingest-url/SKILL.md @@ -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: + source_title: + author: + created: + tags: [tag1, tag2] +--- + +# <文章标题> + +**来源**: [原始链接]() +**作者**: +**日期**: +**标签**: \`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. 避免抓取受限内容 diff --git a/skills/wiki-agent/SKILL.md b/skills/wiki-agent/SKILL.md new file mode 100644 index 0000000..8292152 --- /dev/null +++ b/skills/wiki-agent/SKILL.md @@ -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. 避免重复录入相同内容 diff --git a/skills/wiki-capture/SKILL.md b/skills/wiki-capture/SKILL.md new file mode 100644 index 0000000..812f70e --- /dev/null +++ b/skills/wiki-capture/SKILL.md @@ -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: + date: + tags: [tag1, tag2] +--- + +# <对话主题> + +**日期**: YYYY-MM-DD +**上下文**: <项目/任务> + +## 问题 +<用户的问题> + +## 解决方案 + + +## 关键见解 +- 要点 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. 避免保存无关的调试信息 diff --git a/skills/wiki-export/SKILL.md b/skills/wiki-export/SKILL.md new file mode 100644 index 0000000..b84f9bc --- /dev/null +++ b/skills/wiki-export/SKILL.md @@ -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 + + + + + 示例 + practices + + + + +``` + +### 格式 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. 敏感信息需注意保护 diff --git a/skills/wiki-ingest/SKILL.md b/skills/wiki-ingest/SKILL.md new file mode 100644 index 0000000..6db7908 --- /dev/null +++ b/skills/wiki-ingest/SKILL.md @@ -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: + created: + 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. 避免重复创建相同内容 diff --git a/skills/wiki-rebuild/SKILL.md b/skills/wiki-rebuild/SKILL.md new file mode 100644 index 0000000..2f7481b --- /dev/null +++ b/skills/wiki-rebuild/SKILL.md @@ -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 重建可能需要数分钟 diff --git a/skills/wiki-research/SKILL.md b/skills/wiki-research/SKILL.md new file mode 100644 index 0000000..c342dde --- /dev/null +++ b/skills/wiki-research/SKILL.md @@ -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. 及时更新过期研究 diff --git a/skills/wiki-setup/SKILL.md b/skills/wiki-setup/SKILL.md new file mode 100644 index 0000000..d0b7ade --- /dev/null +++ b/skills/wiki-setup/SKILL.md @@ -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. 确保有足够的磁盘空间