Communitygithub.com

bmob/agent-skills

Habilidades de agente de padrão aberto para o backend em nuvem Bmob — utilizáveis no Cursor, Claude Code, OpenAI Codex, Gemini CLI, GitHub Copilot e qualquer ferramenta de IA compatível com agentskills.io.

O que é agent-skills?

Este skill abrangente fornece a entrada central para todas as operações do backend em nuvem Bmob, uma plataforma BaaS (Backend como Serviço) que oferece banco de dados NoSQL, sistema de usuários, armazenamento de arquivos, funções em nuvem, push, SMS, pagamentos, IM e AI. O skill guia agentes de IA através de uma árvore de decisão de entrada e uma tabela de roteamento para selecionar o sub-skill correto com base na plataforma do usuário (JavaScript, Android, iOS, Swift, Flutter, etc.) ou método de acesso (SDK, REST API, MCP). Princípios críticos são enfatizados, como confirmar a plataforma antes de escrever código, nunca vazar a Master Key em bundles front-end, verificar changelogs de SDK antes de codificar e não repetir tentativas de erro em loop. Além disso, oferece caminhos temporários para funcionalidades ainda não publicadas (P1/P2) e receitas de ponta a ponta para cenários comuns como CMS, Todo, login em miniprograma, upload de avatar e implantação de site estático via MCP. O documento integra-se profundamente com o Bmob MCP Server para operações de esquema de banco de dados, CRUD ao vivo e implantação, e fornece referências completas de documentação para consultas adicionais.

Funciona com✓Claude Code✓Codex CLI✓Cursor✓Gemini CLI
npx skills add bmob/agent-skills

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Bmob 后端云 — Entrada Principal

Bmob é uma plataforma BaaS (Backend as a Service) que oferece banco de dados NoSQL, sistema de usuários, armazenamento de arquivos, funções em nuvem, push, SMS, pagamentos, IM, AI e outras capacidades de backend prontas para uso. Os clientes cobrem JavaScript / Android / iOS / Swift / Flutter / HarmonyOS / Mini Programas / Python / Go / PHP / C#, além da REST API independente de linguagem e do MCP Server.

Ordem de roteamento: Primeiro siga a Árvore de Decisão de Entrada abaixo → depois consulte a Tabela de Decisão de Roteamento (selecione sub-skill) → para operações específicas, veja shared/operation-routing.md (tabela de três canais: MCP / curl / SDK·REST).

Princípios Fundamentais

1. Sempre confirme a plataforma antes de escrever código. As APIs dos SDKs do Bmob variam muito entre as plataformas (JS é Bmob.Query, Android é extends BmobObject, iOS antigo é BmobObject objectWithClassName, Swift puro é try await BmobObject.save(), REST é HTTP /1/classes/<name>). Não insira código JS na resposta de um skill Android. Primeiro veja qual plataforma/framework o usuário está usando, depois leia o sub-skill correspondente.

2. Não vaze a Master Key no front-end. O console Bmob → Chaves de Aplicativo contém quatro valores:

ChaveNível de SegurançaCenário de Uso
Application IDPúblicoTodos os endpoints
REST API KeySemipúblicoNavegador / Mini Programas / Mobile / Servidor
Secret KeyMédioCliente em cenários de autorização criptografada, com SecurityCode
Master KeyMais AltoApenas servidor / scripts de backend, nunca aparece no bundle front-end

3. Veja o changelog antes de escrever. Os SDKs evoluem e as assinaturas dos métodos mudam. Antes de iniciar uma tarefa, use a URL raw para buscar o update_log.md da plataforma correspondente (caminho em metadata.docs_raw do sub-skill) e confirme que não há alterações que quebrem compatibilidade.

4. Não repita tentativas de erro em loop. Após 2-3 tentativas falhas, pare e reavalie:

  • HTTP 4xx: Primeiro consulte o code no corpo da resposta no bmob-error-codes.
  • Erros de permissão/ACL (9015, 9016 etc.): Veja o Caminho Temporário P1 abaixo ou o futuro bmob-acl-and-roles.
  • "Método não encontrado": Pode ser versão do SDK muito antiga ou documentação incompatível com a versão que você está usando. Compare na página de releases do repositório.

Árvore de Decisão de Entrada (siga por aqui primeiro)

flowchart TD
    Start([Usuário menciona Bmob]) --> Err{Há código de erro na resposta?}
    Err -->|Sim| EC[bmob-error-codes]
    Err -->|Não| Ship{O código será enviado ao aplicativo em produção?}
    Ship -->|Não| McpCfg{IDE configurada com MCP Bmob?}
    McpCfg -->|Sim| MCP[bmob-mcp<br/>9 ferramentas disponíveis]
    McpCfg -->|Não| RestOnly[bmob-database-restful<br/>ou generate_code precisa de MCP]
    Ship -->|Sim| Plat{Plataforma / Linguagem?}
    Plat -->|JS Web Node Mini Program 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{Precisa de nomes de campos reais?}
    AND --> Schema
    SWIFT --> Schema
    IOS --> Schema
    FLUT --> Schema
    REST --> Schema
    Schema -->|Sim e MCP configurado| MCP
    Schema -->|Não| Done([Leia o sub-skill correspondente e escreva o código])
    MCP --> OpTable[[shared/operation-routing.md<br/>Tabela de três canais por operação]]

Tabela de Decisão de Roteamento (após acertar, vá imediatamente ler o sub-skill correspondente)

Intenção do UsuárioPista de PlataformaRoteamento para
Criar/ver estrutura de tabela, adicionar dados de teste, gerar modelo curl, operar banco de dados—bmob-mcp (pré-requisito: usuário configurou MCP)
Implantar site de uma página / hospedagem estática (HTML ou dist para CDN)—bmob-mcp → deploy_static_site (ou generate_code apenas para gerar curl)
CRUD NoSQL, consultas condicionaisJS / TS / Web / Node / Mini Programas WeChat/Alipay/ByteDance/QQ/Baidu / Quick Apps / Cocos Creator JS / Electron / Tauri / App Híbridobmob-database-javascript
CRUD NoSQLAndroid / Kotlin / Javabmob-database-android
CRUD NoSQLSDK Swift puro / BmobSwiftSDK / SPM / import BmobSDK / async/awaitbmob-database-swift
CRUD NoSQLSDK iOS antigo / Objective-C / Swift Bridging Header / BmobSDK.xcframework / saveInBackgroundbmob-database-ios
CRUD NoSQLFlutter / Dart (bmob_plugin)bmob-database-flutter
CRUD NoSQL / qualquer linguagem sem SDKcurl / Python / Go / PHP / C# / Rust / Ruby / Backend Javabmob-database-restful
React Native / Uni-app (camada JS conectando Bmob)—bmob-database-javascript ou REST
HarmonyOS ArkTS—bmob-database-restful + BmobDocs
Registro de usuário / Login / SMS / Login de terceiros / Verificação de e-mailTodos os endpointsbmob-auth-{platform} (P1, veja tabela abaixo)
Upload/Download de arquivos / CDNTodos os endpointsbmob-storage-{platform} (P1, veja tabela abaixo)
Invocar função em nuvemTodos os endpointsbmob-cloud-function-{platform} (P1, veja tabela abaixo)
Escrever código de função em nuvem para executar no servidor Bmob—bmob-cloud-function-development
ACL / Papéis / Permissões / Segurança em nível de linha—bmob-acl-and-roles (P1, veja tabela abaixo)
Consulta BQL (sintaxe tipo SQL)Qualquerbmob-bql (P1, veja tabela abaixo)
Depurar erros code 9015 / 101 / 105 etc.—bmob-error-codes
Push / SMS / PagamentosTodos os endpointsbmob-push-* / bmob-sms-* / bmob-pay-* (P2)

Para operações específicas (CRUD, login, upload, implantação) e qual canal usar, veja shared/operation-routing.md.

Caminho Temporário para P1 / P2 Ainda Não Publicados

Quando o sub-skill dedicado não estiver instalado, não espere, use esta tabela de fallback:

Intenção do UsuárioSkill Alvo (não publicado)Alternativa Disponível Agora
Registro / Login / Código de verificação SMSbmob-auth-*REST: bmob-database-restful/references/users.md; com MCP configurado: generate_code (registro / login com nome de usuário e senha / login com código de verificação de celular etc.)
Upload de arquivos / URL CDNbmob-storage-*REST: references/files.md; MCP: generate_code → upload de arquivo
Invocar função em nuvem existentebmob-mcp → invoke_cloud_function (execução); generate_code → invocar função em nuvem (curl)REST /1/functions/<name>; SDKs de cada endpoint
Escrever e implantar código de função em nuvembmob-cloud-function-developmentCom MCP configurado: deploy_cloud_function → invoke_cloud_function; sem MCP: BmobDocs + console
ACL / permissões em nível de linha / 9015·9016bmob-acl-and-rolesREST: no corpo de criação/atualização, use "ACL":{...}; bmob-error-codes
BQL / agregação entre tabelasbmob-bqlREST GET /1/cloudQuery; bmob-database-restful
Push / SMS / PagamentosP2 skillsMódulos REST correspondentes + árvore de diretórios mds do BmobDocs

Lista de Verificação de Segurança Geral (incluída por todos os sub-skills)

  • A tabela alvo de operações de escrita deve ter ACL configurada, caso contrário qualquer usuário pode modificar qualquer linha (veja a linha ACL no Caminho Temporário P1).
  • Navegador / Mini Programas / Mobile podem usar REST API Key (autorização simples / modo B do SDK) ou Secret Key + Código de Segurança (autorização criptografada / modo A do SDK); nunca use Master Key.
  • O SecurityCode em cenários de autorização criptografada não é transmitido pela rede; não o codifique no bundle front-end, use variáveis de ambiente ou injete via BFF.
  • Sempre que for batch / varredura de tabela inteira / consulta entre tabelas → prefira BQL em vez de chamadas em loop ao SDK.
  • Em caso de erro, primeiro veja o campo code no corpo da resposta e consulte bmob-error-codes, não adivinhe.
  • O campo de senha do usuário (password) só pode ser escrito pelo Bmob, não pode ser atualizado; para alteração de senha, use /1/updateUserPassword/<objectId>.

FAQ e Antipadrões

  • Perguntas frequentes entre plataformas (roteamento, chaves, MCP, formato de dados): shared/faq.md
  • Antipadrões típicos (ACL, Master Key, uso incorreto de 9015 etc.): shared/anti-patterns.md
  • Buscar código numérico por mensagem de erro em inglês: Tabela "Buscar por fenômeno" no topo de bmob-error-codes

Receitas de Cenários de Aplicação

Cenários de ponta a ponta (design de tabela + ACL + fluxo), depois vá para o skill da plataforma para escrever o código:

CenárioReceita
Blog / CMS (Article + Author)shared/recipes/blog-cms.md
Todo do próprio usuário (ACL em nível de linha)shared/recipes/user-owned-todos.md
Login em Mini Programa WeChatshared/recipes/mini-program-login.md
Upload de avatarshared/recipes/avatar-upload.md
Migração em lote no servidorshared/recipes/server-migration.md
Implantação de site estático via MCPshared/recipes/static-site-deploy.md

Método de Busca de Documentação

Os references/snippets/ de cada sub-skill (sincronizados pelo BmobDocs) e os references/*.md escritos manualmente cobrem a maioria das APIs. Se ainda precisar, busque a documentação upstream:

  1. Localize pelo nome do arquivo: A árvore de documentação upstream está em github.com/bmob/BmobDocs/tree/master/mds, organizada por <feature>/<platform>/.

  2. Fetch direto pelo agente (ignorando a camada de renderização do GitHub):

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

    Já validado que pode ser obtido diretamente como markdown puro pela ferramenta WebFetch.

  3. Listar diretórios (quando não souber o nome do arquivo):

    https://api.github.com/repos/bmob/BmobDocs/contents/mds/<feature>/<platform>
    
  4. Ainda não encontrou: Vá para https://www.bmobapp.com/docs/.

Colaboração com o MCP (Crítico)

Se o usuário configurou o Bmob MCP Server na IDE (veja shared/mcp-install-snippets.md), qualquer tarefa que envolva "ler estrutura real da tabela / escrever dados de teste / projetar schema / gerar curl modelo / implantar site de uma página" deve priorizar o MCP, não adivinhar nomes de campos.

  • tools/list total de 10 ferramentas; o agente invoca apenas 9 delas (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 é um loopback interno do servidor, não invoque.
  • Parâmetros das ferramentas e correspondência de frases: bmob-mcp; tabela de três canais por operação: shared/operation-routing.md.
flowchart LR
    User[Prompt do usuário mencionando Bmob] --> Root[SKILL.md raiz bmob]
    Root --> OpRoute[shared/operation-routing.md]
    Root -->|"schema / CRUD ao vivo / implantação"| McpSkill[bmob-mcp]
    Root -->|JS / Web / Mini Program| JsDb[bmob-database-javascript]
    Root -->|Android / Kotlin| AndDb[bmob-database-android]
    Root -->|SDK Swift puro| SwiftDb[bmob-database-swift]
    Root -->|iOS antigo / ObjC| IosDb[bmob-database-ios]
    Root -->|Flutter / Dart| FlutDb[bmob-database-flutter]
    Root -->|curl / Python / Go| RestDb[bmob-database-restful]
    Root -->|código de erro| 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

Resumo em uma frase

Usuário menciona Bmob → Leia a Árvore de Decisão de Entrada deste skill → Tabela de Decisão de Roteamento selecione sub-skill → shared/operation-routing.md selecione MCP / curl / SDK·REST; código específico da plataforma está em references/ e SKILL.md do sub-skill.

Habilidades Relacionadas