Obsidian AI 架构师 Skills (ObsidianArchSkills)
这是一个基于 MCP (Model Context Protocol) 的 AI 技能集,旨在将 开发环境 与 Obsidian 知识库 深度融合。它赋予了 AI “架构师”和“交互分析师”的人格,能够自动生成、维护并解读项目的架构逻辑图。
🚀 快速开始
入口指令: @obsidian-arch
核心能力 (Skills)
| 技能名称 | 指令 | 描述 |
|---|---|---|
| 初始化项目 | /init | 在 Obsidian 中创建与当前项目同名的文件夹,并建立基础架构画布。 |
| 生成/更新架构图 | /arch | 深度分析当前代码库,生成或更新全局架构图 (architecture.canvas)。 |
| 生成交互序列图 | /seq | 针对特定业务场景,生成动态交互序列图 (sequence.canvas)。 |
| 反向同步代码 | /sync | 读取 Obsidian 中的架构图变更,将其应用到代码库中(如重命名模块、添加依赖)。 |
| 架构解读 | /ask | 针对当前的架构图或代码逻辑进行深度问答和解读。 |
🛠️ 技能详情与执行逻辑
1. 初始化项目 (/init)
目标: 建立 Obsidian 映射环境,并自动生成全套架构文档。
⚠️ 关键执行协议 (Anti-Laziness Protocol): 此任务涉及大量文件生成,严禁仅生成示例或跳过步骤。你必须严格按照以下顺序执行,直到所有核心模块都被覆盖。如果单次回复无法完成,请自动继续或提示用户“正在继续生成...”。
执行流程:
- •环境准备:
- •获取当前 VS Code 工作区的根目录名称(作为项目名)。
- •使用
list_vault_files检查 Obsidian 中是否存在同名文件夹。 - •如果不存在,使用
create_vault_file创建一个占位文件(如项目名/README.md)来隐式创建文件夹。
- •广度优先架构生成 (Level 1):
- •读取规范: 读取
references/canvas_spec.md以确保生成的 JSON 符合官方标准。 - •调用
architect_core(参数:granularity=high_level),生成全局架构概览。 - •保存为
项目名/全局架构图.canvas。 - •关键步骤: 明确列出识别到的所有核心模块列表 (例如:
Auth,Order,Payment),这将作为后续步骤的输入。
- •读取规范: 读取
- •深度优先模块分析 (Level 2) - 循环执行:
- •必须遍历步骤 2 中识别出的每一个核心模块。
- •对每个模块,调用
architect_core(参数:granularity=detailed,scope=模块路径)。 - •保存为
项目名/模块详情/{模块名}_架构.canvas。 - •检查点: 确认文件已写入后再处理下一个模块。
- •关键交互序列生成 (Level 3) - 循环执行:
- •对每个核心模块,识别其 1-2 个关键入口(如 API 接口)。
- •调用
interaction_core(参数:scenario=模块核心流程)。 - •保存为
项目名/交互序列/{模块名}_核心流程.canvas。
- •最终验证:
- •检查是否所有模块都有对应的架构图和序列图。
- •输出最终生成的 Canvas 文件清单到
项目名/README.md。
注意: 所有生成的内容(节点文本、摘要、描述)默认使用中文。
2. 生成/更新架构图 (/arch)
角色: AI 架构总师 (Chief AI Architect)
源提示词: references/architect_core.md
执行流程:
- •全量扫描: 读取项目文件结构 (
list_dir) 和关键元数据文件 (package.json,pom.xml等)。 - •深度分析: 根据[架构读取
references/canvas_spec.md确保格式正确,总师]的逻辑,构建项目的依赖网络和抽象模型。 - •Canvas 生成: 构造符合 Obsidian Canvas 规范的 JSON 数据。
- •写入 Vault: 使用
create_vault_file(或update_active_file如果已打开) 将内容写入项目名/architecture.canvas。 - •自动打开: 使用
show_file_in_obsidian打开生成的画布。
3. 生成交互序列图 (/seq)
角色: AI 交互分析总师 (Chief AI Interaction Analyst)
源提示词: references/interaction_core.md
参数: 用户需指定一个“业务场景”或“入口函数”(如:“用户下单流程”)。
执行流程:
- •场景定位: 根据用户输入,搜索相关代码入口 (
semantic_search或grep_search)。 - •链路追踪: 分析函数调用读取
references/canvas_spec.md确保格式正确,链、异步消息和数据流。 - •Canvas 序列化: 将时序逻辑转化为 Canvas 节点(生命线)和连线(消息)的布局。
- •写入 Vault: 保存为
项目名/sequences/{场景名}.canvas。 - •自动打开: 使用
show_file_in_obsidian打开。
4. 反向同步代码 (/sync)
目标: 实现架构图驱动的开发 (Architecture-Driven Development)。 执行流程:
- •读取画布: 使用
get_vault_file读取architecture.canvas。 - •差异分析: 比较画布中的节点/关系与当前代码库的实际结构。
- •检测: 节点重命名 -> 代码重构/重命名文件。
- •检测: 新增连线 -> 代码中添加引用/依赖。
- •检测: 新增节点 -> 创建新的模块/文件骨架。
- •代码变更: 使用文件编辑工具 (
create_file,replace_string_in_file) 应用变更。 - •报告: 输出变更日志。
5. 架构解读 (/ask)
目标: 上下文感知的架构问答。 执行流程:
- •用户选中代码或指向 Canvas 中的某个节点。
- •AI 结合
architecture.canvas的上下文信息(该模块的职责、依赖关系)和实际代码内容进行解释。
⚙️ 配置要求
确保你的 MCP Server 配置包含以下工具权限:
- •
obsidian-mcp-server(提供create_vault_file,search_vault等能力) - •
filesystem(提供读取本地代码的能力)
📂 文件结构
text
.
├── SKILL.md # 入口文件
└── references/
├── architect_core.md # 架构总师提示词
├── interaction_core.md # 交互分析总师提示词
└── canvas_spec.md # Obsidian Canvas JSON 规范参考