v0.5.0 — the five atoms, the recorder, the compiler, the ladder
Reelier's first published npm release (0.1.0 -> 0.5.0) — a deterministic replay engine for AI agent workflows, built on the five-atom model: intent, action, assert, bind, effect.
What's in 0.5.0
- Five-atom
SKILL.mdformat + L0 runner — record any agent workflow as aSKILL.mdrecipe and replay it deterministically, zero LLM calls at the default level. A malformed skill (bad frontmatter, unrecognized assert/bind, out-of-order step) is rejected with the exact step and line, never silently skipped. - MCP proxy recorder —
reelier mcp --wrap "..."re-exposes any downstream MCP server's tools 1:1 (pure passthrough) plus three control tools (reelier_start_recording,reelier_note,reelier_stop_recording) so an agent can capture a lossless trace of a live session, with conservative built-in secret redaction at trace-write time. - Deterministic compiler with dataflow recovery (
reelier compile) — turns a recorded trace into a runner-readySKILL.md, zero LLM calls. Derives intent from narration, recovers dataflow binds by matching argument values against prior results, assigns effect classes from a verb heuristic, and — the honest-gaps principle — emits an explicit Open questions list for everything it can't confidently derive, rather than a fabricated check. - L1/L2 escalation ladder with write-back — strictly opt-in (
--max-level 1|2), BYOK against almost any Anthropic- or OpenAI-compatible endpoint. L1 re-evaluates a step's already-captured observation with patched asserts/binds (zero side effects, never re-executes). L2 may patch args and re-executes the step exactly once, and only forread/idempotent-writesteps — a diverged destructive step is never handed to an LLM. Every successful heal writes back to the skill file atomically, with a## Changelogentry, so drift only costs an LLM call once. reelier push— opt-in, fully inert withoutREELIER_CLOUD_URL/REELIER_CLOUD_KEY— syncs a skill's run records (and, on first push, the skill file) to a hosted Reelier Cloud instance, with honest cursor semantics (permanent-reject vs. transient-error handling) so a bad historical record never blocks everything pushed since.reelier init— the 60-second first receipt: guided detect-config -> record (real MCP session, or a zero-setup live demo) -> compile -> replay -> receipt loop, closing with measured replay time and LLM token count (asserted0, never assumed) and a comparison against our own published agent-vs-Reelier benchmark.
The benchmark results (measured, not claimed)
Full raw data and methodology: docs/strategy/reelier-launch/benchmark-results.md, reproducible via examples/benchmark.
- 1,000/1,000 replays byte-identical at N=1000 (tail-variance test against a live npm registry endpoint)
- 0 tokens per replay, verified from the run record on every single replay — never assumed
- ~50x cheaper than a comparable agent run ($0.000000/replay vs. $0.019068/run average)
- ~59x faster (44ms vs. 2,842ms average latency)
- Honestly reported alongside a real grammar gap the benchmark surfaced: the current bind grammar can't express count/filter/enumerate aggregations over a JSON array — tracked as a good-first-issue, not hidden.
What's still missing
No Level 3 (full agentic recovery when a trace no longer applies at all — today that's a human editing the skill by hand). See the README's "Status" section for the complete list.
Get started
npm i -g @seldonframe/reelier && reelier initAGPL-3.0 — the engine can never be taken closed. Your skills, traces, and run records are your data; the license doesn't touch them.