#!/usr/bin/env python3
"""Entrega a demanda 35 com a resposta 86 (variante A) ja' dada pelo dono.
Chama `fab` por LISTA (subprocess sem shell): o texto leva backticks e `$`."""
import subprocess, sys

RESUMO = """OS ARTIGOS EM DESTAQUE POR NUCLEO — furo 3 dos 7 que a regra 112 nomeou do texto do CS-1.
MEDIDO HOJE: `artigo`, `destaque` e `protocolo` dao 0 ocorrencias em backend/src, backend/prisma e
frontend/src; a MESMA sonda da' resultado para `nucleo`, logo a sonda apanha (regra 110). Existe
`Nucleo` (schema.prisma:510) com os dez que o dono ditou e a marca ja' paga e aprovada; tabela de
artigo ⛔ NAO existe.

JA' DECIDIDO PELO DONO e ⛔ NAO se volta a perguntar: quem escolhe e publica e' o ESPECIALISTA
(regra 51, literal dele; 55; e a 57 avisa que «cadastra tudo» ⛔ nao se estica para cima disto), e
artigo em destaque ⛔ NAO DA' PONTO (regra 51) — e' acervo de consulta, como os protocolos.
⚠️ O texto desta demanda mandava perguntar QUEM POE EM DESTAQUE. ⛔ NAO se perguntou: ele ja' o
decidiu tres vezes. Gastar-lhe a fila duas vezes pela mesma coisa e' que e' o defeito (regra 120b).

O QUE O QUADRO DECIDIU SOZINHO, por ser REVERSIVEL — nomeado para o dono corrigir no aceite:
 1. O ARTIGO E' REFERENCIA + ENDERECO, ⛔ nao ficheiro hospedado: titulo, autores, fonte, ano, link,
    e uma linha do especialista a dizer porque o destacou. RAZAO MEDIDA: o unico armazem do produto
    (marca.servico.ts, var/marcas, CS-51) aceita png/webp/svg com tecto de 512 KB e so' a secretaria
    carrega; e hospedar PDF de revista poe a Secretaria dentro do direito de autor de outra pessoa —
    isso e' O IRREVERSIVEL, e o irreversivel e' dele, ⛔ nao meu. ⟹ Escolhe-se o caminho que ⛔ NAO
    o torna irreversivel: carregar ficheiro depois e' ADITIVO, e o precedente do `marca` ja' existe.
 2. ⛔ SEM SEGUNDO ESTADO: publicar E' por em destaque. Uma lista por nucleo, o mais recente a'
    cabeca. Um subconjunto destacado dentro de um acervo maior e' aditivo depois.
 3. QUEM VE: todo o medico ACEITO ve os artigos dos DEZ nucleos, com chip de filtro por nucleo
    (regra 83). RAZAO MEDIDA, e ganhou confirmacao HOJE: o medico ⛔ nao tem especialidade no produto
    (`Utilizador`, schema.prisma:34-45, so' tem `crm`), e o dono decidiu em 30/09 (resposta 85) que a
    especialidade do medico sera' LISTA PROPRIA da secretaria e ⛔ NAO a lista dos dez nucleos — sao
    duas listas e ⛔ nao se confundem. ⟹ Filtrar «pela especialidade dele» ⛔ NAO E' POSSIVEL aqui e
    ⛔ nao seria correcto mesmo depois: o nucleo e' onde a aula acontece, a especialidade e' o que o
    medico e'. Estreitar depois e' barato; adivinhar agora era errado nas duas pontas.
 4. A SECRETARIA VE TUDO (regra 113) e ⛔ NAO tem botao de publicar no lugar do especialista —
    ver e administrar sim, substituir o acto de outro papel ⛔ nao.
 5. ⛔ SEM declaracao de leitura e ⛔ SEM registo de quem leu — mesmo criterio dos protocolos (51).
 6. O cartao de artigo ⛔ NAO leva imagem (⛔ nao ha' fonte de imagem para artigos): cai para
    surfaceContainerHighest com a MARCA DO NUCLEO ja' aprovada (regra 96 checavel 3).
 7. Banco, enderecos, ecras e a forma de guardar.

FRONTEIRAS, para ⛔ nao se sobreporem: MATERIAL DA AULA (slides e PDF que o especialista anexa a UMA
aula, que o dono decidiu em 30/09 — resposta 84 — ficar para sempre e para todos os medicos) e' a
demanda 33; PROTOCOLOS MUNICIPAIS e' a 38. Esta demanda ⛔ nao lhes toca, e as tres coisas ⛔ nao se
fundem: artigo e' curadoria do ESPECIALISTA por nucleo; material e' anexo DE UMA AULA; protocolo e'
norma da rede ou da unidade.

RESPOSTA 86, decidida pelo dono em 30/09 e ja' dentro deste escopo: A SECRETARIA ATRIBUI OS NUCLEOS
AO ESPECIALISTA — ela diz de que nucleos ele e' REFERENCIA, e ele publica nesses e so' nesses. Ele
recusou as outras duas ('nos nucleos onde ja' deu aula' e 'em qualquer nucleo')."""

CRIT = """Esta' pronto quando estes SEIS factos se exercerem numa instancia a correr, todos contaveis,
e a prova do que tem ecra for CAPTURA DE BROWSER — ⛔ nunca curl:
(1) Um especialista publica 3 artigos no nucleo de Cardiologia — cada um com titulo, autores, fonte,
    ano, endereco e a linha de porque o destacou — e os 3 aparecem no ecra desse nucleo, o mais
    recente a' cabeca, com a MARCA DO NUCLEO a' vista e ⛔ nao um rectangulo vazio.
(2) A SECRETARIA atribui a esse especialista os nucleos de Cardiologia e Urologia (resposta 86 do
    dono). Ele publica nos dois e e' RECUSADO em Pediatria, e a recusa NOMEIA os nucleos onde ele
    pode publicar — ⛔ nao 'sem permissao' seco. A secretaria tira-lhe Urologia: ele deixa de poder
    publicar la' e os artigos que la' publicou CONTINUAM LEGIVEIS a todos, ⛔ nao desaparecem.
    Um especialista SEM nucleo atribuido ve' o ecra de publicar a dizer que nucleos lhe faltam e
    publica 0 artigos.
(3) Um medico ACEITO abre a lista, ve' artigos dos 10 nucleos, filtra Cardiologia por chip e fica com
    3; abre um e SAI para o endereco do artigo. Um medico PENDENTE (regra 46) ve' 0 artigos.
(4) Publicar, abrir e ler 3 artigos ⛔ NAO mexe um ponto: a pontuacao do medico e' o MESMO numero
    antes e depois, e ⛔ nao existe linha nenhuma a registar quem leu (regra 51). Contado, ⛔ nao
    afirmado.
(5) As capturas trazem os SEIS estados (vazio com o verbo que o preenche · a carregar com esqueleto
    da forma final · erro so' no painel afectado · sem permissao a dizer QUE PAPEL ve' · sucesso na
    propria peca · parcial), em Material 3 — cantos arredondados, sombra, Inter, ⛔ nenhum vermelho
    de castigo, foco de teclado visivel (regras 80 a 85).
(6) Um nucleo ARQUIVADO (`arquivadoEm` nao nulo) ⛔ nao aparece no selector de publicacao, e os
    artigos que ja' tem continuam legiveis — arquivar ⛔ nao e' apagar (decisao 6 da demanda 24)."""

r = subprocess.run(["fab", "demanda-pronta", "35", "--resumo", RESUMO, "--criterio", CRIT])
sys.exit(r.returncode)
