Behavioral verification for every code change, based on real traffic. Built for AI-written code.
- ✓Open-source license (Apache-2.0)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
git clone https://github.com/est57/echoproof && cp echoproof/*.md ~/.claude/agents/Resumen de Subagents
# Echoproof [](https://github.com/est57/echoproof/actions/workflows/ci.yml) [](https://crates.io/crates/echoproof) [](https://github.com/est57/echoproof/releases) [](#lisensi) **Bahasa Indonesia** | [English](README.en.md) **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. <p align="center"><img src="https://raw.githubusercontent.com/est57/echoproof/main/docs/demo.svg" alt="Echoproof menangkap regresi harga yang tidak dijelaskan oleh niat perubahan" width="900"></p> ``` record -> replay ke build lama dan baru -> diff semantik -> nilai terhadap niat -> gate ``` ## Daftar isi - [Mengapa Echoproof](#mengapa-echoproof) - [Fitur utama](#fitur-utama) - [Instalasi](#instalasi) - [Mulai cepat](#mulai-cepat) - [Demo](#demo) - [Konsep](#konsep) - [Referensi perintah](#referensi-perintah) - [Konfigurasi](#konfigurasi) - [Membaca laporan](#membaca-laporan) - [Integrasi CI](#integrasi-ci) - [Integrasi coding agent (MCP)](#integrasi-coding-agent-mcp) - [Keamanan dan privasi](#keamanan-dan-privasi) - [Batasan](#batasan) - [Pengembangan](#pengembangan) - [Lisensi](#lisensi) ## Mengapa Echoproof 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. ## Fitur utama - **Rekam dari traffic nyata.** Reverse proxy yang merekam setiap request dan response, dengan data sensitif disamarkan sebelum ditulis ke disk. - **Diff semantik.** JSON dibandingkan per field, bukan per baris teks. Perubahan dikelompokkan per endpoint dan field, lalu diklasifikasikan sebagai `breaking`, `behavior`, atau `additive`. - **Tahan noise.** UUID, timestamp, dan nilai acak dikenali otomatis. Field yang berubah sendiri antar-run dipelajari dengan me-replay build lama dua kali. - **Aman terhadap state.** Request tulis tidak di-replay kecuali diizinkan per endpoint. Build lama dan baru dibandingkan di atas data yang sama, dengan perintah reset di antara setiap putaran. - **Sadar niat perubahan.** Setiap kelompok perubahan bisa dinilai oleh Claude terhadap deskripsi PR atau tugas agent. Perubahan yang tidak dijelaskan oleh niat ditandai sebagai regresi. - **Siap untuk CI dan agent.** Exit code untuk gate merge, laporan Markdown untuk komentar PR, JSON untuk otomasi, dan server MCP untuk coding agent. ## Instalasi ### Homebrew (macOS dan Linux) ```bash brew install est57/tap/echoproof ``` ### Binary siap pakai (disarankan) Unduh arsip untuk platform Anda dari [halaman rilis](https://github.com/est57/echoproof/releases), atau lewat terminal: ```bash 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/ ``` ```bash echoproof --version ``` ### Dengan Cargo Jika Rust 1.85 atau lebih baru sudah terpasang: ```bash cargo install echoproof ``` ### Dari source code **Kebutuhan:** Rust 1.85 atau lebih baru. `curl` diperlukan untuk menjalankan demo. ```bash 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`: ```bash echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc ``` ```bash echoproof --version ``` ## Mulai cepat Langkah berikut memeriksa sebuah perubahan kode pada service yang berjalan di lingkungan uji Anda. **1. Buat file konfigurasi** (opsional, semua pengaturan punya nilai default): ```bash echoproof init ``` **2. Rekam traffic.** Jalankan proxy di depan service, lalu arahkan aplikasi, Postman, atau tes otomatis ke alamat proxy: ```bash 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](https://github.com/est57/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:** ```bash 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](#membaca-laporan). Untuk menilai perubahan terhadap niatnya, tambahkan deskripsi PR dan diff kodenya: ```bash 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 Demo lengkap berjalan sekitar 10 detik dan tidak membutuhkan service Anda sendiri: ```bash ./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 | ## Konsep ### Snapshot 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. ### Dua mode perbandingan | 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. ### Mode aman 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: ```bash 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. ### Diff semantik - JSON dibandingkan per field. `5` dan `5.0` dianggap sama, dan urutan key diabaikan. - Setiap perubahan diklasifikasikan: | Klasifikasi | Contoh | |---|---| | `breaking` | Field hilang, tipe berubah (termasuk menjadi `null`), status 2xx menjadi error | | `behavior` | Nilai
Lo que la gente pregunta sobre echoproof
¿Qué es est57/echoproof?
+
est57/echoproof es subagents para el ecosistema de Claude AI. Behavioral verification for every code change, based on real traffic. Built for AI-written code. Tiene 0 estrellas en GitHub y su última actualización registrada es del 2026-10-15.
¿Cómo se instala echoproof?
+
Puedes instalar echoproof clonando el repositorio (https://github.com/est57/echoproof) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar est57/echoproof?
+
Nuestro agente de seguridad ha analizado est57/echoproof y le ha asignado un Trust Score de 95/100 (tier: Verified). Revisa el desglose completo de comprobaciones superadas y flags en esta página.
¿Quién mantiene est57/echoproof?
+
est57/echoproof es mantenido por est57. La última actividad registrada en GitHub es del 2026-10-15, con 0 issues abiertos.
¿Hay alternativas a echoproof?
+
Sí. En ClaudeWave puedes explorar subagents similares en /categories/agents, ordenados por popularidad o actividad reciente.
Despliega echoproof en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/est57-echoproof)<a href="https://claudewave.com/repo/est57-echoproof"><img src="https://claudewave.com/api/badge/est57-echoproof" alt="Featured on ClaudeWave: est57/echoproof" width="320" height="64" /></a>Más Subagents
The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.
The agent that grows with you
Makes your AI agent think like the laziest senior dev in the room. The best code is the code you never wrote.
Java 面试 & 后端通用面试指南,覆盖计算机基础、数据库、分布式、高并发、系统设计与 AI 应用开发
Build Agentic workflows, RAG pipelines, with rich AI model and tool support on one collaborative workspace. Deploy on cloud, VPC, or self-hosted, so teams move from prototype to production without rebuilding the stack.
The agent engineering platform.