• 日本語
  • // 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 · ENCODING

    ruby/ruby#21709 を再現

    String の式展開が黙って昇格させるエンコーディングの混在を、Regexp の式展開は拒否する。

    ✓ REPRODUCED — バグ再現
    # repro.rbprefix = '\p{In_Arabic}'suffix = prefix.encode('US-ASCII')re = /#{prefix}#{suffix}/str = "#{prefix}#{suffix}"
    ElementsConsoleNetworkSources検証済み
    ›await rubyVm.evalAsync(repro)
    ✓Regexp は RegexpError を raise、String は UTF-8 で構築
    verdict: REPRODUCED — issue#21709 が ruby.wasm で再現可能

    // 出荷済み · 2026

    10
    レシピ公開
    12
    MCP ツール
    8
    フェーズクローズ
    v1
    公開コントラクト

    // 三層アーキテクチャ

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

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

    L1

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

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

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

    コンテナで完全忠実度。

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

    Docker · Firecracker · gVisor
    L3

    L1 と L2 が届かないもの。

    ハイゼンバグ、race、タイムトラベルデバッグ。まだレシピは無い——普通のマシンの読み手が自分で再現して確かめられる runtime だけがここに入れる。

    Antithesis · CRIU · WASI Preview 3+

    // 実物を見る

    10 個の本物のアップストリームバグを、適したレイヤーで再現する。

    Layer 1 はブラウザ内 WASM、Layer 2 は Docker 再現、Layer 3 はそのどちらでも届かないもののための枠。