Skip to content

JUnit and Cobertura are formats evidence is imported from and exported to; the tracked ledger stays the only store

JUnit and Cobertura are formats evidence is imported from and exported to; the tracked ledger stays the only store

majordomus://adr/adr-0189proposed enforcement-evidencechatgpt-project

it references

  • put_in_force apps/majordomus-cli/src/evidence (file)
  • put_in_force adr-0041
  • put_in_force adr-0068
  • put_in_force adr-0087
  • put_in_force a-claim-stands-only-on-its-evidence (intent)
  • put_in_force I3124
  • put_in_force I3125
  • put_in_force not-run-on-master-means-the-ledger-lacks-ci-runs (knowledge)

referenced by

Nothing in the layer names it. Backlinks are derived, so an empty list is an answer rather than an omission.

189. JUnit and Cobertura are formats evidence is imported from and exported to; the tracked ledger stays the only store

Context

ADR 0041 rejected a JUnit XML pipeline as the evidence store, because proof is a recorded execution in the repository. The owner later asked for JUnit/Cobertura as derived formats, so that foreign projects can bring the results they already have, non-invasively.

Decision

An importer normalises JUnit (and later LCOV and Cobertura) into ledger executions with commit and tree state, and an exporter may render the ledger as JUnit. Neither format is ever read as current proof without import. A foreign repository defaults to Observe: discover and import, never instrument.

Alternatives rejected

  • JUnit as the canonical store (ADR 0041)
  • A new EvidenceProvider trait or plugin registry beside the evidence module (no new nouns)

Consequences

Adopters get evidence without changing their CI. Imported executions are as weak as their source: no tree state means unknown, never clean.

Sources

Promoted on 2026-10-18 from the owner's ChatGPT project (workspace chatgpt-majordomus, issue I3100). The owner has not accepted it; it is proposed for the owner's decision.

  • chatgpt-majordomus:c246#2
  • chatgpt-majordomus:c246#4
  • chatgpt-majordomus:c246#0
  • chatgpt-majordomus:c246#3
  • chatgpt-majordomus:c246#7

Where this comes from

canonical file
.ai/repo/adrs/0189-junit-and-cobertura-are-formats-evidence-is-imported-from-and-ex.md
identity
adr-0189
also served as
MCP resource majordomus://adr/adr-0189 · majordomus entity show adr/adr-0189 · GET /api/v1/entity?uri=majordomus://adr/adr-0189
in the Cockpit
/cockpit/objects/adr/adr-0189

This page is generated from the file above by scripts/generate-site-data; editing the page changes nothing, editing the file changes every surface. The relations above are edges of docs/generated/graph.json, which the executable writes from the same index.

Searches the titles and descriptions of every page this site publishes.