{
  "schema_version":"0.1",
  "control_id":"MNT10",
  "reviewed_on":"2026-09-16",
  "status":"implemented_cadence_and_freshness_control",
  "cadences":[
    {"id":"release_gate","interval":"per_release","stage":"automated_source_gate","state":"active","owner_class":"site_maintainer","controls":["SITE01","P18F2","UX06B1","EDU01S2A","P20A","UX06B2B2V","MNT02","MNT03","MNT04","MNT05","MNT06","MNT07","MNT08","MNT09","MNT10","MNT11","MNT12A","MNT12B","MNT12CP","MNT12CV","BUILD"],"hooks":["development.priority.changed","feature.deprecated","limit.compute.changed"],"evidence_type":"command_results_and_recoverable_release","change_authority":"bounded_release_only","missed_run_response":"Stop publication; repair the failed control and repeat the affected checks before packaging.","limitations":"A passing release gate proves only its declared source, contract, fixture, and build evidence classes."},
    {"id":"monthly_dependency_audit","interval":"monthly","stage":"external_observation","state":"scheduled_no_evidence_yet","owner_class":"user_authorized_automation","controls":["MNT02","MNT08","MNT09","MNT12A","MNT12B"],"hooks":["dependency.major.changed","platform.hosting.changed","platform.access.changed","funding.opportunity.changed","student.external_link.changed"],"review_by":"2026-10-01","evidence_type":"dated_dependency_audit_report","change_authority":"report_only","missed_run_response":"Block the next release after the review date until dated evidence or an explicit time-bounded deferral is recorded.","limitations":"The external schedule is not controlled or verified by site code and cannot authorize edits, access changes, upgrades, or publication."},
    {"id":"quarterly_authority_and_safeguarding_review","interval":"quarterly","stage":"named_human_review","state":"pending_named_review","owner_class":"funding_and_safeguarding_reviewers","controls":["EDU01S2A","P20A","MNT09","MNT12A","MNT12B","MNT12CP","MNT12CV"],"hooks":["funding.opportunity.changed","student.external_link.changed","minor.safeguard.changed","privacy.expectation.changed"],"review_by":"2026-12-31","evidence_type":"dated_source_authority_and_safeguarding_record","change_authority":"recommend_only","missed_run_response":"Mark affected student and funding destinations and contributor grant-match snapshots stale, then remove or quarantine them before the next release.","limitations":"Automated reachability cannot establish age suitability, eligibility, policy currency, authority, grant fit, or safeguarding adequacy."},
    {"id":"semiannual_recoverability_drill","interval":"semiannual","stage":"clean_room_recovery","state":"evidence_current","owner_class":"site_maintainer","controls":["MNT05","MNT06","MNT07","MNT08","MNT10","MNT11"],"hooks":["platform.hosting.changed","feature.deprecated","dependency.major.changed"],"review_by":"2027-03-31","evidence_type":"clean_checkout_build_package_and_restore_record","evidence_ref":"public/recoverability-evidence.json","evidence_reviewed_on":"2026-09-16","change_authority":"nonproduction_drill_only","missed_run_response":"Do not claim recoverability; prioritize the drill before architectural or hosting changes.","limitations":"A local reconstruction does not prove provider continuity, credential recovery, data restoration, or production rollback."},
    {"id":"annual_obsolescence_review","interval":"annual","stage":"cross_system_review","state":"scheduled","owner_class":"site_maintainer_and_named_reviewers","controls":["MNT02","MNT03","MNT05","MNT06","MNT07","MNT08","MNT09","MNT10"],"hooks":["feature.deprecated","dependency.major.changed","platform.hosting.changed","platform.access.changed","limit.compute.changed"],"review_by":"2027-09-16","evidence_type":"dated_support_window_migration_and_replacement_review","change_authority":"recommend_only","missed_run_response":"Freeze elective expansion until unsupported software, access assumptions, formats, and replacement paths are reconciled.","limitations":"A calendar review cannot predict vendor failure or replace migration, rollback, privacy, accessibility, or scientific review."}
  ],
  "freshness_policy":{"due_rule":"A dated review is current through review_by. After that date, the next release must record dated evidence or an explicit time-bounded deferral with reason and owner.","allowed_completion_states":["evidence_current","accepted_time_bounded_deferral"],"automated_evidence_boundary":"Automated checks and observations never satisfy a named-human, safeguarding, legal, accessibility, scientific, or operating-capacity gate.","retention":"Preserve prior audit evidence, failures, deferrals, and superseded schedules with the recoverable release that used them."},
  "change_rule":"Changing cadence, scope, owner class, controls, hooks, evidence type, authority, due date, or missed-run response requires this registry, the maintenance queue, affected interconnections, and change register to change in the same bounded release.",
  "verification":{"checker":"scripts/check-maintenance-cadence.mjs","command":"pnpm check:site"},
  "limitations":["The site cannot verify that an external automation remains enabled.","Scheduled review does not equal completed evidence and does not open a blocked product stage."],
  "successor_path":"Run old and new schedules together through one complete interval, preserve prior evidence and deferrals, and keep stricter human-review boundaries during migration."
}
