AgentSkillsCN

obsidian-arch

为 Obsidian 构建 AI 架构。生成、维护并解读项目架构图(Canvas)与交互序列图。适用于想要可视化代码架构、生成序列图,或将架构变更同步回代码时使用。触发条件:/init、/arch、/seq、/sync、/ask。

SKILL.md
--- frontmatter
name: obsidian-arch
description: >-
  Architect AI for Obsidian. Generates, maintains, and interprets project architecture diagrams (Canvas) and interaction sequence diagrams.
  Use when you want to visualize code architecture, generate sequence diagrams, or sync architecture changes back to code.
  Triggers: /init, /arch, /seq, /sync, /ask.

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): 此任务涉及大量文件生成,严禁仅生成示例或跳过步骤。你必须严格按照以下顺序执行,直到所有核心模块都被覆盖。如果单次回复无法完成,请自动继续或提示用户“正在继续生成...”。

执行流程:

  1. 环境准备:
    • 获取当前 VS Code 工作区的根目录名称(作为项目名)。
    • 使用 list_vault_files 检查 Obsidian 中是否存在同名文件夹。
    • 如果不存在,使用 create_vault_file 创建一个占位文件(如 项目名/README.md)来隐式创建文件夹。
  2. 广度优先架构生成 (Level 1):
    • 读取规范: 读取 references/canvas_spec.md 以确保生成的 JSON 符合官方标准。
    • 调用 architect_core (参数: granularity=high_level),生成全局架构概览。
    • 保存为 项目名/全局架构图.canvas
    • 关键步骤: 明确列出识别到的所有核心模块列表 (例如: Auth, Order, Payment),这将作为后续步骤的输入。
  3. 深度优先模块分析 (Level 2) - 循环执行:
    • 必须遍历步骤 2 中识别出的每一个核心模块。
    • 对每个模块,调用 architect_core (参数: granularity=detailed, scope=模块路径)。
    • 保存为 项目名/模块详情/{模块名}_架构.canvas
    • 检查点: 确认文件已写入后再处理下一个模块。
  4. 关键交互序列生成 (Level 3) - 循环执行:
    • 对每个核心模块,识别其 1-2 个关键入口(如 API 接口)。
    • 调用 interaction_core (参数: scenario=模块核心流程)。
    • 保存为 项目名/交互序列/{模块名}_核心流程.canvas
  5. 最终验证:
    • 检查是否所有模块都有对应的架构图和序列图。
    • 输出最终生成的 Canvas 文件清单到项目名/README.md

注意: 所有生成的内容(节点文本、摘要、描述)默认使用中文

2. 生成/更新架构图 (/arch)

角色: AI 架构总师 (Chief AI Architect) 源提示词: references/architect_core.md 执行流程:

  1. 全量扫描: 读取项目文件结构 (list_dir) 和关键元数据文件 (package.json, pom.xml 等)。
  2. 深度分析: 根据[架构读取 references/canvas_spec.md 确保格式正确,总师]的逻辑,构建项目的依赖网络和抽象模型。
  3. Canvas 生成: 构造符合 Obsidian Canvas 规范的 JSON 数据。
  4. 写入 Vault: 使用 create_vault_file (或 update_active_file 如果已打开) 将内容写入 项目名/architecture.canvas
  5. 自动打开: 使用 show_file_in_obsidian 打开生成的画布。

3. 生成交互序列图 (/seq)

角色: AI 交互分析总师 (Chief AI Interaction Analyst) 源提示词: references/interaction_core.md 参数: 用户需指定一个“业务场景”或“入口函数”(如:“用户下单流程”)。 执行流程:

  1. 场景定位: 根据用户输入,搜索相关代码入口 (semantic_searchgrep_search)。
  2. 链路追踪: 分析函数调用读取 references/canvas_spec.md 确保格式正确,链、异步消息和数据流。
  3. Canvas 序列化: 将时序逻辑转化为 Canvas 节点(生命线)和连线(消息)的布局。
  4. 写入 Vault: 保存为 项目名/sequences/{场景名}.canvas
  5. 自动打开: 使用 show_file_in_obsidian 打开。

4. 反向同步代码 (/sync)

目标: 实现架构图驱动的开发 (Architecture-Driven Development)。 执行流程:

  1. 读取画布: 使用 get_vault_file 读取 architecture.canvas
  2. 差异分析: 比较画布中的节点/关系与当前代码库的实际结构。
    • 检测: 节点重命名 -> 代码重构/重命名文件。
    • 检测: 新增连线 -> 代码中添加引用/依赖。
    • 检测: 新增节点 -> 创建新的模块/文件骨架。
  3. 代码变更: 使用文件编辑工具 (create_file, replace_string_in_file) 应用变更。
  4. 报告: 输出变更日志。

5. 架构解读 (/ask)

目标: 上下文感知的架构问答。 执行流程:

  1. 用户选中代码或指向 Canvas 中的某个节点。
  2. 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 规范参考