Skip to content

[codex] Fix force overwrite sidecar contract#159

Merged
DavidJBianco merged 1 commit into
devfrom
codex/force-swap-ground-truth-contract
May 15, 2026
Merged

[codex] Fix force overwrite sidecar contract#159
DavidJBianco merged 1 commit into
devfrom
codex/force-swap-ground-truth-contract

Conversation

@DavidJBianco
Copy link
Copy Markdown
Collaborator

Summary

  • Make every successful generation emit the complete sidecar set: data/, GROUND_TRUTH.md, and OBSERVATION_MANIFEST.json.
  • Keep the eforge generate --force transactional swap strict, now requiring staged data, ground truth, and observation manifest before replacing old output.
  • Clean up empty baseline-only ground truth IOC rendering and update docs/skill references to reflect that ground truth is generated for every run.

Why

Prior fixes protected the swap by requiring staged GROUND_TRUTH.md, but baseline-only generations could still skip ground truth entirely. That made successful generation fail during overwrite. The root contract is now explicit: successful generation always produces matched data and sidecars, so the swap can stay strict instead of accepting partial output.

Validation

  • uv run pytest tests/unit/test_engine.py tests/unit/test_cli.py tests/unit/test_ground_truth.py tests/unit/test_observation_manifest.py --no-cov: 112 passed
  • uv run eforge validate-config: passed with 0 errors, 0 warnings
  • uv run ruff check .: passed
  • uv run ruff format --check .: passed
  • uv run pytest -v: 3051 passed, 15 skipped

Slow tests were not run.

@DavidJBianco DavidJBianco merged commit 9a0fb38 into dev May 15, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant