Skip to content

refactor: executa skill refactor-arch (MVC) nos 3 projetos + reports … - #25

Open
guilhermemiller wants to merge 3 commits into
devfullcycle:mainfrom
guilhermemiller:Desafio_Skill
Open

refactor: executa skill refactor-arch (MVC) nos 3 projetos + reports …#25
guilhermemiller wants to merge 3 commits into
devfullcycle:mainfrom
guilhermemiller:Desafio_Skill

Conversation

@guilhermemiller

Copy link
Copy Markdown

Aplicado a skill refactor-arch para auditar e refatorar os 3 projetos para o padrão MVC, com relatórios de auditoria e documentação completa.

Project 1 (code-smells-project, Python/Flask):

  • 16 findings (5 CRITICAL/4 HIGH/4 MEDIUM/3 LOW)
  • Divido monolito em config/models/services/controllers/routes/middlewares
  • SQL parametrizado, backdoors /admin removidos, secrets via env

Project 2 (ecommerce-api-legacy, Node/Express):

  • 13 findings (5 CRITICAL/3 HIGH/3 MEDIUM/2 LOW)
  • God class AppManager -> models/services/controllers/routes
  • badCrypto -> bcrypt, secrets via env, relatorio protegido por auth, JOIN (sem N+1)

Project 3 (task-manager-api, Python/Flask):

  • 14 findings (4 CRITICAL/4 HIGH/4 MEDIUM/2 LOW)
  • Logica extraida das routes para services, MD5 -> werkzeug
  • senha nao mais exposta nas respostas, erros centralizados

Guilherme.Rangel and others added 3 commits August 5, 2026 23:58
…+ docs

Aplica a skill refactor-arch para auditar e refatorar os 3 projetos para o
padrão MVC, com relatórios de auditoria e documentação completa.

Project 1 (code-smells-project, Python/Flask):
- 16 findings (5 CRITICAL/4 HIGH/4 MEDIUM/3 LOW)
- Divido monolito em config/models/services/controllers/routes/middlewares
- SQL parametrizado, backdoors /admin removidos, secrets via env

Project 2 (ecommerce-api-legacy, Node/Express):
- 13 findings (5 CRITICAL/3 HIGH/3 MEDIUM/2 LOW)
- God class AppManager -> models/services/controllers/routes
- badCrypto -> bcrypt, secrets via env, relatorio protegido por auth, JOIN (sem N+1)

Project 3 (task-manager-api, Python/Flask):
- 14 findings (4 CRITICAL/4 HIGH/4 MEDIUM/2 LOW)
- Logica extraida das routes para services, MD5 -> werkzeug
- senha nao mais exposta nas respostas, erros centralizados

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
rafadeamaral added a commit to rafadeamaral/mba-ia-refactor-projects-skill that referenced this pull request Aug 13, 2026
Resultado da execução da skill refactor-arch no projeto 3 (Flask + SQLAlchemy).
Auditoria com 25 findings (4 CRITICAL, 5 HIGH, 9 MEDIUM, 6 LOW) em
reports/audit-project-3.md.

Este projeto já possuía models/, routes/, services/ e utils/, mas com
separação apenas nominal. A skill detectou o ponto de partida como nível B e
adotou estratégia diferente dos projetos 1 e 2: manteve a árvore existente e
realocou responsabilidade, adicionando as camadas ausentes (config/,
controllers/, validators/, middlewares/, routes/dto/).

Correções principais:
- to_dict() do model devolvia o hash da senha em 4 endpoints → DTOs com
  allowlist na camada de views
- MD5 sem salt → werkzeug.security com re-hash das credenciais legadas no login
- token 'fake-jwt-token-<id>' que nenhuma rota verificava → removido, com
  ponto de extensão de auth pronto em middlewares/auth.py
- SECRET_KEY e credenciais SMTP hardcoded → config/settings.py + .env.example
- db.create_all() no import (um import de app.py criava instance/tasks.db) →
  create_app() + scripts/init_db.py
- rotas de até 90 linhas → controllers/; maior handler agora tem 12 linhas
- Task.is_overdue() existia com 0 chamadas enquanto a regra era reescrita 6×
  nas rotas → adotado como fonte única
- NotificationService e 5 helpers com 0 imports → decisão explícita de adotar
  ou remover, símbolo a símbolo
- 12 except: nus → exceções de domínio + errorhandler central
- N+1 em /tasks e /reports/summary → joinedload e GROUP BY
- 33 usos de APIs deprecated (datetime.utcnow, Model.query.get) → 0

Validação contra baseline da versão original, ambos recém-semeados: 35/35
status codes idênticos, 18/18 payloads de leitura idênticos, 22/22 endpoints
registrados. Cascade de deleção verificado equivalente. Cinco mudanças de
contrato deliberadas documentadas.

O finding devfullcycle#25 (senha mínima de 4 caracteres) foi deliberadamente NÃO alterado:
elevar o mínimo é política de produto, não refatoração. Registrado no relatório.

Inclui a cópia da skill em task-manager-api/.claude/skills/refactor-arch/,
usada sem alteração em relação aos projetos 1 e 2.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant