@startuml !include card-uml-style.iuml scale 900 width left to right direction class "01 timer CSRs" as Timer <> { mtime mtimecmp mcause = 0x80000007 mepc = interrupted task PC } class "02 ISR evidence" as ISR <> { first_tick_count ISR sp one-shot tick checkpoint } class "03 scheduler evidence" as Kernel <> { Ready lists by priority selected TCB tick count } class "04 peer runtime" as Peer <> { context address handle / TCB task stack range PC · SP · priority 2 } class "05 high runtime" as High <> { handle / TCB priority 0 → 3 PC · SP · run_tick } class "06 committed evidence" as Evidence <> { switch trace A · B · A markers before · HIGH · after source blob · ELF hash PASS } Timer --> ISR : machine-timer trap ISR --> Kernel : scheduling opportunity Kernel --> Peer : equal-priority rotation Kernel --> High : select after priority raise Peer --> Evidence High --> Evidence note bottom of Kernel Kernel internals are debugger observations only. Program assertions use public API and application records. end note @enduml