Rinzler is a verifiable reinforcement-learning environment, not a static Q/A set, for long-horizon agentic coherence. A model is handed only a written contract and told to run a simulated AI startup as its CEO: hire and assign employees, browse a client market, accept and dispatch tasks, manage cash and prestige, and detect adversarial clients, coherently across a full 1-year horizon. A hidden verifier the model never sees scores the run against a fully simulated, offline business backend, the yc-bench SQLite world. Reward is earned through verified behavior over time, never pattern-matched against a transcript.
Verifiable grading: reward comes from the business state, never a reference transcript
Non-gameable: hidden answer key plus 8 canary tokens per bundle detect leakage
30 Harbor tasks across 5 difficulty tiers, keyed by content-addressed UUID
Adversarial by construction: ~35% RAT clients; scratchpad memory is the hardness lever
02 · Key metrics
Three numbers that define the scope of the Rinzler corpus, generated deterministically from the yc-bench world model.
Harbor Tasks
30
5 tiers · UUID-keyed
Reward-v3 Checkers
13
+ continuous scorers
Canary Tokens
8
per bundle · leak tripwire
03 · Methodology
How the reward is earned. Four principles govern the Rinzler grading contract.
Principle 01
Verifiable, Not Similarity-Based
Reward comes from the business state the agent produced, not a transcript diff
Final and intra-year funds, per-domain prestige, on-time completion, RAT flags
A turn that narrates the right thing but leaves the wrong ledger fails
Principle 02
Non-Gameable
The answer key is bundled only into the verifier, never the agent filesystem
8 canary tokens per bundle make answer-key / context leakage detectable
Both under- and over-flagging RAT clients are penalized (precision-capped F1)
Principle 03
Deterministic & Offline
The whole world is generated from a (config, seed) pair
The task UUID is content-addressed over that material
The yc-bench SQLite sim runs in-container with no network
Principle 04
Measured, Never Declared
Tiers carry no authored probabilities; difficulty is evidence, not a claim
~35% of clients are RATs with scope creep and deadline traps
Memory across context truncation (the scratchpad) is the core hardness lever
04 · Evaluation pipeline
The method
Three phases turn a config-and-seed pair into a scored, reproducible reinforcement-learning signal.
Phase 01
Parametrize & Emit
A config preset plus a world seed fixes employees, clients, and market
yc-bench harbor build hashes it into a content-addressed UUID
Writes instruction.md, the answer-key live_state.json, and 8 canaries
Pre-seeds the offline SQLite world at /work/rinzler.db
Phase 02
Agent Operates the Startup
The agent reads only the contract and drives the yc-bench CLI
accept → assign → dispatch → sim resume, repeated across the year
Flags adversarial clients with rinzler flag-adversarial
Persists strategy with scratchpad across context truncation
Phase 03
Hidden reward-v3 Grading
harbor report extracts a rollout from the final DB state
13 checkers + continuous scorers reduce to a weighted-mean scalar
A separate safety gate: survival ∧ no-canary-leak ∧ no red-line bankruptcy
Writes the scalar reward to reward.txt, the RL signal
05 · Corpus calibration
The 30-task corpus is generated across five declared difficulty tiers, each dialing the same world knobs to a different point on the hardness gradient.
Harder tiers combine tight cash runway, more completed-task pressure, and a shorter window to catch adversarial clients, pushing all constraints simultaneously. Every figure below is a dataset fact read straight from the bundles' own config.toml and answer-key live_state.json; no model rollout or reward is used.
Declared hardness levers, aggregated by tier across all 30 bundles. Difficulty rises left-to-right as the task-completion floor climbs and the adversary-detection window shrinks.
Fig. 1: Completed-task pressure. Mean task_completion_floor per tier, the minimum on-time completions a run must clear. It climbs from 1 (Trivial) to 25 (Expert).
Fig. 2a: Cash runway. Mean starting funds per tier (USD). Harder tiers open with far less headroom before the bankruptcy red line.Fig. 2b: Adversary pressure. Mean rat_detection_turn_window per tier (turns). A shorter window leaves less time to flag adversarial clients, from 200 down to 45.
6TRIVIAL · EASY20.0%
17MEDIUM · CORE BAND56.7%
7HARD · EXPERT23.3%
56.7%Corpus concentrated in the Medium tier (17 / 30)
06 · Dataset Viewer
Total Tasks
30
Tiers
5
Reward Checkers
13
Canary Tokens
8/bundle
Loading...
Task
Seed
Starting Funds
Task Floor
RAT Window
Checkers
07 · Tier span
The softest and hardest declared tiers side by side, mean declared levers per bundle. The span between them is the difficulty gradient the corpus is built to cover.