// CONTRACT v1 · オープンソース · APACHE-2.0

あらゆるバグを再現。
あらゆる言語で。
あらゆる環境で。

Vivarium は三層の再現基盤。ミリ秒単位の WebAssembly、忠実度の Docker、そしてそれ以外すべてのための第三のレイヤー。問題が先、技術は後。

vivarium.dev/layer1-wasm/cpython-137205
WASM
VIVARIUM · LAYER 1 · PYODIDE · SQLITE3

python/cpython#137205 を再現

PRAGMA foreign_keys が autocommit=False 下でサイレントに無視される。

✕ UNREPRODUCED|fk_off ≠ fk_on
# repro.pyimport sqlite3def test_fk():conn = sqlite3.connect(':memory:')fk_on = conn.execute('PRAGMA foreign_keys').fetchone()[0]assert fk_on == 1
ElementsConsoleNetworkSourcesエラー 1 件
await pyodide.runPythonAsync(repro)
AssertionError: 0 != 1
at test_fk (repro.py:5)
vivarium.dev/layer2-docker/postgres-lost-update
DOCKER
VIVARIUM · LAYER 2 · DOCKER · POSTGRESQL

READ COMMITTED 下での PostgreSQL lost-update を再現

並行 UPDATE が、SELECT 後に UPDATE するパターンで行ロックを省略すると書き込みを失う。

実行中 — tx-1 ⨯ tx-2
# compose-up.shdocker compose up -dpsql -c "SET TRANSACTION ISOLATION LEVEL READ COMMITTED"parallel ./tx.sh ::= 1 2
container.logtx-1.logtx-2.log実行中
[docker] postgres:15-alpine をプル中
postgres 準備完了 (74ms)
tx-1: UPDATE accounts SET balance = balance + 100
tx-2: UPDATE accounts SET balance = balance - 50
両トランザクションのコミットを待機中…
vivarium.dev/layer1-wasm/ruby-21709
WASM
VIVARIUM · LAYER 1 · RUBY.WASM · UNICODE

ruby/ruby#21709 を再現

NFD 形式の結合ダイアクリティカル記号における String#unicode_normalize のエッジケース。

✓ REPRODUCED — バグ再現
# repro.rbs = "café"nfd = s.unicode_normalize(:nfd)back = nfd.unicode_normalize(:nfc)raise "round-trip lost" unless s == back
ElementsConsoleNetworkSources検証済み
await rubyVm.evalAsync(repro)
round-trip lost (RuntimeError を期待通り raise)
verdict: REPRODUCED — issue#21709 が ruby.wasm で再現可能

// 出荷済み · 2026

11
レシピ公開
4
MCP ツール
6
フェーズクローズ
v1
公開コントラクト

// 三層アーキテクチャ

バグの種類に合うレイヤーを、レシピが選ぶ。

ユーザーがレイヤーを選ぶ必要はない——レシピが自分に合った層を宣言する。三層あるのは、単一のランタイムですべてのバグに届かないから。

L1

ブラウザネイティブ、瞬時起動。

訪問者のタブの中で WebAssembly が直接実行される。アルゴリズム、パーサ、in-memory なデータベース操作。起動はミリ秒〜数秒。

Pyodide · sqlite-wasm · wasm32-wasip1 · Ruby.wasm · PHP.wasm
L2

コンテナで完全忠実度。

本物のファイルシステム、本物のプロセス、本物のネットワーク。ピン留めした Dockerfile と GHCR イメージのカタログ。訪問者は 1 回の `docker run` でローカル再現。

Docker · Firecracker · gVisor
L3

Record-replay と決定論的シミュレーション。

ハイゼンバグ専用。Vivarium が事前にトレースを録音し、訪問者は再生だけ。GHCR イメージに焼き込み、コモディティ Linux で動作——PMU 不要。

rr · Antithesis · CRIU · WASI Preview 3+

// 実物を見る

11 個の本物のアップストリームバグが、ブラウザのタブ 1 枚で動く。

Layer 1 の pandas、numpy、CPython、Ruby、PHP、Rust regex。Layer 2 の PostgreSQL、bash、flock、find/xargs。Layer 3 の coreutils sort race。