Repository navigation
dialects
Partially superseded:
15-whiteboard-language-and-wql-reference.mddocuments the dialect stack as implemented. In the application, onlytimeandlogare fence tags;climb,cardio,yoga,habitsare dialect ids selected by the:sportsuffix — see that document's §A6.
A Block Dialect is the fence tag that selects a parser/compiler override for a block. The universal defaults (base grammar, base dialect stack, default analytics) always run underneath; a dialect only overrides where it explicitly differs.
| Tag | Aliases | Domain |
|---|---|---|
time |
wod, whiteboard
|
General workout timer |
climb |
climbing |
Bouldering / sport climbing log |
cardio |
— | Run/row/bike/swim specific analytics |
yoga |
— | Yoga / mobility flows |
habits |
— | Daily habit tracking |
- The parser extracts statements from the fenced block.
- The Dialect Stack runs each statement through configured dialects in order.
- A dialect may emit:
-
Hint metrics (
MetricType.Hint) such asworkout.amraporbehavior.required_timer - Domain-specific metrics (e.g., climbing grades)
- Unit sets for Fusion (turning
100minto a distance metric)
-
Hint metrics (
- The JIT compiler reads hints to decide which Behaviors a block receives.
Always first in the stack. Fuses bare numbers with known units:
-
400m→Distance(400, m)+ residual effortRun -
225lb→Resistance(225, lb)+ residual effort -
16kg→Resistance(16, kg)
Unit registries live in @bitcobblers/wod-wiki-lang under src/metrics/units/.
Recognizes CrossFit-specific patterns and keywords.
Recognizes general workout keywords: STRENGTH, METCON, SKILL, WOD, SUPERSET.
Specializes run/row/bike/swim blocks with pace and distance handling.
Handles flows, poses, and breath work.
Handles daily habit check-ins.
Handles climbing grades, send styles, and disciplines:
date: 2026-05-26
location: "Sender One LAX"
discipline: bouldering
(Warmup)
[Slab Warmup] V0 flash @1 // quiet feet
[Jug Ladder] V2 flash @1
(Project)
[The Shield] V7 redpoint @12 // engage core before crux reach
See 06-interfaces-and-implementations.md for the IDialect contract and how to register one.
1. UnitsDialect
2. Sport / domain dialects (CrossFit, Cardio, Climb, Yoga, Habits, WOD)
3. Personal override dialect (if any)
Later dialects observe earlier output and can refine it.