Introduce a canonical SciDEX capsule manifest for analyses and registered artifacts. The manifest should describe code revision, environment lock, runtime image digest, input artifacts, output artifacts, command entrypoints, checksums, and verification status in a machine-readable form that can be versioned and compared over time.
This is the core contract that later execution, export, and credit systems depend on.
repro_capsule.json schema inspired by OCI digests, RO-Crate metadata, and Code Ocean-style capsule semantics.docs/planning/specs/quest_reproducible_analysis_capsules_spec.mddocs/planning/specs/a17-18-VERS0001_version_tracking_schema_spec.mdad284a00-a73c-44bc-aaee-e902586bd313 — git-backed artifact catalogc98d7e1e-cf0a-4807-a7bc-291855141d3a — runtime capture and verification3ac441ed-e3fc-494e-96b9-c0df1f415881 — RO-Crate exportrepro_capsule_schema.json — formal JSON schema for reproducibility capsule manifestscapsule_validator.py — validation helper modulevalidate_manifest() — validates manifests against the JSON schemavalidate_environment_digest() — computes deterministic SHA256 for environmentsvalidate_capsule_creation_params() — validates params before capsule creationgenerate_example_manifest() — generates example capsules for testingbackfill_capsule_example.py — backfill reference scriptexample_capsule_manifest.json
example_capsule_manifest.json — reference capsule manifestResult: PARTIAL
Verified by: claude-haiku-4-5 via task 65ac9e7d-eb54-4243-818c-2193162a6c45
capsule_validator.py to scidex/forge/ but left repro_capsule_schema.json at repo rootscidex/forge/capsule_validator.py:_SCHEMA_PATH = Path(__file__).parent / "repro_capsule_schema.json" resolves to scidex/forge/repro_capsule_schema.json which didn't existscidex/forge/repro_capsule_schema.json and committed (a08257b80)validate_manifest() works correctly, returns (True, [])The current passing state is produced by:
173489e86 — Original Forge commit: repro_capsule schema, validator, backfill example75f3726af — Senate package refactor (introduced schema path bug)a08257b80 — Fix: move schema to forge package [task:65ac9e7d]scripts/archive/oneoff_scripts/backfill_capsule_example.py) was archived by the Senate code health sweep but remains on maincapsule_validator.py is a backward-compat shim that delegates to scidex.forge.capsule_validator{
"requirements": {
"coding": 7,
"reasoning": 7,
"analysis": 6,
"safety": 8
},
"_stall_skip_providers": [],
"_stall_requeued_by": "max_outlook",
"_stall_requeued_at": "2026-04-12 10:01:40",
"completion_shas": [
"4a2635d985eb0e17fccbaa138b1b607d15835d6e",
"972ba6e4199d658960ea95582c818c38a6d55e2d",
"5738a7c9986e6f3bd6823ee9e904846a4660afdb",
"006b4bad5bb8e6b00d01d96e72888bb87a06a9dd",
"8738d4e291704ef2bf53f6407986ad82f7dfb802",
"885c8ad7a80df6048b3b346e231d9ac082b93078",
"ce2a89fe943a2f8123d8395d8439b5a5d4b674ed",
"46f6280b39f4d546c60588c3451647062088512d",
"173489e8699d16c503f7f9597ce83109abd1d8ac"
],
"completion_shas_checked_at": "2026-04-16T10:09:25.879484+00:00",
"completion_shas_missing": [
"006b4bad5bb8e6b00d01d96e72888bb87a06a9dd",
"8738d4e291704ef2bf53f6407986ad82f7dfb802",
"885c8ad7a80df6048b3b346e231d9ac082b93078",
"ce2a89fe943a2f8123d8395d8439b5a5d4b674ed",
"46f6280b39f4d546c60588c3451647062088512d",
"173489e8699d16c503f7f9597ce83109abd1d8ac",
"5e719a4afb3579246c0b3fcb7fb214732b9c5e01",
"4a85d9935db38d3fffbdf52734d6a0e86532fbce",
"505b04ffc11b00900820c605442452abfaa2f413",
"4cb42bdbe116f6ce2698fee7cbf35c50a1c1c140"
],
"_stall_skip_at": {},
"_stall_skip_pruned_at": "2026-04-14T10:37:14.022390+00:00"
}