Alice doesn’t intrinsically know what day it is — she consults her watch. The schedule lives in her graph as a 5-step chain (one entry per weekday); a reasoning process queries it for today’s entry and commits an intends_to_practice fact. The motor router then resolves the stance into concrete poses and emits a practice_targeted Action. Toggle off any premise — does Alice still want taichi? does taichi require practice? — and the chain refuses to close.
watch_read reads the simulation clock and commits (alice, knows_day_is, <day>). due_today watches for new knows_day_is facts, scans the schedule chain for a matching (<day>, practice, <stance>) row, and commits (alice, intends_to_practice, <stance>) carrying the schedule’s chain_id as provenance. practice_from_intent watches for new intents, scans has_stance facts to resolve the stance into concrete poses, and emits a practice_targeted Action. Temporal awareness grounds in an epistemic act — Alice doesn’t just know the day.
examples/cognition_schedule_practice.py. The lab adds one pedagogical hook: the ontology premises (which v1 seeds as inert) gate the chain here so toggling them reveals the planned saturation arc — eddy will derive (alice, needs, practice) from (alice, wants, taichi) ∧ (taichi, requires, practice), and the intent will gate on it. Toggling premises off today previews that gate.