Pular para o conteúdo

Roadmap

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).


CapabilityValorDone when
Domain Model + Event StormingVocabulário compartilhado eng+compliance+jurídicoDocs site com 8 bounded contexts + 38 domain events mapeados
Research consolidadoBase de premissas auditávelMarco legal, SNGPC, sandbox, mercado, modelos internacionais
OSS business modelTese de viabilidadeAGPL-3 + managed hosting + Plausible como proxy

CapabilityValorDone when
@canna/domain TS puroFeedback rápidopnpm verify em < 5s; 50 vitest GIVEN/WHEN/THEN
Membership deciderEstado de membro auditável8 eventos + 16 scenarios (success + rejection + transitions)
Inventory deciderEstado de lote auditável7 eventos + 14 scenarios
Dispensation use caseCore regulatório atômicoCross-aggregate; 3-event single append + rejection events
@canna/event-store Emmett in-memoryES kernel validado8 specs incluindo parallel-writers optimistic concurrency
@canna/app-services orchestrationStream load → decide → append6 e2e specs incluindo concurrent same-lot dispensation
CapabilityValorDone when
createPostgresEventStore()Production-grade backendMesma CannaEventStore interface; Pongo+pg pool
testcontainers-postgres suiteSpike gate em PG real6 specs PG (append/read/aggregate/Date-revival/stale-version/parallel-writers)
ADR-001 spike gate PASSEDEmmett oficialParallel writers + stale version + concurrent dispensation TODOS verdes em PG real

v0.2.1 — Compliance Spine + MCP-First Surface (now → ago/2026)

Seção intitulada “v0.2.1 — Compliance Spine + MCP-First Surface (now → ago/2026)”

Objetivo: provar core loop em uma associação através do agente. Sem admin Next.js. Sem cultivo. Sem multi-tenant. Open WebUI + MCP server + MCP Apps básico fechando a entrega.

CapabilityValorDone when
apps/api Fastify endpoints finosCommands via HTTP (chamados por MCP)POST /commands/register-member, /validate-prescription, /release-lot, /record-dispensation
@canna/read-models Drizzle projectionsQueries sem hit no event storemember-list, dispensation-history, inventory-summary, member-quota, inventory-lot
Append-only audit logTrilha imutávelPostgreSQL RULE bloqueia UPDATE/DELETE em audit_log
@canna/crypto envelope encryptionLGPD Art. 11Per-member random DEK encrypted with Site KEK; rotação trimestral
@canna/sngpc (mock)XML schema pronto, submissão mockadaXSD válido; happy path + retry mock
Login/TOTP/RBAC mínimoAuth funcionalJWT + speakeasy; roles DISPENSADOR + RT + DPO; OAuth scopes mapped to canna roles
apps/mcp MCP server TypeScriptAgente acessa domain@modelcontextprotocol/sdk + @modelcontextprotocol/ext-apps/server; servido via stdio + SSE
MCP Tools Nível 1 (read)Federação/auditor consultaget_member, get_member_quota, list_available_lots, list_pending_compliance_items, generate_traceability_report, explain_compliance_gap
MCP Tools Nível 2 (draft)Agente prepara, humano confirmadraft_dispensation, draft_kpi_report, draft_inventory_adjustment
MCP Tools Nível 3 (write w/ approval)Agente solicita, humano aprovarequest_record_dispensation, request_release_lot, request_submit_report; cria PendingAction; approver registrado no evento
MCP ResourcesRead-only contextcanna://reports/kpi/current, canna://inventory/available-lots, canna://members/{id}/quota-summary, canna://dispensations/{id}/trace, canna://regulatory-assumptions
MCP PromptsWorkflows guiadosprepare_monthly_board_report, investigate_inventory_discrepancy, review_sngpc_failures
packages/ui-apps/ MCP Apps básicosTelas operacionais dentro do chatMemberQuotaCardApp (read-only), TraceabilityTimelineApp (read-only), DispensationFormApp (form → request Tool Nível 3 → PendingAction); ext-apps spec compliant
apps/openapi-bridge (mcpo)Hosts OpenAPI-only consomemmcpo wrapper expõe MCP tools como OpenAPI; documentado mas opcional (Open WebUI v0.9.6+ fala MCP nativo)
Open WebUI sidecar OBRIGATÓRIOPrimary product surfacedocker-compose com ghcr.io/open-webui/open-webui:v0.9.6 + Postgres backend; MCP server registrado via config file; OAuth 2.1 com scopes mapped; Workspace Tools disabled
Pending Actions toolTwo-step approval via chatTool list_pending_actions/approve_pending_action/reject_pending_action; renderizado por PendingActionApprovalApp
@canna/sngpc (real, async)Submissão real ANVISA pós-aprovaçãoBullMQ job consumindo DispensationRecorded → gera XML → submete; falha não invalida dispensação
Trace Report PDFEvidência via toolMCP tool generate_traceability_report retorna PDF render + link armazenado
Export CSV/JSON LGPD Art. 18 VPortabilidadeMCP tool export_member_data retorna bundle assinado

Done when (release v0.2.1): Associação piloto registra dispensação real via Open WebUI chat: dispensador pergunta ao agente, agente abre DispensationFormApp, dispensador confirma, sistema emite 3 eventos atômicos, RT aprova PendingAction no chat (ou via approval Tool), audit log registra approver. Sem clique em admin web tradicional.


v0.3 — Pilot Expansion + LGPD Hardening (set/2026 → dez/2026)

Seção intitulada “v0.3 — Pilot Expansion + LGPD Hardening (set/2026 → dez/2026)”

Objetivo: 3–5 associações em produção piloto. Endurece spine + crypto + auditor read-only.

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ávelBullMQ retry exponencial; DLQ com 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-tenantHosting SaaSSchema isolation + RLS; 5+ tenants em staging sem cross-leak
Self-serve onboardingAquisição escalávelAssociação cria conta + configura em < 30min sem intervenção
BillingReceita realStripe + NF-e via emissor externo
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.
  • 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)