Here's the loop end to end, using the same episode as the homepage. The mechanism is the product; the numbers are illustrative.
EPISODE
Someone asks in Slack: "Why did Q2 gross margin dip in EMEA?" Skadi plans, runs six tool calls — semantic-view SQL through Cortex Analyst, a memory lookup, an FX-adjusted re-query — and answers with a margin bridge.
#finance-analytics · slack
d.reyes09:41
Why did Q2 gross margin dip in EMEA?
skadi09:43
EMEA gross margin fell 240 bps in Q2. Three drivers: FX (−130 bps), freight (−80 bps), one distributor rebate (−30 bps). Full bridge below.
▸ 6 tool calls · 94 s · view trace
1 skill_search "margin bridge emea" → no match
2 memory_search d.reyes · margin preferences
3 cortex_analyst sql · finance margin semantic view
4 cortex_analyst re-query · fx-adjusted · emea only
5 memory_write tier-3 · "fx-adjust before comparing regions"
6 learn_skill episode flagged learnable → skill drafted
DETECT
The session trips the learnable-episode heuristics: multiple tool calls, a user correction absorbed. Skadi drafts `margin_bridge.skill` — a `SKILL.md` plus parameterized SQL. A proposal, not live code.
VERIFY
The draft runs the verification gate: executable dry-run checks against the semantic view — does it parse, does it run, does it return the declared shape. Not an LLM grading its own homework.
APPROVE ●
The skill lands in the console's approval queue with a mono diff and the scanner's results. A human approves, revises, or rejects. High-blast-radius skills always wait for a person.
PROMOTE
Approved skills are versioned into the skill store with full provenance and indexed for retrieval. Next time a similar question arrives, Skadi finds the skill by intent and runs it — six calls become one.
CURATE
On a schedule, the store gets tended: duplicates merged, stale skills archived, regressions checked.
Curation is the least-built stage today — see §3.6.