Verification Reports¶
The automated CI pipeline relies on a structured JSON schema for reporting verification results, eliminating brittle log-parsing logic.
Unified Verification Model¶
All testing suites (e.g., fuzzing, performance, live drift detection) must output a structured JSON file matching the VerificationReport model defined in imednet.models.verification.
The central model requires:
- version: The schema version (e.g., "1.0").
- track: The verification track (e.g., "fuzzing", "performance", "validation", "live_tests", "drift").
- status: Pass or fail outcome.
- violations: A list of specific errors or rule violations (using VerificationViolation).
- metrics: An optional list of performance metrics (using VerificationPerformanceMetric).
- summary: A human-readable summary.
Extending the Report Schema¶
If you need to add a new verification type, extend the Literal for the track field in VerificationReport inside packages/core/src/imednet/models/verification.py.
To add new fields or structures specific to your testing, use the standard Pydantic inheritance patterns or add optional fields to the existing models.
Writing Reports in CI¶
Your testing suite should generate a JSON file matching *_report.json in the workspace directory (e.g., fuzzing_report.json).
The CI pipeline uses scripts/aggregate_verification.py to aggregate all *_report.json files, validate them against the schema, and automatically construct human-readable PR comments or fail the job if a report is malformed or violations are found.