beads-combined-cycles-v1
A self-contained Verifiers v1 repository-editing environment based on Beads
immediately before the combined scheduling-cycle fix. The model edits
/testbed; hidden Go tests are installed only after the rollout. The image
contains a single synthetic Git base commit and no upstream refs/history, so
the answer commit cannot be discovered through local Git metadata.
No model provider, paid API, or external database is used by the reward. The only remote call during a rollout is the coding harness calling the model being evaluated. All scoring uses Go tests and an in-process embedded Dolt database.
Task and reward
Version 0.5.0 exposes one complete cross-layer task. The prompt explicitly requires the model to finish the shared graph rule, storage paths, domain policy, bulk insertion, and graph apply rather than treating any one package as a standalone curriculum exercise.
The scalar reward is the sum of four deterministic binary components worth 0.25 each:
domain_policy: hierarchy protection, mixed cycles, and error precedence through the domain/SQLite path.embedded_storage: end-to-end combined-graph behavior through embedded Dolt.bulk_add: parent-first insertion, final cycle validation, and rollback.graph_apply: final merged checking, implicit parents, and atomic rollback.
These are partial outcomes within the same task, not independent tasks. A model can receive useful credit for a correct layer, but only a score of 1.0 means the complete repository behavior is fixed. No LLM judge is used.
Local verification
docker build -t beads-combined-cycles:local .
uv venv
uv pip install -e .
uv run validate beads-combined-cycles-v1 \
--runtime.type docker \
--taskset.image beads-combined-cycles:local \
--rich false
The validation command is model-free: it applies the private reference patch and requires all four reward components to pass on the one task.
Publish privately
prime images push beads-combined-cycles:v0.2.0 --private
prime env push --visibility PRIVATE
After publishing, configs/eval-prime.toml runs one 150-turn Qwen pilot. Run
three pilots before committing to ten, because the target 10-30% pass rate must
be measured rather than inferred from the PR size.