Aplicação Flask (enviar SD.md -> corrigir pendências -> exportar JSON), scripts de contrato (scripts/) e infraestrutura de deploy (Dockerfile, docker-compose.yml) para VPS via Coolify. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
54 lines
2.1 KiB
Python
54 lines
2.1 KiB
Python
"""Caminhos canônicos do repositório — o único lugar que sabe onde a árvore está.
|
|
|
|
Mudança de estrutura é mudança aqui, e em mais lugar nenhum. A lição veio da
|
|
reorganização V0: eram 103 referências de caminho espalhadas por scripts,
|
|
Makefile e harness, e mover uma pasta quebrava tudo entre a mudança e a
|
|
reescrita.
|
|
"""
|
|
from pathlib import Path
|
|
|
|
RAIZ = Path(__file__).resolve().parent.parent
|
|
CLIENTE = RAIZ / "clientes" / "ses-mg"
|
|
CONTRATO = CLIENTE / "contrato"
|
|
GOVERNANCA = CLIENTE / "governanca"
|
|
PROJETOS = CLIENTE / "projetos"
|
|
ENTRADA = CLIENTE / "_entrada"
|
|
RELATORIOS = CLIENTE / "relatorios"
|
|
COMUNICACOES = CLIENTE / "comunicacoes"
|
|
METODOS = RAIZ / "metodos"
|
|
|
|
# _derivados/ é resultado, nunca fonte: gitignored, regenerável por make derivar.
|
|
DERIVADOS = RAIZ / "_derivados"
|
|
|
|
ITENS = CONTRATO / "itens.yaml"
|
|
|
|
# Visões GERADAS a partir das SDs (inversão da V0, 13/08/2026). Quem lê
|
|
# portfólio, carteira ou catálogo lê o resultado de `make derivar` — os
|
|
# mantidos à mão estão congelados em governanca/levantamentos/.
|
|
PORTFOLIO = DERIVADOS / "portfolio.yaml"
|
|
CARTEIRA = DERIVADOS / "carteira.yaml"
|
|
CATALOGO = DERIVADOS / "catalogo.md"
|
|
|
|
NUMERACAO = GOVERNANCA / "numeracao.yaml"
|
|
TRANSVERSAL = GOVERNANCA / "transversal.yaml"
|
|
TEMPLATE_SD = PROJETOS / "_template" / "SD.md"
|
|
|
|
# Modelo Word do material de leitura prévia (`make leitura-previa`): layout da
|
|
# nota técnica com logo no cabeçalho. Vive em metodos/modelos/ — cópia neutra;
|
|
# a original é evidência da P5·SD24 e evidência não é dependência de script.
|
|
MODELO_NOTA_TECNICA = METODOS / "modelos" / "nota-tecnica.docx"
|
|
|
|
# Projeção financeira: gerada em _derivados/, congelada datada em comunicacoes/.
|
|
PROJECAO_HTML = DERIVADOS / "projecao-executiva.html"
|
|
APRESENTACOES = COMUNICACOES / "apresentacoes"
|
|
|
|
|
|
def sds_reais():
|
|
"""Todos os SD.md sob projetos/*/sds/.
|
|
|
|
O template vive em projetos/_template/, fora de qualquer */sds/* — é o que
|
|
o mantém fora desta varredura por construção, em todos os consumidores de
|
|
uma vez. Era ele contaminando a varredura de faturamento na árvore antiga.
|
|
"""
|
|
return sorted(PROJETOS.glob("*/sds/*/SD.md"))
|