Communitygithub.com

bmob/agent-skills

Offene Standard-Agent-Fähigkeiten für die Bmob-Backend-Cloud – einsetzbar in Cursor, Claude Code, OpenAI Codex, Gemini CLI, GitHub Copilot und jedem agentskills.io-kompatiblen KI-Tool.

Was ist agent-skills?

Dieses Skill-Paket ist der zentrale Einstiegspunkt für KI-Agenten, die mit der Bmob-Backend-Cloud (BaaS) interagieren. Es bietet eine strukturierte Entscheidungsmatrix, um basierend auf der Benutzerplattform (JavaScript, Android, iOS, Swift, Flutter, REST, etc.) automatisch das passende Sub-Skill auszuwählen. Der Skill enthält eine detaillierte Entscheidungsbaumgrafik und Routing-Tabellen, die den Agenten zu spezifischen Fähigkeiten für Datenbankoperationen, Authentifizierung, Dateispeicherung, Cloud-Funktionen und Fehlerbehandlung führen. Ein zentrales Shared-Repository (`shared/operation-routing.md`) definiert drei Operationenkanäle (MCP, curl, SDK/REST) und stellt plattformübergreifend konsistente Referenzen bereit. Dieses Skill-Paket wird von den wichtigsten KI-Coding-Tools wie Cursor, Claude Code und GitHub Copilot unterstützt und stellt sicher, dass Agenten sicherheitsrelevante Aspekte (z. B. kein Master-Key im Frontend) sowie plattformspezifische API-Unterschiede korrekt beachten.

Funktioniert mit✓Claude Code✓Codex CLI✓Cursor✓Gemini CLI
npx skills add bmob/agent-skills

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Bmob Backend-Cloud — Haupteinstieg

Bmob ist eine BaaS-Plattform (Backend as a Service), die gebrauchsfertige Backend-Funktionen wie NoSQL-Datenbank, Benutzersystem, Dateispeicher, Cloud-Funktionen, Push, SMS, Zahlungen, IM und KI bietet. Die Clients unterstützen JavaScript / Android / iOS / Swift / Flutter / HarmonyOS / Mini-Programme / Python / Go / PHP / C# sowie die sprachunabhängige REST API und den MCP Server.

Routing-Reihenfolge: Zuerst den untenstehenden Entscheidungsbaum durchlaufen → dann die Routing-Entscheidungstabelle (Sub-Skill auswählen) → konkrete Operationen siehe shared/operation-routing.md (MCP / curl / SDK·REST-dreifach-Kanal-Vergleich).

Kernprinzipien

1. Immer zuerst die Plattform bestätigen, bevor Code geschrieben wird. Die API-Formen der Bmob-SDKs unterscheiden sich stark (JS ist Bmob.Query, Android ist extends BmobObject, altes iOS ist BmobObject objectWithClassName, reines Swift ist try await BmobObject.save(), REST ist HTTP /1/classes/<name>). Stecke keinen JS-Code in eine Android-Skill-Antwort. Prüfe zuerst, welche Plattform / welches Framework der Benutzer verwendet, und lies dann das entsprechende Sub-Skill.

2. Master Key niemals im Frontend preisgeben. Die Bmob-Konsole → App-Schlüssel enthält vier Werte:

SchlüsselSicherheitsstufeVerwendungsszenario
Application IDÖffentlichAlle Endpunkte
REST API KeyHalböffentlichBrowser / Mini-Programme / Mobil / Server
Secret KeyMittelVerschlüsselte Autorisierungsszenarien für Client, zusammen mit SecurityCode
Master KeyHöchsteNur Server / Hintergrundskripte, niemals im Frontend-Bundle

3. Vor dem Schreiben immer das Changelog prüfen. SDKs entwickeln sich weiter, Methodensignaturen ändern sich. Vor Beginn einer Aufgabe die update_log.md der entsprechenden Plattform per Raw-URL abrufen (Pfad siehe metadata.docs_raw im Sub-Skill), um sicherzustellen, dass es keine Breaking Changes gibt.

4. Bei Fehlern nicht wiederholt wiederholen. Nach 2-3 fehlgeschlagenen Versuchen anhalten und neu bewerten:

  • HTTP 4xx: Zuerst den code im Antwortbody zur Überprüfung an bmob-error-codes weiterleiten.
  • Berechtigungs-/ACL-Fehler (9015, 9016 usw.): Siehe unten P1 temporärer Pfad oder zukünftig bmob-acl-and-roles.
  • "Methode nicht gefunden": Möglicherweise ist die SDK-Version zu alt oder die Dokumentation passt nicht zu Ihrer Version. Vergleichen Sie die Release-Seite des Repos.

Entscheidungsbaum (zuerst hier durchlaufen)

flowchart TD
    Start([Benutzer erwähnt Bmob]) --> Err{Antwort enthält Fehler-Code?}
    Err -->|Ja| EC[bmob-error-codes]
    Err -->|Nein| Ship{Soll Code in die App<br/>und veröffentlicht werden?}
    Ship -->|Nein| McpCfg{IDE hat Bmob MCP konfiguriert?}
    McpCfg -->|Ja| MCP[bmob-mcp<br/>9 aufrufbare Tools]
    McpCfg -->|Nein| RestOnly[bmob-database-restful<br/>oder generate_code benötigt MCP]
    Ship -->|Ja| Plat{Plattform / Sprache?}
    Plat -->|JS Web Node Mini-Programm Cocos JS usw.| 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 usw.| REST[bmob-database-restful]
    Plat -->|RN Uni-app JS Bridge| JS
    JS --> Schema{Echte Tabellenfeldnamen benötigt?}
    AND --> Schema
    SWIFT --> Schema
    IOS --> Schema
    FLUT --> Schema
    REST --> Schema
    Schema -->|Ja und MCP konfiguriert| MCP
    Schema -->|Nein| Done([Entsprechendes Sub-Skill lesen und Code schreiben])
    MCP --> OpTable[[shared/operation-routing.md<br/>Operations-Dreifachkanal-Tabelle]]

Routing-Entscheidungstabelle (nach Treffer sofort das entsprechende Sub-Skill lesen)

BenutzerintentionPlattform-HinweiseRoute zu
Neue/Ansicht Tabellenstruktur, Testdaten hinzufügen, curl-Vorlage generieren, Datenbank bearbeiten—bmob-mcp (Voraussetzung: Benutzer hat MCP konfiguriert)
Webseite mit einem Klick bereitstellen / statisches Hosting (HTML oder dist zu CDN)—bmob-mcp → deploy_static_site (oder generate_code nur für curl)
NoSQL CRUD, BedingungsabfragenJS / TS / Web / Node / WeChat/Alipay/Byte/QQ/Baidu Mini-Programm / Quick App / Cocos Creator JS / Electron / Tauri / Hybrid Appbmob-database-javascript
NoSQL CRUDAndroid / Kotlin / Javabmob-database-android
NoSQL CRUDReines Swift SDK / BmobSwiftSDK / SPM / import BmobSDK / async/awaitbmob-database-swift
NoSQL CRUDAltes iOS SDK / Objective-C / Swift Bridging Header / BmobSDK.xcframework / saveInBackgroundbmob-database-ios
NoSQL CRUDFlutter / Dart (bmob_plugin)bmob-database-flutter
NoSQL CRUD / beliebige Sprache ohne SDKcurl / Python / Go / PHP / C# / Rust / Ruby / Java Backendbmob-database-restful
React Native / Uni-app (JS-Schicht verbindet Bmob)—bmob-database-javascript oder REST
HarmonyOS ArkTS—bmob-database-restful + BmobDocs
Benutzerregistrierung / Login / SMS-Verifizierung / Drittanbieter-Login / E-Mail-VerifizierungAlle Endpunktebmob-auth-{platform} (P1, siehe Tabelle unten)
Datei Upload/Download / CDNAlle Endpunktebmob-storage-{platform} (P1, siehe Tabelle unten)
Cloud-Funktion aufrufenAlle Endpunktebmob-cloud-function-{platform} (P1, siehe Tabelle unten)
Cloud-Funktionscode schreiben, der auf Bmob-Servern läuft—bmob-cloud-function-development
ACL / Rollen / Berechtigungen / Zeilen-Sicherheit—bmob-acl-and-roles (P1, siehe Tabelle unten)
BQL-Abfragen (SQL-ähnliche Syntax)Beliebigbmob-bql (P1, siehe Tabelle unten)
Fehlercodes 9015 / 101 / 105 usw. beheben—bmob-error-codes
Push / SMS / ZahlungenAlle Endpunktebmob-push-* / bmob-sms-* / bmob-pay-* (P2)

Welcher Kanal für konkrete Operationen (CRUD, Login, Upload, Deployment) verwendet wird, siehe shared/operation-routing.md.

Temporärer Pfad für noch nicht veröffentlichte P1 / P2 Sub-Skills

Wenn spezielle Sub-Skills nicht installiert sind, nicht warten, sondern gemäß dieser Tabelle degrieren:

BenutzerintentionZiel-Skill (nicht veröffentlicht)Derzeit verfügbarer Ersatz
Registrierung / Login / SMS-Verifizierungscodebmob-auth-*REST: bmob-database-restful/references/users.md; MCP konfiguriert: generate_code (Registrierung / Benutzername-Passwort-Login / Handynummer-Verifizierungscode-Login usw.)
Datei-Upload / CDN URLbmob-storage-*REST: references/files.md; MCP: generate_code → Datei hochladen
Vorhandene Cloud-Funktion aufrufenbmob-mcp → invoke_cloud_function (Ausführung); generate_code → Cloud-Funktion aufrufen (curl)REST /1/functions/<name>; SDKs aller Endpunkte
Cloud-Funktionsquellcode schreiben und bereitstellenbmob-cloud-function-developmentMCP konfiguriert: deploy_cloud_function → invoke_cloud_function; MCP nicht konfiguriert: BmobDocs + Konsole
ACL / Zeilenberechtigungen / 9015·9016bmob-acl-and-rolesREST: "ACL":{...} im Body von Create/Update; bmob-error-codes
BQL / übergreifende Aggregationenbmob-bqlREST GET /1/cloudQuery; bmob-database-restful
Push / SMS / ZahlungenP2 SkillsREST entsprechendes Modul + BmobDocs mds Verzeichnisbaum

Allgemeine Sicherheits-Checkliste (wird von allen Sub-Skills inkludiert)

  • Die Zieltabelle von Schreiboperationen muss mit ACL versehen sein, sonst kann jeder Benutzer jede Zeile ändern (siehe Zeile zu ACL im temporären P1-Pfad).
  • Browser / Mini-Programm / Mobil können REST API Key (einfache Autorisierung / SDK-Modus B) oder Secret Key + SecurityCode (verschlüsselte Autorisierung / SDK-Modus A) verwenden; niemals den Master Key verwenden.
  • Der SecurityCode in verschlüsselten Autorisierungsszenarien wird nicht über das Netzwerk übertragen; nicht im Frontend-Bundle hartcodieren, sondern über Umgebungsvariablen injizieren oder in BFF ablegen.
  • Für Batch / Volltabellenscan / übergreifende Abfragen → bevorzugt BQL statt Schleifen mit SDK verwenden.
  • Bei Fehlern zuerst das code-Feld im Antwortbody prüfen und in bmob-error-codes nachschlagen, nicht raten.
  • Das Benutzerpasswortfeld (password) kann nur von Bmob geschrieben, nicht aktualisiert werden; für Passwortänderung /1/updateUserPassword/<objectId> verwenden.

FAQ und Anti-Patterns

  • Plattformübergreifende häufige Fragen (Routing, Schlüssel, MCP, Datenformat): shared/faq.md
  • Typische Anti-Patterns (ACL, Master Key, 9015-Fehlanwendung usw.): shared/anti-patterns.md
  • Nach englischem Error die Nummer nachschlagen: Tabelle „Nach Phänomen nachschlagen" oben in bmob-error-codes

Rezepte für Anwendungsszenarien

Ende-zu-Ende-Szenarien (Tabellendesign + ACL + Ablauf), dann in das jeweilige Plattform-Skill gehen und Code schreiben:

SzenarioRezept
Blog / CMS (Article + Author)shared/recipes/blog-cms.md
Benutzereigene Todos (Zeilen-ACL)shared/recipes/user-owned-todos.md
WeChat Mini-Programm Loginshared/recipes/mini-program-login.md
Avatar-Uploadshared/recipes/avatar-upload.md
Server-seitige Batch-Migrationshared/recipes/server-migration.md
Statische Seite via MCP deployenshared/recipes/static-site-deploy.md

Methoden zum Auffinden von Dokumentationen

Die references/snippets/ jedes Sub-Skills (durch BmobDocs-Synccommit) und handgeschriebene references/*.md decken die meisten APIs ab. Falls noch nicht ausreichend, die übergeordnete Dokumentation abrufen:

  1. Nach Dateinamen lokalisieren: Der übergeordnete Dokumentationsbaum befindet sich unter github.com/bmob/BmobDocs/tree/master/mds, organisiert nach <feature>/<platform>/.

  2. Agent direkt abrufen (GitHub-Rendering umgehen):

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

    Es wurde verifiziert, dass dies mit dem WebFetch-Tool direkt als reines Markdown abgerufen werden kann.

  3. Verzeichnis auflisten (wenn der Dateiname unbekannt ist):

    https://api.github.com/repos/bmob/BmobDocs/contents/mds/<feature>/<platform>
    
  4. Immer noch nicht gefunden: Unter https://www.bmobapp.com/docs/ nachschlagen.

Zusammenarbeit mit dem MCP (entscheidend)

Wenn der Benutzer in der IDE einen Bmob MCP Server konfiguriert hat (siehe shared/mcp-install-snippets.md), sollten alle Aufgaben, die „echte Tabellenstruktur lesen / Testdaten schreiben / Schema entwerfen / curl-Vorlage generieren / Webseite mit einem Klick bereitstellen" betreffen, bevorzugt den MCP verwenden, nicht auf Verdacht Feldnamen schreiben.

  • tools/list insgesamt 10 Tools; der Agent ruft nur 9 davon auf (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 ist eine interne Serverschleife, nicht aufrufen.
  • Tool-Parameter und Dialogvorlage: bmob-mcp; Operations-Dreifachkanal-Tabelle: shared/operation-routing.md.
flowchart LR
    User[User prompt mentioning Bmob] --> Root[bmob root SKILL.md]
    Root --> OpRoute[shared/operation-routing.md]
    Root -->|"schema / live CRUD / deploy"| McpSkill[bmob-mcp]
    Root -->|JS / Web / Mini Program| JsDb[bmob-database-javascript]
    Root -->|Android / Kotlin| AndDb[bmob-database-android]
    Root -->|Pure Swift SDK| 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 -->|error code| 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

Zusammenfassung in einem Satz

Benutzer erwähnt Bmob → Entscheidungsbaum dieses Skills lesen → Routing-Entscheidungstabelle wählt Sub-Skill → shared/operation-routing.md wählt MCP / curl / SDK·REST; endpunkt-spezifischer Code in references/ und SKILL.md des Sub-Skills.

Verwandte Skills