Add or change a calculation case
Procedimento repetível para alterar regras de cálculo do Meeting Cost CLI.
1. Localize a mudança
- Domínio/validação/fórmula →
src/meeting-cost.js - Uso, mensagens de CLI, exit codes →
src/cli.js - Não mova I/O para o domínio nem cálculo para a CLI
2. Defina a regra
- Declare a pré-condição (ex.: novo limite, caso de borda, ajuste de fórmula).
- Atualize a validação ou o retorno em
calculateMeetingCost. - Preserve invariantes existentes, salvo pedido explícito para mudá-las:
- números finitos
participants >= 1durationMinutes > 0hourlyCost >= 0
- Mensagens de erro: diga o que corrigir, em português.
3. Cubra casos de borda
Verifique mentalmente (e via CLI quando possível):
| Caso | Expectativa |
|---|---|
| Entrada válida típica | Custo correto com 2 casas |
participants = 1 |
Válido |
participants = 0 ou negativo |
Erro |
durationMinutes fracionário positivo |
Válido |
durationMinutes <= 0 |
Erro |
hourlyCost = 0 |
Válido (custo 0) |
hourlyCost negativo |
Erro |
NaN / Infinity |
Erro |
| Aridade ≠ 3 na CLI | Uso + exit 1 |
4. Verifique
- Leia
package.jsone execute somente scripts existentes. - Hoje existe
npm start. Exemplo:npm start -- 5 30 100. - Se a mudança for de validação, exercite também um caso inválido e confirme exit
1. - Se
test,lintoutypecheckainda não existirem, registre-os como sensors pendentes — não invente comandos. - Atualize
PROJETO.mdouAGENTS.mdsó se a mudança alterar fatos documentados e isso for necessário.
5. Conclua
- Domínio permanece puro
- CLI permanece o único ponto de I/O
- Nenhum sensor inexistente foi inventado
- Comportamento validado com os comandos reais disponíveis