docs: document synthesize — the verdict priority is the honesty policy - #5
Merged
Conversation
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>
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.
Found by a consistency audit across all five mirror repos.
synthesizewas 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:
TAMPEREDCONFLICTINGSYNTHETICAUTHENTIC-SIGNEDUNVERIFIEDRow 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.pypins 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