Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

I3124 — A JUnit XML report a repository already produces is imported into the evidence ledger, and nothing in that repository changes

Add an importer (majordomus evidence import --junit <file>) that normalises test cases into ledger executions with suite, case, outcome, duration, commit and tree state. Malformed XML, duplicate imports, missing artifacts and a stale revision are typed refusals. For a foreign repository this is the default Observe mode: discover and import, never instrument.

PŘIPRAVENO vlna 1 · p2 · profil implementation · bezpečné paralelně

Part of a-claim-stands-only-on-its-evidence — A claim that something is enforced, tested or delivered stands only on recorded evidence that would have caught it being false.

Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3124 bude přijato.

Cíl

Add an importer (majordomus evidence import --junit <file>) that normalises test cases into ledger executions with suite, case, outcome, duration, commit and tree state. Malformed XML, duplicate imports, missing artifacts and a stale revision are typed refusals. For a foreign repository this is the default Observe mode: discover and import, never instrument.

Proč

On 2026-10-13 (c246#0, #3) the owner asked for derived JUnit/Cobertura and for non-invasive integration. A second adopter (TypeScript, Vitest) cannot bring its results today. ADR 0041 rejected JUnit as the store; as an import format it does not contradict that decision (see the ADR proposal). It extends milestone test-evidence. Proposed in ADR 0189 (JUnit and Cobertura are formats evidence is imported from and exported to; the tracked ledger stays the only store) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c246#0, chatgpt-majordomus:c246#3, chatgpt-majordomus:c246#4, chatgpt-majordomus:c246#7.

Aktuální stav

Only this repository's runners reach the ledger (I1954 BLOCKED, I2786 READY). No importer exists.

Cílový stav

A Vitest or cargo-nextest JUnit file from a fixture repository becomes ledger executions that claims can cite.

Rozsah

  • apps/majordomus-cli/src/evidence
  • apps/majordomus-cli/src/commands/evidence.rs
  • docs/EVIDENCE.md

Mimo rozsah

  • Cucumber, LCOV and Cobertura (I3125)
  • Running tests

Závislosti

Co na tom čeká

Kritéria přijetí

  • A valid report imports deterministically and a second import is a no-op
  • Malformed, stale and duplicate imports are refused with distinct codes
  • A fixture foreign repository is byte-identical after import, outside .ai/local

Validace

  • cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib evidence

Požadované důkazy

  • case_junit_import

Důkazy

Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.

Časová osa

zahájeno
—
ověřeno
—
dokončeno
—

Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.

Canonical record: .ai/repo/project/issues/I3124.yaml. Read it back with majordomus plan show I3124.

Prohledává názvy a popisy všech stránek, které tento web publikuje.