Aller au contenu principal

Publication sur le Registre

Le marketplace AISCouncil utilise un modèle de distribution à niveaux qui équilibre ouverture et confiance. Vous pouvez distribuer des applications librement par URL, ou les lister dans le registre pour une découverte plus large avec des badges de confiance.

Niveaux de Distribution

NiveauComment ListerRevueBadgeApplications PayantesEn Vedette
Direct InstallL'utilisateur colle n'importe quelle URL de manifesteAucuneAucunNonNon
CommunityPR vers registry/packages.jsonAutomatisée"Community"OuiNon
AI VerifiedCommunity + scan IA payantAudit de sécurité LLM"AI Verified"OuiNon
VerifiedCommunity + revue manuelle de l'équipeRevue humaine"Verified"OuiOui

Direct Install

La méthode de distribution la plus simple. Hébergez votre manifeste et fichiers n'importe où, puis partagez l'URL du manifeste. Les utilisateurs la collent dans la section Sideload pour installer.

  • Pas de listing dans le registre nécessaire
  • Pas de processus de revue
  • Pas de badge de confiance
  • Applications gratuites uniquement
  • Fonctionne immédiatement

C'est le modèle de distribution natif du web. Voir Sideloading Apps pour les détails.

Community

Le listing standard du registre. Soumettez une pull request pour ajouter votre application à registry/packages.json. Si la validation automatisée passe, la PR peut être fusionnée et votre application apparaît dans l'App Store avec un badge "Community".

  • Validation automatisée via validate.py
  • Découvrable dans l'App Store
  • Supporte les applications gratuites et payantes
  • Pas de revue manuelle requise

AI Verified

Une mise à niveau de confiance optionnelle pour les applications Community. Payez pour un scan de sécurité alimenté par LLM qui vérifie votre code pour les logiciels malveillants, l'exfiltration de données, le mauvais usage des permissions, le code obfusqué et les tentatives d'évasion du bac à sable.

  • Coûte 19-99 $ par version selon la profondeur du scan
  • Le badge est épinglé à un hash de contenu SHA-256
  • Les changements de code invalident le badge
  • Le badge expire après 12 mois
info

Le système AI Verified (les endpoints /v1/verify/*) est prévu pour une version future. Le workflow décrit ici sera disponible lorsque ces endpoints seront disponibles.

Verified

Le plus haut niveau de confiance. Un mainteneur de la plateforme révise manuellement votre manifeste, permissions, HTML d'entrée et (pour les plugins) le binaire WASM.

  • Nécessite une approbation humaine
  • Obtient le badge "Verified"
  • Placement en vedette dans l'App Store
  • Recommandé pour les applications gérant des données sensibles

Publier une Application Gratuite (Niveau Community)

1. Hébergez Vos Fichiers d'Application

Uploadez votre manifest.json et index.html (plus les ressources) sur un CDN accessible publiquement. Options gratuites populaires :

HébergeurPattern d'URLConfiguration
GitHub Pagesyourname.github.io/app-name/Activer dans repo Settings > Pages
Cloudflare Pagesapp-name.pages.dev/Connecter le repo dans le dashboard CF
Vercelapp-name.vercel.app/Importer le repo sur vercel.com
Netlifyapp-name.netlify.app/Importer le repo sur netlify.com

Assurez-vous que votre manifest.json a le bon base_url pointant vers l'emplacement des fichiers hébergés :

{
"name": "word-counter",
"version": "1.0.0",
"abi": 1,
"type": "mini-program",
"entry": "index.html",
"base_url": "https://yourname.github.io/word-counter/"
}

2. Testez Votre Application

Avant de soumettre, vérifiez que l'application fonctionne en la sideloadant :

  1. Ouvrez aiscouncil.net
  2. Allez dans Apps > Sideload
  3. Collez votre URL de manifeste
  4. Installez et testez toutes les fonctionnalités

3. Forkez le Référentiel

Allez sur github.com/nicholasgasior/bcz et cliquez sur Fork.

4. Ajoutez Votre Entrée de Package

Éditez registry/packages.json et ajoutez une entrée au tableau packages :

{
"name": "word-counter",
"type": "mini-program",
"version": "1.0.0",
"manifest": "https://yourname.github.io/word-counter/manifest.json",
"tier": "community",
"category": "utilities",
"description": "Count words in your chat history by role",
"icon": "https://yourname.github.io/word-counter/icon.png",
"added": "2026-02-19",
"price": 0,
"currency": "USD",
"seller": null
}

5. Validez

Exécutez le script de validation pour vérifier votre entrée :

python3 registry/validate.py packages

Corrigez les erreurs avant de continuer. Problèmes courants :

ErreurCorrection
Nom ne correspond pasname dans packages.json doit correspondre à name dans manifest.json
Version invalideUtilisez le format semver : 1.0.0, pas 1.0 ou v1.0.0
Champ requis manquantAssurez-vous que name, type, version et manifest sont présents
Niveau invalideDoit être community, ai-verified ou verified

6. Soumettez une Pull Request

Poussez vos changements vers votre fork et créez une PR contre la branche main. Incluez :

  • Une brève description de ce que fait votre application
  • Un lien vers l'application hébergée pour que les relecteurs puissent la tester
  • Des captures d'écran si applicable

Si la validation automatisée passe, la PR peut être fusionnée et votre application apparaîtra dans l'App Store.


Format d'Entrée du Registre de Package

Champs Requis

ChampTypeDescription
namestringNom du package (doit correspondre au name du manifeste)
typestring"plugin", "addon" ou "mini-program"
versionstringSemver (doit correspondre à la version du manifeste)
manifeststringURL complète vers le manifest.json hébergé

Champs Optionnels

ChampTypeDéfautDescription
tierstring"community""community", "ai-verified" ou "verified"
categorystring--L'un de : productivity, developer, communication, media, utilities, games, education, finance
descriptionstring--Description du listing du store
iconstring--URL vers l'icône (PNG 128x128 recommandé)
addedstring--Date ISO 8601 de première publication (ex., "2026-02-19")
pricenumber0Prix en centimes (0 = gratuit, 499 = 4,99 $)
currencystring"USD"Code devise ISO 4217
priceTypestring--"one-time" pour achat unique
geoPriceobject--Overrides de prix par zone géographique
sellerobject|nullnullInfos vendeur Stripe Connect (requis pour apps payantes)
verificationobject--Données du badge AI Verified

Applications Payantes

Définir un Prix

Définissez le champ price en centimes. Par exemple, 4,99 $ = 499 :

{
"name": "pro-editor",
"type": "mini-program",
"version": "2.0.0",
"manifest": "https://cdn.example.com/pro-editor/manifest.json",
"tier": "community",
"price": 499,
"currency": "USD",
"priceType": "one-time",
"seller": {
"name": "DevCo",
"id": "acct_abc123"
}
}

Commission de la Plateforme

La plateforme prend une commission de 15% sur les ventes payantes. Le vendeur reçoit 85% via les paiements Stripe Connect.

PrixCommission (15%)Vendeur Reçoit
0,99 $0,15 $0,84 $
4,99 $0,75 $4,24 $
9,99 $1,50 $8,49 $
19,99 $3,00 $16,99 $

Géo-Pricing

Vous pouvez définir des prix différents pour différentes zones géographiques en utilisant le champ geoPrice :

"geoPrice": {
"1": 1500,
"2": 1000,
"3": 700,
"4": 400
}

Les niveaux correspondent aux régions de pouvoir d'achat :

  • Niveau 1 : USA, Canada, Europe de l'Ouest, Australie, Japon (15,00 $)
  • Niveau 2 : Europe de l'Est, Amérique du Sud, Moyen-Orient (10,00 $)
  • Niveau 3 : Asie du Sud-Est, Amérique Centrale (7,00 $)
  • Niveau 4 : Afrique subsaharienne, Asie du Sud (4,00 $)

La plateforme détecte la région de l'utilisateur depuis l'API et applique le prix de niveau approprié.

Intégration Vendeur

Pour recevoir des paiements, vous avez besoin d'un compte Stripe Connect lié à la plateforme :

  1. Allez dans Settings > Account > Developer dans l'application AISCouncil
  2. Cliquez sur Connect Stripe Account
  3. Complétez le flux d'intégration Stripe Connect
  4. Votre ID de Compte Stripe Connect (format : acct_xxx) est attribué
  5. Ajoutez l'objet seller à votre entrée de registre :
"seller": {
"name": "Votre Nom ou Société",
"id": "acct_abc123"
}
avertissement

Les applications payantes nécessitent un objet seller avec un ID de compte Stripe Connect valide. Le script de validation rejettera les entrées payantes sans informations vendeur.


Badge AI Verified

info

Le système AI Verified est prévu pour une version future. Cette section décrit le workflow prévu.

Le badge AI Verified certifie que le code de votre application a été scanné par un LLM et trouvé exempt de problèmes de sécurité courants.

Niveaux de Scan

NiveauPrixTaille MaxTexte du Badge
Quick19 $100 Ko"AI Scanned"
Full49 $500 Ko"AI Verified"
Deep99 $2 Mo"AI Verified + Reviewed"

Workflow (Prévu)

  1. Publiez d'abord votre application au niveau Community
  2. Soumettez votre URL de manifeste à POST /v1/verify/submit avec le niveau de scan
  3. Payez les frais de scan via le checkout Stripe
  4. Le LLM analyse votre code pour :
    • Logiciels malveillants et portes dérobées
    • Tentatives d'exfiltration de données
    • Mauvais usage des permissions (demander plus que nécessaire)
    • Code obfusqué ou minifié qui cache un comportement
    • Tentatives d'évasion du bac à sable
  5. Vérifiez le statut à GET /v1/verify/status/{jobId}
  6. Si passé, récupérez l'objet verification depuis GET /v1/verify/report/{jobId}
  7. Ajoutez l'objet de vérification à votre entrée de registre :
"verification": {
"hash": "sha256:a1b2c3d4...",
"tier": "full",
"date": "2026-02-19",
"expires": "2027-02-19",
"job_id": "ver_xyz789"
}
  1. Soumettez une PR avec l'entrée de registre mise à jour
  2. Le script de validation confirme que le badge est valide via /v1/verify/badge/{hash}

Règles du Badge

  • Le badge est épinglé au hash SHA-256 du HTML d'entrée de votre application
  • Tout changement de code invalide le badge (nouveau hash = badge disparu)
  • Les badges expirent après 12 mois et doivent être renouvelés
  • Les scans échoués fournissent un rapport avec les problèmes à corriger

Badge Verified (Revue Manuelle)

Pour le plus haut niveau de confiance, demandez une vérification manuelle :

  1. Définissez "tier": "verified" dans votre entrée de registre
  2. Soumettez une PR
  3. Un mainteneur de la plateforme révise :
    • Les permissions du manifeste (sont-elles justifiées ?)
    • Le HTML d'entrée et JavaScript (pas de code malveillant ?)
    • La conformité au bac à sable (pas de tentatives d'évasion ?)
    • Pour les plugins : analyse du binaire WASM
  4. Si approuvé : badge accordé, placement en vedette activé
  5. Si rejeté : des retours sont fournis sur la PR

Les applications vérifiées obtiennent :

  • Le badge "Verified" (coche verte)
  • Un placement en vedette en haut de l'App Store
  • Une confiance accrue des utilisateurs

Mettre à Jour Votre Application

Pour mettre à jour une application publiée :

  1. Déployez la nouvelle version de vos fichiers d'application sur votre CDN
  2. Mettez à jour version dans votre manifest.json
  3. Mettez à jour version dans registry/packages.json
  4. Soumettez une PR avec l'incrémentation de version
astuce

Suivez les conventions semver :

  • Patch (1.0.0 -> 1.0.1) : Corrections de bugs, pas de nouvelles fonctionnalités
  • Minor (1.0.0 -> 1.1.0) : Nouvelles fonctionnalités, rétrocompatible
  • Major (1.0.0 -> 2.0.0) : Changements cassants

Les utilisateurs qui ont déjà installé votre application verront la mise à jour lorsque le registre se rafraîchira (cache quotidien).


Meilleures Pratiques

Description et Icône

  • Écrivez une description claire et concise (moins de 256 caractères) qui explique ce que fait l'application
  • Utilisez une icône PNG 128x128 avec un fond transparent ou sombre
  • Les icônes SVG sont également acceptées et s'affichent nettement à toute taille

Permissions

  • Demandez uniquement les permissions que votre application utilise réellement
  • Expliquez dans votre description de PR pourquoi chaque permission est nécessaire
  • Les applications avec moins de permissions obtiennent plus d'installations

Checklist de Test

Avant de soumettre votre PR :

  • L'application s'installe et se lance sans erreurs
  • Toutes les fonctionnalités fonctionnent comme décrit
  • L'application gère élégamment les refus de permissions (try/catch autour des appels SDK)
  • L'application fonctionne en mode sombre (le défaut de la plateforme)
  • Les boutons et éléments interactifs font au moins 48px de hauteur
  • Le texte fait au moins 14px
  • ais.close() retourne proprement au chat
  • python3 registry/validate.py packages passe
  • python3 registry/validate.py manifest path/to/manifest.json passe

Sélection de Catégorie

Choisissez la catégorie la plus appropriée pour votre application :

CatégorieExemples
productivityGestionnaires de tâches, prise de notes, outils de projet
developerÉditeurs de code, testeurs d'API, outils de débogage
communicationExtensions de chat, intégrations email
mediaÉditeurs d'images, outils audio, lecteurs vidéo
utilitiesCalculatrices, convertisseurs, outils système
gamesJeux interactifs, puzzles
educationFlashcards, outils de quiz, aides à l'apprentissage
financeSuivi de budget, outils crypto, facturation