Flywheel
Loop A lesson approval — kanban backed by v_flywheel_dashboard
4 lessons total
State Machine — FLYWHEEL-LESSON-STATE-MACHINE-01
pending_approval ─approve→ approved ─inject_cron(5min)→ injected pending_approval ─reject→ rejected (FINAL; cluster re-fires after 7d) pending_approval ─defer→ deferred ─undefer_cron(6h, after 3d)→ pending_approval pending_approval ─edit→ edit_requested ─inline editor→ approved (via PATCH)
Pending Approval
2
Edit Requested
0
Deferred
0
Approved
2
Injected
0
Rejected
0
Pending Approval2
Recurring violation: Substrate-first protocol — every build engages doctrine before code
85%workflow: doctrine_rule_violation:META-SUBSTRATE-01
age: 9667 min
reason: doctrine_violation:META-SUBSTRATE-01
Recurring violation: Synthetic test #2 for promote_doctrine_candidate RPC
85%workflow: doctrine_rule_violation:SYNTHETIC-TEST-PROMOTE-02
age: 9683 min
reason: doctrine_violation:SYNTHETIC-TEST-PROMOTE-02
Edit Requested0
empty
Deferred0
empty
Approved2
Recurring violation: Substrate-first protocol — every build engages doctrine before code
85%workflow: doctrine_rule_violation:META-SUBSTRATE-01
age: 4790 min
injections: 1
by: slack:U0AGZK1F8JG
Coalesce retries to single recipient hitting gap_min
88%workflow: check_and_log_outbound
age: 9692 min
injections: 1
by: vincent
reason: gap_min_violated
Injected0
empty
Rejected0
empty
Realtime: postgres_changes channel on workflow_lessons. Click in Slack → row mutates → kanban updates without refresh.
Lessons Live in Voice Agents
Approved lessons injected into tenant_voice_config.lessons_block — what Eve is actively using on every call right now.
1 agent · 2 lessons live
agent_079381974ad57789c227167ced2 live- Recurring violation: Substrate-first protocol — every build engages doctrine before code85%injected 5/21/26, 3:00 PM↳ doctrine_rule_violation:META-SUBSTRATE-01
- Coalesce retries to single recipient hitting gap_min88%injected 5/18/26, 5:36 AM↳ check_and_log_outbound
