Linha de OS: tabela linhas-os.yaml como fallback quando o SD.md não declara
Decisão de 2026-09-04, revendo a de 2026-09-03 (sem de-para): o .md continua mandando, e a tabela contrato/linhas-os.yaml (OS Mãe × linha × item) só entra quando o entregável não declara `linha_os`. Linha declarada vai como está e não é conferida contra a tabela; existência/item/status seguem sendo do banco. - caminhos.LINHAS_OS; regras_sd: Canonico(itens, linhas_os), carregar_linhas_os (arquivo ausente = fallback desligado), preparar_linhas_os (valida: formato, linha repetida, dois `padrao`, `padrao` não booleano) e linha_da_tabela. - exporta_sd: ausente → padrão do item; 2+ candidatas sem padrão → pendência nomeando-as; item fora da tabela → pendência. CLI informa quantas linhas vieram da tabela. - app: sessao.adotar_linhas_da_tabela grava a linha no frontmatter da sessão com comentário de origem, para o Salvar SD.md deixar a SD autodeclarada; a tela marca `tabela` e mostra a data da tabela. - testes: SD18, SD27, SD31–36 passam a exportar de saída; SD10 só PO+objetivo; casos sintéticos para tabela ausente, ambígua, sem o item e malformada. - deploy: linhas-os.yaml vive em clientes/ (gitignored) — vai por scp ao volume. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
+2
-1
@@ -37,7 +37,8 @@ services:
|
||||
PORT: "5000"
|
||||
volumes:
|
||||
# OBRIGATÓRIO. O app lê clientes/ses-mg/contrato/itens.yaml a cada
|
||||
# análise e grava SD.md em clientes/ses-mg/projetos/. O caminho no
|
||||
# análise (e contrato/linhas-os.yaml, se existir, como fallback da linha
|
||||
# de OS) e grava SD.md em clientes/ses-mg/projetos/. O caminho no
|
||||
# container é fixo: caminhos.py resolve clientes/ a partir da raiz do
|
||||
# código, que é o WORKDIR /app. Sem esta montagem, a tela inicial abre
|
||||
# e o primeiro upload falha com "Arquivo canônico ausente".
|
||||
|
||||
Reference in New Issue
Block a user