Skip to content

ci: measure branch coverage and enforce 90% line coverage #1104

Description

@doublewhy

Gap Claim

Canonical verification records only statement coverage, enforces a 50% aggregate floor, and omits repository-owned Python entry points such as Nox and the Hatch build hook. The gate therefore does not represent the repository’s 90% line-coverage policy and provides no branch-coverage visibility.

Scope

OpenRAE implementation and repository tooling only. This is repository verification governance under ADR-014, not an implementation of ASR-505.

Chosen Architecture

Adopt ADR-103. Use Coverage.py as the authority for statement, exclusion, and branch semantics; measure shipped packages and repository-owned Python tooling; combine unit and integration data; enforce a fixed 90% aggregate line-coverage floor; and publish canonical XML and JSON reports containing branch data.

Do not add a manual ratchet, blanket 100% changed-code requirement, custom semantic diff checker, or adversarial hardening for repository-mutable policy. The threat model remains the accidental-regression boundary established by ADR-015.

Verification Plan

Test the branch-aware repository scope, canonical XML/JSON report commands, and the fixed line-only threshold. Run the canonical completion and repository-policy gates and verify the hosted Sonar quality gate.

Superseded Approach

PR #1139 established useful evidence for branch measurement and report scope, but its manual ratchet, 100% changed-code policy, and mutable-policy hardening are replaced by this narrower architecture.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions