# Checkpoint playbook (executor instructions) **Automated path (default).** Scheduled checkpoints run without an agent: activity-core fires an `assembly-checkpoint-*` definition, rein-aharness claims it (approach `assembly-checkpoint`), runs `checkpoints/run_checkpoint.py` (data via [web-fetcher](https://forgejo.coulomb.social/coulomb/web-fetcher), optional llm-connect assessment with a number guard), commits only `checkpoints/`, pushes and posts `assembly_checkpoint`. Machine-readable sources are mapped in `checkpoints/sources.json`. Indicators marked `manual` are collected by an agent or human at reviews, following the steps below. **Manual / agent path.** Use the steps below for manual indicators, annual reviews, or when the automated path fails. You are running a **reality checkpoint** for the `assembly-economics` repository. Work only inside this repository. Keep the run within budget: a `light` checkpoint should take well under 15 minutes. ## Steps 1. Determine today's date in Europe/Berlin and the run kind (`light` or `full`) from the task title. 2. Read `checkpoints/schedule.md`. If today is not inside an active window for this kind, write `checkpoints/YYYY/YYYY-MM-DD-out-of-window.md` (one line saying so), commit, push, post the completion event with `in_band: 0`, and stop. 3. Read `checkpoints/README.md` (protocol) and `checkpoints/IndicatorCatalog.md`. 4. For each indicator of this kind, search for the most recent published value. Prefer the primary source listed in the catalog. Record value, unit, reference period, publication date and URL. If you can't find it, record `not found` and the sources tried. Do **not** estimate or invent values. 5. Compare with `checkpoints/predictions.md` where an entry exists. 6. Write the record using the template below, then append the observations to `predictions.md` under the matching entries (append-only). 7. Commit with the message `Checkpoint YYYY-MM-DD ()`, then push. 8. Post the completion event (README step 7). If something blocks you (no network, push rejected, catalog missing), still write the record with the blocker stated, and report the failure. A recorded failure is a valid outcome of a setup run. ## Record template ```markdown # Checkpoint YYYY-MM-DD () - Model version: - Phase: - Executor: ## Observations | Indicator | Jurisdiction | Value | Unit | Reference period | Published | Source | Band position | |---|---|---|---|---|---|---|---| ## Assessment - : ; notable changes; surprises. ## Not found - : sources tried ## Follow-ups - ```