← Back to Liability Audit

What a small app can be liable for, and how to check

Most small apps never meet a regulator. The ones that get hurt are usually hurt by something cheap to have fixed: a chargeback wave from a subscription nobody knew renewed, a privacy complaint about an analytics pixel, a leaked key that ran up a five-figure cloud bill. Each of these leaves a trace in the code, so a scan can catch it before launch.

The rules, and why each exists

RuleExposureWhere it comes from
tracker-without-consentFines and complaints for tracking before consentEU ePrivacy rules and GDPR; UK PECR; opt-out rights in several US state privacy laws
personal-data-no-privacy-noticeCollecting data with no noticeGDPR Articles 13–14; California's CalOPPA; app-store rules
subscription-no-renewal-termsRefunds, chargebacks, regulator action over recurring chargesUS ROSCA and state automatic-renewal laws (for example California Business and Professions Code §17600 and following); EU and UK pre-contract information rules
payments-no-termsNo refund policy, liability cap or acceptable-use rule to rely onContract law; payment processors' expectations
affiliate-links-no-disclosureDeceptive endorsementFTC Endorsement Guides, 16 CFR Part 255; UK CAP Code; affiliate programme terms
ai-output-no-disclosureUndisclosed AI interaction and unlabelled generated contentEU AI Act Article 50 (from 2 August 2026); California's B.O.T. Act
advice-without-disclaimerReliance claims on a tax, legal, medical or financial toolNegligent misrepresentation; a stated limit of reliance is the usual mitigation
comparison-no-trademark-noticeImplied affiliation with a named productTrademark law: nominative fair use is safest with a non-affiliation line
copyleft-dependencyLicence breach in a closed or conflicting productGPL, AGPL and SSPL terms
secret-in-treeA stolen key spends on your accountProvider terms generally make the account owner liable for usage
llm-endpoint-no-spend-controlAnyone who reaches the endpoint can spend your model budgetThe provider bills the key's owner
llm-call-no-output-capEach call's worst case is the model's full outputPer-token billing
cloud-no-budget-alarmNo ceiling on a cloud bill, and no warningClouds bill usage with no default cap
no-licenseNobody has rights to use the code; contributors' rights unclearCopyright default

Every finding is phrased as an observation with its evidence, a file and line, so you can check it. None is a determination that something is or is not lawful.

What we found running it on our own projects

On 16 October 2026 we ran node cli.mjs sweep over this repository's 1,274 product directories and 506 research projects. It took about 14 seconds.

What a scan cannot see

Run it continuously

Add node cli.mjs scan . --fail-on high to CI so a new high-severity exposure fails the pull request. Post --format md as a PR comment, or upload --format sarif to GitHub code scanning to see findings inline. For a monorepo, sweep gives one row per app. The repository's AGENT.md is a playbook for an AI coding agent: run the scan, triage each finding against the code, fix what is clearly a fix, and bring the judgment calls to a person.

Questions

Which liabilities can an automated scan find?

The ones that leave a trace in files: a tracker script without a consent manager, subscription checkout code without renewal and cancellation wording, data-collecting forms without a privacy notice, affiliate links before any disclosure, AI calls without a statement that AI is used, live keys, LLM endpoints with no limit, cloud IaC with no budget, and copyleft licences in a lockfile.

Which can it not find?

Anything that depends on facts outside the files: what your vendors do with data, whether your privacy notice is accurate, contracts, employment, tax registration, sector rules such as health or finance licensing, and anything in images or a CMS. A clean scan is not a compliance opinion.

Why treat runaway cloud or AI spend as a liability?

Because it is one: the account owner owes the bill. A leaked key, an endpoint anyone can drive on your model key, or an autoscaler with no budget alarm can produce a charge larger than the business earns in a year, and providers do not have to forgive it.