Skip to content

docs: close out C-83 — tampering verified, registry stays public, bring-up checks permissions - #165

Merged
Polichinel merged 1 commit into
developmentfrom
docs/c83-close-out
Aug 15, 2026
Merged

docs: close out C-83 — tampering verified, registry stays public, bring-up checks permissions#165
Polichinel merged 1 commit into
developmentfrom
docs/c83-close-out

Conversation

@Polichinel

Copy link
Copy Markdown
Contributor

Closes #158, #161, #162 from epic #157.

Verified — no evidence of tampering. Operator ran a read-only probe. unfao and crafd (the delivery collections an external partner reads) are untouched since creation. All 11 flagged rows in production_forecasts matched their hash and point at files the bucket created before the row — by 0.16s to 51s. That provenance check is what settles it: a coordinated rewrite of fileId+file_hash leaves the hash matching, but cannot make a substituted file older than it is.

Triage was sufficient rather than partial because all three buckets were already closed and never touched — so bytes could not be substituted at all, only rows, and every row alteration moves $updatedAt.

Residual, not claimed closed: a count-preserving delete-and-recreate is undetectable without an audit log reaching to 2025-11-17. Verdict is no evidence of tampering, twice over, with one permanently unfalsifiable residual — not verified clean.

Decided — the registry stays public. Recorded as available and declined, not impossible.

Bring-up now checks permissions. joining_the_seam.md §5. Non-normative file: no version bump, no tag, no re-pin — confirmed, the diff touches no .toml and no contract.

Counts reproduce by grep: 64 · 12 resolved · 52 open. All gates green.

🤖 Generated with Claude Code

…ng-up checks permissions

Three answers from epic #157, recorded. Stories #158, #161, #162.

VERIFIED — NO EVIDENCE OF TAMPERING (#158). Operator ran a read-only probe against
the live project; key never left their shell.

  unfao                 111 rows   0 updated after creation
  production_forecasts  461 rows  11 updated after creation
  crafd                 111 rows   0 updated after creation

The two DELIVERY collections — what an external partner reads — are untouched since
creation. All 11 flagged rows checked two ways: every one matched its recorded
file_hash, and every one points at a file the bucket created BEFORE the row itself,
by 0.16s to 51s.

The provenance half is what settles it, because a matching hash alone would not:
C-83's own scenario is rewriting fileId AND file_hash in one call, which leaves the
hash matching. What that cannot fake is the file's $createdAt, set server-side —
substituted content means a NEWER file. Not one of the eleven is newer.

And triage was sufficient rather than partial because of a fact C-83 already
recorded: all three buckets were already closed and never touched. File bytes could
not be substituted at all; only rows were writable; every row alteration moves
$updatedAt; every row whose $updatedAt moved is now verified. Re-deriving hashes for
the other 572 would add nothing.

RESIDUAL, not claimed closed: a count-preserving delete-and-recreate resets
$createdAt and leaves no trace this method can see. Not ruled out, and not
falsifiable — it would need an audit log reaching to 2025-11-17. So the verdict is
"no evidence of tampering, twice over, with one permanently unfalsifiable residual",
NOT "verified clean". The original sentence is struck rather than deleted because
the distinction it drew is the one this preserves.

DECIDED — THE REGISTRY STAYS PUBLIC (#161). Coordinates are useless without a key,
the defect was an unlocked resource rather than a published address, and hiding the
map treats the symptom while the cause is fixed upstream. Recorded as available and
DECLINED rather than impossible — which was the error C-84's first draft made. §4
permits org-private if the reasoning ever changes; it asks only that the registry be
readable without holding a secret.

BRING-UP NOW CHECKS PERMISSIONS (#162). joining_the_seam.md gains §5: every container
ends at permissions: [], verified with close_resource_permissions.py, expecting 401
anonymously and rows with the key. C-83 said plainly that "the next partner bring-up
reopens this" — a bring-up following every other step could still produce an open
collection. Sections renumbered 6 and 7.

joining_the_seam.md is NON-NORMATIVE by its own header: no version bump, no edition,
no tag, no consumer re-pin. Confirmed — git diff touches no .toml and no contract.

Counts reproduce by grep: Total=64, Resolved=12, Open=52, dormant=15, live=37.
Gates: ruff clean · self-contained 36 passed · validate_docs.sh PASSED · falsification
10 red / 6 green, baseline unchanged. PYTEST WAIVED — carbon protocol §2, docs-only.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@Polichinel
Polichinel merged commit 1839109 into development Aug 15, 2026
4 checks passed
@Polichinel
Polichinel deleted the docs/c83-close-out branch August 15, 2026 02:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[S1] Answer whether any metadata was tampered with while the collections were open

1 participant