Decisões Arquiteturais (ADRs)
Resumo das decisões arquiteturais que orientam a operação da organização middag-io.
| ADR | Título | Contexto | Decisão | Status |
|---|---|---|---|---|
| 001 | Convenção de Nomes | GitHub não tem agrupamento por projetos como Bitbucket. | Prefixos obrigatórios por família (moodle-*, wp-plugin-*, docker-*, etc). | Aceita |
| 002 | Modelo de Branches | Repos Bitbucket usavam modelos mistos sem padronização. | main (produção) + develop (integração) + feature/* + hotfix/*, com release-please. | Aceita |
| 003 | Estratégia de Release | Versionamento e changelogs precisam ser automatizados com suporte a públicos diferentes. | release-please com Conventional Commits; produtos comerciais mantêm CHANGELOG-USER.md separado. | Aceita |
| 004 | Estratégia de Migração | ~75 repos ativos no Bitbucket precisam migrar gradualmente para GitHub. | Cutover imediato por repo, sem dual-remote; Bitbucket vira read-only após migração. | Aceita |
| 005 | 1Password + GitHub Actions | CI/CD precisa de acesso seguro a secrets sem PATs de longa duração. | Modelo híbrido: Service Accounts por projeto no CI; 1Password Connect em produção. | Aceita |
| 006 | Workflows Reutilizáveis | Duplicação de pipelines entre repos causa drift e manutenção excessiva. | Centralizar workflows reutilizáveis; repos consumidores usam wrappers finos com inputs. | Aceita |
| 007 | Registry Docker | Imagens Docker precisam de registry para CI e deploys; setup atual usa dual-push GHCR + ECR. | GHCR como padrão; ECR opcional via variável PUSH_TO_ECR, copiado com crane copy. | Aceita |
| 008 | Imagem Base de CI | Bitbucket exigia imagem Docker customizada; GitHub Actions já tem ferramentas nativas. | Sem imagem customizada; usar setup nativo do GitHub Actions com shivammathur/setup-php. | Aceita |
| 009 | Agentes e Plugins de IA | Agentes IA geram estado local que pode poluir repos e causar conflitos entre devs. | Não versionar estado local de agentes; gitignore obrigatório; documentar ferramentas obrigatórias. | Aceita |
| 010 | Nomenclatura 1Password | Secrets para CI, servidores e dev local precisam de nomenclatura consistente e controle de acesso. | Vaults CI-{PROJECT}, itens {SERVIÇO}-{contexto}, campos snake_case EN; 3 padrões de consumo. | Aceita |
| 011 | Docker + Dev Container | Projetos Docker precisam de setup padronizado para Dev Containers, CI e produção. | Multi-stage Dockerfile, compose base+override, Xdebug controlável, secrets via 1Password. | Aceita |