Project Agenda freshness contract
Project Agendas are human-curated cross-repository orientation, not repository-local truth and not a second Control Tower. This contract makes their review horizon machine-readable without pretending that elapsed wall-clock time proves the underlying orientation is false.
Source contract
Each file under estate/agendas/*.md except README.md uses Agenda
frontmatter schema version 2 and declares:
- stable
agenda_id; - display
title; - related
front_ids; - current operating
posture; last_material_refresh;- explicit
review_after_days; - declared semantic
freshness.
review_after_days is chosen per Agenda according to operating tempo. There is
no universal default.
Deterministic projection
scripts/agenda_index.py materializes
generated/project-agenda-index.json as
context:project-agendas@1.
For every Agenda it derives:
review_due_on = last_material_refresh + review_after_days
source_sha256 = SHA-256(exact committed Agenda bytes)
The projection contains no current timestamp, age counter, or effective freshness state. Identical Agenda bytes produce identical index bytes.
Review due is not semantic staleness
Consumers may compare their own explicit as_of date with review_due_on.
When the due date has passed, the correct interpretation is REVIEW_DUE:
refresh orientation before acting on it.
That condition does not rewrite freshness: CURRENT into STALE and does
not prove the page is wrong. Semantic staleness remains a human/producer
judgment triggered by contradicted evidence, a consumed frontier, a failed
assumption, or another material change.
Both REVIEW_DUE and explicitly declared STALE should block blind
execution of an Agenda's frontier.
Integrity
Consumers can compare the SHA-256 of the Agenda resource they actually read with
the index's source_sha256. A mismatch means the index and source Agenda are
from different states and the orientation packet must not be represented as
internally consistent.
The index is a projection owned by projects. It does not transfer repository
authority, mutate Control Tower state, or execute participating repositories.