Skip to main content

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.