CommunityRédaction et éditiongithub.com

commonspecs/commonspecs-skill

Skill de référence pour commonspecs — fiches techniques de qualité ingénieur avec score de confiance par champ pour les agents IA. Installation : npx skills add commonspecs/commonspecs-skill

Qu'est-ce que commonspecs-skill ?

commonspecs est une base de données orientée API de fiches techniques de qualité « ingénieur », où chaque valeur est accompagnée d'un score de confiance calibré. Contrairement aux simples devinettes, chaque donnée est sourcée et transparente. Cette skill permet aux agents IA (Claude Code, Cursor, Codex) de consulter, comparer et contribuer à des fiches produits précises à l'aide de cinq outils principaux : lookup_product (recherche par URL, EAN ou marque+modèle), search_products (recherche textuelle classée par qualité), compare_products (comparaison côte à côte avec désignation d'un vainqueur global), get_rankings (top produits d'une catégorie), et submit_contribution (enrichissement des données avec preuves). La skill met un point d'honneur à ne jamais inventer de valeur, à toujours afficher le score de confiance, et à signaler explicitement les champs litigieux ou à corroborer. Une gestion robuste des erreurs (401, 403, 429, 5xx) est intégrée. L'installation se fait via `npx skills add commonspecs/commonspecs-skill` et la configuration par variables d'environnement.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add commonspecs/commonspecs-skill

Installed? Explore more Rédaction et édition skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

commonspecs

commonspecs est une base de données orientée API de fiches techniques de qualité ingénieur avec un score de confiance par champ. Elle ne devine pas : chaque valeur est sourcée et porte une confiance calibrée. Votre travail consiste à récupérer ces faits et à les présenter honnêtement — y compris leur degré de fiabilité.

Configuration

La configuration provient de variables d'environnement (ou de ~/.commonspecs/config.json) :

VariableRequiseDéfautSignification
COMMONSPECS_API_TOKENoui—Jeton API, forme cs_live_…. Envoyé comme Authorization: Bearer.
COMMONSPECS_API_URLnonhttps://api.commonspecs.comURL de base de l'API.
COMMONSPECS_DEFAULT_COUNTRYnon—ISO 3166-1 alpha-2 (ex. PL) pour les lectures limitées à un pays.

Si COMMONSPECS_API_TOKEN n'est pas défini, dites à l'utilisateur de le définir et arrêtez-vous — n'appelez pas l'API.

Outils

Tous les appels envoient Authorization: Bearer $COMMONSPECS_API_TOKEN. Les exemples supposent API="$COMMONSPECS_API_URL" (repliez-vous sur la valeur par défaut ci-dessus).

lookup_product — récupérer les fiches d'un produit

Résoudre un produit par exactement un de : url, ean, ou brand + model.

curl -sS -X POST "$API/v1/lookup" \
  -H "Authorization: Bearer $COMMONSPECS_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"brand":"Nudie","model":"Gritty Jackson"}'

{"url":"https://…"} ou {"ean":"7340028912345"} sont les deux autres formes. Optionnel : exclude_low_confidence: true pour supprimer le groupe des champs de faible confiance.

Si l'utilisateur colle un nombre brut de 8 à 14 chiffres (EAN-8, UPC-A, EAN-13 ou GTIN-14), traitez-le comme un ean et effectuez la recherche avant d'essayer de l'interpréter comme un modèle.

Statut de la réponse :

  • hit — un produit. Corps : product, quality_score (0–100 ou null), fields, low_confidence_fields, enrichment_opportunities (voir ci-dessous).
  • candidates — plusieurs variantes correspondent (candidates: [...]) ; demandez à l'utilisateur laquelle, ou cherchez par url/ean.
  • miss — rien trouvé. Proposez de contribuer aux fiches (submit_contribution).

search_products — rechercher des produits, les mieux notés en premier

curl -sS -X POST "$API/v1/search" \
  -H "Authorization: Bearer $COMMONSPECS_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query":"raw denim","category":"jeans-denim"}'

Correspond sur le nom de la marque et le modèle. Filtre optionnel par category (slug) et limit (≤20). Renvoie results classés par quality_score décroissant (meilleures fiches en premier ; les produits avec peu de données en dernier), chacun avec le même champ quality_score qu'une recherche simple. Utilisez cette fonction lorsque l'utilisateur demande « que devrais-je acheter dans <catégorie> » plutôt que de nommer un produit.

compare_products — comparaison côte à côte sur les caractéristiques techniques

À utiliser lorsque l'utilisateur nomme deux produits spécifiques ou plus pour choisir.

curl -sS -X POST "$API/v1/compare" \
  -H "Authorization: Bearer $COMMONSPECS_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"product_ids":["<id1>","<id2>"]}'

Jusqu'à 5 identifiants. Renvoie products (chacun avec quality_score), une matrice comparison ([{field, cells: {<product_id>: {value, confidence} | null}}]), et overall_winner (le product_id avec le total_score le plus élevé). Présentez les faits côte à côte, nommez le overall_winner, puis expliquez vous-même le compromis à partir des faits et des scores — l'API ne renvoie délibérément pas de gagnants par dimension ni de justification ; le jugement valeur-coût et adéquation à l'usage vous appartient à partir des données.

get_rankings — meilleurs produits d'une catégorie

À utiliser lorsque l'utilisateur demande « quels sont les meilleurs X » sans nommer de produit.

curl -sS "$API/v1/categories/jeans-denim/rankings?country=PL&limit=20" \
  -H "Authorization: Bearer $COMMONSPECS_API_TOKEN"

Renvoie results classés par quality_score (chacun avec un rank). ranking_scope est global pour l'instant — les classements localisés par pays nécessitent des données de prix/disponibilité qui ne sont pas encore en ligne, donc un country_code est renvoyé mais le classement correspond à l'ordre global du score. Préférez cette fonction à de multiples recherches individuelles lorsque l'utilisateur navigue dans une catégorie.

get_product — récupérer par identifiant

curl -sS "$API/v1/products/$PRODUCT_ID" \
  -H "Authorization: Bearer $COMMONSPECS_API_TOKEN"

get_quality_score — qualité globale (0–100)

curl -sS "$API/v1/products/$PRODUCT_ID/quality-score" \
  -H "Authorization: Bearer $COMMONSPECS_API_TOKEN"

Renvoie total_score (0–100, ou null si la catégorie n'est pas encore notée) et missing_fields — les champs de fiche dont l'absence freine le score. Un score faible signifie souvent peu de données, pas un mauvais produit ; utilisez missing_fields pour décider quoi contribuer. Le score est un nombre unique à dessein — la pondération par champ derrière n'est pas exposée ; raisonnez sur les compromis à partir des faits eux-mêmes.

submit_contribution — ajouter des fiches que vous avez vérifiées

Une soumission contient un tableau fields. Identifiez le produit par exactement un de url / ean / brand+model (brand+model crée le produit s'il est nouveau). Chaque champ doit comporter source_url et un snippet textuel dont vous avez lu la valeur — c'est cette preuve qui génère la confiance. source est web (par défaut, une page web) ou label (une étiquette physique — voir ci-dessous).

curl -sS -X POST "$API/v1/contributions" \
  -H "Authorization: Bearer $COMMONSPECS_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "brand": "Nudie Jeans", "model": "Gritty Jackson", "source": "web",
    "fields": [
      {"field_name": "fabric_weight", "value": "13.5 oz",
       "source_url": "https://www.nudiejeans.com/product/gritty-jackson",
       "snippet": "13.5 oz organic dry denim"}
    ]
  }'

Monde physique : si l'utilisateur montre une photo d'étiquette/produit, lisez les valeurs et l'EAN vous-même et n'envoyez que les valeurs extraites — la photo ne quitte jamais la machine de l'utilisateur. Cherchez d'abord le produit par ean, puis contribuez les fields manquants avec "source": "label".

Lecture d'une réponse

quality_score (0–100, ou null) est la qualité globale des fiches du produit ; associez-le à missing_fields de get_quality_score lorsque l'utilisateur demande « est-ce que c'est bon ? ». Chaque champ dans fields / low_confidence_fields a value, confidence (0–1), disputed, needs_corroboration, et (en cas de litige) alternate_claims.

  • fields[] — confiance ≥ 0,4. Suffisamment fiable pour être énoncé. Affichez quand même le nombre ; « 13,5 oz (confiance 0,88) » est mieux qu'un simple « 13,5 oz ».
  • low_confidence_fields[] — confiance 0,1–0,4. Une piste, pas un fait. Présentez uniquement avec une réserve explicite (« une source suggère… »). Omettez si l'utilisateur ne veut que des données solides.
  • needs_corroboration: true — une seule source indépendante jusqu'à présent. Mentionnez-le.
  • disputed: true — les sources divergent ; montrez le gagnant et alternate_claims. Un désaccord est en soi un signal d'achat, pas un bruit à cacher.
  • enrichment_opportunities — champs qui bénéficieraient d'une autre source. Si l'utilisateur est engagé, proposez d'en récupérer une et de faire submit_contribution.

N'inventez jamais une valeur qui n'est pas dans la réponse, et ne supprimez jamais le score de confiance lorsque vous rapportez un fait.

Erreurs

  • 401 jeton invalide/manquant → dites à l'utilisateur de vérifier COMMONSPECS_API_TOKEN ; ne réessayez pas.
  • 403 accès interdit → le jeton n'a pas les droits ; ne réessayez pas.
  • 429 limite de débit dépassée → patientez et réessayez avec un délai exponentiel (ex. 1s, 2s, 4s, max 3).
  • 5x / réseau → réessayez une ou deux fois avec backoff, puis signalez l'échec simplement.

Pas encore disponible

offers/tarification et flag_stale ne sont pas encore exposés par l'API. N'inventez pas d'appels vers eux — dites que la fonctionnalité n'est pas en ligne.

Skills associés