Jadpo is experimental and not ready for production. These docs follow the compiler's main branch as of 30 Oct 2026. What's built · Install 0.1.0
jadpo
Reference: Records and manifest

Records and manifest

Examples: an API change, a package upgrade and an incident

On this page

An agent removes an API field, and a person accepts it

text
$ jadpo checkerror  api/main.jadpo_record is out of date: priority removed from TodoView, TodoSummary       next  jadpo api update                                     agenterror  removing an output field can break clients: main.TodoView.priority,       main.TodoSummary.priority       next  a person accepts it: jadpo acceptance new <purpose>  human$ jadpo api update$ jadpo acceptance new remove_todo_prioritywrote acceptances/20261020T1400_remove_todo_priority.jadpo (2 changes, reason needed)

The agent commits and opens the pull request, saying a reason is needed. CI runs jadpo check, which fails on the missing reason, and publishes the review. The code owner reads it, writes the /// line, and approves. CI passes and the change merges. On the default branch the acceptance is now history.

A provider package upgrade

text
$ jadpo package update courierscouriers  AcmeCouriers.v1 → v2   jadpo.lock updated  bookings.create   new failure  address_unverifiable           needs a person  bookings.get      field removed  Booking.driver_phone         needs a person  host              api.acme.example → api.eu.acme.example      needs a person

The removed field is also a compile error in delivery_view, which the agent fixes first. The agent then runs jadpo acceptance new upgrade_couriers_v2 and hands over. A person writes one reason covering all three changes, and the owner approves.

A production incident traced to source

A Worker logs a fault carrying its stamp (build b_9a1f…, commit 8d113e6), its .jadpo frames and a path number. Someone pastes it into jadpo incident:

text
$ jadpo incidentint_overflow in action price_line  build  b_9a1f03c6d2e4  rebuilt from 8d113e6, matches  then   domains/ordering/actions/price_line.jadpo:4  now    domains/ordering/actions/line_price.jadpo:6   renamed, changed since (2 commits)  path   POST /orders → place_order → price_line, branch "discounted"  next   jadpo test new --from-event

"Now" comes from the registry and the current manifest. If the local compiler is a different version, the build id can't match. The frames and names are still exact, because they are in the event, and the output says that the path number can't be decoded.

jadpo approval, acceptances and jadpo incident aren't built yet (What is built).

Markdown for agents: /docs/records-worked-examples.md.Built from Jadpo main at a707efb.