One shape for every lesson
A paragraph can't be routed into an action; a lesson can.
when you seeX
doY
whythe cause
okl wraps your agent: your rules and ADRs briefed before every task, gates that fail when the code drifts from them, and each session's lessons fed back in.
A paragraph can't be routed into an action; a lesson can.
org reaches repos that load it. repo stays here, so a local quirk never fires elsewhere.
Ranked by the task, scoped, capped, and it says how many it trimmed.
A check you chose must run and pass. Marking a lesson verified without one is refused.
Files changed since the check passed? The pre-push hook or CI fails until it is re-proven.
Wrong or outdated lessons get fixed or retired, and the store keeps why.
okl check --task "add an invoice endpoint"okl verify <id> --run "pytest -q" --expect passedokl drift --gateokl retire <id> --reason "replaced" --by <new>