Communitygithub.com

clanker25/图表

在文字必须承载结构时使用最小的可视化——控制流、调用深度、模块归属或变更形态:伪代码、调用树、组件/文件树、Mermaid 图表或差异对比。当文字本身足以回答问题时就跳过它。

图表 是什么?

该技能提供了一套轻量级、零侵入的可视化工具集,专门用于在 AI 助手(如 Claude Code、Cursor、Codex)的对话中清晰呈现代码结构、系统架构和变更影响。它定义了六种最小化视图:伪代码用于剥离语言噪声的逻辑分支、调用树展示运行时控制流深度、组件树标注 UI 或模块的边界、文件树呈现职责分布、Mermaid 图表表达多方交互或状态迁移、差异对比精确定位已有结构中的变化形状。当文字描述迫使阅读者在脑中重构完整形状时,这套工具允许直接插入文本块或 Mermaid 渲染图(最多一个文件制品),从而降低认知负荷。其核心哲学是“承载结构而非装饰”——每个可视化都紧贴支撑它的两三个句子,并严格保留仅与当前问题相关的节点,多余的节点被视为读者的解码税。如果答案本身只需一句话,那么直接写出那句话。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/clanker25/oh-my-claudecode/tree/HEAD/skills/diagram

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

图表是承载结构的,而非装饰。 只有当文字迫使阅读者一次性在脑中记住整个形状时才使用图表——然后选择最小的视图,让阅读者直接看到这个形状,而不是从句子中重构它。这里所有的内容都以文本块或 Mermaid 的形式在对话中呈现;最多只写一个制品文件。

词汇表

选择一个视图;最多两个。更多就是噪声。

伪代码 —— 不含语言噪声的逻辑。将决策简化为其分支形状:

on(request)
  if state file locked by another writer
    queue and return pending
  acquire lock
  write
  release

调用树 —— 运行时控制流。深度显示谁拥有流程;在有趣的边缘处添加注释:

acquireStateFileLockSync()
  resolveLockPath()
  openExclusive()
  writePid()

组件树 —— UI 或模块结构,并内联标注重要的边界:

<SettingsPage> (src/routes/settings)
  <SessionList> (owns its fetches)
  <DangerZone>
    <ConfirmButton> (disabled until typed confirmation)

文件树 —— 职责的分布位置;保持浅层,每个目录一条注释:

src/
├── hooks/        # hook 注册表 + 类型
├── tools/        # MCP 工具处理器
└── workflow/     # 注册表 + 投影

Mermaid —— 参与方之间的交互、数据流或状态迁移:

sequenceDiagram
    participant CLI
    participant Hook
    participant State
    CLI->>Hook: PreToolUse
    Hook->>State: read mode
    Hook-->>CLI: allow / deny + facts

差异对比 —— 当周围结构已经存在时,变化的形状。将差异与主题匹配:

一个组件变更:

 <SettingsPage>
   <SessionList />
   <DangerZone>
+    <ConfirmButton />
   </DangerZone>

一个文件布局变更:

 src/tools/
-└── state-tools.ts
+└── state-tools/
+   ├── handlers.ts
+   └── schema.ts

一个控制流变更:

 commit()
   stage()
     hashBlobs()
+  writeObject()
   updateRef()
+    acquireStateFileLock()

一个状态机变更:

 on(request)
-  write immediately
+  if locked
+    queue and return pending
+  acquire lock
+  write
+  release

完整代码块 —— 当省略会隐藏谁拥有什么或事物运行的顺序时,直接展示完整的单元一次,并可复制:

export function isRegistryEnabled(): boolean {
  const flag = process.env.OMC_WORKFLOW_REGISTRY;
  return flag !== '0' && flag !== 'false';
}

当文字用尽时

UI 布局、前后对比、或者对 Mermaid 来说太密集的概念:写一个聚焦的 HTML 文件——一个图表、一张信息图或几页幻灯片——按照产品自身的颜色、字体和组件进行样式设计,填充真实的标签和数据,在桌面和移动端均可工作。使用平台打开器(Windows 用 start,macOS 用 open,Linux 用 xdg-open)打开它,然后停止:一个制品,而不是一个画廊。

纪律

  • 将每个可视化直接放置在它所支持的两三个句子旁边。
  • 只携带回答当前问题所需的调用、文件、属性、状态和边界——每一个额外的节点都是对读者的解码税。
  • 如果真实的答案只需一句话就能表达,那就写出这句话。

相关技能