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.

I3438 — A translation records the digest of its source, and site-check refuses one its source has moved past

A translation names its source and the digest of the source it was made from, [extra] translated_from = \"route/\" and source_digest = the SHA-256 of the source's bytes after its closing front-matter fence; site-check recomputes the digest and refuses a stale or missing one, printing the file, its source and the digest to record once re-synced, and refuses a digest on an original and a source outside the group. The check never rewrites a digest.

PŘIPRAVENO vlna 1 · p2 · profil implementation · běží samostatně

Součást public-proof — Návštěvník vidí, jak se produkt sám dokazuje, a může ověřit každé jeho tvrzení.

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

Cíl

A translation names its source and the digest of the source it was made from, [extra] translated_from = \"route/\" and source_digest = the SHA-256 of the source's bytes after its closing front-matter fence; site-check recomputes the digest and refuses a stale or missing one, printing the file, its source and the digest to record once re-synced, and refuses a digest on an original and a source outside the group. The check never rewrites a digest.

Proč

The owner asked on 2026-10-19 that language versions be kept in sync automatically. A translation silently trails an original edited after it, and nothing could tell; the re-sync is the translator's act, so the check makes the drift loud rather than hiding it by restamping. It belongs to public-proof with I3436 and I3437, whose check it extends.

Aktuální stav

No front matter key names the page a translation was made from, and nothing compares a translation with its source: site/content-src/dokumentace-kterou-lze-odmitnout.md and site/content-src/proof-carrying-documentation.md name each other by alternate only, so either may change without the other.

Cílový stav

Check 21 emits each translated_from row, recomputes the source's body digest with lib/sha256.sh, passes a match, and refuses a mismatch or an absent digest with the new digest in the message; an edit to the source's front matter alone leaves the digest fresh; case 3503 holds a fresh, a stale and a missing digest and proves the translation file is left untouched.

Rozsah

  • scripts/site-check
  • test/cases/3503_a_translation_group_agrees_and_keeps_up_with_its_source.sh
  • .ai/repo/project/issues/I3438.yaml

Závislosti

Kritéria přijetí

  • A translation whose source_digest matches its source's body passes
  • A source whose body changed after the digest fails naming the translation, its source and the digest to record, and the translation file is unchanged
  • A translated_from without a digest, a digest without translated_from and a source outside the group each fail naming the file
  • An edit to the source's front matter alone does not make its translations stale

Validace

  • env -u MAJORDOMUS_SHARE -u MAJORDOMUS_HTTP_HOST -u MJ_ROOT bash test/run.sh 3503_a_translation_group_agrees_and_keeps_up_with_its_source

Požadované důkazy

  • stale_translation_is_refused
  • fresh_translation_passes

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

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