Artifact Schemas¶
WorldForge artifacts are JSON-native records that may leave one process: run manifests, evidence bundles, scenarios, benchmark inputs, report metadata, world diffs, and similar files. Each public or semi-public artifact family needs an owner, a version field, validation coverage, and a migration decision before the schema changes.
Private temp files, cache internals, checkpoint files, downloaded datasets, and local-only unsafe artifacts are not part of this compatibility map. They must still stay out of public bundles unless another documented contract marks them safe to attach.
Ownership Map¶
| Artifact family | Version field | Owner and source | Validation surface | Docs and CLI surface | Migration owner |
|---|---|---|---|---|---|
| Run manifests | schema_version via RUN_MANIFEST_SCHEMA_VERSION |
src/worldforge/smoke/run_manifest.py |
tests/test_smoke_run_manifest.py, optional smoke tests |
--run-manifest, Live Smoke Evidence Registry |
Optional runtime and smoke owner |
| Run workspaces | schema_version via RUN_WORKSPACE_SCHEMA_VERSION |
src/worldforge/harness/workspace.py |
tests/test_harness_workspace.py, tests/test_harness_flows.py |
worldforge runs ..., Run Artifact Index |
Harness workspace owner |
| Run index reports | schema_version via RUN_INDEX_SCHEMA_VERSION |
src/worldforge/harness/run_index.py |
tests/test_run_index.py |
worldforge runs index, Run Artifact Index |
Harness workspace owner |
| Run prune reports | schema_version via RUNS_PRUNE_SCHEMA_VERSION |
src/worldforge/runs_prune.py |
tests/test_runs_prune.py |
worldforge runs prune, Run Artifact Index |
Harness workspace owner |
| Evidence bundles and issue bundles | schema_version via EVIDENCE_BUNDLE_SCHEMA_VERSION |
src/worldforge/evidence_bundle.py |
tests/test_evidence_bundle.py, tests/test_redaction_corpus.py |
worldforge runs bundle, Artifact Integrity |
Evidence owner |
| Release evidence JSON | schema_version literal 1 |
scripts/generate_release_evidence.py |
tests/test_release_evidence.py |
scripts/generate_release_evidence.py, Artifact Integrity |
Release owner |
| Dependency audit evidence | schema_version via DEPENDENCY_AUDIT_EVIDENCE_SCHEMA_VERSION |
scripts/generate_dependency_audit_evidence.py |
tests/test_dependency_audit_evidence.py |
scripts/generate_dependency_audit_evidence.py, Artifact Integrity |
Release owner |
| Quality dashboard artifact | schema_version via QUALITY_DASHBOARD_SCHEMA_VERSION |
scripts/generate_quality_dashboard.py |
tests/test_quality_dashboard.py |
scripts/generate_quality_dashboard.py, Artifact Integrity |
Release owner |
| Benchmark inputs and budgets | schema_version in fixture payloads |
src/worldforge/benchmark_inputs.py, src/worldforge/benchmark_budgets.py, src/worldforge/benchmark.py |
tests/test_benchmark.py, tests/test_benchmark_presets.py |
worldforge benchmark --input-file, Benchmarking |
Benchmark owner |
| Benchmark calibration reports | schema_version via BENCHMARK_CALIBRATION_SCHEMA_VERSION |
src/worldforge/benchmark_calibration.py |
tests/test_benchmark_budget_calibration.py |
scripts/calibrate_benchmark_budgets.py, Benchmarking |
Benchmark owner |
| Evaluation reports and provenance | schema_version via PROVENANCE_SCHEMA_VERSION |
src/worldforge/provenance.py, src/worldforge/evaluation/report.py |
tests/test_evaluation_suites.py, tests/test_provenance.py |
worldforge eval, Evaluation |
Evaluation owner |
| Dataset manifests | schema_version via DATASET_MANIFEST_SCHEMA_VERSION |
src/worldforge/dataset_manifests.py |
tests/test_evaluation_suites.py, tests/test_evidence_bundle.py |
worldforge eval --dataset-manifest, Evaluation |
Evaluation owner |
| Evaluation failure galleries | schema_version via EVALUATION_FAILURE_GALLERY_SCHEMA_VERSION |
src/worldforge/evaluation/failure_gallery.py |
tests/test_evaluation_failure_gallery.py |
Evaluation | Evaluation owner |
| Capability fixture corpus | schema_version via FIXTURE_SCHEMA_VERSION |
src/worldforge/testing/capability_fixtures.py |
tests/test_capability_fixtures.py |
Capability Fixture Corpus | Testing owner |
| Fixture snapshot manifests | schema_version via FIXTURE_SNAPSHOT_MANIFEST_SCHEMA_VERSION |
src/worldforge/testing/fixture_snapshots.py and tests/fixtures/fixture-snapshots.json |
tests/test_capability_fixtures.py |
scripts/manage_fixture_snapshots.py, Capability Fixture Corpus |
Testing owner |
| Provider runtime manifests | schema_version via MANIFEST_SCHEMA_VERSION |
src/worldforge/providers/runtime_manifest.py and src/worldforge/providers/runtime_manifests/*.json |
tests/test_provider_runtime_manifests.py |
generated provider docs, Provider Authoring Guide | Provider owner |
| Runtime asset manifests and references | schema_version via RUNTIME_ASSET_MANIFEST_SCHEMA_VERSION |
src/worldforge/providers/runtime_manifest.py, src/worldforge/smoke/runtime_assets.py |
tests/test_runtime_profiles.py, tests/test_robotics_showcase.py |
run_manifest.runtime_assets, Operations |
Optional runtime and smoke owner |
| Non-secret configuration profiles | schema_version via CONFIG_PROFILE_SCHEMA_VERSION |
src/worldforge/config_profiles.py |
tests/test_provider_config.py, tests/test_harness_workspace.py |
worldforge eval --profile, worldforge benchmark --profile, Operations |
Operations and provider owner |
| Provider contract evidence | schema_version via PROVIDER_CONTRACT_EVIDENCE_SCHEMA_VERSION |
src/worldforge/provider_contracts.py |
tests/test_provider_contracts.py, tests/test_provider_entry_points.py |
worldforge provider contract, Provider Authoring Guide, External Provider Packages |
Provider owner |
| Capability negotiation reports | schema_version via CAPABILITY_NEGOTIATION_SCHEMA_VERSION |
src/worldforge/capability_negotiation.py |
tests/test_capability_negotiation.py |
worldforge negotiate, Capability Negotiation |
Provider diagnostics owner |
| Workflow trace artifacts | schema_version via WORKFLOW_TRACE_SCHEMA_VERSION |
src/worldforge/workflow_trace.py |
tests/test_provider_events.py, tests/test_evaluation_and_planning.py, tests/test_rerun_integration.py |
Plan metadata, evaluation artifacts, Rerun artifact logging, Operations | Observability and artifact owner |
| Static HTML report metadata | schema_version via HTML_REPORT_SCHEMA_VERSION |
src/worldforge/html_report.py |
tests/test_html_report.py |
--format html, Static HTML Reports |
Report rendering owner |
| Live smoke evidence registry | schema_version via LIVE_SMOKE_EVIDENCE_SCHEMA_VERSION |
src/worldforge/live_smoke_evidence.py, docs/src/live-smoke-evidence.json |
tests/test_live_smoke_evidence.py |
Live Smoke Evidence Registry | Optional runtime and smoke owner |
| Capability-specific replay artifacts | family-specific schema_version constants |
src/worldforge/harness/flows.py |
tests/test_cosmos_policy_provider.py, tests/test_harness_flows.py |
Robotics Replay Showcase | Harness and robotics owner |
Change Rules¶
Use the smallest compatible change that keeps older artifacts honest.
| Change type | Required action |
|---|---|
| Additive optional field | Keep the existing schema version if old readers ignore the field safely. Add tests proving absent and present field behavior. Mention the field in the owning docs when users may see it. |
| Additive required field | Bump the schema version or provide a compatibility default that is explicit in code and tests. Add a changelog entry if existing user-authored artifacts need action. |
| Breaking rename, removal, or type change | Bump the schema version, reject unsupported old versions loudly unless a reader migration exists, update this page, update the owning docs, and add changelog migration notes. |
| Renderer-only layout change | Do not bump the source artifact schema if JSON payload semantics are unchanged. Update renderer tests and docs screenshots/examples only when user-visible behavior changes. |
| Private implementation metadata | Keep it out of public artifacts when practical. If it must appear in a public JSON record, document whether it is stable, provisional, or local-only. |
| Security or redaction fix | Prefer immediate strict rejection or redaction over backward compatibility. State the unsafe old behavior, migration or recovery command, and validation coverage in the PR and changelog. |
All public or semi-public artifacts must keep string keys, finite numbers, lists, objects, booleans, strings, and nulls only. Do not serialize tuples, object instances, exceptions, raw tensors, credentials, signed URL query strings, private endpoints, checkpoint contents, or host-local cache payloads into attachable artifacts.
Migration Decisions¶
Every artifact PR should answer these questions before merge:
- Is the artifact public, semi-public, local-only, or private?
- Which module owns the writer and reader?
- What is the current
schema_version, and does this change require a bump? - If old artifacts remain readable, which test proves that compatibility?
- If old artifacts are rejected, what exact error and recovery path does the user see?
- Do docs and the changelog explain the migration when user-authored files are affected?
- Are unsafe fields excluded or marked local-only before issue, release, HTML, Rerun, or metrics rendering?
Acceptable Compatibility Patterns¶
- A reader accepts an older additive version and fills a clearly documented default before validation.
- A renderer ignores unknown optional keys while preserving the original JSON in the raw artifact.
- A migration preview command reports required changes without rewriting the user's file by default.
- A no-migration decision rejects unsupported versions with a
WorldStateError,WorldForgeError, orProviderErrorthat names the artifact family, version, owner, and first triage command.
Do not silently coerce invalid persisted state, provider output, or security-sensitive artifact fields to keep an old artifact loading.