ADRs
ADR 0075 — Terminology split: filo (connector) vs tavola (artboard+tree domain)
  • 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-*.md and 0073-*.md keep 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.ts factories, apps/api/src/entity-link.ts, the entity_link table). 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/TavolaTargetFilo/FiloProps/FiloTarget, .tavola__*.filo__*, data-tavola-linkeddata-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-*.md and 0073-*.md are 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 any filo-prefixed identifier, and filo must 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.