net-kingdom/tools/coordination-frame/README.md
tegwick bde143e030 build: derive coordination receiver from staged owner sources
Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a15374-f59f-7a31-86d2-d23b5d2ed181
2026-10-19 13:44:36 +02:00

3.6 KiB

Coordination-frame bindings

The ecosystem frame is owned by coordination-engine at coordination-engine/config/coordination-frame.json. Its initial value is frame_seconds: 3600, selected by the founder on 2026-10-15. Change that one setting to change the pace. The owner API validates positive integer frames and derives timezone-bound deadlines; this tool imports that API, with no fallback config or duplicated reader.

For cadence adoption the formulas are heartbeat f, registered receiver wait 2f, and effective missing-heartbeat deadline 3f after Audit Core's existing 1.5 grace. At f=1h those are 3600, 7200 and 10800 seconds. A return to f=24h produces 24h/48h/72h through the same formulas.

From net-kingdom:

python3 tools/coordination-frame/render.py          # read-only source plan
python3 tools/coordination-frame/render.py --check  # fail on derived-file drift
python3 tools/coordination-frame/render.py --write  # regenerate source artifacts
python3 -m pytest -q tools/coordination-frame/tests

--write changes only the listed source files. It prepares Approval Engine and Qonto declarations, generated Python defaults, both deployment heartbeat settings, and a non-secret proposed Approval Engine receiver registration. The compiler preserves image pins, identity, secret references, other source classifications and the lack of a completeness claim. Each generated consumer records the frame source and SHA-256. Runtime consumers import their generated values rather than opening an adjacent coordination-engine checkout.

Check generated artifacts after changing the frame, review/commit each owner source, then use the owner's approved release and registry procedures. This tool performs no login, credential operation, registry update or deployment. It cannot replace a source collector or provide operational observer evidence. All five binding tests require the sibling owner checkouts and explicitly skip when they are unavailable; no substitute owner contract is used.

This is the first rollout of a shared coordination setting. Other ecosystem coordination consumers must adopt explicit frame multipliers through their own configuration. Transport polling, security validity and credential leases are not silently rescaled by a coordination setting.

Staged local receiver generation

make coordination-frame-staged compiles and stages only the NetKingdom receiver JSON from Git-index snapshots of its renderer, coordination-engine's frame/API and approval-engine's cadence. It never edits those sibling checkouts. Unstaged owner source edits are excluded, and unstaged receiver edits, missing/conflicted or symlink inputs and alternate-index writes are refused. Stage the reviewed adapter before its first run. make coordination-frame-staged-check is read-only.

The existing opt-in pre-commit recipe runs this adapter before WORK-RECORDS rendering and the existing configured scanner. Missing sibling source checkouts fail closed. Full multi-owner render.py --write remains an explicit preparation command and is never run against real sibling worktrees by the commit hook. render.py --receiver-only limits rendering to the one local proposed receiver; none of these commands activate the receiver or publish runtime changes.

For a partial commit, generate from the selected staged sources first and include the receiver with those sources; git commit --only cannot generate missing changes into its temporary index. Cross-repo owner commits still need their own review and publication; local index snapshots are source evidence, not release or operational acceptance.