Skip to content

Add a joint 'clean-and-complete' rate to the aggregate report #35

Description

@bamdadd

Context

The report in src/context_leak/report.py shows mean disclosure-rate and mean utility separately. The README stresses that the headline is the pair — withhold from forbidden recipients while still completing the appropriate flows. A single joint metric makes that explicit: the fraction of scenarios where disclosure-rate == 0 and utility == 1 (a scenario the agent got fully right on both axes).

Deterministic; computed from the existing per-scenario ScoreResults — no new dependency, no model in the loop.

Acceptance criteria

  • AggregateRow (or the report payload) gains a clean_and_complete rate = (#scenarios with disclosure-rate 0 and utility 1) / (#scenarios).
  • Reported with a seeded bootstrap 95% CI over scenarios, consistent with the existing rates.
  • Shown in both render_text and render_json.
  • Pydantic/frozen-dataclass typing preserved; uv run mypy src clean.
  • Tests: compliant → 1.0, naive → 0.0 on the built-in suite; CI keys present in JSON.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions