kettenerklaerung_erklaeren
Explain a broken audit-chain link by documenting who, when, and why for a sanctioned data rewrite. Preserves the visible break, rejects healthy rows, and optionally creates an external anchor.
Instructions
Explain a broken audit-chain link (access_log.ketten_hash) caused by a sanctioned rewrite of an already-logged row -- e.g. a migration that corrected a field after the fact. Rejects with an error if access_log_id has no break (gespeichert==erwartet) or does not exist -- an explanation for a healthy row would itself be a fabrication. Never changes the stored ketten_hash; the break stays visible, this only records who/when/why next to it. Optional anker="rfc3161"/"gegenzeichnung" builds an external anchor for the explanation via ankerverfahren.py (dry by default, no network without an explicit anker_kwargs override) -- when set, the current anchor backlog (ankerverfahren.rueckstand) is reported back as anker_rueckstand, since that backlog only ever changes at this moment.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| actor | No | Calling agent identity; else BEGOD_KNOWLEDGE_ACTOR or unknown | |
| anker | No | Optional: build an external anchor for this explanation | |
| grund | Yes | Required reason for the rewrite | |
| model | No | Calling model; else BEGOD_KNOWLEDGE_MODEL or unknown | |
| session | No | Stable session ID; else BEGOD_KNOWLEDGE_SESSION or unknown | |
| commit_hash | No | Optional: commit that performed the rewrite | |
| access_log_id | Yes | access_log.id of the broken row |