Publicando no Registro
O marketplace do AISCouncil usa um modelo de distribuição em níveis que equilibra abertura com confiança. Você pode distribuir apps livremente por URL, ou listá-los no registro para descoberta mais ampla com badges de confiança.
Níveis de Distribuição
| Nível | Como Listar | Revisão | Badge | Apps Pagos | Destaque |
|---|---|---|---|---|---|
| Direct Install | Usuário cola qualquer URL de manifest | Nenhuma | Nenhum | Não | Não |
| Community | PR para registry/packages.json | Automatizada | "Community" | Sim | Não |
| AI Verified | Community + scan de IA pago | Auditoria de segurança LLM | "AI Verified" | Sim | Não |
| Verified | Community + revisão manual da equipe | Revisão humana | "Verified" | Sim | Sim |
Direct Install
O método de distribuição mais simples. Hospede seu manifest e arquivos em qualquer lugar, depois compartilhe a URL do manifest. Usuários a colam na seção Sideload para instalar.
- Sem listagem de registro necessária
- Sem processo de revisão
- Sem badge de confiança
- Apenas apps gratuitos
- Funciona imediatamente
Este é o modelo de distribuição nativo da web. Veja Sideloading Apps para detalhes.
Community
A listagem padrão do registro. Envie um pull request para adicionar seu app ao registry/packages.json. Se a validação automatizada passar, o PR pode ser merged e seu app aparece na App Store com um badge "Community".
- Validação automatizada via
validate.py - Descobrível na App Store
- Suporta apps gratuitos e pagos
- Sem revisão manual requerida
AI Verified
Um upgrade de confiança opcional para apps Community. Pague por um scan de segurança powered por LLM que verifica seu código por malware, exfiltração de dados, uso indevido de permissões, código ofuscado e tentativas de escape do sandbox.
- Custa $19-$99 por versão dependendo da profundidade do scan
- Badge é fixado a um hash SHA-256 do conteúdo
- Mudanças de código invalidam o badge
- Badge expira após 12 meses
O sistema AI Verified (os endpoints /v1/verify/*) está planejado para um release futuro. O workflow descrito aqui estará disponível quando esses endpoints forem lançados.
Verified
O mais alto nível de confiança. Um mantenedor da plataforma revisa manualmente seu manifest, permissões, HTML de entrada e (para plugins) o binário WASM.
- Requer aprovação humana
- Obtém o badge "Verified"
- Posicionamento em destaque na App Store
- Recomendado para apps que lidam com dados sensíveis
Publicando um App Gratuito (Nível Community)
1. Hospede Seus Arquivos do App
Faça upload do seu manifest.json e index.html (mais quaisquer assets) para um CDN acessível publicamente. Opções gratuitas populares:
| Host | Padrão de URL | Configuração |
|---|---|---|
| GitHub Pages | seunome.github.io/app-name/ | Habilite em repo Settings > Pages |
| Cloudflare Pages | app-name.pages.dev/ | Conecte repo no dashboard CF |
| Vercel | app-name.vercel.app/ | Importe repo em vercel.com |
| Netlify | app-name.netlify.app/ | Importe repo em netlify.com |
Certifique-se de que seu manifest.json tenha a base_url correta apontando para onde os arquivos estão hospedados:
{
"name": "word-counter",
"version": "1.0.0",
"abi": 1,
"type": "mini-program",
"entry": "index.html",
"base_url": "https://seunome.github.io/word-counter/"
}
2. Teste Seu App
Antes de submeter, verifique se o app funciona fazendo sideloading dele:
- Abra aiscouncil.net
- Vá para Apps > Sideload
- Cole sua URL de manifest
- Instale e teste todas as funcionalidades
3. Faça Fork do Repositório
Vá para github.com/nicholasgasior/bcz e clique Fork.
4. Adicione Sua Entrada de Pacote
Edite registry/packages.json e adicione uma entrada ao array packages:
{
"name": "word-counter",
"type": "mini-program",
"version": "1.0.0",
"manifest": "https://seunome.github.io/word-counter/manifest.json",
"tier": "community",
"category": "utilities",
"description": "Conte palavras no seu histórico de chat por papel",
"icon": "https://seunome.github.io/word-counter/icon.png",
"added": "2026-02-19",
"price": 0,
"currency": "USD",
"seller": null
}
5. Valide
Execute o script de validação para verificar sua entrada:
python3 registry/validate.py packages
Corrija quaisquer erros antes de prosseguir. Problemas comuns:
| Erro | Correção |
|---|---|
| Name mismatch | name em packages.json deve corresponder a name em manifest.json |
| Invalid version | Use formato semver: 1.0.0, não 1.0 ou v1.0.0 |
| Missing required field | Certifique-se de que name, type, version e manifest estão presentes |
| Invalid tier | Deve ser community, ai-verified ou verified |
6. Envie um Pull Request
Faça push das suas mudanças para seu fork e crie um PR contra a branch main. Inclua:
- Uma breve descrição do que seu app faz
- Um link para o app hospedado para que revisores possam testá-lo
- Screenshots se aplicável
Se a validação automatizada passar, o PR pode ser merged e seu app aparecerá na App Store.
Formato de Entrada do Registro de Pacotes
Campos Obrigatórios
| Campo | Tipo | Descrição |
|---|---|---|
name | string | Nome do pacote (deve corresponder a name do manifest) |
type | string | "plugin", "addon" ou "mini-program" |
version | string | Semver (deve corresponder a version do manifest) |
manifest | string | URL completa para o manifest.json hospedado |
Campos Opcionais
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
tier | string | "community" | "community", "ai-verified" ou "verified" |
category | string | -- | Um de: productivity, developer, communication, media, utilities, games, education, finance |
description | string | -- | Descrição da listagem na store |
icon | string | -- | URL para ícone (128x128 PNG recomendado) |
added | string | -- | Data ISO 8601 quando foi listado pela primeira vez (ex: "2026-02-19") |
price | number | 0 | Preço em centavos (0 = gratuito, 499 = $4.99) |
currency | string | "USD" | Código de moeda ISO 4217 |
priceType | string | -- | "one-time" para compra única |
geoPrice | object | -- | Sobrescritas de preços por geo-tier |
seller | object|null | null | Info do vendedor Stripe Connect (obrigatório para apps pagos) |
verification | object | -- | Dados do badge AI Verified |
Apps Pagos
Definindo um Preço
Defina o campo price em centavos. Por exemplo, $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"
}
}
Comissão da Plataforma
A plataforma leva uma comissão de 15% em vendas pagas. O vendedor recebe 85% via payouts Stripe Connect.
| Preço | Comissão (15%) | Vendedor Recebe |
|---|---|---|
| $0.99 | $0.15 | $0.84 |
| $4.99 | $0.75 | $4.24 |
| $9.99 | $1.50 | $8.49 |
| $19.99 | $3.00 | $16.99 |
Geo-Pricing
Você pode definir preços diferentes para diferentes níveis geográficos usando o campo geoPrice:
"geoPrice": {
"1": 1500,
"2": 1000,
"3": 700,
"4": 400
}
Níveis correspondem a regiões de poder de compra:
- Tier 1: EUA, Canadá, Europa Ocidental, Austrália, Japão ($15.00)
- Tier 2: Europa Oriental, América do Sul, Oriente Médio ($10.00)
- Tier 3: Sudeste Asiático, América Central ($7.00)
- Tier 4: África Subsaariana, Sul da Ásia ($4.00)
A plataforma detecta a região do usuário pela API e aplica o preço do nível apropriado.
Onboarding de Vendedor
Para receber pagamentos, você precisa de uma conta Stripe Connect vinculada à plataforma:
- Vá para Settings > Account > Developer no app AISCouncil
- Clique Connect Stripe Account
- Complete o fluxo de onboarding Stripe Connect
- Seu Stripe Connected Account ID (formato:
acct_xxx) é atribuído - Adicione o objeto
sellerà sua entrada de registro:
"seller": {
"name": "Seu Nome ou Empresa",
"id": "acct_abc123"
}
Apps pagos requerem um objeto seller com um ID de conta Stripe Connect válido. O script de validação rejeitará entradas pagas sem informação de vendedor.
Badge AI Verified
O sistema AI Verified está planejado para um release futuro. Esta seção descreve o workflow pretendido.
O badge AI Verified certifica que o código do seu app foi escaneado por um LLM e encontrado livre de problemas de segurança comuns.
Níveis de Scan
| Nível | Preço | Tamanho Máx | Texto do Badge |
|---|---|---|---|
| Quick | $19 | 100 KB | "AI Scanned" |
| Full | $49 | 500 KB | "AI Verified" |
| Deep | $99 | 2 MB | "AI Verified + Reviewed" |
Workflow (Planejado)
- Publique seu app como nível Community primeiro
- Submeta sua URL de manifest para
POST /v1/verify/submitcom o nível de scan - Pague a taxa de scan via checkout Stripe
- O LLM analisa seu código por:
- Malware e backdoors
- Tentativas de exfiltração de dados
- Uso indevido de permissões (solicitar mais do que necessário)
- Código ofuscado ou minificado que esconde comportamento
- Tentativas de escape do sandbox
- Verifique status em
GET /v1/verify/status/{jobId} - Se passou, recupere o objeto
verificationdeGET /v1/verify/report/{jobId} - Adicione o objeto de verificação à sua entrada de registro:
"verification": {
"hash": "sha256:a1b2c3d4...",
"tier": "full",
"date": "2026-02-19",
"expires": "2027-02-19",
"job_id": "ver_xyz789"
}
- Envie um PR com a entrada de registro atualizada
- O script de validação confirma que o badge é válido via
/v1/verify/badge/{hash}
Regras do Badge
- O badge é fixado ao hash SHA-256 do HTML de entrada do seu app
- Qualquer mudança de código invalida o badge (novo hash = badge perdido)
- Badges expiram após 12 meses e devem ser renovados
- Scans falhados fornecem um relatório com achados para corrigir
Badge Verified (Revisão Manual)
Para o mais alto nível de confiança, solicite verificação manual:
- Defina
"tier": "verified"na sua entrada de registro - Envie um PR
- Um mantenedor da plataforma revisará:
- Permissões do manifest (são justificadas?)
- HTML de entrada e JavaScript (sem código malicioso?)
- Conformidade com sandbox (sem tentativas de escape?)
- Para plugins: análise do binário WASM
- Se aprovado: badge concedido, posicionamento em destaque habilitado
- Se rejeitado: feedback é fornecido no PR
Apps Verified obtêm:
- O badge "Verified" (checkmark verde)
- Posicionamento em destaque no topo da App Store
- Maior confiança dos usuários
Atualizando Seu App
Para atualizar um app publicado:
- Faça deploy da nova versão dos arquivos do seu app para seu CDN
- Atualize
versionno seumanifest.json - Atualize
versionemregistry/packages.json - Envie um PR com o bump de versão
Siga convenções semver:
- Patch (1.0.0 -> 1.0.1): Correções de bugs, sem novas funcionalidades
- Minor (1.0.0 -> 1.1.0): Novas funcionalidades, compatível com versões anteriores
- Major (1.0.0 -> 2.0.0): Mudanças que quebram compatibilidade
Usuários que já instalaram seu app verão a atualização quando o registro atualizar (cache diário).
Melhores Práticas
Descrição e Ícone
- Escreva uma descrição clara e concisa (menos de 256 caracteres) que explica o que o app faz
- Use um ícone PNG 128x128 com fundo transparente ou escuro
- Ícones SVG também são aceitos e renderizam nitidamente em qualquer tamanho
Permissões
- Solicite apenas as permissões que seu app realmente usa
- Explique na descrição do PR por que cada permissão é necessária
- Apps com menos permissões obtêm mais instalações
Checklist de Teste
Antes de enviar seu PR:
- App instala e lança sem erros
- Todas as funcionalidades funcionam como descrito
- App lida com negações de permissão graciosamente (try/catch ao redor de chamadas SDK)
- App funciona em modo escuro (padrão da plataforma)
- Botões e elementos interativos têm pelo menos 48px de altura
- Texto tem pelo menos 14px
-
ais.close()retorna ao chat limpo -
python3 registry/validate.py packagespassa -
python3 registry/validate.py manifest caminho/para/manifest.jsonpassa
Seleção de Categoria
Escolha a categoria mais apropriada para seu app:
| Categoria | Exemplos |
|---|---|
productivity | Gerenciadores de tarefas, toma-notas, ferramentas de projeto |
developer | Editores de código, testadores de API, ferramentas de debug |
communication | Extensões de chat, integrações de email |
media | Editores de imagem, ferramentas de áudio, players de vídeo |
utilities | Calculadoras, conversores, ferramentas de sistema |
games | Jogos interativos, puzzles |
education | Flashcards, ferramentas de quiz, auxílios de aprendizado |
finance | Rastreadores de orçamento, ferramentas de cripto, faturamento |