# -*- coding: utf-8 -*-
"""
Agile Together — os cartoes da lista Referencia (o playbook dentro do quadro).

Cada entrada e' (titulo, descricao). O configurar_board.py importa esta lista e
cria/atualiza os cartoes na lista Referencia — eles sao consulta, nao trabalho:
nao mova estes cartoes para Concluido.

O QUE MUDOU EM 30/08/2026
  Ate' aqui cada cartao carregava um PROMPT inteiro para o aluno copiar. Isso
  fazia sentido quando o prompt era generico. Agora nao e' mais: cada passo monta
  o prompt na hora, ja' preenchido com os SEUS dados (o seu objetivo, os titulos
  reais do seu backlog, a sua Sprint) e o entrega na area de transferencia.
  Prompt guardado em cartao seria uma segunda copia — e a que envelhece.
  Os cartoes agora dizem QUANDO usar cada passo e o que esperar dele.
"""
from idioma import escolher

_CICLO = (
    "O CICLO DE QUALQUER PASSO QUE USA IA\n"
    "1. Escolha o passo no menu — ele entrega o prompt (area de transferencia).\n"
    "2. Cole na sua IA (a que voce ja' usa) e copie a resposta INTEIRA.\n"
    "3. Cole a resposta no cartao \"0. Caixa de entrada\" — o primeiro desta lista.\n"
    "4. Rode o MESMO passo de novo — ele le o quadro e segue.\n\n"
    "Rodar duas vezes e' seguro: sem resposta no cartao, o passo so' devolve o "
    "prompt.\nA regra de ouro nao muda: a IA propoe, VOCE decide."
)

_CARDS_PT = [
    (
        "00. Como este curso funciona",
        "O Agile Together roda um projeto SEU em 3 Sprints, com OKR na frente e a "
        "sua IA ajudando.\n\n" + _CICLO + "\n\n"
        "AS LISTAS DESTE QUADRO\n"
        "- Product Backlog: tudo o que pode ser feito, na ordem de valor.\n"
        "- Sprint Backlog: o que voce assumiu para esta Sprint.\n"
        "- Daily Scrum: o foco de hoje.\n"
        "- Concluido: o que ficou pronto (e' daqui que os KRs sao medidos).\n"
        "- Eventos Scrum: os 7 eventos de cada Sprint, ja' criados.\n"
        "- Referencia: estes cartoes — e, no topo dela, a \"0. Caixa de entrada\",\n"
        "  onde voce cola a resposta da sua IA.\n\n"
        "As quatro primeiras sao ESTADOS do trabalho: um item anda por elas. A "
        "Referencia nao — ela e' consulta. Por isso a Caixa de entrada mora nela, e "
        "nao numa lista propria: colar a resposta da IA nao e' um estado do seu "
        "produto."
    ),
    (
        "C. Consolidar as respostas de DUAS IAs (serve a qualquer passo)",
        "QUANDO\nSempre que a decisao pesar: a Meta do Produto, a ordem do backlog, "
        "a Meta da Sprint. Ouvir duas IAs e comparar e' o jeito mais rapido de "
        "aprender onde CONFIAR nelas — e onde nao.\n\n"
        "O QUE FAZ\n"
        "1. Rode o passo e pegue o prompt.\n"
        "2. Cole o MESMO prompt em DUAS IAs diferentes.\n"
        "3. Cole as DUAS respostas na Caixa de entrada, uma embaixo da outra, sem "
        "apagar os cabecalhos (META DO PRODUTO:, HISTORIAS: ...).\n"
        "4. Tecla C do menu: ela monta o prompt que faz uma IA comparar as duas e "
        "propor UMA — e o poe na sua area de transferencia.\n"
        "5. Cole a resposta consolidada na Caixa de entrada NO LUGAR das duas e rode "
        "o passo normal.\n\n"
        "O QUE OLHAR\nA parte que vale nao e' a resposta pronta: e' a COMPARACAO. "
        "Onde as duas concordam, voce pode confiar; onde DIVERGEM, quem decide e' "
        "voce — e e' exatamente ai' que voce aprende.\n\n"
        "POR QUE PRECISA DA TECLA C\nColar duas respostas e rodar o passo direto NAO "
        "da' erro: a segunda sobrescreve a primeira em silencio, e o quadro fica so' "
        "com a ultima. A tecla C e' o que le as duas."
    ),
    (
        "01. Configurar o quadro (uma vez)",
        "QUANDO\nUma vez, no comeco. O Iniciar ja' criou o seu quadro e guardou o "
        "token; este passo prepara as listas.\n\n"
        "O QUE FAZ\n"
        "- Pergunta o NOME do seu projeto e o seu OBJETIVO, e renomeia o quadro.\n"
        "- Renomeia as listas que o ProjectAdm cria por padrao.\n"
        "- Cria Daily Scrum, Eventos Scrum e Referencia — e poe a Caixa de entrada\n"
        "  como primeiro cartao da Referencia.\n"
        "- Cria os eventos Scrum de todas as Sprints (7 por Sprint).\n"
        "- Guarda os ids das listas no .env — voce nao digita nenhum.\n\n"
        "SEM IA\nEste passo nao usa prompt."
    ),
    (
        "02. Meta do Produto + Product Backlog",
        "QUANDO\nDepois de escrever o seu OBJETIVO (o O do OKR).\n\n"
        "O QUE FAZ\nCria o cartao da META DO PRODUTO — o compromisso do Product "
        "Backlog, pelo Guia do Scrum — e os itens do backlog, ordenados por "
        "prioridade e com pontos.\n\n"
        "O QUE OLHAR\nA Meta do Produto e' contra o que o backlog e' ordenado. Se "
        "um item nao ajuda a chegar nela, ele nao e' prioridade — e talvez nem "
        "seja item.\n\n"
        "DICA\nE' o passo que mais ganha com DUAS IAs: a Meta do Produto e a ordem "
        "do backlog decidem o resto do curso. Veja o cartao \"C. Consolidar as "
        "respostas de DUAS IAs\" desta lista.\n\n" + _CICLO
    ),
    (
        "03. Refinar o backlog",
        "QUANDO\nAntes de cada Sprint Planning, e sempre que voce aprender algo que "
        "muda a ordem.\n\n"
        "O QUE FAZ\nAtualiza prioridade, pontos e CRITERIOS DE ACEITACAO dos itens "
        "que ja' existem (refinar_backlog), ou reescreve e acrescenta itens "
        "(atualizar_backlog).\n\n"
        "O QUE OLHAR\nItem sem criterio de aceitacao nao esta pronto para entrar "
        "numa Sprint: nao ha' como dizer que ficou pronto sem discutir."
    ),
    (
        "04. Decompor um item em tarefas",
        "QUANDO\nQuando um item do Sprint Backlog e' grande demais para caber num "
        "dia de trabalho.\n\n"
        "O QUE FAZ\nCria a checklist \"Decomposicao em Tasks\" dentro do cartao, "
        "com 3 a 7 tarefas de um dia ou menos.\n\n"
        "O QUE OLHAR\nTarefa que nao cabe num dia continua grande demais — e' onde "
        "a Sprint costuma travar sem ninguem perceber."
    ),
    (
        "05. Sprint Planning",
        "QUANDO\nNo primeiro dia de cada Sprint.\n\n"
        "O QUE FAZ\nCria a META DA SPRINT (o compromisso do Sprint Backlog), move "
        "para o Sprint Backlog os itens escolhidos e grava a DATA DE INICIO da "
        "Sprint no evento — e' essa data que permite calcular KR1 e KR2.\n\n"
        "O QUE OLHAR\nO passo so' aceita itens que EXISTEM no seu Product Backlog. "
        "Se a IA inventar um, ele aborta sem criar nada."
    ),
    (
        "06. Daily Scrum",
        "QUANDO\nTodo dia util da Sprint, no mesmo horario, em 15 minutos.\n\n"
        "O QUE FAZ\nMove para a lista Daily Scrum o foco de hoje, cria as tarefas "
        "que o dia pediu, registra impedimento (se houver) e conclui o proximo "
        "Daily em aberto.\n\n"
        "O QUE OLHAR\nA Daily inspeciona o progresso rumo a META DA SPRINT e "
        "replaneja o dia — nao e' reuniao de status para ninguem."
    ),
    (
        "07. Sprint Review",
        "QUANDO\nNo ultimo dia da Sprint, antes da Retrospectiva.\n\n"
        "O QUE FAZ\nLista o que foi concluido DENTRO da janela desta Sprint e o que "
        "ficou pendente, e grava o resumo executivo em Eventos Scrum.\n\n"
        "O QUE OLHAR\nA Review inspeciona o incremento e adapta o Product Backlog. "
        "Mostre o resultado funcionando; nao fale sobre ele."
    ),
    (
        "08. Sprint Retrospective",
        "QUANDO\nLogo depois da Review — ela fecha a Sprint e avanca o contador.\n\n"
        "O QUE FAZ\nRegistra o que deu certo, os problemas e ate' 3 acoes — e as "
        "acoes viram cartoes [Melhoria] no Product Backlog.\n\n"
        "O QUE OLHAR\nA Retrospectiva olha para o PROCESSO, nao para o produto. "
        "Acao que nao vira cartao nao acontece."
    ),
    (
        "09. OKR Check-in semanal",
        "QUANDO\nUma vez por semana, no mesmo dia, em 15 a 30 minutos.\n\n"
        "O QUE FAZ\nO verificar_krs.py le o seu quadro e calcula os 4 KRs do curso: "
        "taxa de conclusao (KR1), velocidade crescente (KR2), consistencia dos "
        "eventos (KR3) e alavancagem de IA (KR4).\n\n"
        "O QUE OLHAR\nO KR nao e' o numero do fim: e' a frase que junta indicador, "
        "ponto de partida e meta. O que o check-in le e' o ATINGIMENTO. "
        "Confianca: verde >=70%, amarelo 40-69%, vermelho <40%."
    ),
    (
        "10. Apresentacao final e licoes aprendidas",
        "QUANDO\nDepois da ultima Sprint.\n\n"
        "O QUE FAZ\nConsolida o quadro inteiro num roteiro de apresentacao: "
        "atingimento por KR, entregas, eventos e os padroes das Sprints.\n\n"
        "O QUE OLHAR\nA curadoria e' sua. A IA ajuda a ver padrao; quais sao as 3 "
        "licoes que voce leva, quem escolhe e' voce."
    ),
]

# ─────────────────────────────────────────────────────────────────────────────
# O IDIOMA DO PACOTE — tabela paralela, nao catalogo de frases
#
# Cada descricao e' um documento de varios blocos, montado por concatenacao. O
# T() nao serve aqui por um motivo mecanico: o extrator do catalogo coleta os
# LITERAIS dentro de T(), e aqui o argumento seria uma variavel — os cartoes
# ficariam FORA do catalogo e nunca seriam traduzidos, sem ninguem perceber.
#
# `escolher()` troca a lista inteira; sem a lista EN, o pacote sai em portugues.
# ─────────────────────────────────────────────────────────────────────────────
try:
    from referencia_cards_en import CARDS_EN as _CARDS_EN
except ImportError:
    _CARDS_EN = None

CARDS = escolher(_CARDS_PT, _CARDS_EN)
