Skip to content

chore: migrate execution dataclasses to Pydantic — 24 classes, -218 LOC (AC-489, AC-481)#597

Merged
jayscambler merged 4 commits intomainfrom
chore/pydantic-migration-execution
Apr 1, 2026
Merged

chore: migrate execution dataclasses to Pydantic — 24 classes, -218 LOC (AC-489, AC-481)#597
jayscambler merged 4 commits intomainfrom
chore/pydantic-migration-execution

Conversation

@jayscambler
Copy link
Copy Markdown
Contributor

Summary

Migrated 24 execution module dataclasses to Pydantic BaseModel, continuing the batch from analytics (#594), knowledge (#595), and harness (#596). -218 LOC net.

Changes

9 files, 24 classes:

File Classes
objective_verification.py GroundTruthItem, ItemMatchDetail, ObjectiveVerificationConfig, OracleComparison, OracleResult
verification_dataset.py DatasetProvenance, OracleRevisionFeedback, VerificationDataset, VerificationRunRecord
rubric_calibration.py AlignmentResult, AlignmentTolerance, CalibrationAnchor, CalibrationReport, CalibrationSet, JudgeVarianceResult
phased_execution.py PhaseResult, PhasedExecutionResult
agent_task_evolution.py AgentTaskGenerationState, AgentTaskTrajectory
bias_probes.py BiasProbeResult, BiasReport
trajectory_harness.py TrajectoryComparison
evaluator_guardrail.py EvaluatorGuardrailResult
judge.py DisagreementMetrics

Special case

PhasedExecutionResult.to_dict kept custom — wraps model_dump() and adds computed properties (all_completed, failed_phase, completed_phases).

TDD

Added test_serde_conventions.py:

  • Overall manual serde budget (≤135)
  • Execution module enforcement (zero manual serde except allowed exception)

Verification

  • ruff check src — all checks passed
  • mypy src — zero errors
  • pytest tests/ — all tests pass

Issues

Continues AC-489 and AC-481

…C-481)

Converted 24 dataclasses across 9 execution files from @DataClass to
Pydantic BaseModel. Eliminates ~316 lines of to_dict/from_dict boilerplate.

Files: objective_verification.py, verification_dataset.py,
rubric_calibration.py, phased_execution.py, agent_task_evolution.py,
bias_probes.py, trajectory_harness.py, evaluator_guardrail.py, judge.py

Special case: PhasedExecutionResult.to_dict kept custom (wraps
model_dump + adds computed properties: all_completed, failed_phase,
completed_phases).

TDD: Added test_serde_conventions.py with budget test (manual serde
methods ≤ 135) and execution module enforcement test.

Fixed 4 test files: positional → keyword construction.

12 files changed, 226 insertions, 444 deletions (-218 net)
@jayscambler jayscambler merged commit a218915 into main Apr 1, 2026
4 checks passed
@jayscambler jayscambler deleted the chore/pydantic-migration-execution branch April 1, 2026 15:34
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