Captain's Log — MarkMyAss Benchmarks#
Every supported test. Every failure. Nothing hidden.#
This page is the ship's log: generated at server startup by actually running MarkMyAss's
public, reproducible test corpus
through the real inspect → clean → verify pipeline -- the same one you get
from ghostmark inspect / ghostmark clean / ghostmark verify. Nothing
on this page is a hand-typed number. Failures, if any, are shown here,
not hidden.
← Back to the MarkMyAss cleaner · AI Watermark Lab →
Summary#
GhostMark 0.5.0 · 4 fixtures · generated 2026-08-14T13:11:48+00:00
- Detection: 4 / 4 matched documented expectations
- Cleaning: 4 / 4 matched documented expectations
- Independent verification (ExifTool 13.25): 3 / 3 applicable fixtures confirmed clean
0 known failures in the current corpus.
Per-fixture results#
| Fixture | Detected as documented | Cleaned as documented | Independently verified |
|---|---|---|---|
text/hidden-unicode.txt |
✓ Yes | ✓ Yes | N/A |
jpeg/exif-xmp-iptc-comment.jpg |
✓ Yes | ✓ Yes | ✓ Yes |
png/exif-xmp-text.png |
✓ Yes | ✓ Yes | ✓ Yes |
pdf/docinfo-xmp.pdf |
✓ Yes | ✓ Yes | ✓ Yes |
What this corpus does and doesn't cover#
The corpus currently covers hidden Unicode (text), EXIF/XMP/IPTC (JPEG), EXIF/XMP/PNG-text (PNG), and DocInfo/XMP (PDF) -- the mechanisms MarkMyAss's support matrix lists as Verified. It does not currently include synthetic C2PA/JUMBF fixtures, so this page makes no pass/fail claim about C2PA -- that mechanism's status remains what /lab/c2pa says it is: Partial, regardless of what this corpus does or doesn't test. Statistical/model-level text watermarks are not benchmarked here either, for the same reason they're not benchmarked anywhere: no public detector exists to test against. See /lab for the full, honest capability matrix.
Reproduce this yourself#
git clone https://github.com/bens777/MarkMyAss.git
cd ghostmark
pip install -e ".[dev]"
pytest tests/test_corpus.py -v
Every row on this page corresponds to an assertion in
tests/test_corpus.py,
run against the fixtures in
src/ghostmark/corpus/
per the expectations documented in
manifest.json.
Machine-readable capability data (not this specific benchmark run) is
also available at /api/lab/status.
Something outdated or inaccurate?#
If a fixture's documented expectation looks wrong, or you think the
corpus should cover something it doesn't yet,
open an issue or submit a
pull request against
src/ghostmark/corpus/manifest.json
and scripts/generate_corpus.py.
Last reviewed: 2026-08-13