A two-engine review pipeline that checks marketing copy against your regulatory perimeter and writes a tamper-evident record of what it found. It catches the implied guarantee with no trigger word, the number nobody can source, and the disclosure that is technically present but buried under a hero image.
This is a real scan of a landing-page hero, as the engine returns it. Every flag says which engine raised it and why.
draft · landing-page heroscan 0419 · 41 s
Lock in1 growth with the Horizon Plan, the smartest way to guarantee2 your family’s future. Our members have earned 12% a year3 since launch, and unlike insurance4, there are no medical questions. Enrollment closes Friday. Don’t be left behind.5
required disclosure · injected
channel: web · audience: retail
Past performance does not guarantee future results. Investing involves risk, including the possible loss of principal. See the governing documents for fees and terms.
1
Implied guarantee
engine 2 · semantic
No prohibited word present. “Lock in” promises a fixed outcome the product cannot deliver.
2
Prohibited absolute term
engine 1 · rule GT-07
“Guarantee” matched deterministically. Same result on the same text, every time.
3
Unsupported figure
numeric registry
12% does not appear in the governed values. The performance claim is also unqualified.
4
False positive suppressed
engine 2 over engine 1
Rule IN-02 flagged “insurance.” Context is a disclaimer of insurance status. Rationale logged.
5
Fear-based urgency
engine 2 · semantic
Deadline pressure paired with loss framing. Flagged for rewrite.
Reviewer: J. Alvarez · MarketingstoppedunsupportedsuppressedSHA-256 9f2c…e41a · ledger row sealed
2why it was built this way
most compliance tools find words. regulators read meaning.
A keyword filter catches “guaranteed” and misses “lock in.” A language model catches “lock in” and, left alone, hallucinates a rule that does not exist. This engine runs both, lets each correct the other, and records every decision so an examiner can see exactly why a sentence was cleared or stopped.
the floor
deterministic first
Regular expressions over a loaded Regulatory Requirements Index return the same verdict on the same text in milliseconds. The part of the review that never has an opinion and never has a bad day.
the judgment
semantic second
A Claude model reads what no pattern can: the guarantee with no trigger word, the performance claim with no qualifier, the urgency built from fear. It also filters the first engine, suppressing false positives and logging why.
the record
one verdict, sealed
Both engines resolve into a single reconciled report. Every scan writes to an immutable ledger hashed against the original file, stamped with a named reviewer. No scan is anonymous. No row can be edited after the fact.
copy in
engine 1 · rules
engine 2 · meaning
one sealed report
the machine never changes a rule on its own. a human moderator signs every one.
3seventeen capabilities, four layers
what the engine does, in the order a document meets it.
A piece of copy comes in, gets read, gets judged, and leaves a record. The seventeen capabilities are grouped by which of those four jobs they do.
layer 1 · 04 capabilities
ingestion
Whatever form the copy arrives in, the engine turns it into something it can read, and keeps the picture when the picture matters.
Multi-modal intake
Pasted text, PDF, Word, PNG and JPG. Files are extracted to text; PDFs and images are also rendered as pictures for a visual pass.
Visual context assessment
For images and rendered pages the model assesses disclosure prominence, font size and layout hierarchy. It catches the footnote that is present and unreadable.
Guarded URL fetcher
Paste a live URL. Fetches run behind SSRF protection so the engine cannot be pointed at your own internal infrastructure.
Input size guard
Oversized submissions get a soft warning to split into sections. A document never fails silently for being too long.
layer 2 · 06 capabilities
scanning and reasoning
The two engines, the reconciliation between them, and the two checks that know your specific facts.
Deterministic engine
Engine 1
Pattern rules over the loaded index. Fast, repeatable, auditable. The Savvly deployment shipped with 68 rules; the index grows through the governance layer below.
Semantic engine
Engine 2
A Claude model reads for implied guarantees, unqualified performance claims and fear-based urgency, none of which a pattern can catch.
Dual architecture, single output
Both engines merge into one reconciled report: the deterministic floor plus the semantic judgment, with nothing counted twice.
Intelligent suppression
Engine 2 filters Engine 1. When a rule fires on “insurance” inside “unlike insurance,” the finding is suppressed and the exact rationale is written down.
Numeric registry validation
Every number in the copy is checked against your authoritative values, drawn from your governing documents. Engine 1 checks stated figures exactly; Engine 2 catches a number written into prose that the registry does not support.
Context-aware disclosure injector
Reads product type, distribution channel, audience and any special-status flags, then inserts the exact boilerplate that piece is required to carry.
layer 3 · 03 capabilities
learning and governance
The engine gets smarter from its reviewers, and a machine never changes a rule on its own.
Feedback and aggregation
Reviewers mark findings right, wrong or missed directly in the interface. Corrected examples accumulate across reviewers, not just within one.
AI-assisted rule authoring
When a corrected pattern crosses a configurable threshold across enough different reviewers, a human moderator opens a scoped session that drafts a new deterministic rule.
Human-gated, validated commits
Before a drafted rule can ship, the system confirms it compiles, conflicts with no governed number, and actually catches the examples that prompted it. Only the moderator can accept. Every acceptance, rejection and reversal is recorded.
layer 4 · 04 capabilities
audit, identity and reporting
What you hand the examiner, and why it holds up.
Tamper-evident ledger
Every scan writes to an immutable Postgres ledger sealed with a SHA-256 hash of the original file. A database trigger blocks any later change to the row. Hashing has only ever been extended, never replaced, so older records stay verifiable under the rules that sealed them.
Coverage-gap transparency
If the semantic layer cannot finish within its deadline, the scan completes on the deterministic layer and the record names precisely which sections were not semantically reviewed. Partial coverage is disclosed by location, never hidden.
PDF compliance reports
A branded report generated from any scan, formatted for an examiner’s file rather than a dashboard.
Approved-users identity layer
Access control backed by a reviewed roster. Every user selects a pre-approved name and title before scanning, and that identity is stamped into the audit record.
4fitting it to your regime
three things are yours. everything else is already built.
The engine does not know your regulator. It knows how to read against one. Adapting it to a new perimeter means supplying three inputs and leaving the pipeline alone.
1
the rule index
A file of deterministic patterns, each tied to a citation in your regime. It is what Engine 1 reads. The engine does not care which regulator; it cares that each pattern has a source.
Your authoritative figures, taken from whatever document governs you. Any number in your marketing the registry cannot support gets flagged, whether typed as a figure or written out in a sentence.
drawn fromA prospectusA rate sheetA product label or policy
3
the disclosure map
For each combination of product, channel, audience and status flag, the exact boilerplate the copy must carry. The injector reads the context and inserts it. Nobody has to remember.
disclosures1 injected · ctx: web / retail / non-ERISA
row_mutablefalse · trigger: block_update
reportPDF generated · 2 pp
The real row holds the full finding set, every suppression rationale, and the reviewer’s later feedback.
5already built, already running
we have done this. here is one that works.
We built this engine for Savvly, an SEC-registered closed-end longevity fund. It is in use there today, reading their marketing copy against the SEC Marketing Rule, ERISA, their prospectus and their fee disclosures before anything ships.
the savvly compliance engine · one-sheetbuilt by growth bastards
the engine in five numbers
2
engines, one verdict
17
capabilities, four layers
5
input modalities
30–90 s
first full scan
SHA-256
per-scan seal
the walkthrough
bring us the ad copy you are worried about.
We run your own marketing material through the engine, live, with your rules loaded. You see what it catches, what it suppresses, and the ledger row it leaves behind. Thirty minutes, no slides.
Compliance Engine · built by Growth Bastards, part of AtmaOS. Educational support for review. Not legal advice. Your counsel signs off; the engine shows them why.