Communitygithub.com

bmob/agent-skills

Compétences ouvertes standardisées pour le backend cloud Bmob, utilisables dans Cursor, Claude Code, OpenAI Codex, Gemini CLI, GitHub Copilot et tout outil AI compatible agentskills.io.

Qu'est-ce que agent-skills ?

Ce skill central pour agents AI (Claude Code, Cursor, Copilot, etc.) fournit le point d'entrée unique vers l'écosystème Bmob Backend as a Service (BaaS). Il orchestre un arbre de décision et une table de routage pour aiguiller l'agent vers le sous-skill adapté à la plateforme de l'utilisateur (JavaScript Web, Android, iOS, Flutter, REST, etc.) et l'opération souhaitée (CRUD, auth, upload, cloud functions). Le skill impose des règles critiques comme la vérification systématique de la plateforme avant d'écrire du code (les API SDK diffèrent fortement), la non-divulgation de la Master Key en frontend, la consultation du changelog avant toute tâche, et la limitation des tentatives d'erreur à 2-3 avant de consulter les codes d'erreur. Il intègre aussi une collaboration étroite avec le serveur MCP Bmob pour les opérations sur le schéma réel, les tests de données et le déploiement one-click de sites statiques.

Compatible avec✓Claude Code✓Codex CLI✓Cursor✓Gemini CLI
npx skills add bmob/agent-skills

Demander à votre IA préférée

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

Documentation

Bmob Backend Cloud — Point d'Entrée Principal

Bmob est une plateforme BaaS (Backend as a Service) qui offre une base de données NoSQL, un système d'utilisateurs, un stockage de fichiers, des fonctions cloud, des notifications push, des SMS, des paiements, de la messagerie instantanée et de l'IA, le tout prêt à l'emploi. Les clients couvrent JavaScript / Android / iOS / Swift / Flutter / HarmonyOS / mini-programmes / Python / Go / PHP / C#, ainsi que l'API REST indépendante du langage et le serveur MCP.

Ordre de routage : suivez d'abord l'arbre de décision ci-dessous → consultez ensuite la table de routage (choisissez le sous-skill) → pour les opérations spécifiques, référez-vous à shared/operation-routing.md (tableau à trois voies : MCP / curl / SDK·REST).

Principes Fondamentaux

1. Vérifiez toujours la plateforme avant d'écrire du code. Les API SDK de Bmob diffèrent considérablement selon la plateforme (JS utilise Bmob.Query, Android extends BmobObject, iOS ancien BmobObject objectWithClassName, Swift pur try await BmobObject.save(), REST utilise HTTP /1/classes/<name>). N'insérez pas de code JS dans une réponse d'un skill Android. Identifiez d'abord la plateforme / framework de l'utilisateur, puis lisez le sous-skill correspondant.

2. Ne divulguez jamais la Master Key en frontend. La console Bmob → Clés d'application contient quatre valeurs :

CléNiveau de sécuritéCas d'utilisation
Application IDPublicTous les clients
REST API KeySemi-publicNavigateur / mini-programme / mobile / serveur
Secret KeyMoyenClient avec code de sécurité (SecurityCode) pour autorisation chiffrée
Master KeyMaximumServeur / scripts backend uniquement, jamais dans le bundle frontend

3. Consultez le changelog avant d'écrire du code. Les SDK évoluent et les signatures de méthodes changent. Avant de commencer une tâche, utilisez l'URL brute pour récupérer le update_log.md de la plateforme correspondante (chemin dans metadata.docs_raw du sous-skill) pour vérifier l'absence de changements cassants.

4. Ne répétez pas les erreurs en boucle. Après 2-3 tentatives échouées de la même manière, arrêtez-vous et réévaluez :

  • HTTP 4xx : consultez d'abord le code dans le corps de la réponse avec bmob-error-codes.
  • Erreurs de permission / ACL (9015, 9016 etc.) : voir le chemin temporaire P1 ci-dessous ou le futur bmob-acl-and-roles.
  • "Méthode introuvable" : la version du SDK est peut-être trop ancienne ou la documentation ne correspond pas à la version utilisée. Comparez avec la page des releases du dépôt.

Arbre de Décision d'Entrée (suivez d'abord)

flowchart TD
    Start([L'utilisateur mentionne Bmob]) --> Err{La réponse contient-elle un code d'erreur ?}
    Err -->|Oui| EC[bmob-error-codes]
    Err -->|Non| Ship{Le code doit-il être inclus dans l'application en production ?}
    Ship -->|Non| McpCfg{L'IDE a-t-il configuré Bmob MCP ?}
    McpCfg -->|Oui| MCP[bmob-mcp<br/>9 outils appelables]
    McpCfg -->|Non| RestOnly[bmob-database-restful<br/>ou generate_code nécessite MCP]
    Ship -->|Oui| Plat{Plateforme / Langage ?}
    Plat -->|JS Web Node Mini-programme Cocos JS etc.| JS[bmob-database-javascript]
    Plat -->|Android Kotlin Java| AND[bmob-database-android]
    Plat -->|Pure Swift BmobSwiftSDK async/await| SWIFT[bmob-database-swift]
    Plat -->|Legacy iOS ObjC Swift Bridging Header| IOS[bmob-database-ios]
    Plat -->|Flutter Dart| FLUT[bmob-database-flutter]
    Plat -->|curl Python Go PHP Backend etc.| REST[bmob-database-restful]
    Plat -->|RN Uni-app JS Bridge| JS
    JS --> Schema{Besoin des vrais noms de champs ?}
    AND --> Schema
    SWIFT --> Schema
    IOS --> Schema
    FLUT --> Schema
    REST --> Schema
    Schema -->|Oui et MCP configuré| MCP
    Schema -->|Non| Done([Lire le sous-skill correspondant et écrire le code])
    MCP --> OpTable[[shared/operation-routing.md<br/>Tableau des trois voies par opération]]

Table de Routage (une fois la cible déterminée, lisez immédiatement le sous-skill correspondant)

Intention de l'utilisateurIndice de plateformeRoutage vers
Créer / voir la structure d'une table, ajouter des données de test, générer un squelette curl, opérations pratiques sur la base de données—bmob-mcp (condition : l'utilisateur a configuré MCP)
Déploiement one-click d'un site / hébergement statique (HTML ou dist vers CDN)—bmob-mcp → deploy_static_site (ou generate_code uniquement pour générer curl)
CRUD NoSQL, requêtes conditionnellesJS / TS / Web / Node / Mini-programmes WeChat/Alipay/ByteDance/QQ/Baidu / Quick Apps / Cocos Creator JS / Electron / Tauri / Apps hybridesbmob-database-javascript
CRUD NoSQLAndroid / Kotlin / Javabmob-database-android
CRUD NoSQLSDK Swift pur / BmobSwiftSDK / SPM / import BmobSDK / async/awaitbmob-database-swift
CRUD NoSQLAncien SDK iOS / Objective-C / Swift Bridging Header / BmobSDK.xcframework / saveInBackgroundbmob-database-ios
CRUD NoSQLFlutter / Dart (bmob_plugin)bmob-database-flutter
CRUD NoSQL / tout langage sans SDKcurl / Python / Go / PHP / C# / Rust / Ruby / Java backendbmob-database-restful
React Native / Uni-app (couche JS utilisant Bmob)—bmob-database-javascript ou REST
HarmonyOS ArkTS—bmob-database-restful + BmobDocs
Inscription utilisateur / Connexion / Vérification SMS / Connexion tierce / Vérification emailToutes plateformesbmob-auth-{platform} (P1, voir tableau ci-dessous)
Téléchargement / téléversement de fichiers / CDNToutes plateformesbmob-storage-{platform} (P1, voir tableau ci-dessous)
Appel d'une fonction cloudToutes plateformesbmob-cloud-function-{platform} (P1, voir tableau ci-dessous)
Écriture de code de fonction cloud s'exécutant sur les serveurs Bmob—bmob-cloud-function-development
ACL / Rôles / Permissions / Sécurité au niveau de la ligne—bmob-acl-and-roles (P1, voir tableau ci-dessous)
Requête BQL (syntaxe similaire à SQL)Toutebmob-bql (P1, voir tableau ci-dessous)
Diagnostic des erreurs code 9015 / 101 / 105 etc.—bmob-error-codes
Push / SMS / PaiementToutes plateformesbmob-push-* / bmob-sms-* / bmob-pay-* (P2)

Pour savoir quelle voie utiliser pour les opérations spécifiques (CRUD, connexion, téléversement, déploiement), consultez shared/operation-routing.md.

Chemin Temporaire pour P1 / P2 Non Encore Publiés

Lorsque le sous-skill dédié n'est pas installé, n'attendez pas, utilisez ce tableau de repli :

Intention de l'utilisateurSkill cible (non publié)Alternative actuellement disponible
Inscription / Connexion / Code de vérification SMSbmob-auth-*REST : bmob-database-restful/references/users.md ; MCP configuré : generate_code (inscription / connexion par identifiant-mot de passe / connexion par code de vérification téléphone etc.)
Téléversement de fichier / URL CDNbmob-storage-*REST : references/files.md ; MCP : generate_code → téléverser fichier
Appel d'une fonction cloud existantebmob-mcp → invoke_cloud_function (exécution) ; generate_code → appeler fonction cloud (curl)REST /1/functions/<name> ; SDK de chaque plateforme
Écrire et déployer le code source d'une fonction cloudbmob-cloud-function-developmentMCP configuré : deploy_cloud_function → invoke_cloud_function ; MCP non configuré : BmobDocs + console
ACL / Permissions ligne / 9015·9016bmob-acl-and-rolesREST : inclure "ACL":{...} dans le corps de création/mise à jour ; bmob-error-codes
BQL / Agrégation cross-tablebmob-bqlREST GET /1/cloudQuery ; bmob-database-restful
Push / SMS / PaiementSkills P2Module REST correspondant + arborescence mds de BmobDocs

Checklist de Sécurité Générale (incluse par tous les sous-skills)

  • La table cible pour les opérations d'écriture doit être configurée avec une ACL, sinon tout utilisateur peut modifier n'importe quelle ligne (voir la ligne ACL dans le chemin temporaire P1).
  • Navigateur / mini-programme / mobile peuvent utiliser REST API Key (autorisation simplifiée / mode SDK B) ou Secret Key + Code de sécurité (autorisation chiffrée / mode SDK A) ; n'utilisez jamais la Master Key.
  • Le SecurityCode dans les scénarios d'autorisation chiffrée n'est pas transmis sur le réseau ; ne le codez pas en dur dans le bundle frontend, injectez-le via des variables d'environnement ou placez-le dans un BFF.
  • Pour les opérations batch / scan complet de table / requêtes cross-table → privilégiez BQL plutôt que des appels SDK en boucle.
  • En cas d'erreur, consultez d'abord le champ code dans le corps de la réponse via bmob-error-codes, ne devinez pas.
  • Le champ mot de passe utilisateur (password) ne peut être écrit que par Bmob, pas mis à jour ; pour changer de mot de passe, utilisez /1/updateUserPassword/<objectId>.

FAQ et Anti-Patterns

  • Problèmes courants cross-plateforme (routage, clés, MCP, format de données) : shared/faq.md
  • Anti-patterns typiques (ACL, Master Key, mauvaise utilisation du 9015 etc.) : shared/anti-patterns.md
  • Recherche du code numérique à partir du message d'erreur anglais : bmob-error-codes tableau « Recherche par phénomène » en haut

Recettes de Cas d'Utilisation

Scénarios de bout en bout (conception de table + ACL + flux), puis entrez dans le skill de la plateforme pour écrire le code :

ScénarioRecette
Blog / CMS (Article + Author)shared/recipes/blog-cms.md
Todo personnel de l'utilisateur (ACL au niveau ligne)shared/recipes/user-owned-todos.md
Connexion mini-programme WeChatshared/recipes/mini-program-login.md
Téléversement d'avatarshared/recipes/avatar-upload.md
Migration batch côté serveurshared/recipes/server-migration.md
Déploiement site statique via MCPshared/recipes/static-site-deploy.md

Méthode de Recherche dans la Documentation

Les references/snippets/ de chaque sous-skill (synchronisés par les commits de BmobDocs) et les references/*.md rédigés manuellement couvrent la plupart des API. Si insuffisant, récupérez la documentation en amont :

  1. Localisation par nom de fichier : l'arborescence de la documentation en amont se trouve sur github.com/bmob/BmobDocs/tree/master/mds, organisée par <feature>/<platform>/.

  2. Récupération directe par l'agent (contourne la couche de rendu GitHub) :

    https://raw.githubusercontent.com/bmob/BmobDocs/master/mds/<feature>/<platform>/<filename>.md
    

    Déjà vérifié : peut être récupéré directement en markdown pur par l'outil WebFetch.

  3. Lister le répertoire (si le nom du fichier est inconnu) :

    https://api.github.com/repos/bmob/BmobDocs/contents/mds/<feature>/<platform>
    
  4. Toujours introuvable : allez sur https://www.bmobapp.com/docs/.

Collaboration avec MCP (Critique)

Si l'utilisateur a configuré le serveur MCP Bmob dans son IDE (voir shared/mcp-install-snippets.md), toute tâche impliquant « lire la vraie structure d'une table / écrire des données de test / concevoir un schéma / générer un squelette curl / déployer un site one-click » doit prioriser MCP, ne devinez pas les noms de champs.

  • tools/list comporte 10 outils ; l'agent n'appelle que 9 d'entre eux (get_project_tables, create_table, add_single_data, update_single_data, delete_single_data, generate_code, deploy_cloud_function, invoke_cloud_function, deploy_static_site).
  • mcp_endpoint_mcp_post est une boucle interne du serveur, ne l'appelez pas.
  • Correspondance entre paramètres des outils et formulations : bmob-mcp ; tableau des trois voies par opération : shared/operation-routing.md.
flowchart LR
    User[Prompt utilisateur mentionnant Bmob] --> Root[bmob root SKILL.md]
    Root --> OpRoute[shared/operation-routing.md]
    Root -->|"schéma / CRUD en direct / déploiement"| McpSkill[bmob-mcp]
    Root -->|JS / Web / Mini-programme| JsDb[bmob-database-javascript]
    Root -->|Android / Kotlin| AndDb[bmob-database-android]
    Root -->|SDK Swift pur| SwiftDb[bmob-database-swift]
    Root -->|Legacy iOS / ObjC| IosDb[bmob-database-ios]
    Root -->|Flutter / Dart| FlutDb[bmob-database-flutter]
    Root -->|curl / Python / Go| RestDb[bmob-database-restful]
    Root -->|code d'erreur| Err[bmob-error-codes]
    McpSkill -.get_project_tables.-> JsDb
    McpSkill -.get_project_tables.-> AndDb
    McpSkill -.get_project_tables.-> SwiftDb
    McpSkill -.get_project_tables.-> IosDb
    McpSkill -.get_project_tables.-> FlutDb
    McpSkill -.get_project_tables.-> RestDb

Résumé en Une Phrase

L'utilisateur mentionne Bmob → lisez l'arbre de décision d'entrée de ce skill → choisissez le sous-skill dans la table de routage → sélectionnez MCP / curl / SDK·REST via shared/operation-routing.md ; le code spécifique à la plateforme se trouve dans references/ et le SKILL.md du sous-skill.

Skills associés