Skip to content

v0.7.0

Choose a tag to compare

@trevhud trevhud released this 30 Jul 04:18
bbe4577

Added

  • Two production-shaped examples alongside BDR, each adapted from a
    real production skill with all identifiers fictionalized:
    examples/ops-report/ (the 100%-roteness archetype — every step
    deterministic, one durable HITL gate, zero LLM nodes; the fixture for
    the python adapter's durable-execution refusal) and
    examples/deal-monitor/ (the data-heavy archetype — parallel entry
    waves, fan-out judges, template render replacing LLM-generated HTML;
    the calibration fixture for the payload-aware estimator).
    tests/test_examples.py guards every example's expected IR, including
    that its source_skill pointer resolves.
  • Payload-aware "before" cost estimator — the static scorecard now
    models the data a skill pulls into context, not just its turn count.
    The compiled pipeline's external_call footprint sizes the agent-side
    context payload (tokens_per_external_call_result, default 6k/call,
    with a per-MCP-tool override table payload_tokens_per_tool), folded
    into C₀ of the cache-aware transcript model. Calibrated against a real
    data-heavy production skill (Slack + Gmail dashboard, ~22 turns,
    ~1.6M cache-read tokens/run): the old flat prior underestimated the
    before-cost 5–15×; the payload-aware default lands within ~3×, and one
    eval --run calibration brings it within ~10%.
  • rote eval --run's suggested prior re-fits now include
    transcript_growth_per_turn, inverted from measured cache-read tokens
    under the quadratic transcript model — so every empirical run reports
    the effective payload-inclusive growth rate alongside
    seconds_per_turn and output_tokens_per_turn.
  • CodexDriver is now implementedrote compile --agent codex
    spawns codex exec (OpenAI Codex CLI) as a compiler backend,
    completing the three-driver lineup. Runs headless under a
    workspace-write sandbox (global reads so it can read the skill +
    rubric in place, writes confined to the work dir, no network). The
    environment is passed through untouched — a stored codex login
    session is only overridden by CODEX_API_KEY/CODEX_ACCESS_TOKEN,
    not OPENAI_API_KEY, and there is no separate OpenAI-API driver, so
    no auth is forced. Verified against the real CLI (codex-cli 0.142.4).
  • rote analyze is now implemented — the plan to compile's
    apply. Runs the compiler against a skill and prints a structural
    report (node-kind breakdown, roteness — matching rote eval — plus
    mandatory checks, HITL gates, agent loops, and which runtimes can
    target it) without emitting runtime code. --json for a
    machine-readable report; --out keeps the compiled IR for a later
    rote emit. Previously a stub that printed "not yet implemented".

Changed

  • source_skill no longer participates in the pipeline hash — it's
    provenance (a filesystem path the compiler re-points per output
    location), and hashing it minted a new workflow type on every
    re-compilation to a different directory, re-versioning in-flight
    workflows whose behavior didn't change. Same rule as Node.source,
    which was already excluded. One-time consequence: every pipeline's
    hash (and therefore emitted workflow type name) changes once with this
    release; in-flight workflows on the old type names continue on old
    code as designed.

Fixed

  • The codex driver no longer raises NotImplementedError when
    selected via --agent codex or chosen by auto-detect (a first-run
    crash for users who had the Codex CLI but not Claude Code installed).
  • The BDR example's committed IR baseline carried the same dead
    source_skill pointer the orchestrator fix addresses
    (../../skill resolved to a nonexistent examples/skill), so
    rote eval on the canonical example silently dropped its before-side
    baseline. Corrected to ../skill; now regression-guarded for every
    example.
  • rote compile/rote analyze --out now re-point the pipeline's
    source_skill to resolve from the emitted pipeline.yaml's location
    (relative when possible, absolute otherwise). The agent records the
    path relative to its temp work dir — deleted when the run ends — so
    every kept compilation carried a dead pointer and a later rote eval
    silently dropped the entire before-side baseline ("source_skill did
    not resolve — emitting the after-side only"). Found by compiling a
    real production skill.