Reproduce

Camera-free reproduction from the exact archived tag.

This core workflow checks Metriplane v0.2.0 through replay, domain-pack validation, an observe-only Atlas run, bundle verification, and a generated regression check. It uses temporary output paths and does not overwrite the archived author-run evidence in evidence/paper_v2_0/.

Release tag: v0.2.0 Tag commit: 8e35ed5bb20837f7dc46354777407b848d7ce17a Evidence capture commit: 44bed6d85786675c5581154f588a7ad2529c85d6 Archived author-run evidence: evidence/paper_v2_0/ Fresh replay output: /tmp/metriplane-softwarex-runs Fresh Atlas output: /tmp/metriplane-softwarex-atlas Camera required: no

Preflight

Confirm the shell and start clean.

uname -a
cat /etc/os-release

Stop if the environment is wrong

Continue only if the output identifies Linux or WSL2 Ubuntu.

Use a clean run

Start in a clean parent directory. Remove or confirm the absence of /tmp/metriplane-softwarex-runs and /tmp/metriplane-softwarex-atlas.

Stop on failure

Stop after any failed command. Do not verify files left by an earlier run.

Detached HEAD is expected

Cloning the exact release tag produces a detached HEAD; that is expected for this review workflow.

Core workflow

Run the exact v0.2.0 reproduction path.

The core path is camera-free, replay-based, and observe-only. It does not require Playwright, Chromium, Docker, ROS 2, or a camera.

git clone --branch v0.2.0 --depth 1 \
  https://github.com/Miko997/metriplane.git
cd metriplane

python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e .

python -m metriplane.cli doctor

RUNS=/tmp/metriplane-softwarex-runs \
  ./tools/mp.sh deterministic-replay datasets/demo/session_001.jsonl

metriplane atlas validate-pack configs/domain_packs/assembly_cell

metriplane atlas run \
  --session-jsonl datasets/demo/atlas/assembly_cell_missing_tool.jsonl \
  --pack configs/domain_packs/assembly_cell \
  --out /tmp/metriplane-softwarex-atlas \
  --overwrite

metriplane atlas bundle verify \
  /tmp/metriplane-softwarex-atlas/evidence_bundles/INC-0001.zip

metriplane atlas test \
  /tmp/metriplane-softwarex-atlas/regression_tests/INC-0001.yaml \
  --json

The final command is the generated regression check. Its technical command remains metriplane atlas test.

Expected core results

Compare the fresh run with these values.

These are the core reproduction results. The archived author-run 580 passed maintainer-gate result is intentionally separate.

  • doctor: passes with at most non-blocking warnings
  • deterministic replay: pass=true
  • frames: 24
  • object pairs: 72
  • mean position difference: 0.0 cm
  • maximum position difference: 0.0 cm
  • event mismatches: 0
  • domain-pack validation: PASS
  • physical events: 6
  • process deviations: 1
  • incidents: 1
  • incident: INC-0001
  • bundle verification: pass=true
  • generated regression check: pass=true
  • generated check identifier: missing_tool_caused_delay_INC-0001

Evidence locations

Archived evidence is inspected; fresh output stays temporary.

Archived author-run evidence

evidence/paper_v2_0/ is a captured package for inspection. Do not write a fresh rerun into it.

Fresh replay output

/tmp/metriplane-softwarex-runs

Fresh Atlas output

/tmp/metriplane-softwarex-atlas

Optional

Optional full maintainer gate

This gate is not part of the core reproduction path. It requires additional browser and system dependencies.

580 passed is archived author-run release evidence. The public independent macOS run recorded 575 passed, 3 skipped, 2 failed. The independent core workflow still passed, but the public full suite must not be described as a complete pass.

python -m pip install -e .
python -m pip install pytest playwright
python -m playwright install chromium --with-deps
PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 python -m pytest -q

Issue #6

What to paste after a run.

A useful reproduction comment includes the environment, each core command result, and any divergence from the expected values.

OS / WSL2:
Python:
Release tag:
doctor:
deterministic replay:
domain-pack validation:
Atlas run:
bundle verification:
generated regression check:
Notes or errors:

Next step

Run the exact tag, then leave a trace.

A concise reproduction note with exact outputs is useful whether the workflow passes or stops at a failed command.