README 截图
将一个运行中的项目转变为一个有文档、可视化项目:运行应用程序,捕获其界面的真实截图,并围绕它们撰写一个生动、清晰的 README.md。结果应看起来像一个受欢迎的开源项目的着陆页。
无论平台如何,以下原则不可妥协:
- 截图必须是运行中应用程序的真实捕获。绝不绘制、模拟或伪造图像。
- 截图存放在仓库中(
docs/screenshots/),并且 README 使用相对路径引用它们,以便在 GitHub 上正确渲染。 - 不做任何破坏性操作:绝不修改项目源代码来生成截图——如果需要,可在运行时注入演示状态,然后说明这一点。
工作流程
第一阶段 — 检测平台
在项目根目录中查找以下信号,然后从 references/ 加载一个运行手册:
| 信号 | → 运行手册 |
|---|---|
package.json 包含 dev/start 脚本,或 index.html,或 src/public 文件夹中的纯 Web 前端 | references/web.md |
manifest.json(WebExtension/MV3/V2) | references/web.md(扩展部分) |
Android:build.gradle(.kts)、AndroidManifest.xml、settings.gradle、Kotlin/Java 应用源码 | references/android.md |
iOS:*.xcodeproj、*.xcworkspace、Info.plist、Swift 应用代码 | references/ios.md |
Flutter:pubspec.yaml 包含 flutter: 和 lib/main.dart | references/flutter.md |
| 多平台(例如 Flutter + 原生,或 monorepo) | 首先为主 UI 平台编写文档;在 README 中说明其他平台 |
如果平台确实不明确,可以向用户询问一次,同时提供你对仓库的最佳解析结果。如果项目没有用户可见的界面(纯库/CLI),不要伪造 UI 截图——退而求其次,使用终端演示、精细图表或生成的横幅,并且仍然制作一个出色的 README。
第二阶段 — 根据运行手册运行应用
每个运行手册告诉你:
- 此机器上必须已经存在什么(工具链检查,可重复的一行命令)。
- 如何启动应用使其 UI 渲染。
- 如何实际捕获像素(
scripts/中的捆绑脚本或原生捕获命令)。 - 当某些内容为空时如何恢复(“等待渲染”优于“盲目重试”)。
第三阶段 — 捕获
适用于所有平台的约定:
- 保存到
<仓库>/docs/screenshots/,使用描述时刻的短横线命名(hero-dashboard.png、settings-screen.png),绝不使用工具名(screenshot-2026-01-04-14-22.png)。 - 以自然形状捕获每个界面:对话框/弹出窗口以其原生大小,页面以 1280×800 或全页。在手机上,按原样捕获设备屏幕(其自身分辨率本身就是一个故事)。
- 当应用有暗色模式时,首选暗色模式作为英雄截图——暗色界面在 README 中更突出——但仅当应用有真正的暗色主题时;不要强制使用。
- 允许分阶段演示状态(空的计数器、“加载中…”占位符在营销截图中看起来很糟糕),但必须在运行时注入,而不是写入项目代码中,并且必须在摘要中向用户说明。
- 空白或闪烁的帧是时序问题,不是应用的错:等待加载完成,再等待一段时间让字体、图标和过渡效果完成,如果仍然失败,则等待更长时间重试一次。
第四阶段 — 编写 README
在仓库根目录编写(或重写)README.md。如果已存在丰富的 README 内容(git-readme.md、散文文件、文档),请提取所有事实——你是在升级呈现方式,绝不是删除信息。
目标结构(自由调整,保持易于扫描):
# <项目名称>
<p align="center"><img src="docs/screenshots/hero.png" width="…"></p>
> 一句带有个性的介绍。
徽章:许可证、语言、安装链接
## 为什么存在 ← 痛点,2–4 行,如果数据真实可用,使用粗体数字
## 功能 ← ✨ 紧凑的功能列表(功能旁边附带截图)
## 截图导览 ← 带有一行说明的图库
## 工作原理 ← 用通俗语言解释架构;表格优于散文
## 安装 ← 编号步骤,可复制粘贴
## 配置 ← 如果应用有设置,使用参数表
## 隐私 / 安全 ← 仅在有意义时
## 许可证
风格规则:
- 英雄截图放在折页上方,指定显式宽度(手机截图为
width="400",桌面截图约 728px 以下),以便在 GitHub 上良好布局。 - 每个部分一个想法;段落简短;仅用于辅助扫描时使用粗体。
- 兼容性矩阵和设置使用表格——它们优于散文。
- 标题中可以使用简洁、有品位的 emoji(⏱ 🎨 🚀);不要每行都撒。
- 始终使用相对图像路径和替代文本。
- 绝不要在 README 中叙述截图过程;让它看起来像是项目自己写的一样。
第五阶段 — 验证
- README 中的每个图像路径都解析为现有文件。
- 没有截图超过 ~1.5 MB;如果超出,请压缩(PNG 转换为 WebP 或缩小尺寸)。
- 告知用户:README 的位置、存在的截图、哪些截图包含演示注入的值,并提供替换英雄截图、主题或顺序的选项。
工具链政策(缺失依赖处理)
本技能使用机器上已有的工具链,绝不静默安装平台 SDK(Android SDK、Xcode、Android 模拟器——用户必须同意的数 GB 下载内容)。如果运行手册的工具链检查失败,则干净地停止,并精确给出以下形式的信息:
[平台] 截图需要 [工具],但该工具未安装。要启用它,请执行:
<确切的安装命令或步骤>。安装后,说“重试”,我会继续——已完成的工作(检测、README 骨架)已保存。
iOS 是特殊情况:如果主机不是 macOS,则用一句话说明并跳过——在 Windows/Linux 上无法通过重试启用它。向用户提供他们自己提供的截图选项。
