assembly-economics/checkpoints/PLAYBOOK.md
tegwick c0254aa2da Checkpoint executor: deterministic runner, sources, tests; definitions route to assembly-checkpoint
- checkpoints/run_checkpoint.py: window guard, web-fetcher fetch with
  provenance, record + raw JSONL, optional llm-connect assessment rejected if
  it contains numbers not in the fetched data
- checkpoints/sources.json: BTOS (US), Eurostat isoc_eb_ai (EU, DE), FRED
  info-processing investment (US); manual entries for AR, usage indices,
  sentiment, legislation
- activity definitions: label assembly-checkpoint (rein-aharness approach)
- PLAYBOOK: automated path + manual/agent path

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 1494246@bnt-lap001
Assistant-Session: caf6de6f-f9e4-47ce-a584-49baa271fa4b
2026-10-12 18:45:12 +02:00

2.7 KiB

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, 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 (<kind>), 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

# Checkpoint YYYY-MM-DD (<kind>)

- Model version: <from models/README.md>
- Phase: <setup | transition | steady>
- Executor: <agent / harness>

## Observations

| Indicator | Jurisdiction | Value | Unit | Reference period | Published | Source | Band position |
|---|---|---|---|---|---|---|---|

## Assessment

- <jurisdiction>: <tracks archetype / band anchor>; notable changes; surprises.

## Not found

- <indicator>: sources tried

## Follow-ups

- <intake or task suggestions, if any>