- Date: 2026-07-17
- Status: Accepted
- Amends (terminology only, no schema/API change): ADR 0072 and ADR 0073, which name the "+" connector tool "tavola". Those ADRs are historical records of what was built and decided at the time — they are NOT edited retroactively. This ADR documents the rename going forward;
docs/adr/0072-*.mdand0073-*.mdkeep saying "tavola" for the connector, and that is correct as a record of what those decisions actually named it.
Context
ADR 0072 introduced the "+" link-authoring affordance and, for lack of a better name at the time, called it "tavola". ADR 0073 generalized it into a standalone entity-to-entity connector and kept that name.
The maintainer's original intent, clarified in this session, was different: "tavola" was always meant to name the BIG domain — the artboard entity together with its tree view, a cohesive unit parallel in scope to how "canvas" is one cohesive rendering surface — not the small "+" connector mechanic. Using "tavola" for the connector was a naming mistake that needs correcting before a second consumer (a future sidebar tab) makes the wrong name harder to untangle.
Decision
Split into two distinct, non-overlapping names:
filo(Italian: thread/wire) — the "+" connector tool itself: the badge UI (packages/quadro/src/features/filo/,Filo.tsx,BackButton.tsx), its CSS (filo__*classes), and the generic entity-link data model beneath it (connector-stores.tsfactories,apps/api/src/entity-link.ts, theentity_linktable). This is exactly what ADR 0072/0073 built and called "tavola" — same code, same behavior, new name only.tavola(reserved, not yet built) — the artboard entity + its tree view together, the domain the connector currently operates on. Planned, not implemented by this ADR.albero(already referenced in ADR 0073 as a planned feature) — a VIEW or MODE within tavola (tree layout vs. graph layout of the same artboards), not a sibling feature alongside it. This ADR narrows albero's scope relative to how ADR 0073 described it ("planned sibling feature") — it's a mode inside tavola, not a peer of it.
Consequences
- Every file, export, CSS class, and doc comment that named the connector "tavola" is renamed to "filo":
packages/quadro/src/features/tavola/→features/filo/,Tavola/TavolaProps/TavolaTarget→Filo/FiloProps/FiloTarget,.tavola__*→.filo__*,data-tavola-linked→data-filo-linked. - The generic data model's own doc comments (
entity-link.ts,schema.ts,api-client.ts) keep citing ADR 0073 for the design rationale (why it's generic) and now also cite this ADR for the name. docs/adr/0072-*.mdand0073-*.mdare left untouched — they remain accurate about what was decided when. A reader hitting "tavola" in those files should land here via this ADR for the current name.- When
tavola(the domain) is actually built, it must not reuse anyfilo-prefixed identifier, andfilomust not be renamed again to make room — the two are permanently distinct going forward.
Alternatives considered
- Rename "tavola" (connector) to "nodo" — considered, rejected in favor of "filo": a link is more naturally a thread/wire connecting two points than a node, and "nodo" reads more naturally as a future name for a graph vertex (an artboard itself), which would collide with the planned tavola/albero domain.
- Edit ADR 0072/0073 in place to say "filo" instead of "tavola" — rejected: violates the ADR immutability rule (
Rules.md § Language) — those ADRs are a historical log of decisions as made, not living documentation. - Leave the connector named "tavola" and find a different name for the domain — rejected per the maintainer's explicit correction: "tavola" was always meant for the domain; keeping it on the connector would permanently misname the bigger, more important piece.