dev-report 0.1.0

Structured, machine-readable reports for AI-assisted Rust development. Foundation schema of the dev-* verification suite.
Documentation

What it does

dev-report defines the report format every other crate in the dev-* suite emits. AI agents need machine-readable evidence of what passed, what failed, and why. This crate provides that schema.

Why it exists

A test runner that prints colored checkmarks to a TTY is unreadable to an AI agent. The agent needs:

  • A stable, versioned schema
  • Verdicts separated from logs
  • Enough evidence to decide accept / reject / retry / escalate

dev-report is that schema.

Quick start

Add to Cargo.toml:

[dependencies]
dev-report = "0.1"

Build a report:

use dev_report::{Report, Verdict, Severity, CheckResult};

let mut report = Report::new("my-crate", "0.1.0")
    .with_producer("my-harness");

report.push(CheckResult::pass("compile"));
report.push(CheckResult::pass("test::unit").with_duration_ms(42));
report.push(
    CheckResult::fail("test::round_trip", Severity::Error)
        .with_detail("expected 42, got 41")
);

report.finish();

let verdict = report.overall_verdict();   // Verdict::Fail
let json = report.to_json().unwrap();     // ready to write to disk or stdout

Verdict rules

Computed by Report::overall_verdict():

Condition Overall verdict
Any check is Fail Fail
Else any check is Warn Warn
Else any check is Pass Pass
Else (all Skip or empty) Skip

The dev-* suite

dev-report is the foundation. The other crates produce reports in this schema:

Status

Pre-release. The schema MAY change between 0.x versions. The 1.0 release will pin the schema and follow strict semver.

License

Apache-2.0. See LICENSE.