v0.1 draft · Apache-2.0 · un progetto personale di antferrv0.1 draft · Apache-2.0 · a personal project by antferrv0.1 draft · Apache-2.0 · un projet personnel de antferr
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. In tailoring, agio is the ease designed between body and garment. Here it is an open standard: three JSON documents, a reference algorithm and one rule — the profile stays yours; shops only ever get a size.En couture, l’agio est l’aisance ménagée entre le corps et le vêtement. Ici, c’est un standard ouvert : trois documents JSON, un algorithme de référence et une règle — le profil reste à vous ; les boutiques ne reçoivent qu’une taille.
01 · Il vocabolario01 · The vocabulary01 · Le vocabulaire
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. The whole standard fits in three JSON schemas. You own the first, the seller publishes the second, and the third is the only thing that travels between the two. Open the examples to see the actual shape of the data.Tout le standard tient en trois schémas JSON. Le premier vous appartient, le second est publié par le vendeur, et le troisième est la seule chose qui circule entre les deux. Ouvrez les exemples pour voir la forme réelle des données.
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. Your profile: body measurements (each with mandatory source and observed_at, tolerance strongly recommended), fit preferences and — the strongest signal — the history of how past garments actually fitted you.Votre profil : mensurations (chacune avec source 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.
Estratto semplificato: una voce di storico completa richiede anche occurred_at, garment_ref e source.Simplified excerpt: a full history entry also requires occurred_at, garment_ref and source.Extrait simplifié : une entrée d'historique complète exige aussi occurred_at, garment_ref et source.
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. How the garment is cut, not what the brand calls the size: per-size measurements, intended ease (intended_ease), stretch. The measurement_method field is mandatory, with no default.Comment le vêtement est coupé, et non comment la marque nomme la taille : mesures par taille, aisance prévue (intended_ease), élasticité. Le champ measurement_method est obligatoire, sans valeur par défaut.
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. The answer. Its shape is the normative part of the standard: exposed confidence, a per-zone explanation, explicit caveats. How much detail it carries is decided by the disclosure level.La réponse. Sa forme est la partie normative du standard : confiance exposée, explication par zone, avertissements explicites. Le niveau de divulgation décide du détail qu’elle contient.
02 · Provalo02 · Try it02 · Essayez-le
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. The same logic as the reference implementation (python -m agiofit.cli), 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.La même logique que l’implémentation de référence (python -m agiofit.cli), 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.The simulator requires JavaScript.Le simulateur nécessite JavaScript.
03 · La privacy come design03 · Privacy as design03 · La confidentialité comme design
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. The caller doesn't decide how much it sees: the disclosure level does, and the numbers are stripped at serialisation, not by anyone's goodwill. There is a test that verifies it.L’appelant ne décide pas de ce qu’il voit : c’est le niveau de divulgation qui décide, et les chiffres sont supprimés à la sérialisation, pas par bonne volonté. Un test le vérifie.
Taglia e confidenza. È tutto ciò che serve a un negozio per venderti una camicia.Size and confidence. All a shop needs to sell you a shirt.Taille et confiance. Tout ce qu’il faut à une boutique pour vous vendre une chemise.
Aggiunge il giudizio per zona (buono, attenzione…) ma senza centimetri.Adds the per-zone assessment (good, watch…) but no centimetres.Ajoute le jugement par zone (bon, attention…) mais sans centimètres.
Aggiunge l'agio numerico sulle zone richieste. Per servizi di cui ti fidi di più.Adds numeric ease on the requested zones. For services you trust more.Ajoute l’aisance chiffrée sur les zones demandées. Pour les services de plus grande confiance.
Il profilo completo. Pensato per il tuo vault, non per terzi.The complete profile. Meant for your vault, not for third parties.Le profil complet. Destiné à votre coffre-fort, pas aux tiers.
Le misure del capo sono pubbliche (stanno nel Cut Profile). Se la raccomandazione pubblicasse anche l'agio in centimetri, chiunque saprebbe fare: The garment's measurements are public (they live in the Cut Profile). If the recommendation also published the ease in centimetres, anyone could do:Les mesures du vêtement sont publiques (elles vivent dans le Cut Profile). Si la recommandation publiait aussi l’aisance en centimètres, n’importe qui pourrait faire :
corpo = capo − agio → 116 cm − 16 cm = 100 cm di toracebody = garment − ease → 116 cm − 16 cm = a 100 cm chestcorps = vêtement − aisance → 116 cm − 16 cm = 100 cm de tour de poitrine
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. One subtraction reconstructs the body measurement. That's why at the lower levels the ease exists in the computation but does not survive serialisation — try it in the simulator by switching from scoped to explained.Une soustraction reconstruit la mensuration. C’est pourquoi, aux niveaux bas, l’aisance existe dans le calcul mais ne survit pas à la sérialisation — essayez-le dans le simulateur en passant de scoped à explained.
04 · Sul tuo computer04 · On your machine04 · Sur votre machine
L'implementazione di riferimento è Python puro, zero dipendenze. Dopo aver clonato github.com/agiofit/agiofit: The reference implementation is pure Python, zero dependencies. After cloning github.com/agiofit/agiofit:L’implémentation de référence est du Python pur, sans dépendances. Après avoir cloné github.com/agiofit/agiofit :
# installazione e verifica (13 test, devono passare tutti)# install and verify (13 tests, all must pass)# installation et vérification (13 tests, tous doivent passer) $ cd agiofit/reference $ pip install -e ".[dev]" $ pytest 13 passed # profilo maturo, livello di default (explained)# mature profile, default level (explained)# profil mature, niveau par défaut (explained) $ python -m agiofit.cli ../examples/profile-mature.json ../examples/cut-shirt.json { "recommended_size": "41", "confidence": 0.76, ... } # cold start, solo il risultato# cold start, result only# cold start, résultat seul $ 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 pubblico05 · Worth defending in public05 · À défendre en public
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. The only field that records an accepted trade-off. Without it, the system learns you reject tight shoulders; with it, it learns you accept a loose waist to get the shoulders right.Le seul champ qui enregistre un compromis accepté. Sans lui, le système apprend que vous refusez les épaules serrées ; avec lui, il apprend que vous acceptez une taille ample pour avoir les épaules justes.
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. Flat-laid measurements are half circumferences. It's the industry's most common mistake, and it produces recommendations wrong by a factor of two, silently. Here, if you don't declare it, the document doesn't validate.Les mesures à plat sont des demi-circonférences. C’est l’erreur la plus répandue du secteur, et elle produit des recommandations fausses d’un facteur deux, en silence. Ici, si vous ne le déclarez pas, le document ne valide pas.
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. A brand that "runs small" runs small in the torso. Applying the same centimetre shift to the collar — where 1 cm is a whole size — turns a useful correction into a wrong answer. History applies per zone: 1.0 on the chest, 0.2 on the collar.Une marque qui « taille petit » taille petit au buste. Appliquer le même décalage en centimètres au col — où 1 cm est une taille entière — transforme une correction utile en une réponse fausse. L’historique s’applique par zone : 1.0 sur la poitrine, 0.2 sur le col.
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. Zero body measurements, a single kept garment from the same brand: the system still answers, with confidence capped at 0.40, refuses cross-brand inference and tells you what to add to improve. History is worth more than centimetres.Zéro mensuration, un seul vêtement gardé de la même marque : le système répond quand même, avec une confiance plafonnée à 0.40, refuse l’inférence entre marques et vous dit quoi ajouter pour progresser. L’historique vaut plus que les centimètres.