core+cli+shared: marrow redact, part one: the audited tombstone (R26-a, FOUNDER-GATED) - #77
Draft
ElxMaj wants to merge 1 commit into
Draft
core+cli+shared: marrow redact, part one: the audited tombstone (R26-a, FOUNDER-GATED)#77ElxMaj wants to merge 1 commit into
ElxMaj wants to merge 1 commit into
Conversation
…ER-GATED) THE ONE VISIBLE AMENDMENT TO APPEND-ONLY EVIDENCE. This PR does not merge without the founder's explicit yes. A credential that slipped past the pre-append scrub was immortal: evidence has no update or delete path by design, and the research's deletion completeness metric was unsatisfiable. Redaction is the deliberate, narrow, loud exception: - Migration 0018: redacted_at / redacted_reason on evidence (additive). - store.redactEvidence: overwrite ONE row's payload with the fixed tombstone '[redacted: <reason>]', stamp the moment; id, source, created_at, and every citation survive. A second redaction is refused. - Marrow.redact: requires a reason, refuses when distilled nodes still cite the row (prints the blast radius: the human must see what quotes the secret before anything is destroyed; cascade is part two), and writes the audit trail as a NORMAL append-only evidence row (redactions/<id>) that never contains the secret. - CLI: marrow redact <evidenceId> --reason. Deliberately NO MCP tool, pinned by a test; append_evidence's description now names the exception honestly as human-only. What stays true: every other evidence row is untouched and untouchable; the audit record is append-only; nothing writes any status; no agent surface can reach this path. Roadmap: R26 part one of two. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Roadmap item R26, PR one of two (docs/roadmap/2026-2027.md). DRAFT + do-not-merge: this amends the append-only rule and merges only after your explicit yes.
The decision you are being asked to make
Evidence is append-only and immutable, by design and by sacred rule. A leaked credential that slips past the pre-append scrub is therefore immortal. This PR creates the single, deliberate exception: a human at the CLI can destroy the payload bytes of ONE evidence row, loudly and auditably. If you would rather keep append-only absolute (accepting immortal secrets as the price), close both R26 PRs and the roadmap stands with deletion completeness marked not-offered.
What it does
redacted_at/redacted_reasonon evidence.store.redactEvidence: payload becomes[redacted: <reason>]; id, source, date, citations survive; second redaction refused.Marrow.redact: reason required; refuses while distilled nodes cite the row (prints the blast radius; cascade is PR two); writes the audit as a normal append-only evidence row that never contains the secret.marrow redact; no MCP tool, pinned by a test so no agent and no injected instruction can trigger destruction;append_evidence's description names the exception honestly.What stays true
Every other row untouched and untouchable; audit trail append-only; no status writes; agent surfaces unchanged.
Tests
Tombstone identity survival, search cleanliness, double-redact refusal, cited-row refusal with blast radius, audit-row hygiene, MCP no-tool pin. Full suite + smoke:packed + drift gate green.
🤖 Generated with Claude Code