ProofLine
No claim goes live without a source.
ProofLine is a brand-governance platform. It reviews marketing content before publication against approved brand guidelines, terminology and facts, explains every issue, suggests a fix, and keeps a human reviewer in charge of the final decision. After approval it keeps watching the evidence behind each claim and re-flags the piece when that evidence expires, changes or disappears.
Built solo for CodeStar 30 (We Code Coders, sponsor Inkloom AI). Round 2 built the core; Round 3 (31 Oct to 3 Nov 2026) delivers three improvements: image and document review, an evidence ledger with a governance dashboard, and an evaluation and reliability suite. All demo data is fictional (a made-up sports drink, "AquaPulse").
Try it in two minutes (no sign-up)
The demo logins are shown on the home page on purpose. Pick one (or type the email and password):
- As Devon: New draft, load the sample Instagram caption (risky), press Check this draft. Read the findings, Apply this fix on a few, Dispute one with a reason.
- Try Upload on the same page: the sample Social tile (image), Press release (Word) or Flyer (PDF) buttons run the new document and image review. An image needs alt text before it can go to review.
- When no high-risk finding is open, Send to review. Switch to Elena and Approve. Approval writes the Evidence ledger.
- Switch to Asha, open Guidelines & facts, and move a fact's Valid until date into the past. The approved piece is re-flagged automatically (see Review queue and Evidence ledger). Put the date back and it clears.
- Open Insights (use Load sample history for a full dashboard) and Evaluation (precision and recall per rule, one-click regression run, AI evaluation).
What is built
Round 2 (the core)
- Two-stage check. Stage 1: deterministic rules, no AI. Stage 2: every factual claim is matched to an approved, in-date fact.
- Rules: R-1 terms and all-caps (G-1), R-2 absolutes and guarantees (G-3), R-3 medical or cure wording (G-4), R-4 claims that need evidence (G-2, G-6), R-5 missing required disclaimer (G-5).
- AI claim check with code-side verification. A model proposes claims and the fact they match. Code verifies: the quote must be in the draft, the fact must exist, an expired fact can never make a claim "supported", figures must match, a comparison needs a fact making the same comparison. The model never approves anything.
- Rules-only fallback when there is no key, the call fails or a usage cap is reached; the page says so.
- Explain and fix, dispute with a reason, human-only approval, knowledge-base admin, audit trail, check report download.
Round 3 (the three improvements)
1. Image and document review
- Upload Word (.docx), PDF or image (PNG, JPEG, WebP), up to 4 MB. Text is extracted (Word and PDF text layers directly, scanned PDFs and images by a vision model) and runs through the same rules and claim checks as typed text.
- R-6 alt text (exact, blocks review): missing, too short, a file name or a generic word. Word pictures are checked from the file itself; decorative pictures are allowed.
- R-7 contrast and small text and R-8 off-palette colours (G-7) for images, estimated by the vision model and always labelled AI-assisted, needs a human check with Low confidence.
- Friendly handling of bad input: empty, wrong type (GIF, HEIC, old .doc), renamed files, damaged or password-protected files, oversized files, files with no text.
- Upload a new version, read a file again, download the corrected text. Fixes change ProofLine's text copy, not your original file.
2. Evidence ledger and governance insights
- On approval, one ledger line per claim: the words, the approved fact behind it (a snapshot of its statement, source, owner and expiry), who approved it and when. Findings approved while still open are recorded as reviewer exceptions.
- Automatic re-flag: when a fact expires, is edited or is removed, every approved piece that relied on it moves to Re-review needed. When the evidence is valid again it clears. The check runs after every fact change, whenever a list or dashboard page opens, and once a day from a scheduled background job (Vercel Cron, about 02:00 IST;
/api/cron/sweep). It sends no notifications yet.
- CSV import of approved facts (admin): upload a CSV with
statement, source, expires_on (and optional owner, keywords); good rows are added, every skipped row is explained, repeats are skipped. A sample file is on the page.
- Insights: most-triggered rules, most-disputed findings, time to approval, facts about to expire (with how many approved pieces rely on each). Empty state, all or only my drafts, and optional fictional sample history so the dashboard can be seen with data.
This is the beginning of the README. Read the rest at the original. Read the full README ↗