- Date: 2026-08-05
- Status: Accepted
- Builds on: ADR 0059 (Italian / Renaissance naming chord), ADR 0063 (Studio
tools as reusable
@arno/*packages), ADR 0052 (Sorgente shared-DB Brand surface), ADR 0060 (docs ↔ code separation).
Context
A new capability lands on the Sorgente Brand tab: import a brandbook PDF and
turn its colors, font families, and font sizes into BASE Sorgente tokens after a
review + Confirm (requirements/marca.md). Two decisions need a record.
-
Naming. The module needs a name. Arno's Studio tools follow the Italian / Renaissance chord (ADR 0059):
punta,dito,passo,tela,quadro,albero,rotta,compasso. A brandbook-import module namedbrandbook-import(orbrand-import,pdf-import) would read as drift — a generic English name in a chord of Italian ones, exactly the "looks like an oversight" failure ADR 0059 calls out. -
Code name vs UI label. The user-visible surface already exists and is called "Brand" (ADR 0052). Renaming the tab to an Italian word would break a familiar surface for zero user benefit. So the code name and the UI label must be allowed to differ, on the record, so a future contributor does not "fix" the mismatch in either direction.
Decision
1. The module is named Marca
Marca = Italian brand / mark. It clears the ADR 0059 four-point checklist:
- Italian noun, short, concrete — 5 letters; a brand is a mark.
- Lexically unique enough in-context —
marca + arnois not dominated by an unrelated brand; it slots cleanly beside the existing tool namespace (Sorgente / Punta / Tela / Rotta / Marca). - Metaphor transparent without footnote — "marca = the maker's mark; the tool that imports a brand's marks (colors, type) into the system." One sentence.
- Not a generic English replacement — it is not
brand,import,core,source,panel.
It is not cargo-culting (the ADR 0059 risk): marca is the metaphor (the
mark a maker leaves), not a literal translation of a UI noun the way "bottone"
would translate "button".
The code ships as packages/marca/ (@arno/marca), a reusable Studio-tool
package per ADR 0063.
2. marca (code) ↔ "Brand" (UI) is an intentional split
The code name is marca / @arno/marca everywhere in the source, package
graph, docs, and this ADR. The user-visible label stays "Brand" — the tab
title, section headings, and any user-facing string. No product surface reads
"Marca".
This is consistent with ADR 0060 (docs ↔ code separation): internal identifiers
and user-facing copy are allowed to diverge, and the divergence is documented
rather than left as apparent inconsistency. A contributor seeing @arno/marca
render under a "Brand" tab should read this ADR, not file a rename.
Rules.md § Naming chord is a prose mirror of ADR 0059 and is outside the
/build agent write-scope; the one-line "Marca — brand/mark" addition there is
flagged for the maintainer to mirror post-merge. This ADR is canonical.
Consequences
Positive
- The tool namespace stays a coherent Italian chord (ADR 0059 held).
- No user-facing churn — "Brand" is untouched; the split is invisible to users.
- Reuse is explicit:
@arno/marcadepends on@arno/puntaand consumes the Google-Fonts catalogue base (loadFontCatalog/filterFonts/ensureFontLoaded) rather than copying it (ADR 0063 reuse intent).
Negative
- One more code-name ↔ UI-label pair a contributor must learn (mitigated by this
ADR +
packages/marca/_index.md). Rules.mdprose needs a one-line mirror the agents cannot write themselves — tracked as a post-merge maintainer chore.
Neutral
- The licensed-font upload subsystem is frozen (
requirements/marca.md § Deferred / Frozen); un-freezing it does not touch this naming decision.
Alternatives considered
brandbook-import/brand-import. Rejected — generic English, breaks the ADR 0059 chord.- Rename the UI tab to "Marca". Rejected — churns a familiar surface (ADR 0052) for no user benefit; ADR 0060 already permits a code↔UI split.
- Fold the code into
apps/web/src/features/marca/. Rejected — ADR 0063 makes reusable Studio tools@arno/*packages; the module reuses@arno/puntaand warrants the same layout.
References
- ADR 0059 — Italian / Renaissance naming chord.
- ADR 0063 — Studio tools as reusable packages.
- ADR 0052 — Sorgente shared-DB Brand surface.
- ADR 0060 — docs ↔ code separation.
requirements/marca.md,packages/marca/_index.md,docs/marca/.