English Italiano Français

v0.1 draft · standard ouvert · un projet personnel de antferr

Agio Fit
le profil de bien-aller que vous emportez avec vous

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.

the garmentil capole vêtement the agio (ease)l'agiol'agio — aisance the bodyil corpole corps
Le logo est le concept : le vide entre le corps et le vêtement, c'est l'agio.

01 · Le vocabulaire

Trois documents, un contrat

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

fit-profile.schema.json

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.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.

{ "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", // pèse moins "observed_at": "2026-01-10", "tolerance": 2.0 } }, "history": [{ "brand": "Sartoria Esempio", "size_label": "41", "outcome": "kept", "kept_despite": ["waist"] // compromis accepté }] }

, garment_ref e source., garment_ref and source.Extrait simplifié : une entrée d'historique complète exige aussi occurred_at, garment_ref et source.

Cut Profile

cut-profile.schema.json

), elasticità. Il campo measurement_method è obbligatorio e senza default. ), 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.

{ "brand": "Sartoria Esempio", "category": "shirts", "measurement_method": "flat_laid", // largeurs = ½ circonférence "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 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.

{ "recommended_size": "41", "confidence": 0.76, "disclosure_level": "explained", "explanation": [{ "zone": "shoulders", "assessment": "as_cut" // aucun chiffre à ce niveau : // supprimés à la sérialisation }], "caveats": [ "arm_length est auto-déclarée" ] }

02 · Essayez-le

Le matching, en direct

), 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.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.

Le simulateur nécessite JavaScript.

03 · La confidentialité comme design

Quatre niveaux, une soustraction à empêcher

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.

result_only

Taille et confiance. Tout ce qu’il faut à une boutique pour vous vendre une chemise.

explained

Ajoute le jugement par zone (bon, attention…) mais sans centimètres.

scoped

Ajoute l’aisance chiffrée sur les zones demandées. Pour les services de plus grande confiance.

full

Le profil complet. Destiné à votre coffre-fort, pas aux tiers.

Pourquoi « explained » cache les chiffres : la fuite arithmétique

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 :

corps = vêtement − aisance  →  116 cm − 16 cm = 100 cm de tour de poitrine

a explained. 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 · Sur votre machine

Utilisation depuis le terminal

: :L’implémentation de référence est du Python pur, sans dépendances. Après avoir cloné github.com/agiofit/agiofit :

# installation et vérification (13 tests, tous doivent passer)
$ cd agiofit/reference
$ pip install -e ".[dev]"
$ pytest
13 passed

# 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, 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 · À défendre en public

Les décisions qui ne sont pas un guide des tailles

kept_despite

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.

measurement_method obligatoire, sans défaut

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.

offset_scale par zone

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.

Cold start avec confiance déclarée

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.