US-XX: [TΓtulo]
Como [persona], eu quero [aΓ§Γ£o] para [benefΓcio].
Acceptance Criteria:
- [ ] AC-1: ...
- [ ] AC-2: ...
Technical Notes:
- ImplementaΓ§Γ£o: ...
- DependΓͺncias: ...
- Testes requeridos: ...
Definition of Done:
- [ ] CΓ³digo implementado
- [ ] Testes unitΓ‘rios (β₯80% coverage)
- [ ] Testes de integraΓ§Γ£o
- [ ] DocumentaΓ§Γ£o atualizada
- [ ] PR aprovado e merged
-
Cada PR deve conter:
- CΓ³digo funcional
- Testes unitΓ‘rios e de integraΓ§Γ£o
- AtualizaΓ§Γ£o de documentaΓ§Γ£o
- Exemplos de uso (quando aplicΓ‘vel)
-
Commits seguem Conventional Commits:
feat:nova funcionalidadefix:correΓ§Γ£o de bugtest:adiΓ§Γ£o de testesdocs:documentaΓ§Γ£orefactor:refatoraΓ§Γ£o sem mudanΓ§a de comportamento
-
Ordem de implementaΓ§Γ£o: Seguir numeraΓ§Γ£o US-XX
Como desenvolvedor, eu quero um repositΓ³rio bem estruturado para comeΓ§ar o desenvolvimento com boas prΓ‘ticas.
Acceptance Criteria:
- AC-1: Monorepo com pastas
backend/,frontend/,docs/ - AC-2:
.gitignoreconfigurado (venv, node_modules, .env, pycache, etc.) - AC-3:
README.mdcom instruΓ§Γ΅es de setup - AC-4:
.env.examplecom variΓ‘veis necessΓ‘rias - AC-5:
docker-compose.ymlpara desenvolvimento local
Technical Notes:
- Backend: Python 3.12+, FastAPI
- Frontend: Node 20+, Next.js 14+
- Estrutura de pastas seguindo convenΓ§Γ΅es de cada framework
Arquivos a criar:
βββ backend/
β βββ app/
β β βββ __init__.py
β β βββ main.py
β β βββ config.py
β βββ tests/
β β βββ __init__.py
β βββ requirements.txt
β βββ requirements-dev.txt
β βββ Dockerfile
β βββ .env.example
βββ frontend/
β βββ src/
β β βββ app/
β βββ package.json
β βββ Dockerfile
β βββ .env.example
βββ docs/
β βββ domain.md
βββ docker-compose.yml
βββ .gitignore
βββ .env.example
βββ README.md
Definition of Done:
- Estrutura criada
-
docker compose upfunciona - Backend responde em
/health - Frontend carrega pΓ‘gina inicial
Como desenvolvedor, eu quero um pipeline de CI/CD para garantir qualidade a cada commit.
Acceptance Criteria:
- AC-1: GitHub Actions workflow configurado
- AC-2: Lint (ruff/eslint) roda em cada PR
- AC-3: Testes unitΓ‘rios rodam em cada PR
- AC-4: Build verifica que cΓ³digo compila
- AC-5: Branch protection em
mainrequer PR aprovado
Technical Notes:
- Backend: ruff (lint + format), pytest
- Frontend: eslint, prettier, vitest ou jest
- Workflow:
.github/workflows/ci.yml
Arquivos a criar:
βββ .github/
β βββ workflows/
β βββ ci.yml
βββ backend/
β βββ pyproject.toml (ou ruff.toml)
β βββ pytest.ini
βββ frontend/
β βββ .eslintrc.json
β βββ .prettierrc
Definition of Done:
- Workflow executa com sucesso
- PR com erro de lint Γ© bloqueado
- PR com teste falhando Γ© bloqueado
Como desenvolvedor, eu quero entidades de domΓnio bem definidas para ter uma base sΓ³lida para cΓ‘lculos NSR da Mina CaraΓba.
Acceptance Criteria:
- AC-1: Entidade
Minecom (name, areas: List[Area]) - AC-2: Entidade
Areacom (name, mine_method: UG|OP, recovery_params) - AC-3: Entidade
RecoveryParamscom (a, b, fixed) para fΓ³rmula linear: recovery = a Γ grade + b - AC-4: Entidade
Metalcom (code: Cu|Au|Ag, price, price_unit, is_byproduct) - AC-5: Entidade
HeadGradescom (cu_grade, au_grade, ag_grade, units) - AC-6: Entidade
MineFactorscom (dilution, ore_recovery) - AC-7: Entidade
CommercialTermscom (payability, tc, rc, freight, penalties) por metal - AC-8: Entidade
PriceDeckcom cenΓ‘rios (Mineral Resources, Reserves, Consensus) - AC-9: Entidade
NSRResultcom breakdown multi-metal - AC-10: Todas entidades com validaΓ§Γ£o via Pydantic
- AC-11: Seed data com minas/Γ‘reas de CaraΓba (ver NSR_REQUIREMENTS.md)
- AC-12: DocumentaΓ§Γ£o do domΓnio em
docs/domain.md
ReferΓͺncia: Ver NSR_REQUIREMENTS.md para lista completa de minas, Γ‘reas e fΓ³rmulas.
Technical Notes:
- Usar Pydantic BaseModel para todas entidades
- Unidades explΓcitas (USD, USD/oz, USD/lb, etc.)
- Suportar conversΓ΅es de unidade comuns
Arquivos a criar/modificar:
backend/app/
βββ domain/
β βββ __init__.py
β βββ metal.py
β βββ ore.py
β βββ terms.py
β βββ result.py
docs/
βββ domain.md
Definition of Done:
- Entidades implementadas
- Testes unitΓ‘rios para validaΓ§Γ΅es
- DocumentaΓ§Γ£o do domΓnio completa
Como NSR Engine, eu preciso calcular a recuperaΓ§Γ£o de Cu e o metal pagΓ‘vel para determinar a quantidade de metal que gera receita.
Acceptance Criteria:
- AC-1: FunΓ§Γ£o
compute_cu_recovery(grade, area)calcula recuperaΓ§Γ£o por fΓ³rmula linear - AC-2: FΓ³rmula de recuperaΓ§Γ£o:
recovery = a Γ grade + b(parΓ’metros por Γ‘rea) - AC-3: Suportar valor fixo de recuperaΓ§Γ£o quando especificado
- AC-4: FΓ³rmula payable:
payable_metal = tonnage Γ grade Γ recovery Γ payability - AC-5: Suportar conversΓ£o de unidades (%, ppm, g/t β fraΓ§Γ£o)
- AC-6: Validar inputs (valores positivos, recovery/payability β€ 100%)
- AC-7: Retornar objeto com valor + unidade + fΓ³rmula aplicada
- AC-8: FunΓ§Γ£o pura (sem side effects)
Technical Notes:
- LocalizaΓ§Γ£o:
backend/app/nsr_engine/calculations.py - ParΓ’metros de recuperaΓ§Γ£o por Γ‘rea em
backend/app/nsr_engine/recovery_params.py - Testes com casos conhecidos de Excel CaraΓba
ParΓ’metros de recuperaΓ§Γ£o (seed data):
RECOVERY_PARAMS = {
"Vermelhos Sul": {"a": 2.8286, "b": 92.584, "fixed": None},
"UG03": {"a": 2.8286, "b": 92.584, "fixed": None},
"Deepening Above - 965": {"a": 4.0851, "b": 90.346, "fixed": 92.9},
"MSBSUL": {"a": 7.5986, "b": 85.494, "fixed": 90.0},
# ... ver NSR_REQUIREMENTS.md para lista completa
}Exemplo de uso:
# Calcular recuperaΓ§Γ£o
recovery = compute_cu_recovery(
cu_grade=1.4, # %
area="Vermelhos Sul"
)
# recovery = 2.8286 Γ 1.4 + 92.584 = 96.544%
# Calcular metal pagΓ‘vel
result = compute_payable_metal(
tonnage=1000, # tonnes
grade=1.4, # % Cu
recovery=0.96544, # calculado acima
payability=0.9665 # 96.65%
)
# result.value = ... tonnes Cu payableDefinition of Done:
- FunΓ§Γ΅es implementadas
- β₯ 5 testes unitΓ‘rios para cada funΓ§Γ£o
- ParΓ’metros de recuperaΓ§Γ£o para todas Γ‘reas de CaraΓba
- ValidaΓ§Γ£o de inputs
- Docstring com fΓ³rmulas
Como NSR Engine, eu preciso calcular a receita bruta para determinar o valor mΓ‘ximo antes de deduΓ§Γ΅es.
Acceptance Criteria:
- AC-1: FΓ³rmula:
gross_revenue = payable_metal Γ price - AC-2: Suportar preΓ§os em diferentes unidades (USD/oz, USD/lb, USD/tonne)
- AC-3: ConversΓ£o automΓ‘tica de unidades de metal para unidade de preΓ§o
- AC-4: Retornar valor em moeda configurΓ‘vel (default USD)
- AC-5: FunΓ§Γ£o pura
Technical Notes:
- ConversΓ΅es: 1 troy oz = 31.1035g, 1 lb = 453.592g
- LocalizaΓ§Γ£o:
backend/app/nsr_engine/calculations.py
Exemplo de uso:
result = compute_gross_revenue(
payable_metal=22.241, # tonnes Cu
price=8500, # USD/tonne
)
# result.value = 189,048.50 USDDefinition of Done:
- FunΓ§Γ£o implementada
- Testes com diferentes unidades
- ConversΓ΅es validadas
Como NSR Engine, eu preciso calcular todas as deduΓ§Γ΅es para chegar ao NSR lΓquido.
Acceptance Criteria:
- AC-1: TC (Treatment Charge): valor por dmt de concentrado
- AC-2: RC (Refining Charge): valor por unidade de metal pagΓ‘vel
- AC-3: Penalidades: lista de (name, value, unit)
- AC-4: Retornar breakdown detalhado de cada deduΓ§Γ£o
- AC-5: Suportar deduΓ§Γ΅es fixas e variΓ‘veis
- AC-6: FunΓ§Γ£o pura
Technical Notes:
- dmt = dry metric tonne
- Penalidades podem ser: fixas, por unidade de metal, por unidade de concentrado
Estrutura de retorno:
DeductionsResult(
tc=5000.00,
rc=2500.00,
penalties=[
{"name": "Arsenic", "value": 1200.00},
{"name": "Moisture", "value": 300.00}
],
total=9000.00,
breakdown=[...] # detalhamento para auditoria
)Definition of Done:
- FunΓ§Γ£o implementada
- Testes para cada tipo de deduΓ§Γ£o
- Breakdown auditΓ‘vel
Como usuΓ‘rio, eu quero o NSR total e por tonelada com breakdown multi-metal para tomar decisΓ΅es de cut-off e planejamento.
Acceptance Criteria:
- AC-1: Calcular preΓ§o do concentrado por metal (Cu, Au, Ag)
- AC-2: Calcular NSR por metal ($/t ore)
- AC-3: Aplicar fatores de mina:
nsr_mine = nsr_processing Γ (1 - dilution) Γ ore_recovery - AC-4: Calcular 3 nΓveis de NSR: Mineral Resources, Processing, Mine
- AC-5: Retornar breakdown com contribuiΓ§Γ£o de cada metal
- AC-6: Retornar perdas detalhadas (diluiΓ§Γ£o, recovery)
- AC-7: Suportar moeda configurΓ‘vel (default USD)
- AC-8: FunΓ§Γ£o pura que orquestra as anteriores
Technical Notes:
- Esta Γ© a funΓ§Γ£o principal que usuΓ‘rios chamam
- Deve retornar breakdown completo para auditoria
- Ver NSR_REQUIREMENTS.md para fΓ³rmulas detalhadas
Estrutura de retorno:
NSRResult(
# PreΓ§o do concentrado
conc_price_cu=2824.68,
conc_price_au=244.76,
conc_price_ag=29.65,
conc_price_total=3099.09,
# NSR por metal ($/t ore)
nsr_cu=108.21,
nsr_au=9.38,
nsr_ag=1.14,
# NSR por nΓvel
nsr_mineral_resources=175.61, # Antes de processing
nsr_processing=131.76, # ApΓ³s perdas de processing
nsr_mine=148.01, # ApΓ³s diluiΓ§Γ£o e ore recovery
nsr_per_tonne=118.72, # NSR final
# Perdas
dilution_loss=27.60,
recovery_loss=16.25,
# Metadados
currency="USD",
ore_tonnage=20000,
conc_ratio=0.0383,
cu_recovery=0.9654,
formula_applied="Ver NSR_REQUIREMENTS.md",
inputs_used={...}
)Golden Test Case (Vermelhos Sul):
- Cu Grade: 1.4%, Au: 0.23 g/t, Ag: 2.33 g/t
- NSR Total esperado: ~$118.72/t ore
- TolerΓ’ncia: β€0.1%
Definition of Done:
- FunΓ§Γ΅es implementadas
- Testes end-to-end do cΓ‘lculo completo
- Golden test com caso Vermelhos Sul
- ValidaΓ§Γ£o contra Excel CaraΓba (diff β€0.1%)
Como QA, eu quero testes de regressΓ£o com valores conhecidos para garantir que cΓ‘lculos nΓ£o mudam inadvertidamente.
Acceptance Criteria:
- AC-1: Arquivo
tests/golden/com casos de teste em JSON/YAML - AC-2: MΓnimo 5 casos cobrindo diferentes cenΓ‘rios
- AC-3: Casos validados manualmente contra Excel
- AC-4: Testes falham se resultado difere > 0.01%
- AC-5: DocumentaΓ§Γ£o de como adicionar novos golden tests
Technical Notes:
- Golden tests sΓ£o "snapshot tests" para valores numΓ©ricos
- Devem rodar no CI em cada PR
Estrutura de caso:
# tests/golden/cases/copper_simple.yaml
name: "Copper Simple Case"
description: "Basic copper NSR calculation validated against Excel"
inputs:
tonnage: 1000
grade: 2.5
grade_unit: "%"
recovery: 0.92
payability: 0.965
price: 8500
price_unit: "USD/tonne"
tc: 80
rc: 0.08
penalties: []
expected:
nsr_total: 180048.50
nsr_per_tonne: 180.05
tolerance: 0.0001 # 0.01%Definition of Done:
- Estrutura de golden tests criada
- 5+ casos implementados
- CI configurado para rodar golden tests
Como frontend, eu quero um endpoint stateless para calcular NSR para obter resultados sem persistΓͺncia.
Acceptance Criteria:
- AC-1: Endpoint
POST /api/v1/compute/nsr - AC-2: Request body com todos inputs necessΓ‘rios
- AC-3: Response com NSRResult completo
- AC-4: ValidaΓ§Γ£o de inputs com mensagens claras
- AC-5: DocumentaΓ§Γ£o OpenAPI automΓ‘tica
- AC-6: Tempo de resposta P95 < 500ms
Technical Notes:
- Endpoint stateless (nΓ£o persiste nada)
- Usa NSR Engine internamente
Request:
{
"ore": {
"tonnage": 1000,
"grade": 2.5,
"grade_unit": "percent"
},
"metal": {
"name": "copper",
"price": 8500,
"price_unit": "USD/tonne"
},
"recovery": 0.92,
"terms": {
"payability": 0.965,
"tc": 80,
"rc": 0.08,
"penalties": []
}
}Response:
{
"nsr_total": 180048.50,
"nsr_per_tonne": 180.05,
"currency": "USD",
"breakdown": {
"gross_revenue": 189048.50,
"payable_metal": 22.241,
"deductions": {
"tc": 5000.00,
"rc": 2500.00,
"penalties": 0,
"total": 7500.00
}
},
"formula": "...",
"inputs": {...}
}Definition of Done:
- Endpoint implementado
- Testes de integraΓ§Γ£o
- OpenAPI documentado
- Exemplos em Swagger UI
Como infraestrutura, eu quero um health check para monitorar disponibilidade.
Acceptance Criteria:
- AC-1: Endpoint
GET /health - AC-2: Retorna
{"status": "healthy", "version": "x.y.z"} - AC-3: Tempo de resposta < 100ms
- AC-4: NΓ£o requer autenticaΓ§Γ£o
Definition of Done:
- Endpoint implementado
- Teste de integraΓ§Γ£o
Como desenvolvedor, eu quero erros padronizados para facilitar debugging e UX.
Acceptance Criteria:
- AC-1: Erros de validaΓ§Γ£o retornam 422 com detalhes
- AC-2: Erros de servidor retornam 500 com ID de correlaΓ§Γ£o
- AC-3: Formato consistente:
{"error": {"code": "...", "message": "...", "details": {...}}} - AC-4: Logs estruturados para todos erros
- AC-5: Nunca expor stack traces em produΓ§Γ£o
Definition of Done:
- Error handlers implementados
- Testes para cada tipo de erro
- Logs verificados
Como Mining Engineer, eu quero um formulΓ‘rio para inserir dados para calcular NSR rapidamente.
Acceptance Criteria:
- AC-1: Campos para: tonnage, grade, recovery, price, payability, TC, RC
- AC-2: ValidaΓ§Γ£o client-side em tempo real
- AC-3: Unidades selecionΓ‘veis (%, ppm, g/t)
- AC-4: Valores default sensatos (ex: payability 96.5%)
- AC-5: BotΓ£o "Calculate" chama API
- AC-6: Loading state enquanto calcula
- AC-7: Mobile responsive
Technical Notes:
- Usar React Hook Form ou similar
- Componentes shadcn/ui
- Zod para validaΓ§Γ£o
Wireframe:
βββββββββββββββββββββββββββββββββββββββββββββββ
β NSR Calculator β
βββββββββββββββββββββββββββββββββββββββββββββββ€
β Ore Input β
β βββββββββββββββ βββββββββββββββ β
β β Tonnage β β Grade β [unit βΌ] β
β β 1000 β β 2.5 β [% ] β
β βββββββββββββββ βββββββββββββββ β
β β
β Metal & Price β
β βββββββββββββββ βββββββββββββββ β
β β Metal β β Price β [unit βΌ] β
β β [Copper βΌ] β β 8500 β [USD/t ] β
β βββββββββββββββ βββββββββββββββ β
β β
β Recovery & Terms β
β βββββββββββββββ βββββββββββββββ β
β β Recovery % β β Payability %β β
β β 92 β β 96.5 β β
β βββββββββββββββ βββββββββββββββ β
β β
β βββββββββββββββ βββββββββββββββ β
β β TC ($/dmt) β β RC ($/unit) β β
β β 80 β β 0.08 β β
β βββββββββββββββ βββββββββββββββ β
β β
β Penalties (optional) β
β [+ Add Penalty] β
β β
β [ Calculate NSR ] β
βββββββββββββββββββββββββββββββββββββββββββββββ
Definition of Done:
- FormulΓ‘rio funcional
- ValidaΓ§Γ£o implementada
- IntegraΓ§Γ£o com API
- Testes de componente
Como Mining Engineer, eu quero ver o resultado com breakdown para entender como o NSR foi calculado.
Acceptance Criteria:
- AC-1: Exibir NSR/ton em destaque (nΓΊmero grande)
- AC-2: Exibir NSR total
- AC-3: Breakdown visual: receita β deduΓ§Γ΅es β NSR
- AC-4: Mostrar fΓ³rmula aplicada
- AC-5: Mostrar todos inputs usados
- AC-6: BotΓ£o "Voltar" para editar inputs
- AC-7: BotΓ£o "Exportar CSV"
Technical Notes:
- Usar grΓ‘fico de barras horizontal para breakdown
- Cores: verde (receita), vermelho (deduΓ§Γ΅es), azul (NSR)
Wireframe:
βββββββββββββββββββββββββββββββββββββββββββββββ
β NSR Result β
βββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββββββββββββββββββββββββ β
β β NSR/tonne β β
β β $180.05 β β
β β USD/t ore β β
β βββββββββββββββββββββββββββββββββββββ β
β β
β NSR Total: $180,048.50 β
β β
β Breakdown β
β ββ Gross Revenue $189,048.50 ββββββ β
β ββ TC -$5,000.00 ββ β
β ββ RC -$2,500.00 β β
β ββ Penalties -$1,500.00 β β
β ββ NSR Total $180,048.50 βββββ β
β β
β Formula Applied β
β NSR = (T Γ G Γ R Γ P Γ Price) - TC - RC β
β β
β Inputs Used β
β β’ Tonnage: 1,000 t β
β β’ Grade: 2.5% β
β β’ Recovery: 92% β
β β’ ... β
β β
β [β Edit] [Export CSV] β
βββββββββββββββββββββββββββββββββββββββββββββββ
Definition of Done:
- Resultado exibido corretamente
- Breakdown visual
- FΓ³rmula e inputs visΓveis
- Testes de componente
Como Mining Engineer, eu quero cenΓ‘rios automΓ‘ticos (base/down/up) para ver sensibilidade rapidamente.
Acceptance Criteria:
- AC-1: Input para variaΓ§Γ£o % (default 10%)
- AC-2: Gerar 3 cenΓ‘rios: Base, Downside (-x%), Upside (+x%)
- AC-3: VariaΓ§Γ£o aplicada ao preΓ§o do metal
- AC-4: Exibir tabela comparativa com os 3 cenΓ‘rios
- AC-5: Highlight das diferenΓ§as
Technical Notes:
- CenΓ‘rios gerados client-side (3 chamadas Γ API) ou server-side (1 chamada)
- Preferir server-side para performance
Wireframe:
βββββββββββββββββββββββββββββββββββββββββββββββ
β Scenario Comparison β
β Variation: [10] % β
βββββββββββββββββββββββββββββββββββββββββββββββ€
β Downside Base Upside β
β Price $7,650 $8,500 $9,350 β
β NSR/ton $162.04 $180.05 $198.05 β
β NSR Total $162,045 $180,048 $198,051 β
β Ξ vs Base -10.0% β +10.0% β
βββββββββββββββββββββββββββββββββββββββββββββββ
Definition of Done:
- GeraΓ§Γ£o de cenΓ‘rios funcional
- Tabela comparativa
- Testes
Como usuΓ‘rio, eu quero exportar resultados em CSV para usar em outras ferramentas.
Acceptance Criteria:
- AC-1: BotΓ£o "Export CSV" na pΓ‘gina de resultado
- AC-2: CSV inclui todos inputs e outputs
- AC-3: CSV inclui timestamp e versΓ£o
- AC-4: Nome do arquivo:
nsr_result_YYYYMMDD_HHMMSS.csv - AC-5: Download inicia automaticamente
Formato CSV:
# NSR Calculation Export
# Generated: 2026-01-28T15:30:00Z
# Version: 1.0.0
Parameter,Value,Unit
Tonnage,1000,t
Grade,2.5,%
Recovery,92,%
Price,8500,USD/t
Payability,96.5,%
TC,80,USD/dmt
RC,0.08,USD/lb
Result,Value,Unit
Gross Revenue,189048.50,USD
Total Deductions,9000.00,USD
NSR Total,180048.50,USD
NSR per Tonne,180.05,USD/tDefinition of Done:
- Export funcional
- Formato CSV correto
- Testes
Como QA, eu quero testes de integraΓ§Γ£o do backend para garantir que API funciona end-to-end.
Acceptance Criteria:
- AC-1: Testes usando TestClient do FastAPI
- AC-2: Cobrir happy path de cada endpoint
- AC-3: Cobrir casos de erro (validaΓ§Γ£o, 404, 500)
- AC-4: Testes rodam no CI
- AC-5: Coverage report gerado
Definition of Done:
- Testes implementados
- CI configurado
- Coverage β₯ 80%
Como QA, eu quero testes de integraΓ§Γ£o do frontend para garantir que UI funciona corretamente.
Acceptance Criteria:
- AC-1: Testes usando Testing Library + MSW (Mock Service Worker)
- AC-2: Cobrir fluxo completo: input β submit β resultado
- AC-3: Testar estados de loading e erro
- AC-4: Testes rodam no CI
Definition of Done:
- Testes implementados
- Mocks configurados
- CI verde
Como QA, eu quero testes E2E para validar o sistema completo.
Acceptance Criteria:
- AC-1: Playwright ou Cypress configurado
- AC-2: Teste do fluxo principal (input β resultado β export)
- AC-3: Roda em CI (pode ser manual trigger)
Definition of Done:
- Framework configurado
- 1+ teste E2E funcional
US-01 (Setup) βββ¬βββΊ US-02 (CI/CD)
β
ββββΊ US-03 (DomΓnio) βββΊ US-04 (payable) βββΊ US-05 (revenue)
β β
βββββββββ¬ββββββββββββ
β
βΌ
US-06 (deductions)
β
βΌ
US-07 (nsr_total)
β
βΌ
US-08 (golden tests)
β
βββββββββββββββββββββΌββββββββββββββββββββ
β β β
βΌ βΌ βΌ
US-09 (API) US-10 (health) US-11 (errors)
β
βΌ
US-12 (form) βββΊ US-13 (result) βββΊ US-14 (scenarios)
β
βΌ
US-15 (export)
β
βββββββββββββββββββββββΌββββββββββββββββββββββ
β β β
βΌ βΌ βΌ
US-16 (int BE) US-17 (int FE) US-18 (E2E)
| US | TΓtulo | Complexidade | DependΓͺncias |
|---|---|---|---|
| US-01 | Setup Repo | MΓ©dia | - |
| US-02 | CI/CD | MΓ©dia | US-01 |
| US-03 | DomΓnio | MΓ©dia | US-01 |
| US-04 | payable_metal | Baixa | US-03 |
| US-05 | gross_revenue | Baixa | US-04 |
| US-06 | deductions | MΓ©dia | US-03 |
| US-07 | nsr_total | Baixa | US-05, US-06 |
| US-08 | Golden Tests | MΓ©dia | US-07 |
| US-09 | API /compute | MΓ©dia | US-07 |
| US-10 | /health | Baixa | US-01 |
| US-11 | Error Handling | Baixa | US-09 |
| US-12 | Form UI | Alta | US-09 |
| US-13 | Result UI | MΓ©dia | US-12 |
| US-14 | Scenarios | MΓ©dia | US-13 |
| US-15 | Export CSV | Baixa | US-13 |
| US-16 | Testes Int BE | MΓ©dia | US-09 |
| US-17 | Testes Int FE | MΓ©dia | US-15 |
| US-18 | E2E | Alta | US-17 |
Total estimado para MVP: 18 User Stories