English Italiano Français

v0.1 draft · standard aperto · un progetto personale di antferr

Agio Fit
il profilo di vestibilità che ti porti dietro

In sartoria l'agio è il margine progettato tra corpo e capo. Qui è uno standard aperto: tre documenti JSON, un algoritmo di riferimento e una regola — il profilo resta tuo, ai negozi esce solo la taglia.

the garmentil capole vêtement the agio (ease)l'agiol'agio — aisance the bodyil corpole corps
Il logo è il concetto: il vuoto tra corpo e capo è l'agio.

01 · Il vocabolario

Tre documenti, un contratto

Tutto lo standard sta in tre schemi JSON. Il primo lo possiedi tu, il secondo lo pubblica chi vende, il terzo è l'unica cosa che viaggia tra i due. Apri gli esempi per vedere la forma reale dei dati.

Fit Profile

fit-profile.schema.json

Il tuo profilo: misure corporee (ognuna con source e observed_at obbligatori, tolerance fortemente raccomandata), preferenze di vestibilità e — il segnale più forte — lo storico di come i capi passati ti sono andati davvero. and observed_at, tolerance strongly recommended), fit preferences and — the strongest signal — the history of how past garments actually fitted you. et observed_at obligatoires, tolerance fortement recommandée), préférences de coupe et — le signal le plus fort — l’historique de la façon dont les vêtements passés vous sont réellement allés.

{ "body_measurements": { "chest_circumference": { "value": 100, "unit": "cm", "source": "tape_measured", "observed_at": "2026-06-01", "tolerance": 1.0 }, "arm_length": { "value": 63, "unit": "cm", "source": "self_reported", // pesa meno "observed_at": "2026-01-10", "tolerance": 2.0 } }, "history": [{ "brand": "Sartoria Esempio", "size_label": "41", "outcome": "kept", "kept_despite": ["waist"] // compromesso accettato }] }

Estratto semplificato: una voce di storico completa richiede anche occurred_at, garment_ref e source., garment_ref and source., garment_ref et source.

Cut Profile

cut-profile.schema.json

Come il capo è tagliato, non come il brand chiama la taglia: misure per taglia, agio previsto (intended_ease), elasticità. Il campo measurement_method è obbligatorio e senza default. ), stretch. The measurement_method field is mandatory, with no default.), élasticité. Le champ measurement_method est obligatoire, sans valeur par défaut.

{ "brand": "Sartoria Esempio", "category": "shirts", "measurement_method": "flat_laid", // larghezze = ½ circonferenza "critical_zones": ["shoulders", "neck"], "sizes": [{ "size_label": "41", "finished_measurements": { "chest_width": { "value": 58, "unit": "cm" }, "shoulder_width": { "value": 46.5, "unit": "cm" }, "neck_circumference": { "value": 42, "unit": "cm" } } }], "intended_ease": { "chest": { "min": 12, "max": 20, "unit": "cm" } } }

Match Report

match-report.schema.json

La risposta. La sua forma è la parte normativa dello standard: confidenza esposta, spiegazione per zona, avvertenze esplicite. Quanto dettaglio contiene lo decide il livello di disclosure.

{ "recommended_size": "41", "confidence": 0.76, "disclosure_level": "explained", "explanation": [{ "zone": "shoulders", "assessment": "as_cut" // niente numeri a questo livello: // vengono rimossi in serializzazione }], "caveats": [ "arm_length è autodichiarata" ] }

02 · Provalo

Il matching, dal vivo

Stessa logica dell'implementazione di riferimento (python -m agiofit.cli), ricostruita qui in JavaScript: scegli un profilo e un livello di disclosure, e guarda cosa esce — e soprattutto cosa non esce. Il capo e i profili sono gli esempi reali del repo: la Classic Oxford di Sartoria Esempio (marchio fittizio), taglie 39–42. ), rebuilt here in JavaScript: pick a profile and a disclosure level, and watch what comes out — and above all what doesn't. Garment and profiles are the repo's real examples: Sartoria Esempio's Classic Oxford (a fictional brand), sizes 39–42.), reconstruite ici en JavaScript : choisissez un profil et un niveau de divulgation, et regardez ce qui sort — et surtout ce qui ne sort pas. Le vêtement et les profils sont les exemples réels du dépôt : la Classic Oxford de Sartoria Esempio (marque fictive), tailles 39–42.

Il simulatore richiede JavaScript.

03 · La privacy come design

Quattro livelli, una sottrazione da impedire

Il chiamante non decide quanto vede: lo decide il livello di disclosure, e i numeri vengono rimossi in serializzazione, non per buona volontà. C'è un test che lo verifica.

result_only

Taglia e confidenza. È tutto ciò che serve a un negozio per venderti una camicia.

explained

Aggiunge il giudizio per zona (buono, attenzione…) ma senza centimetri.

scoped

Aggiunge l'agio numerico sulle zone richieste. Per servizi di cui ti fidi di più.

full

Il profilo completo. Pensato per il tuo vault, non per terzi.

Perché «explained» nasconde i numeri: la perdita aritmetica

Le misure del capo sono pubbliche (stanno nel Cut Profile). Se la raccomandazione pubblicasse anche l'agio in centimetri, chiunque saprebbe fare:

corpo = capo − agio  →  116 cm − 16 cm = 100 cm di torace

Una sottrazione ricostruisce la misura corporea. Per questo ai livelli bassi l'agio esiste nel calcolo ma non sopravvive alla serializzazione — provalo nel simulatore passando da scoped a explained. to explained. à explained.

04 · Sul tuo computer

Uso da terminale

L'implementazione di riferimento è Python puro, zero dipendenze. Dopo aver clonato github.com/agiofit/agiofit: : :

# installazione e verifica (13 test, devono passare tutti)
$ cd agiofit/reference
$ pip install -e ".[dev]"
$ pytest
13 passed

# profilo maturo, livello di default (explained)
$ python -m agiofit.cli ../examples/profile-mature.json ../examples/cut-shirt.json
{ "recommended_size": "41", "confidence": 0.76, ... }

# cold start, solo il risultato
$ python -m agiofit.cli ../examples/profile-cold-start.json ../examples/cut-shirt.json result_only
{ "recommended_size": "41", "confidence": 0.25, ... }

05 · Da difendere in pubblico

Le decisioni che non sono una tabella taglie

kept_despite

L'unico campo che registra un compromesso accettato. Senza, il sistema impara che rifiuti le spalle strette; con, impara che accetti una vita larga pur di avere le spalle giuste.

measurement_method obbligatorio, senza default

Le misure flat laid sono mezze circonferenze. È l'errore più diffuso del settore e produce raccomandazioni sbagliate di un fattore due, in silenzio. Qui, se non lo dichiari, il documento non valida.

offset_scale per zona

Un brand che «veste piccolo» veste piccolo nel torso. Applicare lo stesso spostamento in cm al collo — dove 1 cm è una taglia intera — trasforma una correzione utile in una risposta sbagliata. Lo storico si applica per zona: 1.0 sul torace, 0.2 sul collo.

Cold start con confidenza dichiarata

Zero misure corporee, un solo capo tenuto dello stesso brand: il sistema risponde comunque, con confidenza massima 0.40, rifiuta l'inferenza cross-brand e ti dice cosa aggiungere per migliorare. Lo storico vale più dei centimetri.