A worked example, not an audit.
One sample project, four verdicts.
Not because the licences in this sample are exotic. Because in four of the five blocked findings here, the obligation that blocks the build is written in a document the code licence never points to — the weights licence, the platform terms, or a reserved mark.
This is not a study. Clearance generated the report below from a synthetic project, so that you can see the shape of the output before running it on your own code. No real repository was audited, and nothing on this page is a claim about the software industry.
Five findings
Five findings from the sample, each one checkable against the table below. The counts describe this synthetic project and nothing wider — they illustrate the output, they are not a survey.
In four of the five blocked findings, the code licence permitted exactly what the builder intended to do. The block came from the weights licence, the platform terms, or a reserved trademark. A scanner that reads only code returns a pass on all four.
Six dependencies in the sample ship model weights. Two of them stated no licence for those weights in config.json, a model card, or a sibling LICENSE. Under any honest analysis these are not "clean" — they are UNDETERMINED, and a tool that reports them as passing is inventing a fact.
Two findings were permissively licensed at the code level and loaded weights under a non-commercial or gated licence. It is the AI-era trap a code-only scan cannot see: the two layers disagree, and only one of them is in the lockfile.
Two findings grant the code freely and reserve the name, logo or icon in a separate trademark notice. A fork is required to rebrand — an obligation that never appears in the LICENSE file and therefore never appears in a licence report.
One finding had a clause that genuinely supports two readings — a community licence whose commercial gate reads "fewer than N users, or twelve months, whichever is later". Both readings were recorded. Pretending one is certain would have been the dishonest answer, and would have produced a confident wrong verdict in a case where the user needed to know they should ask a lawyer.
Where the traps sat in this sample
The distribution is the point. Twelve of the fourteen findings are not clean, and only one of those twelve is blocked by the code licence.
Each finding in the sample is blocked by exactly one layer, so these sum to the twelve findings that are not clean. Five of them are the weights licence, and the code licence accounts for one.
Every dependency in the sample is permissively licensed at the code level. That is precisely why a code-only scan of this sample produces a false sense of safety: the code licence is what blocks exactly one of the fourteen findings.
Method
This is the method Clearance runs on every scan. Here it was applied to a synthetic project, so the verdicts below show the shape of the output rather than reporting on anyone's code.
The intent modelled
One intent, applied uniformly to every dependency in the sample, so the verdicts compare:
| commercial | true |
| licence_model | closed-source |
| modified | false |
| network_exposed | true |
| distributed | false |
| saas | true |
This is the intent modelled for the sample: a hosted service, sold, closed-source, not modified. Every verdict below was reached under it, and only it — a report using a weaker intent would flatter the sample and be useless.
Procedure, per dependency
- Resolve dependencies from the committed lockfile; fall back to the manifest only where no lockfile exists.
- Read the code licence from the vendored licence file where present, and from package metadata otherwise.
- Identify weight files by magic bytes. Resolve their licences from GGUF metadata, config.json, model-card frontmatter and sibling licence files.
- Compare the code licence against the weights licence and record any divergence.
- Read trademark and brand-asset notices for reserved marks.
- Detect orchestration of third-party CLIs and read the relevant platform terms.
- Evaluate every obligation against the modelled intent, and record a confidence level for each.
- Corpus version
- 2026.09.2
- Schema
- 1
- Licences
- 12
- Obligations
- 39
- Traps
- 12
- Terms of service
- 6
- Territories
- 4
- Citations
- 82
- Signature
- Ed25519 verified
- Licence
- CC-BY-4.0
The sample was produced with corpus 2026.09.2, which is signed and verified on every load. When a later corpus changes a verdict, the changelog records it rather than editing the report quietly.
Raw data
Every finding carries the layer that blocked it, a verdict and a confidence level. The names here are placeholders, because the sample is synthetic — there is no real repository behind them to accuse of anything.
| Repository | Verdict | Code licence | Weights | Blocking layer | Conf. |
|---|---|---|---|---|---|
| owner/crawler-kit | Do not ship | MIT | — | code · AGPL dep | High |
| owner/voice-clone | Do not ship | Apache-2.0 | CC-BY-NC-4.0 | weights · NC clause | High |
| owner/pdf-agent | Do not ship | MIT | — | brand · reserved marks | Med |
| owner/vision-gguf | Do not ship | Apache-2.0 | research-only | weights · research only | High |
| owner/scrape-flow | Do not ship | BSD-3-Clause | — | platform · automation ban | High |
| owner/tts-lite | Conditional | Apache-2.0 | Apache-2.0 | attribution only | High |
| owner/agent-mem | Conditional | MIT | — | brand · rebrand required | Med |
| owner/speech-cm | Conditional | MIT | Community v2 | weights · MAU gate | Med |
| owner/ocr-pipe | Conditional | Apache-2.0 | — | territory · prior application | High |
| owner/vector-lite | Ship | MIT | — | — | High |
| owner/schema-tool | Ship | Apache-2.0 | — | — | High |
| owner/whisper-gguf | Undetermined | MIT | not found | weights · no licence stated | Low |
| owner/embed-batch | Undetermined | Apache-2.0 | not found | weights · no licence stated | Low |
| owner/img-tag | Undetermined | BSD-3-Clause | — | terms in an unreadable PDF | Low |
The names in this table are placeholders. A report over a real project names the repository, and every finding carries the file and line of the clause it cites.
The verdict is not the point.
The citation is.
The sample above is invented; the shape of it is not. A builder making licence decisions by intuition is not being careless — they are being asked to do a job nobody gave them the documents for, and the documents are the part nobody hands over. The fix is not more diligence. It is a build step.
EXAMPLE
NOT AN AUDIT
Every verdict in the sample came out of the corpus named above, signed and verified on load. When a later corpus changes a verdict, the changelog records it rather than editing the report quietly.