Ir al contenido

Roadmap

Esta página aún no está disponible en tu idioma.

Princípio (revisado pós-pivot 2026-06-08): spine-first + agentic-first. Tronco regulatório: Member → Prescrição → Quota → Lote → Dispensação → Audit Log → Relatório. Tronco de interface: MCP server + MCP Apps + Open WebUI. NÃO existe admin Next.js no roadmap até pós-v1.0. Tudo que era “admin view” virou MCP App contextual ou ficou no Ideas Park.

Premissas regulatórias canalizadas em Premissas Regulatórias. Surface pivot documentado em ADR-002 — MCP-first surface (substitui parcialmente ADR-001 na camada de interface).


Não são uma “versão entregue” — são o trabalho de base que habilita a v0.1.0. A numeração do roadmap reflete valor entregue ao usuário, não progresso interno de engenharia. Por isso esse trabalho não recebe número de release.

FundaçãoValorEstado
Domain Model + Event StormingVocabulário compartilhado eng+compliance+jurídico8 bounded contexts + 38 domain events mapeados no docs site
Research consolidadoBase de premissas auditávelMarco legal, SNGPC, sandbox, mercado, modelos internacionais
OSS business modelTese de viabilidadeAGPL-3 + managed hosting + analytics proxy
Emmett kernel spike (@canna/domain + @canna/event-store)Decider pattern + optimistic concurrency validadosIn-memory + Postgres adapter verdes em PG real (parallel writers + stale version). É o caminho self-host (dual model com SurrealDB gerenciado)

O sistema que roda hoje: cadastro e gestão de membros, dispensação com aprovação, rastreabilidade de lote, trilha de auditoria imutável, cotas por prescrição, criptografia por membro (LGPD), MCP server inline. 154/154 testes verdes. Live em cannabr.org.

CapabilityValorEstado
Cadastro e gestão de membrosAssociação opera membros no domínioMembro Cadastrado → Suspenso → Reintegrado + listas escopadas por tenant
Dispensação com aprovação RTOperação regulatória auditadaDispensação registrada + PendingAction aprovada pela RT antes de commit
Rastreabilidade de loteCadeia de custódia auditávelLote → Dispensação → Membro; relatório de rastreabilidade por lote
Trilha de auditoria imutávelLGPD art. 37 + complianceAppend-only audit_log; UPDATE/DELETE bloqueados em produção
Cotas por prescriçãoControle de dispensação seguroCota mensal derivada da prescrição; dispensação barra se cota excedida
Criptografia por membro (LGPD)Art. 11 — dado sensível protegidoDEK aleatória por membro criptografada com KEK da instância; rotação documentada
MCP server inlineAgente acessa domain via toolsapps/mcp rodando junto ao apps/api; tools Nível 1–3 operacionais
154/154 testes verdesFundação verificadaSuite completa passa em CI; zero regressão em domínio + infra

Done (release v0.1.0): sistema usável em produção. Operador provisiona associação via MCP Operacional; associação gerencia membros, registra dispensações com aprovação RT, consulta rastreabilidade e histórico de auditoria. Live em cannabr.org.


Objetivo: múltiplas associações isoladas numa instância + onboarding self-serve (associação cria conta sem intervenção do operador). Aqui entram login multi-tenant (Zitadel Cloud · OIDC/PKCE), isolamento de streams por tenant e o fluxo completo de primeiro acesso via MCP App. Detalhamento (EventStorming + MCP Operacional + UseCaseMatrix + arquitetura): v0.2 detalhada.

CapabilityValorDone when
MCP Operacional interno (provisionamento)Operador libera tenant sem formulárioprovision_association + seed_admin_user (cred. temp · must_change_credentials); tenant isolado + namespace de streams
Onboarding de primeiro acessoAssociação define seu próprio acesso realMCP App onboarding-credential-setup: troca e-mail+senha, revoga credencial temporária
Login multi-tenant (Zitadel Cloud · OIDC/PKCE · região EU)Auth gerenciada, contexto isolado por tenantAdmin entra com sessão escopada ao tenant; sem auth self-built
Isolamento por tenantDado de uma associação invisível para outraStreams + read-models namespaced; teste cross-tenant nega acesso
Dashboard básico do tenantVisão operacional mínimaRead-model escopado ao tenant via SurrealDB LIVE SELECT (síncrono, sem bus assíncrono)
Event store SurrealDB (gerenciado)Trilha append-only por stream na infra vivaAdapter SurrealDB (es_stream/es_event + ExpectedVersionConflictError) atrás do port CannaEventStore, ns=canna na instância compartilhada

Done when (release v0.2): duas associações distintas fazem onboarding na mesma instância, cada uma loga no seu tenant, opera membros e vê apenas os seus dados. Nenhum vazamento entre tenants. Documentado para self-host e gerenciado.


Seção intitulada “v0.3 — Pilot Hardening (RBAC / TOTP / consent / crypto-deletion / CSV)”

Objetivo: 3–5 associações em produção piloto. Endurece RBAC, TOTP, consentimento versionado, crypto-deletion e importação CSV.

CapabilityValorDone when
LGPD consent versionadoConformidade Art. 8Versão do consentimento ativo armazenada com timestamp; histórico imutável
Crypto-deletion via MCP toolDireito Art. 18 IVrequest_crypto_delete_member (Tool Nível 3); aprovação DPO; DEK destruída; testes end-to-end. NÃO via MCP autônomo — requer co-presença DPO.
CPF hash + RBAC reforçadoArt. 11 + segregaçãoSHA-256 + site_salt; RBAC enforced em todo app-service
Backup/restore drillContinuidade operacionalScript backup.sh + restore documentado em runbook
CSV import (Tool Nível 2)Onboarding sem fricçãodraft_csv_import → preview → request_csv_import aprovado por RT
MCP Apps adicionaisCobertura operacionalInventoryLotPickerApp (FIFO), MemberSearchApp, SngpcPendingApp, BackupStatusApp
Auditor read-only roleCompliance externaOAuth scope canna:auditor; MCP tools filtrados a Nível 1; renderiza AuditTimelineApp
Federação read-only multi-associação1 agente vê N associaçõesOAuth scope canna:federation; switchable tenant context
KPI dashboard (MCP App)Indicadores RDC 1.014KpiDashboardApp render de 7 KPIs (dispensação, churn, conformidade quotas, etc.)

v0.4 — Sandbox Dossier Ready (jan/2027 → mai/2027)

Seção intitulada “v0.4 — Sandbox Dossier Ready (jan/2027 → mai/2027)”

Objetivo: associação candidata-se ao sandbox com evidências geradas via chat.

CapabilityValorDone when
Dossier templateReduz barreira de candidaturaTemplate Plano de Capacidade Técnico-Operacional gerado por draft_anvisa_dossier_section + prepare_anvisa_dossier_section prompt
BSPO draft trimestralRelatório de balanço auditávelBSPO gerado automaticamente em 15/jan/abr/jul/out; revisado por RT via BspoReviewApp
RIPD templateConformidade LGPD Art. 38RIPD pré-preenchido por agente; aprovado por DPO via RipdReviewApp
Evidências exportáveisBundle para dossierMCP tool bundle_dossier_evidence retorna ZIP (BSPO + KPIs + RIPD + audit + traceability)
DPO view completa (MCP Apps)Compliance DPOLgpdRequestsApp (Art. 18 inbox), RipdEditorApp, ConsentAuditApp
Anvisa sandbox application flowSubmissão realTool Nível 3 submit_sandbox_application com aprovação Diretoria

v0.5 — Regulatory Adapters Real (jun/2027 → dez/2027)

Seção intitulada “v0.5 — Regulatory Adapters Real (jun/2027 → dez/2027)”

Objetivo: SNGPC + SNCR real. Depende de schema/documentação Anvisa estável (SNCR API prazo: 30/09/2026).

CapabilityValorDone when
@canna/sngpc (prod)Submissão real AnvisaXML validado contra XSD oficial; ambiente homologação Anvisa testado
@canna/sncr adapterPrescrição eletrônica oficialAPI Anvisa integrada quando disponível; fallback registro manual
Compliance Adapter LayerPlugávelInterface comum; mocks e prod separados; schema versioning per release
Retry/dead-letter queueSubmissão confiávelRetry exponencial + DLQ sobre o bus NATS JetStream; alerta via MCP list_sngpc_failures
Protocol logEvidência imutávelCada submissão Anvisa gera log com payload, response, timestamp
MCP Apps regulatóriosOperação Anvisa via chatSngpcPendingApp, SncrSyncApp, ComplianceGapApp
REST API pública v1Integrações tradicionais/v1/; OpenAPI publicado; API keys + IP allowlist por tenant

v1.0 — Full Association Backend + Agent Marketplace (2028)

Seção intitulada “v1.0 — Full Association Backend + Agent Marketplace (2028)”

Objetivo: produto completo. Cultivo, processing, lab, financeiro full. Federação multi-tenant.

CapabilityValorDone when
CultivationCultivo rastreávelCultivationBatch → Plant ULID → Harvest. Estado por planta auditado.
ProcessingTransformação rastreávelProcessingRun: input lots → output product lot. Massa/perdas registradas.
Lab Sample + COAQualidade auditávelLabSample com COA; resultados vinculados ao lote
CPC 29 / IAS 41Contabilidade ativo biológicoFair value de planta por estágio; integração financeiro
Multi-tenant em escalaHosting SaaS robustoIsolamento de streams + RLS endurecidos; 50+ tenants em staging sem cross-leak (multi-tenant funcional desde v0.2; aqui = escala e hardening)
BillingReceita recorrente gerenciadaStripe + NF-e via emissor externo; planos por tenant configuráveis via MCP Operacional
Kamal deployDeploy sem downtimekamal deploy < 5min single-tenant; multi-tenant orquestrado
Agent marketplace / federationFederação/contador/auditor conectam agentes própriosPer-tenant OAuth scopes; auditor read-only event log; contador read-only financeiro; jurídico read-only dossier
MCP Apps avançadosOperação full ERP via chatCultivationOverviewApp, LabResultsApp, FinanceDashboardApp, BatchTraceabilityApp
Canna Copilot embutidoCockpit primárioOpen WebUI continua sendo o canal; nada de admin Next.js mesmo agora — chat + MCP Apps cobrem 100% das telas operacionais

CapabilityValorDone when
LATAM expansionCO / MX / ARCompliance adapter por jurisdição
Módulo clínico (SaMD?)Acompanhamento pacienteAvaliação RDC 657 Classe I concluída ou descartada com fundamento
B2G analyticsDashboard ANVISAContrato piloto com órgão regulador
R$1.87M ARRSustentabilidade120 associações pagantes

Apostas que dependem de premissas Especulativas ou exigem validação prévia. Não entram no roadmap até a aposta ser validada com 1 cliente real.

  • Admin Next.js standalone — descartado em 2026-06-08. Caso surja necessidade (ex: associação sem condições de operar via chat), avaliar como fallback PWA; até lá, MCP Apps cobrem o universo operacional.
  • StrainCatalog — catálogo de strains medicinal BR (bounded context separado; seed OpenTHC/vdb + Kushy). Gatilho: implementação do Chain of Custody OU primeira associação piloto cultivando variedade própria. research
  • App mobile PWA para membros (dispensação self-service com assinatura digital)
  • IoT integration para cultivo (sensores temperatura/umidade)
  • AI compliance alerts (análogo ao “Hanna” da Cannanas DE)
  • Federação LATAM: schema adapter por jurisdição
  • B2B revenue share com laboratórios homologados
  • Marketplace de produtos entre associações (intra-RDC 1.014)