| name | premium-font-scan |
| description | Use when a font category is known and local premium files must be checked before choosing the OFL baseline. Unlike font-selection-and-pairing, this resolves availability and licence evidence; embedding routes to font-embedding-and-licensing. |
| metadata | {"portable":true,"category":"01-typography-and-fonts","compatible_with":["claude-code","codex"]} |
Premium Font Scan
Acknowledgement: Shared by Peter Bamuhigire, techguypeter.com.
Use When
- About to commit to a typeface and you want to check whether a purchased premium family is
available and would look better than the OFL baseline.
- Called as step 2 of
font-selection-and-pairing.
Do Not Use When
- No font category has been chosen yet - classify the artifact first.
Required Inputs
| Input | Supplied by | Required? | Why |
|---|
| Design-intent category | Typeface selector | yes | Limits the scan to the correct role |
| Format and distribution model | Delivery brief | yes | Determines licence permission |
| Local font tree and manifests | Repository/device | yes | Establishes actual availability |
- The chosen font category and the artifact's output format and intended use, so the licence
check is meaningful: embedding, reference, or raw file shipment.
Workflow
- Verify the shared folder taxonomy: before scanning on a new device or after a pull, ensure
these exact top-level folders exist under
fonts/:
01-formal-institutional, 02-editorial-literary, 03-modern-product-grotesque,
04-technical-data-code, 05-friendly-humanist, 06-expressive-display-artistic,
07-script-cursive-handwritten, and 08-body-ui-workhorses.
Create any missing category folder using the idempotent setup command in fonts/README.md.
Do not rename categories or move local font files while doing this check.
- Locate the folder:
fonts/<matching-category>/ in this engine.
- List present families. Premium binaries are gitignored, so they may or may not be on this
device. List whatever
.ttf/.otf/.woff2 families are actually present.
- Read
MANIFEST.md in that folder. For each present family confirm: role, voice, best
use, avoid-for notes, pairing guidance, licence, embedding permitted?, and file
redistribution permitted?
- Decide: if a present family fits the artifact's voice and role better than the baseline
and its MANIFEST grants the permission the format needs, use it. Otherwise use the named OFL
baseline from
font-groups-and-usage.md.
- Never ship a file you may not redistribute. Embedding a Fontshare face into a built
artifact is fine; committing or shipping the raw file is not.
- Report which family was chosen and why: premium vs baseline, category, role, pairing,
and licence basis.
Anti-Patterns
- Using a premium family whose MANIFEST does not grant the needed permission.
- Assuming a premium file is present because it is on another device - always list first.
- Skipping the eight-folder taxonomy preflight on a new device, then creating ad hoc categories.
- Committing premium binaries into any repo.
- Scanning a body workhorse category when the artifact needs an expressive display face.
- Using a script/cursive face for body text or dense UI.
Outputs
| Output | Consumer | Evidence / acceptance |
|---|
| Availability inventory | Typeface selector | Files grouped by family and category |
| Licence disposition | Embedding workflow | Permission and restriction recorded |
| Resolved font choice | Design owner | Role, pairing, availability, and reason stated |
- The resolved typeface, premium or baseline, with role, voice, pairing, and licence basis
recorded for the embedding step.
Examples
- See
examples/premium-scan-worked.md for a file, manifest, licence, and fallback decision.
Quality Standards
- Treat filesystem evidence and the manifest as authoritative for local availability.
- Record embedding and redistribution permissions separately.
- Stop selection when licence evidence is absent; recover with the named OFL baseline.
Decision Rules
| Condition | Decision | Wrong-choice failure |
|---|
| Premium face is present, suitable, and licensed | Prefer it when it improves the artefact | Purchased differentiation is missed |
| File is absent on this device | Use the OFL baseline | Build depends on an unavailable binary |
| Embedding allowed but redistribution forbidden | Embed only in the permitted artefact | Raw font is unlawfully shipped |
| Licence evidence is missing | Stop and use the baseline | Permission is guessed |
Capability Contract
Read and filesystem search are required. Create a missing taxonomy directory only through the documented idempotent preflight; do not move, delete, commit, or redistribute binaries. Network access is optional for licence verification.
Degraded Mode
Without local file access, return the category baseline and a pending scan checklist. Without reliable rights evidence, mark the premium option blocked and recover with the OFL baseline.
examples/premium-scan-worked.md - a full worked scan for a startup-product artifact: scan
fonts/03-modern-product-grotesque/, read its MANIFEST, find Satoshi present, apply its
Fontshare embed-yes/redistribute-no rule, decide premium-vs-baseline with the licence basis
stated, and record the resolved face.
References
fonts/README.md - required eight-category folder taxonomy and new-device setup command.
doctrine/references/font-groups-and-usage.md, licensing-and-embedding.md;
the per-category fonts/<category>/MANIFEST.md.