Skip to main content

show-dont-tell

信息可视化呈现行为准则。当模型回复中包含对比、步骤、配置、架构等结构化信息时自动激活,确保优先使用表格、代码块、列表、树形结构等可视化格式,而不是纯文字堆砌。触发词:「用表格」「画个图」「列个表」「结构化一下」「别光用文字」「可视化」「对比一下」。即使没有触发词,只要回复中包含适合可视化的结构化信息,本 skill 的规则就应生效。也适用于:「太多字了看不下去」「能不能更直观一点」「整理成表格」等场景。

Zur Installation springen

Quellinformationen

Repository
nangongwentian-fe/jay-skills
Letzte Quellaktivität
19. August 2026 um 16:37
Erkannte Sprache von SKILL.md
Chinesisch
Sterne
12
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
5 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
show-dont-tell
description
信息可视化呈现行为准则。当模型回复中包含对比、步骤、配置、架构等结构化信息时自动激活,确保优先使用表格、代码块、列表、树形结构等可视化格式,而不是纯文字堆砌。触发词:「用表格」「画个图」「列个表」「结构化一下」「别光用文字」「可视化」「对比一下」。即使没有触发词,只要回复中包含适合可视化的结构化信息,本 skill 的规则就应生效。也适用于:「太多字了看不下去」「能不能更直观一点」「整理成表格」等场景。
# Show, Don't Tell:信息可视化呈现准则 用结构说话,不要用段落堆砌。能用表格的不写段落,能用代码块的不描述代码。 ## 核心原则 ### 1. 结构化信息必须可视化 当回复中包含对比、列举、步骤、配置、参数等结构化信息时,必须用对应的可视化格式。纯文字描述结构化信息是信息表达的降级。 ### 2. 选对格式,不要滥用 不是所有内容都适合可视化。纯解释性文字、因果推理、观点论证——这些用自然段落更好。可视化是为了帮助扫描和对比,不是为了好看。 ### 3. 先给结构,再补说明 如果一段回复既有结构化数据又有解释文字,先给表格/列表/代码块,再在下面用 1-2 句话补充必要说明。不要把解释嵌在表格前面当铺垫。 --- ## 六种场景对照表 | 信号 | 说明 | 应该用的格式 | |------|------|-------------| | 对比 A 和 B | 两个以上选项的优劣、差异、区别 | **表格**,列是选项,行是维度 | | 多个属性/字段 | 参数列表、API 字段、配置项、特征 | **表格**,每行一个属性 | | 有先后的步骤 | 操作流程、排查思路、安装步骤 | **编号列表**,每步一行,关键命令用代码块 | | 层级/分类 | 目录结构、分类体系 | **树形结构**或缩进列表 | | 流程/架构/关系 | 系统架构、数据流、状态机、调用链、模块关系 | **Mermaid 代码块**(flowchart / graph / sequence / classDiagram 等) | | 代码相关 | 用法示例、配置文件、CLI 命令、SQL | **代码块**,标注语言 | | 正反对比 | 好的写法 vs 坏的写法、推荐 vs 不推荐 | **❌/✅ 并排对比**或两个代码块 | --- ## 对比示范 ### 示范 1:对比场景 — 文字堆砌 vs 表格 **用户问:** "Redis 和 Memcached 有什么区别?" ❌ 纯文字: > Redis 支持多种数据结构,包括字符串、列表、哈希、集合和有序集合,而 Memcached 只支持简单的键值对。Redis 支持数据持久化,可以把数据存到磁盘,Memcached 不支持持久化,重启后数据丢失。Redis 是单线程模型,Memcached 是多线程模型。Redis 支持发布订阅、Lua 脚本、事务等高级功能,Memcached 功能比较简单。内存管理方面,Redis 使用自己的内存分配器,Memcached 使用 slab 分配。 ✅ 表格: | 维度 | Redis | Memcached | |------|-------|-----------| | 数据结构 | string / list / hash / set / zset | 仅 key-value | | 持久化 | 支持(RDB / AOF) | 不支持 | | 线程模型 | 单线程(6.0 起 IO 多线程) | 多线程 | | 高级功能 | pub/sub、Lua、事务 | 无 | | 内存管理 | 自有分配器 | slab 分配 | 一眼就能对比,不用逐句读。 ### 示范 2:步骤场景 — 混在段落里 vs 编号列表 **用户问:** "怎么在 Ubuntu 上安装 Nginx?" ❌ 纯文字: > 首先你需要更新系统的包列表,可以用 apt update 命令。然后安装 Nginx,用 apt install nginx 就可以了。安装完成后启动 Nginx 服务,用 systemctl start nginx。你还可以设置开机自启,用 systemctl enable nginx。最后验证一下是否成功,在浏览器访问服务器 IP 即可。 ✅ 编号列表 + 代码块: 1. 更新包列表 ```bash sudo apt update ``` 2. 安装 Nginx ```bash sudo apt install nginx ``` 3. 启动并设置开机自启 ```bash sudo systemctl start nginx sudo systemctl enable nginx ``` 4. 验证:浏览器访问 `http://<服务器IP>`,看到 Nginx 欢迎页即成功 ### 示范 3:架构场景 — 段落描述 vs 树形结构 **用户问:** "这个项目的目录结构是怎样的?" ❌ 纯文字: > src 目录下有 components、pages、utils 和 styles 四个子目录。components 里放公共组件,pages 里放页面组件,utils 里放工具函数,styles 里放全局样式。项目根目录下还有 public 目录放静态资源,以及配置文件。 ✅ 树形结构: ``` project/ ├── src/ │ ├── components/ # 公共组件 │ ├── pages/ # 页面组件 │ ├── utils/ # 工具函数 │ └── styles/ # 全局样式 ├── public/ # 静态资源 ├── package.json └── tsconfig.json ``` ### 示范 4:流程/架构场景 — 纯文本伪图 vs Mermaid **用户问:** "请求从用户发出到返回响应经过哪些环节?" ❌ 纯文本缩进伪图: ```text 用户输入 → 入口层 (CLI / Telegram / Slack) → AIAgent → 组装提示词 → 发起模型调用 → 如果返回工具调用 → 执行工具 → 继续下一轮 → 产出最终回复 → 写入数据库 → 返回用户 ``` ✅ Mermaid 流程图(可被终端/编辑器渲染): ```mermaid flowchart TD A[用户输入] --> B[入口层<br/>CLI / Telegram / Slack] B --> C[AIAgent] C --> D[组装提示词] D --> E[发起模型调用] E --> F{返回工具调用?} F -- 是 --> G[执行工具] G --> E F -- 否 --> H[产出最终回复] H --> I[写入数据库] I --> J[返回用户] ``` **区别**:Mermaid 会被 Codex 终端渲染为可视化图表,纯文本缩进只是假装像个图。流程、架构、状态机、调用链、数据流这类场景,优先用 Mermaid。 ### 示范 5:正反对比 — 连续段落 vs 并排对比 **用户问:** "async/await 和 .then 链哪个好?" ❌ 纯文字: > async/await 写起来更像同步代码,可读性好。.then 链在多层嵌套时容易变成回调地狱。错误处理方面 async/await 用 try/catch,.then 用 .catch。 ✅ 并排代码块: ```js // ❌ .then 链 — 嵌套深、难读 fetch('/api/user') .then(res => res.json()) .then(user => fetch(`/api/posts/${user.id}`)) .then(res => res.json()) .then(posts => console.log(posts)) .catch(err => console.error(err)); ``` ```js // ✅ async/await — 扁平、易读 try { const res = await fetch('/api/user'); const user = await res.json(); const postsRes = await fetch(`/api/posts/${user.id}`); const posts = await postsRes.json(); console.log(posts); } catch (err) { console.error(err); } ``` --- ## 输出前自检 生成回复时,逐条检查: 1. **对比检测**:回复里有没有在对比两个以上的东西?有 → 用表格。 2. **列举检测**:回复里有没有列举多个属性/参数/特征?有 → 用表格或列表。 3. **步骤检测**:回复里有没有描述分步骤的操作?有 → 用编号列表 + 代码块。 4. **代码检测**:回复里有没有提到具体的命令/代码/配置?有 → 用代码块,不要内联描述。 5. **结构检测**:回复里有没有描述层级/目录?有 → 用树形结构。 6. **流程/架构检测**:回复里有没有描述流程、架构、调用链、状态流转?有 → 用 Mermaid 代码块,不要用纯文本箭头缩进。 --- ## 边界说明 以下情况不需要强制可视化: - **纯观点/解释**:比如"为什么 React 比 jQuery 好"这种论述性回答,自然段落更好 - **很短的回答**:一两句话能说清的事不需要表格 - **用户明确要求格式**:比如"用纯文字回答" - **对话/闲聊场景**:非技术性的日常对话
Auf GitHub ansehen