Community图像github.com

pretty-good-software-org/show-me

通过简洁的图表、代码结构草图、API 接口差异对比和聚焦的 HTML 构件,帮助用户直观理解当前讨论的话题。

show-me 是什么?

该技能旨在通过视觉化手段帮助开发者更直观地理解复杂的技术概念和代码结构。它支持多种视觉呈现形式,包括伪代码逻辑、运行时调用树、UI 组件树、API 接口差异对比、文件责任概览以及 Mermaid 流程图、时序图、状态图等。技能能够自动根据当前讨论话题选择合适的视觉形状,并精准地展示关键信息,避免冗余。它兼容终端(命令行)和托管页面两种运行环境,在终端环境中会限制图表宽度,必要时降级为文本表示。用户可以通过“show me”、“visualize this”、“diagram this”等触发词激活该技能,特别适用于解释控制流程、比较不同状态、展示文件结构变更或创建聚焦的可视化构件。

兼容平台✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/pretty-good-software-org/show-me-skill/tree/HEAD/skills/show-me

Installed? Explore more 图像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

在你喜欢的 AI 中提问

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

文档

帮助用户直观理解当前对话的主题。跳过开场白,保持叙述简洁。选择能够清晰表达关键点的小视图。

当其他技能或工作流指定了视图形状时,直接使用该形状。跳过形状选择以及任何 HTML 构件选项;将输出限制在调用者请求的范围和格式内。

  • 以伪代码的形式展示逻辑或算法:
on(save)
  if content is unchanged
    return cached result
  write new content
  return fresh result
  • 以调用树的形式展示运行时控制流:
submitForm
  createSession
    persistPrompt
    launchAgent
  navigateToSession
  • 以组件树的形式展示 UI 结构,包括重要的状态和模块边界:
<SessionPage> (apps/example/src/routes/session.tsx)
  useSessionEvents()
  <SessionToolbar>
    <RunSkillButton> (packages/ui)
  • 以 API 接口差异对比的形式展示导出 API 或接口的变更,按文件分组。仅包含发生变更的导出符号或签名,并明确标出新增、移除和替换:
 internal/api/suggestion.go
-ApplySuggestion(client, prNumber, commentID)
+ApplySuggestion(client, target SuggestionTarget)
+
 internal/api/types.go
 type SuggestionTarget struct {
+  PullRequest int
+  CommentID   int
 }
  • 以浅层文件树的形式展示文件职责或大规模重构:
src/
├── commands/       # 解析用户操作
├── sessions/       # 管理会话状态
└── transport/      # 发送 API 请求
  • 使用 Mermaid 展示组件交互、控制流或数据流。当话题涉及分支工作流、状态转换、领域或数据关系、架构、依赖关系或部署拓扑时,请阅读 Mermaid 图表类型 并选择匹配的形状。仅限于使用流程图、时序图、状态图、类图和 ER 图:这些是终端渲染器可以绘制的种类。将图表宽度保持在 120 列以内,使用简短标签和少量节点;如果图表较宽,在终端中将替换为一条提示信息。在将围栏内 Mermaid 显示为原始文本的界面上,更倾向于使用调用树或伪代码形状,并说明图表已被降级。

    当时序交互顺序是关键时,使用时序图:

sequenceDiagram
    participant User
    participant UI
    participant Daemon
    User->>UI: choose command
    UI->>Daemon: send expanded prompt
    Daemon-->>UI: stream result
  • 当关键点在于变更内容且周围形状已存在时,使用 diff。根据话题匹配差异比较形状。

对于组件变更:

 <SessionPage>
   useSessionEvents()
   <SessionToolbar>
+    <RunSkillButton />
   <SessionTimeline>
+    <SkillResultCard />

对于文件布局变更:

 src/
 ├── commands/
+│   └── show-me.ts       # 扩展斜杠命令
 ├── sessions/
-└── transport.ts
+└── transport/
+    ├── client.ts
+    └── stream.ts

对于调用树或调用栈变更:

 submitForm
   createSession
     persistPrompt
+    expandSkillMention
     launchAgent
-  navigateToSession
+  navigateToSession
+    subscribeToEvents

对于状态或控制流变更:

 on(save)
-  write content
+  if content is unchanged
+    return cached result
+  write new content
+  invalidate cache
  • 当大部分代码为全新内容、省略上下文会隐藏所有权或顺序、或用户需要一个可复制的目标形状时,展示整个代码块:
function expandSkill(command: string): string {
  const skillName = command.slice(1)
  return `use the ${skillName} skill`
}
  • 对于 Mermaid 无法清晰呈现的可视化 UI、布局、状态对比或过于密集的概念,编写一个聚焦的 HTML 文件 —— 可以是图表、信息图或简短的幻灯片,选择最贴合要点的形式。匹配产品的颜色、字体、间距和组件;使用真实标签和数据;支持桌面和移动端。在本地终端上,使用平台默认方式打开;在托管界面上,发布它作为构件并提供链接:
Bash(open path/to/show-me-{description}.html)

指导

将每个视觉元素放在它所支持的短文本旁边。仅保留回答用户当前问题或解决当前讨论焦点所需的调用、文件、属性、状态和边界。

你可以使用其中一种,也可以使用多种,但不太可能全部使用。请自行判断,不要使用户感到信息过载。

相关技能