Skill
Classifica le traduzioni dei termini
Assegna traduzione di riferimento, forma e tipo lessicale a ogni voce, così da gestire prestiti, calchi e termini nativi.
File
skills/classifica-traduzioni.md
Prompt
source-command-translation-type
Use this skill when the user asks to run the migrated source command translation-type.
Command Template
CryptoGlossario — Translation Type · v5.0
This command owns baselineTranslation, translation, translationForm, renderingType and attestationStatus only. Do not touch any other field. Pipeline, ownership and versioning rules live in lib/skill-registry.ts.
Two orthogonal axes (v5.0 "solo rese")
lexType is retired. Translation is described by two independent axes, so a term whose rendering and currency disagree no longer forces a false choice.
renderingType— how the Italian form is produced (Haugen / Gusmani / Vinay-Darbelnet).attestationStatus— how rooted that Italian rendering is in real usage.
The rooting axis qualifies a rendering, so it applies only to types that carry one. A non-adapted-borrowing has no Italian rendering and therefore no attestationStatus (leave it empty); "how common is the loanword" is a different question, covered by searchScore/momentumRatio, not by this axis. For every other type the two axes are independent: a structural-calque can be occasional ("catena laterale", real but rare) or attested; decide each axis on its own evidence.
Web research (mandatory)
Follow AGENTS.md "Web research standard". For this skill: rigour is high. Before settling any boundary case, search the Italian form in real prose, not in glossaries. Record the URLs you consulted in the entry's sources (the apply script requires at least 2 valid URLs per entry — see the sources gate below). Your own familiarity with the English term, and the term being frequent in Italian, are never evidence by themselves.
Changelog
| Versione | Modifica | Delta: termini da ricontrollare |
|---|---|---|
| 1.0 | Classificazione base: borrowing / calque / attested / established | — |
| 1.1 | Ricerca web obbligatoria prima di borrowing; regola latinismi → established | tutti i borrowing |
| 1.2 | Calco letterale componente per componente — nessun ibrido inglese-italiano | tutti i calque |
| 1.3 | Criteri operativi attested vs established e calque vs attested | tutti gli attested e gli established |
| 2.0 | Introdotti baselineTranslation e translationForm; calque congelato come legacy | tutti i termini |
| 3.0 | calque riabilitato come categoria attiva; test di autonomia del lemma e di dominanza | i borrowing con resa piena plausibile e gli attested con forme da glossa |
| 4.0 | Modello a due assi: lexType sostituito da renderingType (tipo di resa) + attestationStatus (stato d'uso). Gate fonti generalizzato a ogni decisione di stato. | tutti i termini; i borrowing legacy e i casi incerti restano flaggati per ri-ricerca |
| 5.0 | Modello "solo rese": attestationStatus solo sui tipi con resa, azzerato sui non-adapted-borrowing; translationForm blindato come qualificatore interno (calchi puri sempre full); riclassificazione del secchio functional-equivalent per estrarre calchi strutturali e semantici reali. | tutti i termini |
Core fields
titleis the English/original primary lemma — never change it herebaselineTranslationis the always-filled Italian baseline: direct/mechanical rendering kept for internal comparison, even when it is not shown in UItranslationis the editorial Italian form shown in UI when relevanttranslationFormqualifies onlytranslation(full/hybrid)renderingTypedescribes how the Italian form is producedattestationStatusdescribes how rooted the term's Italian usage istitleItis deprecated — do not use it as evidence
baselineTranslation
Always fill it. It is not "the best Italian term"; it is the stable baseline rendering you would keep as internal reference: direct, mechanical, comparable across terms, allowed to be awkward, allowed to coincide with the original form when the direct rendering does that.
Examples: Mining → estrazione · Wallet → portafoglio · HODL → hodl · Rug Pull → strappo del tappeto.
translation
Fill it when the glossary should expose an Italian rendering in UI:
non-adapted-borrowing→ emptyadapted-borrowing→ optional (fill only when the adapted Italian form deserves UI exposure)structural-calque/semantic-calque/functional-equivalent→ filled with the circulating/registered form
translationForm
An internal qualifier of translation, not a third axis. Binary: full = fully Italian editorial form; hybrid = editorial form still contains English material. Empty when translation is empty. Pertinence by rendering type:
non-adapted-borrowing→ absent (no translation).structural-calque/semantic-calque→ alwaysfull. The form is fully
Italian by definition, so a hybrid calque is a contradiction and is rejected.
adapted-borrowing/functional-equivalent→ real choicefull/hybrid.
Examples: portafoglio → full · prova di lavoro → full · staking liquido → hybrid (functional-equivalent).
renderingType decision tree (how the Italian form is produced)
Classify the form, independently of how widespread it is.
semantic-calque— an existing Italian word takes on the new foreign
sense without a new form being built (portafoglio for wallet: the word pre-existed and absorbed the crypto meaning).
structural-calque— a component-by-component translation that mirrors
the original structure with Italian material (catena di blocchi ← blockchain, prova di lavoro ← proof of work, da colomba ← dovish). Fully Italian: no English material left.
functional-equivalent— an Italian word or phrase that conveys the
function without copying the structure (accomodante for dovish, restrittivo/aggressivo for hawkish).
adapted-borrowing— the foreign form is morphologically adapted to
Italian (verbs droppare, mintare; inflected nouns). The base is foreign, the morphology is Italian.
non-adapted-borrowing— the foreign form is kept as-is, no Italian
rendering worth exposing (staking, mining, airdrop). translation stays empty.
When more than one rendering exists for a single term (e.g. dovish = "da colomba" structural-calque and "accomodante" functional-equivalent), pick the one rendering this entry will record (Phase 1 stores one rendering per term).
attestationStatus decision tree (how rooted the rendering is)
Set it only for rendering-bearing types; a non-adapted-borrowing leaves it empty. Operational criteria, evidence-based:
established— the Italian rendering is the primary lemma in domain
reference works or institutional sources, with the original at most secondary. Technical latinisms (quorum) land here.
attested— the Italian rendering appears as an autonomous lemma — it
carries the sentence on its own: headlines, subjects, repeated references — in ≥2 independent real-usage sources of different kinds, within the currency window. Parenthetical glosses, one-off explainer translations and glossary entries do not count.
occasional— the Italian rendering appears only in glosses, parentheses
or glossary entries, or in fewer than 2 independent real-usage sources.
Boundary discipline
- The
attested/occasionalboundary is usage, not quality: a beautiful
rendering nobody uses is occasional; an ugly hybrid everyone uses is attested.
- Gloss-only evidence (the Italian form appears only between parentheses next to
the original) supports occasional, never attested.
- Acronym terms: judge the autonomy of the Italian expansion, not of the acronym.
PoW with "prova di lavoro" living in prose → attested; PoA with "prova di autorità" living only in glossaries → occasional.
Coherence rules (rendering ↔ translation ↔ rooting)
The apply script enforces these:
non-adapted-borrowing→translationempty, notranslationForm, noattestationStatusadapted-borrowing→translationoptional; when present, settranslationForm(full/hybrid);attestationStatusrequiredstructural-calque/semantic-calque→translationfilled +translationForm: full(hybrid rejected);attestationStatusrequiredfunctional-equivalent→translationfilled +translationForm(full/hybrid);attestationStatusrequired
Callout blurbs (UI prose)
The term page's RenderingCallout turns the fields this skill assigns into prose. The text is composed in lib/attestation-status-config.ts (not written per term), from two precise pieces plus the headline:
- rendering blurb — the "how the form is produced" sentence, keyed by
(renderingType × translationForm). getRenderingBlurb() returns the full/default wording and swaps in a hybrid variant for the types that may legitimately keep English (functional-equivalent, adapted-borrowing).
- rooting blurb — the "how rooted" sentence, keyed by rendering family
(borrowing vs rendering) × attestationStatus (getRootingBlurb()).
Precision rule: the prose must never contradict the fields.
- A
hybridform must name the residual English; it must not claim to be "tutta
italiana" or "senza ricalcarne la forma".
- A
fullstructural-calquestates the component-by-component recast in fully
Italian material; a full functional-equivalent renders the function without copying the structure.
- The rooting sentence states usage, not quality (see Boundary discipline).
structural-calque/semantic-calquearefullby definition, so ahybrid
one is a data bug: reclassify it (usually to functional-equivalent hybrid), do not lean on the defensive hybrid wording the page keeps for legacy rows.
When you add a finer distinction to the fields, add the matching blurb variant in lib/attestation-status-config.ts so the page stays as precise as the data.
Sources gate
Every entry needs a sources array with at least 2 valid URLs that document the status decision:
attested/established→ ≥2 Italian real-usage sources showing the rendering as autonomous lemmaoccasional→ ≥2 sources documenting that the Italian rendering lives only in glosses/glossariesnon-adapted-borrowing(no status) → ≥2 sources documenting that no live Italian rendering circulates
The absence of a single-word Italian equivalent is not evidence of a borrowing: multi-word, descriptive, metaphorical and hybrid renderings all count, and any one of them in real usage moves the status out of occasional.
Guardrails
- Never leave
baselineTranslationempty - Never fill
translationFormwhentranslationis empty - Never use
translationFormto describebaselineTranslation non-adapted-borrowingnever carries atranslationnor anattestationStatus- Calques and functional equivalents always carry
translation+translationForm structural-calque/semantic-calqueare alwaystranslationForm: full- Do not force an Italian UI translation just because a baseline rendering exists
- Decide the two axes on independent evidence; do not infer one from the other
Batch format
``json [ { "id": "convex_id_here", "slug": "term-slug", "title": "Term Title", "baselineTranslation": "resa italiana diretta", "translation": "Forma italiana editoriale", "translationForm": "full", "renderingType": "functional-equivalent", "attestationStatus": "attested", "sources": ["https://...", "https://..."] }, { "id": "convex_id_here", "slug": "altro-slug", "title": "Staking", "baselineTranslation": "messa in stake", "translation": "", "renderingType": "non-adapted-borrowing", "sources": ["https://...", "https://..."] } ] ``
For non-adapted-borrowing, use an empty translation and omit both translationForm and attestationStatus (the apply step clears any stale stored status). Every entry still needs at least 2 sources URLs.
``bash bun scripts/apply-translation-type-batch.ts /tmp/cg_translation_batch.json bun scripts/apply-translation-type-batch.ts /tmp/cg_translation_batch.json --apply ``
Batch strategy (v4.0 recheck)
- Re-screen all legacy
borrowing: research the concept in Italian prose; if a
real rendering circulates, move to the right calque/equivalent + status.
- Re-screen
attested/establishedwhose form lives only as a gloss →occasional. - For each term, set
renderingTypefrom the rendering tree and
attestationStatus from the rooting tree, independently.
- Keep
translationempty for genuinenon-adapted-borrowingterms even when
baselineTranslation exists.
Boolean traits still belong to specific-traits.