Este arquivo fornece orientações para desenvolvedores que desejam usar Claude AI para trabalhar com o projeto Datas.
- Nome: Datas - Funções Utilitárias
- Tipo: JavaScript vanilla com utilitários para manipulação de datas
- Metodologia: Desenvolvido com vibe coding usando Claude Code
- Tecnologias: HTML5, CSS3, JavaScript ES6+, Jest
datas/
├── index.html # Interface principal
├── styles.css # Estilos responsivos com gradiente Wildtech
├── date-utils.js # Classe DateUtils com funções utilitárias
├── app.js # Lógica de interação da interface
├── *.test.js # Testes unitários (Jest)
├── README.md # Documentação principal
├── TESTING.md # Documentação de testes
└── CLAUDE.md # Este arquivo
- Cálculo de diferenças entre datas
- Fases da lua (algoritmo astronômico)
- Calendário mensal interativo
- Cálculo de idade completa
- Formatação de datas múltipla
- Validações de datas
- 100% Vanilla JavaScript - Sem frameworks
- Testes unitários completos - 54 testes passando
- Design responsivo - Mobile-first
- GitHub Pages ready - Deploy automático
Este projeto foi desenvolvido usando a metodologia vibe coding:
- Iterações rápidas - Desenvolvimento incremental
- Feedback contínuo - Teste constante de funcionalidades
- Claude como pair programmer - Assistência em código e arquitetura
- Foco na experiência - UX/UI priorizados
- Classes ES6 para organização do código
- Modularização clara entre utils e interface
- Testes first - TDD approach
- Documentação viva - README atualizado constantemente
Contexto: Projeto JavaScript vanilla de utilitários de data com classe DateUtils e interface em app.js. Usa Jest para testes. Design responsivo com gradiente laranja/marrom.
Tarefa: [descreva a feature]
Considerações:
- Manter padrão ES6 das classes existentes
- Adicionar testes unitários
- Seguir design responsivo
- Documentar no README se necessário
Analisando projeto Datas (JavaScript vanilla + Jest):
Problema: [descreva o problema]
Arquivos relevantes:
- date-utils.js (classe principal)
- app.js (interface)
- [arquivo específico].test.js (testes)
Console/erro: [cole aqui]
Projeto Datas - Refatoração:
Contexto atual: [descreva o código atual]
Objetivo: [o que quer melhorar]
Restrições:
- Manter compatibilidade com testes existentes
- Não quebrar interface atual
- Manter padrão de código vanilla
- Jest com jsdom environment
- Cobertura >95% esperada
- Setup:
jest.setup.jspara mocks DOM
describe('NomeDaClasse', () => {
describe('métodoEspecífico', () => {
test('deve fazer algo específico', () => {
// Arrange
const input = 'valor';
// Act
const result = DateUtils.método(input);
// Assert
expect(result).toBe('esperado');
});
});
});npm test # Todos os testes
npm run test:watch # Modo watch
npm run test:coverage # Com cobertura- Primária:
#ff7b00(Laranja) - Secundária:
#8b4513(Marrom) - Gradiente:
linear-gradient(135deg, #ff7b00, #8b4513)
- Mobile first approach
- Flexbox/Grid para layouts
- Breakpoints padrão para tablet/desktop
Este projeto usa algoritmos astronômicos para fases lunares:
- Ciclo sinódico lunar: ~29,53 dias
- Cálculo baseado em dia juliano
- 8 fases distintas implementadas
Padrão de mocks estabelecido:
- DOM elements mockados em jest.setup.js
- Date objects para testes determinísticos
- Spy functions para isolamento de testes
Interface segue padrão:
- IDs semânticos (calculateBtn, resultDiv, etc.)
- Event listeners no DOMContentLoaded
- Feedback visual para erros/sucessos
- Responsividade mobile-first
- Implementar na classe DateUtils
- Testar com Jest (casos sucesso/erro/extremos)
- Integrar na interface (app.js)
- Documentar no README se relevante
- Verificar responsividade
- Reproduzir com teste unitário
- Corrigir mantendo cobertura
- Validar que não quebra outros testes
- Testar manualmente na interface
- Manter todos os testes passando
- Preservar interface pública
- Documentar mudanças significativas
- Validar performance se necessário
- Branch: main
- Pasta: root (/)
- URL:
https://dwildt.github.io/datas
- Push para main
- GitHub Actions (se configurado)
- Deploy automático
- Testes devem passar antes do deploy
# Clone e setup
git clone https://github.com/dwildt/datas.git
cd datas
npm install
# Desenvolvimento
# Abrir index.html no browser + Live Server
# Rodar testes em watch mode: npm run test:watch- Sempre inclua o contexto do projeto
- Compartilhe código relevante completo
- Mencione se há testes falhando
- Especifique ambiente (browser/Node)
💡 Dica: Use este arquivo como referência ao solicitar ajuda do Claude para manter consistência no desenvolvimento!
🤖 Desenvolvido com Claude AI | 🎨 Design Wildtech | ⭐ Open Source MIT