Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Replay real HTTP traffic against base and changed builds; flag behavior changes the intent omits.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
ANTHROPIC_API_KEY标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
作者没有在注册中心列出安装信息。请查看下方作者的 README。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日
注册名称已通过 GitHub 账户 est57 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:ANTHROPIC_API_KEY
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.4.0)于22天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Rust。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Recta
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Cheaper cross-chain stablecoin routes for AI agents; 5 % of the verified saving, nothing if none.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Bahasa Indonesia | English
Verifikasi perilaku API untuk setiap perubahan kode, berdasarkan traffic nyata.
Echoproof merekam request dan response asli dari service Anda, memutarnya ulang ke build hasil perubahan kode, lalu melaporkan apa yang berubah, di endpoint dan field mana, pada berapa persen request, dan apakah perubahan itu memang diniatkan. Hasilnya bisa dipakai sebagai gate di CI atau langsung oleh coding agent (Claude Code, Cursor, dan sejenisnya) untuk memeriksa pekerjaannya sendiri.
record -> replay ke build lama dan baru -> diff semantik -> nilai terhadap niat -> gate
Saat sebagian besar kode ditulis oleh AI agent, jumlah perubahan naik jauh lebih cepat daripada kemampuan manusia untuk meninjaunya. Tes yang lulus dan diff yang tampak rapi belum menjamin perilaku sistem tetap benar, karena tes ditulis dari asumsi, sedangkan bug sering muncul dari kombinasi data nyata yang tidak terpikirkan.
Echoproof menjawab satu pertanyaan yang tidak dijawab oleh tes unit maupun code review:
Apakah perubahan ini mengubah perilaku sistem terhadap traffic nyata, dan apakah perubahan itu memang yang dimaksud?
Contoh yang ditangkap Echoproof: sebuah PR berniat "menambah field currency di katalog", tetapi tanpa sengaja salah menempatkan satu argumen. Akibatnya harga 3 dari 8 menu berubah, sementara 5 menu lainnya tetap benar. Tes unit lulus dan diff kode terlihat wajar. Echoproof melaporkan products[*].price: 18000 -> 22000 pada setiap request katalog dan menandainya sebagai regresi.
breaking, behavior, atau additive.brew install est57/tap/echoproof
Unduh arsip untuk platform Anda dari halaman rilis, atau lewat terminal:
VERSION=v0.1.0
TARGET=aarch64-apple-darwin # atau x86_64-apple-darwin, x86_64-unknown-linux-gnu, aarch64-unknown-linux-gnu curl -sLO https://github.com/est57/echoproof/releases/download/$VERSION/echoproof-$VERSION-$TARGET.tar.gz curl -sLO https://github.com/est57/echoproof/releases/download/$VERSION/echoproof-$VERSION-$TARGET.tar.gz.sha256 shasum -a 256 -c echoproof-$VERSION-$TARGET.tar.gz.sha256 tar -xzf echoproof-$VERSION-$TARGET.tar.gz sudo mv echoproof-$VERSION-$TARGET/echoproof /usr/local/bin/
echoproof --version
Jika Rust 1.85 atau lebih baru sudah terpasang:
cargo install echoproof
Kebutuhan: Rust 1.85 atau lebih baru. curl diperlukan untuk menjalankan demo.
git clone https://github.com/est57/echoproof.git
cd echoproof cargo install --path crates/echoproof-cli
Binary echoproof dipasang di ~/.cargo/bin. Pastikan folder itu ada di PATH:
echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc
echoproof --version
Langkah berikut memeriksa sebuah perubahan kode pada service yang berjalan di lingkungan uji Anda.
1. Buat file konfigurasi (opsional, semua pengaturan punya nilai default):
echoproof init
2. Rekam traffic. Jalankan proxy di depan service, lalu arahkan aplikasi, Postman, atau tes otomatis ke alamat proxy:
echoproof record --upstream http://127.0.0.1:8000 --listen 127.0.0.1:8080 --out traffic.jsonl
Hentikan dengan Ctrl-C setelah traffic yang representatif terkumpul.
Aplikasi Laravel bisa merekam tanpa proxy dengan echoproof/laravel: jalankan composer require echoproof/laravel, isi ECHOPROOF_RECORD=true di .env, dan traffic ditulis ke storage/echoproof/traffic.jsonl dengan aturan sensor yang sama.
3. Jalankan dua build, versi sebelum perubahan (base) dan sesudahnya (PR), memakai database yang sama.
4. Bandingkan:
echoproof check -s traffic.jsonl --base http://127.0.0.1:8001 -t http://127.0.0.1:8002
5. Baca hasilnya. Exit code 0 berarti tidak ada perubahan yang tidak diharapkan, 1 berarti ada regresi, 2 berarti terjadi error. Lihat Membaca laporan.
Untuk menilai perubahan terhadap niatnya, tambahkan deskripsi PR dan diff kodenya:
git diff main...HEAD > change.diff
echoproof check -s traffic.jsonl --base http://127.0.0.1:8001 -t http://127.0.0.1:8002 \ --intent-file pr-description.md --code-diff change.diff --output echoproof-report.md
Demo lengkap berjalan sekitar 10 detik dan tidak membutuhkan service Anda sendiri:
./scripts/demo.sh
Demo memakai backend POS kecil (examples/demo-shop) yang memiliki state, yaitu stok produk yang berkurang setiap ada order. Sebuah "PR dari agent" berniat menambah field currency pada produk, tetapi juga mengubah cara diskon promo dan voucher digabungkan.
| Langkah | Yang ditunjukkan |
|---|---|
| 1. Rekam 2.000 request dari versi production | Proses perekaman |
| 2. Replay ke versi yang sama, dibandingkan dengan rekaman | Alarm palsu akibat state: stok sudah berkurang selama perekaman |
3. Bandingkan build base dan PR dengan --base dan --reset, mode aman | Alarm palsu hilang. currency terdeteksi. Request tulis dilaporkan belum terverifikasi |
4. Sama seperti langkah 3, dengan --allow-writes "POST /orders" | Bug diskon tertangkap, hanya pada order yang memakai promo dan voucher bersamaan |
5. Penilaian niat oleh Claude (jika ANTHROPIC_API_KEY tersedia) | currency dinilai intended, perubahan diskon dinilai regression |
Snapshot adalah file JSONL berisi satu pasangan request dan response per baris. Header dan field sensitif sudah disamarkan sebelum ditulis. Snapshot yang sama dapat dipakai berulang kali untuk memeriksa banyak PR.
| Mode | Perintah | Cocok untuk |
|---|---|---|
| Terhadap rekaman | echoproof check -s traffic.jsonl -t URL_PR | Service tanpa state, atau lingkungan yang datanya identik dengan saat perekaman |
| Base vs PR | echoproof check -s traffic.jsonl --base URL_BASE -t URL_PR | Service dengan database (disarankan) |
Pada mode base vs PR, response hasil rekaman tidak dipakai sebagai acuan. Echoproof memutar traffic yang sama ke kedua build di atas data yang sama:
reset -> replay ke base -> acuan
reset -> replay ke base lagi -> field yang berbeda dicatat sebagai noise reset -> replay ke PR -> kandidat diff acuan dan kandidat, abaikan noise
Alamat server masing-masing build (misalnya http://127.0.0.1:8001 di URL gambar atau link pagination) dinormalkan otomatis, sehingga dua build yang berjalan di port berbeda tetap sebanding.
Secara default, hanya method GET, HEAD, dan OPTIONS yang di-replay. Request tulis dilewati dan tidak dihitung lulus: laporan menyebut jumlahnya dan memperingatkan bahwa perilakunya belum terverifikasi.
Izinkan request tulis per endpoint, hanya terhadap lingkungan yang boleh diubah atau dapat di-reset:
echoproof check ... --allow-writes "POST /orders" --allow-writes "PUT /cart/*"
Gunakan --reset (atau replay.reset) untuk mengembalikan state sebelum setiap putaran, misalnya dengan me-restore dump database atau memanggil endpoint reset di lingkungan uji. Echoproof menolak me-replay request tulis tanpa reset bila noise sedang dipelajari, karena perubahan state di antara run akan ikut dianggap noise dan menyembunyikan regresi.
5 dan 5.0 dianggap sama, dan urutan key diabaikan.| Klasifikasi | Contoh |
|---|---|
breaking | Field hilang, tipe berubah (termasuk menjadi null), status 2xx menjadi error |
behavior | Nilai berubah, panjang array berubah, status berubah |
additive | Field baru |
/products/42 menjadi GET /products/{id}, dan items[3].price menjadi $.items[*].price. Setiap perubahan dihitung sekali per request.2026-10-14) tetap dibandingkan.Ada dua cara memberi tahu Echoproof perubahan apa yang diharapkan.
| Cara | Tingkat | Kapan dipakai |
|---|---|---|
--expect "GET /products/*" | Endpoint | Cepat, gratis, tanpa layanan eksternal |
--intent "..." | Endpoint, field, dan nilai | Saat perubahan yang diharapkan dan bug bisa terjadi di endpoint yang sama |
--expect meloloskan semua perubahan di endpoint yang disebut. Jika sebuah PR memang mengubah katalog tetapi tanpa sengaja juga merusak harga di katalog, --expect "GET /catalog" tidak akan menangkapnya.
Dengan --intent, setiap kelompok perubahan dinilai oleh Claude dan diberi verdict intended, regression, atau unclear, beserta alasan yang mengutip nilai contoh. Bahan penilaiannya meliputi niat perubahan, diff kode (opsional), persentase request yang terdampak, contoh request yang berubah beserta nilai sebelum dan sesudah, serta contoh request di endpoint yang sama yang tidak berubah sebagai pembanding. Verdict unclear dan kelompok yang tidak dinilai diperlakukan sebagai regresi (fail closed).
Penilaian niat membutuhkan API key Anthropic. Satu run melakukan satu panggilan API, dan hanya jika ada perubahan. Biaya tipikal sekitar USD 0,01 sampai 0,02 per run dengan model default.
Service yang memanggil payment gateway, layanan pesan, atau API lain tidak boleh benar-benar menghubunginya saat replay. Dengan echoproof/laravel, panggilan itu direkam bersama setiap request, dan build yang dijalankan dengan ECHOPROOF_REPLAY=true menjawabnya dari rekaman serta memblokir semua pangg
只显示了开头部分;其余内容请在仓库中阅读