Skip to content

docs: document synthesize — the verdict priority is the honesty policy - #5

Merged
bhyi4 merged 1 commit into
mainfrom
docs/document-synthesize
Aug 4, 2026
Merged

docs: document synthesize — the verdict priority is the honesty policy#5
bhyi4 merged 1 commit into
mainfrom
docs/document-synthesize

Conversation

@bhyi4

@bhyi4 bhyi4 commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator

Found by a consistency audit across all five mirror repos.

synthesize was in __all__ — a public API promise — with zero mentions in README, README_KO or either GUIDE. It is not a minor helper: its check order is the honesty policy, so the one function encoding the policy was the one you had to read source to find.

What was added

The five-row priority table, in both languages, with the reason each rank sits where it does:

Priority Verdict Why this order
1 TAMPERED A broken integrity signal outranks everything — if the bytes were altered, nothing read from them can be trusted
2 CONFLICTING Disagreement is reported as disagreement; silently picking a winner manufactures a certainty the evidence does not support
3 SYNTHETIC An AI-origin assertion is positive evidence
4 AUTHENTIC-SIGNED A signature is present. ⚠️ PoC: the crypto chain is not yet verified
5 UNVERIFIED The honest default — no signal means unknown, not evidence of fakery

Row 5 is the point of the package. Absence of a provenance signal is overwhelmingly common in authentic media too — most real photos carry no C2PA manifest — so a tool that answers "fake" when it cannot tell is worse than no tool.

Guard

tests/test_synthesize_priority.py pins all five rows against the code and asserts both README tables list them in that order, so the documented policy cannot drift from the implemented one. All five rows were verified against the running code before being written down.

49 tests pass (was 41). Docs only — no behaviour change.

🤖 Generated with Claude Code

Found by a consistency audit across the mirror family: `synthesize` was in
`__all__`, a public API promise, with zero mentions in README, README_KO or
either GUIDE. The one function that encodes the policy was the one you had to
read source to find.

The README now states the five-row priority — TAMPERED > CONFLICTING >
SYNTHETIC > AUTHENTIC-SIGNED > UNVERIFIED — and says why each rank sits where
it does, in both languages.

Row 5 is the point of the package: no usable signal means UNKNOWN, never
"fake". Absence of a provenance signal is overwhelmingly common in authentic
media too — most real photos carry no C2PA manifest — so a tool that answers
"fake" when it cannot tell is worse than no tool.

`tests/test_synthesize_priority.py` pins all five rows against the code and
asserts the README tables list them in that order, so the documented policy
cannot silently drift from the implemented one.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@bhyi4
bhyi4 merged commit e345fb9 into main Aug 4, 2026
4 checks passed
@bhyi4
bhyi4 deleted the docs/document-synthesize branch August 4, 2026 22:33
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.

1 participant