Communitygithub.com

AlemTuzlak/skills

用于当用户运行 /prove-it 或说 prove it、prove the changes、在浏览器中展示我,或要求证明 UI 或 API 变更时。不要在智能体即将说完成时、仅用于类型变更或文档无行为变更时使用。

skills 是什么?

Prove It 是一个 AI 助手技能,旨在迫使智能体在实际环境中证明代码变更,而不是仅靠断言或截图声称工作正常。该技能只在用户明确要求时加载(例如 /prove-it 或“在浏览器中展示我”),不会自动加载。它支持 Cursor、Claude Code、Codex 等平台,并提供了详细的决策树:对于 UI 变更,它启动现有命令并在浏览器中点击、输入、提交、导航;对于服务器/API 变更,它询问用户如何证明(现有 playground、示例应用、curl 脚本或跳过);对于两者兼有则依次执行。技能严格禁止在没有实际证明的情况下说“完成”或“工作”,需要关闭任何启动的服务器,并且只有在用户确认后才生成可选的截图报告到 .agent/scratch/prove-it.md。其关键价值在于确保真实用户路径被验证,避免因测试通过、单一截图或跳过步骤而误以为有效。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/AlemTuzlak/skills/tree/HEAD/skills/prove-it

在你喜欢的 AI 中提问

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

文档

证明变更

像用户使用一样证明变更。在没有得到证明之前,不要声称变更有效。

此技能不会在“完成”时自动加载。用户必须主动要求。它不会加载其他技能。

何时使用

在以下情况下加载:

  • 用户运行 /prove-it
  • 用户说“证明一下”、“证明变更”、“在浏览器中展示我”或表达相同的意思(包括在第一条消息中)

如果用户没有要求,则跳过。跳过仅类型变更、注释、锁文件、无实际行为的文档。

硬性门控

  1. 用户已要求。 如果用户没有要求证明,此技能不运行。
  2. 不要说它有效、完成或已修复,除非此技能实际证明了它。跳过意味着未证明。
  3. 一张屏幕截图不能作为证明。 需要点击、输入、提交、导航。
  4. 不要添加新包、依赖项、示例应用或浏览器运行器,除非用户选择了该选项并且同意了。
  5. 在此技能结束前停止其启动的任何服务器。 不要让 dev / preview 保持运行。

UI 与服务器

  • UI(页面、组件、路由、表单、可见状态):在浏览器中证明。
  • 服务器 / API / 无屏幕的库: 询问如何证明。不要擅自选择。
  • 两者兼有: 浏览器 UI,并询问如何证明服务器部分。

程序

程序 1:分类

  1. 列出表面:UI、服务器/API 或两者。
  2. UI → 程序 2。
  3. 服务器/API → 程序 3。
  4. 两者 → 程序 2,然后程序 3 处理 API。

程序 2:浏览器(UI)

  1. 如果应用未运行,仅启动一个现有的命令(dev、preview、仓库记录的启动命令)。如果没有,说明 UI 无法证明。提供跳过,或让用户启动应用。
  2. 像用户一样使用:
    • 点击、输入、提交、导航
    • 此状态共享的所有路由/页面
    • 如果变更涉及空状态和错误 UI,也需要验证
    • 如果布局或 CSS 发生变更,需要在桌面端和窄视口下验证
  3. 寻找破坏性情况,而不仅仅是快乐路径。
  4. 在聊天中,说明做了什么和看到了什么。不要在没有步骤的情况下说“看起来不错”。
  5. 如果此技能启动了第 1 步中的进程,则停止它。
  6. 程序 4。

程序 3:询问(服务器 / API)

  1. 停止。展示 2–3 个选项。把最合理的第一选择放在第一位。始终包含跳过。
    • 现有的示例 / 游乐场 / 演示
    • 使用新 API 的示例应用(仅当用户确认位置以及任何新包/依赖项后)
    • curl 或一个针对运行中服务器的简单脚本
    • 跳过
  2. 等待。在用户选择之前不要构建或运行。
  3. 如果跳过: 说未证明。不要声称有效。停止(不执行程序 4)。
  4. 如果现有游乐场: 运行它,然后在浏览器中证明(如果有 UI),或显示命令输出(如果是脚本)。
  5. 如果示例应用: 询问位置。优先使用现有示例。除非用户说可以,否则不要添加包或依赖项。然后运行它并证明。
  6. 如果 curl/脚本: 运行它。引用退出代码和输出的那部分以证明声明。
  7. 程序 4。

程序 4:可选报告

  1. 在实际证明后,询问:是否写入截图报告?默认不。
  2. 如果不:停止。聊天中已经有证据。
  3. 如果是:写入 .agent/scratch/prove-it.md(覆盖)。如果 .agent/scratch/ 不在 .gitignore 中,添加(与其他临时文件相同)。包括点击了什么和截图。打开文件。不要提交它。
  4. 跳过证明 → 无报告。

程序 5:停止

在证明或跳过之后,停止。不要从此技能开始无关的工作。

决策树

  • 用户没有要求证明 → 此技能不适用。
  • UI → 程序 2 → 4 → 5。
  • 服务器/API → 程序 3 → 4 → 5(跳过在 3 结束)。
  • 两者 → 2 然后是 3,然后 4 → 5。
  • 没有启动命令且应用未运行 → 说明无法证明 UI。跳过或让用户启动它。
  • 用户说跳过 → 未证明。不声称成功。

红色警告

信号含义正确做法
说完成是因为测试通过了此技能未被要求,或证明被跳过只有在程序 2 或 3 之后才声称已证明。
一张截图,无点击不是用户路径程序 2 步骤 2。
在用户选择前构建 examples/foo未经请求的应用程序 3。等待。
添加 Playwright / 新服务器新依赖项仅使用现有的启动命令。
让 pnpm dev 保持运行监视器保持运行硬性门控 5。
“跳过,但它有效”跳过变成了声明说未证明。
报告文件在 docs/ 中产品文档.agent/scratch/prove-it.md。
当用户说不要时打开报告未经请求的文件程序 4 默认不。
仅为新公共 API 证明页面服务器部分被擅自跳过程序 3 处理 API。

错误处理

  • 没有浏览器工具: 说明此处无法证明 UI。提供跳过,或让用户在你等待 URL 时点击。不要伪造截图。
  • 启动命令失败: 引用错误。不要说 UI 有效。提供跳过或修复,然后再次证明。
  • 证明失败(点击没有做正确的事,curl 不是 200):说未证明。指出哪里失败。不要声称完成。
  • 用户选择示例应用但拒绝新包: 使用 curl、现有示例或跳过。不要无论如何添加包。
  • 临时文件写入失败: 在聊天中保留证明。说明报告文件未写入。

无需查看其他内容。聊天的默认证据。Markdown 文件是可选的。

Individual skills in this repo

This repo contains 14 individual skills — each has its own dedicated page.

AlemTuzlak/skills

Use when the user wants to write a blog post about a feature, product change, PR, git diff, or any technical topic - accepts marketing briefs, PRs, git refs, codebase paths, or freeform descriptions as input

AlemTuzlak/skills

Use when the user wants to generate a changelog, release notes, or document what changed between versions, tags, or PRs

AlemTuzlak/skills

Use when writing, editing, or organizing documentation, when planning what docs a feature needs, and whenever planning or implementing a new feature or change in a repo (docs ship with the code). Also use when tempted to write docs without showing the discovered readers to the user, without asking for tone, or without loading simple-english and i-have-adhd. Triggers on "write docs for X", "document this feature", "add a guide", "update the docs", "reorganize the docs", "plan feature X", "implement X", or /docs.

AlemTuzlak/skills

Use when a bug is in play: a test fails, CI is red, an API returns the wrong result, a stack trace appears, or the user says it is broken or fix this. Don't use for a new feature with no failure, for types-only work, or for docs.

AlemTuzlak/skills

Use when the user invokes /i-have-adhd, says they have ADHD, or asks for ADHD-friendly output. Also used as a required writing filter by the docs skill. Don't use for marketing copy or after the user says "stop adhd mode" or "normal mode".

AlemTuzlak/skills

Use when a settled change must be turned into an ordered stack of small blocks before anyone implements. Don't use for unsettled intent, typos, comments, formatting, docs-only work, or writing the implementation itself.

AlemTuzlak/skills

Use when the user wants to write a product update email, feature announcement newsletter, or digest email for users or subscribers

AlemTuzlak/skills

Use when the user wants to turn a raw talking-head / screen-share recording into a finished, edited, annotated video plus a full content package. Removes silences, flags mistakes for the user to cut, transcribes, adds transcript-synced overlays (code, on-screen code highlights, word highlights, lists, comparisons, diagrams, section labels, punch-in zooms), renders with original audio, then generates blog/socials/YouTube content. Triggers on "produce a video", "edit my video", "annotate my recording", "/produce-video".

AlemTuzlak/skills

Use when the user wants to write, draft, or author an RFC (Request for Comments) / technical design doc for a feature, change, or architectural decision. Interactively interviews the user, grounds the proposal in the actual codebase, presents 2-3 concrete API/code-snippet approaches to choose from, then writes a review-ready RFC. Triggers on "write an RFC", "draft an RFC", "RFC for X", "design doc for X", or /rfc.

AlemTuzlak/skills

Use when the user wants to deeply learn a new topic from scratch. Runs a pre-interview (current knowledge, end-goal proficiency, depth, practice load, background, scope), researches online (articles, niche-influencer blogs, canonical docs, subtopic landscape), then produces a structured markdown course with mandatory visual diagrams, evidence-based learning-science features (retrieval practice, spaced callbacks, worked-example fading, concept ledger, jargon gate, analogy hygiene), and a self-contained interactive HTML mini-course. Triggers on /teach-me, "teach me about X", "I want to learn X", "deep dive on X", "create a course on X", "study X with me".

AlemTuzlak/skills

Use when the change intent is already settled and the agent must map what a behavior change touches before an implementation plan or any code. Use for new features, bug fixes, and refactors that move a boundary. Don't use for typos, comments, formatting, lockfile-only diffs, docs with no code, or while the user is still deciding what they want.

AlemTuzlak/skills

Use when the user wants to transcribe a video or audio file to text with word-level timestamps — spins up a self-contained local Whisper (whisper.cpp) Docker service bundled in this skill and returns transcript.txt, transcript.srt, and word-level transcript.words.json. Also used as a building block by /produce-video. Triggers on "transcribe this video", "get a transcript", "transcribe-video".

AlemTuzlak/skills

Use when the user wants to write a video script for a product demo, feature walkthrough, launch video, or social media video about a feature or product change

AlemTuzlak/skills

Use when the user wants YouTube metadata for a video — a click-worthy title, an SEO/above-the-fold description, tags, and timestamped chapters. Accepts a transcript (ideally timestamped SRT), a topic, a PR, or a freeform description. Used standalone and by /produce-video. Triggers on "youtube title", "youtube description", "youtube chapters", "youtube tags", "youtube metadata", "youtube-copy".

相关技能