mcpField
P
prove-it

prove-it

github.com/nagi-studioテスト・品質346103 回インストール3 日前に更新
リポジトリ

prove-it について

prove-it は、テストとスクリーンショットで変更を検証し、修正したミスの再発防止策も求めるコーディングエージェント向けの開発引き継ぎスキルです。ユーザーの操作に基づくテスト基準と報告形式も定めています。

主な機能

  1. 01プロジェクトのテストと画面変更の検証
  2. 02Playwright による画面操作とスクリーンショット
  3. 03ミスの再発を防ぐ仕組みの追加
  4. 04ユーザー動作に基づくテストの評価
  5. 05定型フォーマットでの結果報告

活用シーン

  1. 01コード変更の引き継ぎ前の検証
  2. 02Web 変更のブラウザー確認
  3. 03修正済みの開発ミスの再発防止

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/nagi-studio/skills --skill prove-it

インストール後、Claude Code で/prove-itを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yaml

詳細

プロジェクトの README より

「做好了」不算数,跑过的测试结果和截图才算。

交差之前

  1. 跑项目的测试命令。现有测试确实测不到这次改动的行为,才补一个,写法见下面「写测试」。修 bug 不用每次都配一个回归测试。
  2. 改动用户看得见(网页、界面):写一个 Playwright 浏览器测试,在真浏览器里把改过的流程点一遍,控制台一报错就算失败,每一步截一张图存进项目。没装浏览器:npx playwright install chromium,或者直接用本机 Chrome(channel: 'chrome')。你自己带浏览器工具的话,也可以直接用。
  3. 有一项没通过,先修好,修完再交差。
  4. 交差按这个格式写:
做了什么:一句话
测试:<命令> → 通过 N,失败 0
截图:<路径>
没验证到的:哪些、为什么;没有就写「无」

被纠正之后

先把这次的错修好。再想一想:下一个 agent 只看它打开的那个文件、照着最近的例子抄、走最短的路,它会不会再犯一遍?会的话,就把这个错拦在它犯之前。

顺手翻一下最近的提交和 AGENTS.md:同类的错以前犯过的,一起拦掉。

拦法从强到弱,前面的用得上就不往后选:

  • 让它没地方犯:一件事只留一个地方负责、一种做法;删掉 agent 会照抄的旧写法;要手动同步的几份清单合成一份。
  • 让它一犯就报错:类型、lint、测试、校验脚本都行。报错信息直接写该改用什么。
  • 让人一眼看见:好不好看、顺不顺手,机器判断不了,就交差时附截图,交给人看。
  • 写进 AGENTS.md:只留给需要判断的事。agent 跳过这种规则,什么都不会报错。

加了一道检查,就拿这次真实犯过的错去试:把错放回去,检查必须报错;改回来,必须通过。从来没报过错的检查,等于没加。

最后在 AGENTS.md 的规则表里记一行:

| 规则 | 由什么拦住 |
|---|---|
| 交差前跑通测试,附截图 | `npm test` + 浏览器截图 |

这条规则表里本来就有、却没有东西拦住,说明是重犯,这次就往强的那一端提一档。错已经不可能再犯了,就把那一行删掉。

写测试

测试只守用户感受得到的行为:存进去的能读出来,点了按钮页面会变。下面三种是垃圾测试,改掉,改不了就删:

  • 假装测试:要守的那部分被测试替身(mock)顶掉了。比如测数据能不能存,连的却是假数据库,真数据库断了它照样通过。
  • 自己考自己(tautological):标准答案是照着代码现在的输出抄的,代码错了,答案也跟着错。
  • 死抠细节(implementation-coupled):查的是变量名、某个内部函数调了几次。功能没变,只是换个写法就失败了。

判断办法:把它要守的功能故意弄坏,这个测试应该失败;只给内部变量改个名,它应该照样通过。做不到的,就是垃圾测试。

コメント