Spec Impact Matrix — canta-igreja
Gerado pelo Architect (Reversa) em 2026-05-11
Confiança: 🟢 CONFIRMADO | 🟡 INFERIDO | 🔴 LACUNA
Legenda de impacto:
- 🔴 Crítico — qualquer mudança neste componente quebra os dependentes listados
- 🟠 Alto — mudança requer atualização coordenada nos dependentes
- 🟡 Médio — mudança tem reflexos secundários nos dependentes
- 🟢 Baixo — dependência fraca, impacto isolado
1. Impacto por Componente de Dados
musica (tabela + modelo)
| Componente impactado |
Tipo de impacto |
Razão |
Confiança |
musica_busca (FTS5) |
🔴 Crítico |
Tabela virtual espelha titulo e letra |
🟢 |
MusicasRepository |
🔴 Crítico |
Todas as queries dependem do schema |
🟢 |
cantico_livro |
🔴 Crítico |
FK id_musica |
🟢 |
item_repertorio |
🔴 Crítico |
FK nullable id_musica |
🟢 |
sugestao_repertorio.itens |
🟠 Alto |
Referencia id_musica dentro do JSON |
🟢 |
Musicas Slice (Redux) |
🟠 Alto |
EntityAdapter mapeado para o modelo |
🟢 |
MusicaService |
🟡 Médio |
Usa campos titulo, letra para compartilhamento |
🟢 |
code-analysis.md (spec) |
🟡 Médio |
Documentação de entidade desatualiza |
🟢 |
repertorio (tabela + modelo)
| Componente impactado |
Tipo de impacto |
Razão |
Confiança |
item_repertorio |
🔴 Crítico |
FK id_repertorio |
🟢 |
RepertoriosRepository |
🔴 Crítico |
Todas as queries dependem do schema |
🟢 |
Repertorios Slice (Redux) |
🔴 Crítico |
EntityAdapter mapeado para o modelo |
🟢 |
ItensRepertorio Slice (Redux) |
🟠 Alto |
Itens dependem do id_repertorio ativo |
🟢 |
CompartilharService |
🟠 Alto |
Serializa slug, titulo, metadata, ordem_musicas |
🟢 |
FolhetoService |
🟠 Alto |
Estratégias dependem de slug e itens do repertório |
🟢 |
RepertorioService |
🟠 Alto |
Gera mensagem com titulo, metadata, itens |
🟢 |
sugestao_repertorio (tabela + modelo)
| Componente impactado |
Tipo de impacto |
Razão |
Confiança |
BibliotecaSugestoesRepertorioRepository |
🔴 Crítico |
Queries de leitura e import via ATTACH |
🟢 |
SugestoesRepertorio Slice (Redux) |
🟠 Alto |
EntityAdapter mapeado para o modelo |
🟢 |
SugestoesRepertorioService |
🟠 Alto |
Sincronização e semeadura dependem do schema |
🟢 |
CalendarioLiturgicoService |
🟡 Médio |
Chave {CicloLiturgico}:{IdRomcal} une calendário + sugestão |
🟢 |
liturgia_cache (tabela)
| Componente impactado |
Tipo de impacto |
Razão |
Confiança |
LiturgiaCacheRepository |
🔴 Crítico |
Leitura e escrita direta |
🟢 |
Liturgia API Slice (RTK) |
🟠 Alto |
Middleware usa o cache antes de chamar DANCRF |
🟢 |
2. Impacto por Serviço
CalendarioLiturgicoService
| Componente impactado |
Tipo de impacto |
Razão |
Confiança |
SugestoesRepertorioService |
🔴 Crítico |
Gera chave CicloLiturgico:IdRomcal usada para vincular sugestões |
🟢 |
Liturgia Slice (RTK Query) |
🟠 Alto |
Calendário offline complementa as leituras DANCRF |
🟢 |
| Telas de Liturgia e Sugestão |
🟠 Alto |
Cor litúrgica, nome do dia e tempo litúrgico vêm daqui |
🟢 |
CorLiturgica (enum) |
🟡 Médio |
Mapeamento de cores depende da saída do romcal |
🟢 |
Auth
| Componente impactado |
Tipo de impacto |
Razão |
Confiança |
CompartilharService |
🔴 Crítico |
Exige token válido antes de chamar API |
🟢 |
FolhetoService |
🔴 Crítico |
Estratégia Slug exige token válido |
🟢 |
Acesso Slice (Redux) |
🟠 Alto |
Estado usuarioLogado vem do Auth |
🟢 |
CredentialsRepository |
🟠 Alto |
Auth persiste e lê credenciais |
🟢 |
UsuarioLogadoRepository |
🟡 Médio |
Auth armazena dados do usuário no MMKV |
🟢 |
ObraService
| Componente impactado |
Tipo de impacto |
Razão |
Confiança |
musica (tabela) |
🔴 Crítico |
Import de obra faz upsert em musica via ATTACH |
🟢 |
cantico_livro (tabela) |
🔴 Crítico |
Import de obra faz upsert em cantico_livro |
🟢 |
edicao_livro (tabela) |
🟠 Alto |
Import de obra faz upsert em edicao_livro |
🟢 |
musica_busca (FTS5) |
🟠 Alto |
Trigger FTS5 atualiza ao fazer upsert em musica |
🟡 |
BibliotecaRepository |
🟠 Alto |
Registra exemplar após import |
🟢 |
Biblioteca Slice (Redux) |
🟡 Médio |
Invalida cache RTK Query após download |
🟡 |
3. Impacto por Schema Migration
| Migration |
Componentes Impactados |
Confiança |
| v8 |
repertorio, item_repertorio, tipo_repertorio — criação |
🟢 |
| v9 |
musica.informacoes — adicionado, sem impacto ativo |
🟢 |
| v10 |
repertorio.slug, repertorio.data_edicao — CompartilharService, FolhetoService |
🟢 |
| v11 |
musica.rotulos — filtros por rótulo na busca |
🟢 |
| v12 |
Force-reset de CRC32 — forçou re-import de todas as músicas |
🟢 |
| v13 |
sugestao_repertorio — SugestoesRepertorioService, SugestoesRepertorio Slice |
🟢 |
| v14 |
repertorio.metadata — RepertorioService (msg compartilhamento), tela de criação |
🟢 |
| v15 |
liturgia_cache — LiturgiaCacheRepository, Liturgia Slice |
🟢 |
4. Matriz de Dependência entre Módulos
musicas repertorios livros biblioteca sugestoes liturgia auth configuracoes arch
musicas — 🟡 🟠 🟠 🟠 🟢 🟢 🟢 🟠
repertorios 🔴 — 🟢 🟢 🟢 🟡 🔴 🟢 🟠
livros 🟠 🟢 — 🟢 🟢 🟢 🟢 🟢 🟠
biblioteca 🔴 🟢 🟠 — 🟢 🟢 🟢 🟢 🟠
sugestoes 🟠 🟡 🟢 🟢 — 🔴 🟢 🟢 🟠
liturgia 🟢 🟡 🟢 🟢 🔴 — 🟢 🟢 🟠
auth 🟢 🟢 🟢 🟢 🟢 🟢 — 🟢 🟠
configuracoes 🟡 🟢 🟢 🟢 🟢 🟢 🟢 — 🟠
arch 🔴 🔴 🔴 🔴 🔴 🔴 🔴 🔴 —
Leitura: linha = "impacta" → coluna. Ex: musicas 🟠 livros = músicas tem dependência alta em livros.
5. Hotspots de Alto Risco
| Componente |
Razão do risco |
Recomendação |
musica (tabela + FTS5) |
Núcleo do produto. Toda busca e exibição passa por aqui. |
Alta cobertura de testes |
MigrationSystem (arch) |
Migrations sem rollback. Erro quebra o app para todos os usuários instalados. |
Testar migrations em dados de produção |
ObraService (ATTACH) |
Import atômico via ATTACH. Falha parcial pode corromper dados. |
Tratamento de erros robusto + retry |
CalendarioLiturgicoService |
Acoplamento entre romcal (lib instável dev) e sugestões. Versão dev.125. |
Fixar versão do romcal |
CompartilharService |
Depende de Auth + API externa. Alta superfície de falha de rede. |
Feedback claro ao usuário em falhas |