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.

I3111 — Every dispatched blocking validator is run against a declared violation, and one that accepts it fails the case

Replace grep-only effect proof with execution. Each dispatched blocking rule (x-majordomus validator) declares a minimal violation fixture under test/fixtures/violations/<rule>. One case builds a disposable repository per fixture, runs the real entry point (check, finish or the pre-commit hook) and requires a non-zero exit that names the rule id.

BLOKOVÁNO vlna 1 · p1 · 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.

Blocked. This issue cannot start until I3110 is done. The status is derived from that, not declared.

Cíl

Replace grep-only effect proof with execution. Each dispatched blocking rule (x-majordomus validator) declares a minimal violation fixture under test/fixtures/violations/<rule>. One case builds a disposable repository per fixture, runs the real entry point (check, finish or the pre-commit hook) and requires a non-zero exit that names the rule id.

Proč

The 2026-10-08 audit (c193#0) found that doctor's wiring proof was grep: changing check.sh to \"|| exit 0\" still passed doctor. The owner asked repeatedly for governance regression tests that \"deliberately violate a rule and prove Majordomus stops the work\" (c135#1). Case 18 proves that the wiring verifier notices a broken link. It does not show that any validator refuses its violation. It extends milestone architecture-is-enforced. Proposed in ADR 0188 (A rule's proof of effect is a recorded refusal of its violation, not the presence of its wiring) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c109#7, chatgpt-majordomus:c130#13, chatgpt-majordomus:c135#1, chatgpt-majordomus:c139#5, chatgpt-majordomus:c144#7, chatgpt-majordomus:c193#1, chatgpt-majordomus:c217#5, chatgpt-majordomus:c241#4, chatgpt-majordomus:c269#5, chatgpt-majordomus:c031#20.

Aktuální stav

lib/doctor.sh mj_validate_wiring checks that hooks invoke the program. test/cases/18_doctrine_wiring.sh mutates links in a copy of the tool. No fixture of a violation exists per rule. Rule blocking-checks-cheap keeps doctor cheap, so this belongs in a case, not in doctor.

Cílový stav

A table of dispatched rules is derived from the rule corpus, not from a hand list. A rule with no fixture is listed and ratcheted. Every fixture present is refused by its real entry point, with the rule id in the output.

Rozsah

  • lib/doctrine.sh
  • .ai/repo/rules/project/rule-is-a-doctrine.v1.md
  • docs/DOCTRINE.md
  • .ai/repo/project/intents
  • lib/doctor.sh
  • test/cases/18_doctrine_wiring.sh
  • test/lib.sh
  • .ai/repo/adrs/0188-a-rule-s-proof-of-effect-is-a-recorded-refusal-of-its-violation.md

Mimo rozsah

  • Gated rules (proved by their own cases)
  • Making doctor run fixtures

Závislosti

Kritéria přijetí

  • The case derives its list of dispatched blocking rules from rules report, and a rule added to the corpus appears without editing the case
  • Every fixture is refused with the rule id printed; a validator changed to always pass turns the case red
  • Rules without a fixture are listed and the list may only shrink
  • A new case carrying evidence case_every_validator_refuses_its_violation (its number from scripts/case-numbers next, announced on the board when the issue starts) fails on master 707a04c, where no violation fixture exists, and passes with this issue
  • The same commit rebinds intent criterion validator-refuses-violation to that case; case 18 stays the proof that the wiring verifier works

Validace

  • MJ_TEST_JOBS=4 bash test/run.sh 18_doctrine_wiring
  • majordomus plan validate

Požadované důkazy

  • case_every_validator_refuses_its_violation

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/I3111.yaml. Read it back with majordomus plan show I3111.

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