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.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ANTHROPIC_API_KEYค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ผู้ทำยังไม่ได้ใส่วิธีติดตั้งใน registry ให้ดู README ของผู้ทำด้านล่าง
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub est57 ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: ANTHROPIC_API_KEY
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.4.0) เข้า registry 22 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Rust ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, topo^alpin
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
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.
Avalanche bulletins and mountain weather forecasts for any place in the Alps.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ 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
ตัดมาแค่ช่วงต้น อ่านต่อใน repo