How jovianw/ripple works
Ripple is a self-improving circuit-board design harness with a web interface. Its documented core loop takes a board spec, generates and evaluates a design against hidden checks, then uses failures to revise the design; planning and queued subcircuit work are additional capabilities. The sampled worker excerpt shows the loop coordinating agents, design tools, and memory, while the index identifies further evaluation and storage modules. Web routes, queue internals, and several worker subsystems were not sampled, so their detailed runtime connections are left out.
Main entry points: coder-loop.ts Coder loop · coder.ts Board coder · memory.ts Lessons and reuse · index.ts Design critic
Components 21
Web interface
- Web UI
apps/web/app/page.tsx - Board APIs
apps/web/app/api/boards/route.ts - Spec APIs
apps/web/app/api/spec/route.ts - Run APIs
apps/web/app/api/runs/route.ts
Design orchestration
- Work queue
apps/worker/src/harness/queue.ts - Coder loop
apps/worker/src/agents/coder-loop.ts - Worker database
apps/worker/src/db.ts
Design agents
- Spec planner
apps/worker/src/agents/planner/index.ts - Board coder
apps/worker/src/agents/coder.ts - Design critic
apps/worker/src/agents/critic/index.ts
Board construction
- Model router
apps/worker/src/tools/router.ts - Placement
apps/worker/src/tools/placement.ts - Board outline
apps/worker/src/tools/board-outline.ts - Design normalization
apps/worker/src/tools/normalize.ts
Evaluation and learning
- Design-rule checks
apps/worker/src/tools/drc.ts - Circuit evaluation
apps/worker/src/tools/evaluate.ts - Board metrics
apps/worker/src/tools/metrics.ts - Hidden checks
checks/run-checks.ts - Lessons and reuse
apps/worker/src/harness/memory.ts - Board exports
apps/worker/src/export/deliverables.ts
Other components
- Board designer
Connections 22
- Board designer → Web UI: uses
README.md - Spec planner → Work queue: returns work items
apps/worker/src/agents/planner/index.ts - Coder loop → Board coder: generates design
apps/worker/src/agents/coder-loop.ts - Coder loop → Design critic: requests review
apps/worker/src/agents/coder-loop.ts - Coder loop → Board outline: fits board
apps/worker/src/agents/coder-loop.ts - Coder loop → Circuit evaluation: evaluates source
apps/worker/src/agents/coder-loop.ts - Coder loop → Design-rule checks: checks rules
apps/worker/src/agents/coder-loop.ts - Coder loop → Board metrics: computes metrics
apps/worker/src/agents/coder-loop.ts - Coder loop → Design normalization: bakes placement
apps/worker/src/agents/coder-loop.ts - Coder loop → Lessons and reuse: retrieves lessons
apps/worker/src/agents/coder-loop.ts - Coder loop → Lessons and reuse: stores learning
apps/worker/src/agents/coder-loop.ts - Board coder → Model router: requests models
apps/worker/src/agents/coder.ts - Board coder → Circuit evaluation: evaluates design
apps/worker/src/agents/coder.ts - Board coder → Design normalization: normalizes design
apps/worker/src/agents/coder.ts - Board coder → Placement: places parts
apps/worker/src/agents/coder.ts - Design critic → Placement: uses placement
- Lessons and reuse → Worker database: reads and writes
apps/worker/src/harness/memory.ts - Coder loop → Worker database: records runs
apps/worker/src/agents/coder-loop.ts - Coder loop → Hidden checks: checks design
- Board designer → Spec APIs: submits spec
- Board designer → Board APIs: views boards
- Board designer → Run APIs: views runs