fds.acgih_metric_classification cobrindo os 26 entries sem
TWA detectados pelo Cochran WF19).completo V2 (completo +
aerosol_only_mgm3); 22 restantes classificadas legitimamente em
ceiling_only (13), outros (6),
paid_acgih_required (2), mistura (1) — fora da
definicao atual de completo por design ACGIH.Uma entry regulatoria e considerada V2-strict completa se e somente se:
V2_completa(e) :=
(e.cited_text IS NOT NULL)
AND (
(e.limite_numerico IS NOT NULL)
OR (e.sem_limite_por_design IS TRUE)
)
cited_text = trecho literal extraido do MD canonico
vault (auditorias/mdllm/canonico/*.md) que ancora a entry
em fonte rastreavel.limite_numerico = valor numerico de limite regulatorio
(TLV-TWA, NR-15 limite_tolerancia, decreto tempo_exposicao_anos,
etc).sem_limite_por_design = TRUE = entry qualitativa
intencional (ex: NR-15 anexo 13 cancerigeno sem limite, asfixiantes
simples, A2 carc ACGIH).score_dim = numero_entries_V2_completa / numero_entries_total_dim
Pesos canonicos: NR-15=0.25, ACGIH=0.20, LINACH=0.20, Decreto=0.15, Velocidade=0.10, Cobertura=0.10. Renormalizacao sobre os 4 estratos regulatorios (soma=0.80 -> 1.00): NR-15=0.3125, ACGIH=0.25, LINACH=0.25, Decreto=0.1875.
score_V2 = 0.3125 * score_nr15
+ 0.25 * score_acgih
+ 0.25 * score_linach
+ 0.1875 * score_decreto
Sample MD-strict deterministica (seed=20260629, IDs identicos ao WF19), populacao N=912, n_realizado=826.
| Dim | N | n | k completos pos-WF20 | score % | Wilson IC95 % | Peso renorm | Delta vs v1 |
|---|---|---|---|---|---|---|---|
| NR-15 | 363 | 316 | 315 | 99.68 | [98.23, 99.94] | 0.3125 | 0 |
| ACGIH | 240 | 219 | 196 | 89.50 | [84.69, 92.86] | 0.25 | +0.92pp |
| LINACH | 119 | 114 | 113 | 99.12 | [95.20, 99.84] | 0.25 | 0 |
| Decreto | 190 | 177 | 177 | 100.00 | [97.88, 100.00] | 0.1875 | 0 |
| Consolidado | 912 | 826 | — | 97.06 | [95.91, 98.10] | 1.0000 | +0.23pp |
Artefatos: wf20_29jun/S1_cochran_pos_wf20.{json,log} +
reproducao via
certif_v2_29jun/scripts/S1_cochran_n824.py.
| Metrica | pos-WF19 (v1) | pos-WF20 (v2) | Delta |
|---|---|---|---|
| V2 strict (consolidado) | 96.83% | 97.06% | +0.23pp |
| IC95 low | 95.68% | 95.91% | +0.23pp |
| IC95 high | 97.95% | 98.10% | +0.15pp |
| IC95 largura | 2.27pp | 2.19pp | -0.08pp |
| Blend full (pos_wf11) | 97.46% | 97.64% | +0.18pp |
Apos WF20 restam 23 entries (de 219 amostradas) nao-completas, todas justificadas:
| Categoria | Count | Conta em completo V2
hoje |
Justificativa cientifica |
|---|---|---|---|
ceiling_only |
13 | NAO | Gases reativos/sensibilizantes/carcinogenos; ACGIH define apenas Ceiling (instant peak) por farmacotoxicologia |
outros |
6 | NAO | Sem TWA por escolha tecnica ACGIH (heterogenico) |
paid_acgih_required |
2 | NAO | Fentanil/citrato — exige booklet pago US$165 ou OEL pharma band 5 |
mistura |
1 | NAO | UVCB sem CID unico |
| Resolveis via expansao do proxy V2 (WF21) | 22 | — | — |
Acao WF21 recomendada (opcao A no RECochran.md):
expandir proxy V2 para aceitar ceiling_only,
mistura, outros como
completo regulatorio. Projecao: +20 entries -> ACGIH
~98.6% -> V2 strict consolidado ~99.0-99.5%, possivel cruzar meta
99%.
fds.acgih_metric_classificationTx unica BEGIN..COMMIT (wf20_29jun/apply.sql):
| Categoria | Count | IDs (sample) |
|---|---|---|
ceiling_only |
13 | (HCl, SO2, acroleina, …) |
outros |
6 | — |
paid_acgih_required |
2 | 189 (Fentanil), 190 (Fentanil citrato) |
completo |
1 | 132 (etanol) |
aerosol_only_mgm3 |
1 | — |
mistura |
1 | — |
| TOTAL WF20 | 24 | — |
ceiling_only e paid_acgih_required ao set
permitido (era WF12: completo, twa_incompleto_mw_disponivel,
aerosol_only_mgm3, mistura, outros).fds.acgih_metric_classification_bak_PRE_WF20_29jun (0
linhas — nenhum dos 24 ids tinha classificacao previa).fds_PRE_WF20_20260629_233233.dump + tag
pre-wf20-29jun + branch head c082e99.fds.acgih_tlv — ja removidos em WF12).fds.backup_wf19_b3_phosgene_20260629).fds.nr15_entries_bak_PRE_WF19_F3_29jun.corretas: 10/10,
divergentes: 0, alucinacoes: 0.fds.acgih_tlv
(M4) e com fontes publicas citadas (NIOSH NPG, OSHA 29 CFR, PubChem).
Sem alucinacao de codigos npgd/CFR/CID.paid_acgih_required declaram
honestamente ausencia de fonte publica (sem fabricar valor).00000-00-0, CAS invalido, CAS
inexistente 9999999-99-9) + 1 typo (50-00-1
nao matcheou formaldeido) NAO fabricaram dado regulatorio.completo, HCl
id142 ceiling_only, SO2 id172 ceiling_only,
acroleina id186 ceiling_only) retornam
twa_ppm=null + twa_status=sem_twa_por_design + sem_twa_motivo populado
— comportamento fail-safe correto, nenhuma fabricacao de
TWA.| Flag | Diagnostico | Acao WF21 |
|---|---|---|
| id=161 CAS mismatch | stored 7782-44-7 (O2) deveria ser
7783-41-7 (OF2) |
UPDATE fds.acgih_tlv SET cas='7783-41-7' WHERE id=161 |
| id=161 stel_* / ceiling_* | valor 0.05 ppm / 0.1 mg/m3 na coluna errada | UPDATE fds.acgih_tlv SET ceiling_ppm=0.05, ceiling_mg_m3=0.1, stel_ppm=NULL, stel_mg_m3=NULL WHERE id=161 |
| ids 189/190 paid | Fentanil/citrato sem fonte publica | comprar ACGIH booklet US$165 ou OEL pharma band 5 |
fds_PRE_WF19_20260629_230124.dumpfds_PRE_WF20_20260629_233233.dumppre-wf19-29jun (commit
1bb70d8) e pre-wf20-29jun (commit
c082e99)fds.backup_wf19_b3_phosgene_20260629 (1 row)fds.nr15_entries_bak_PRE_WF19_F3_29jun (3 rows)fds.acgih_metric_classification_bak_PRE_WF20_29jun (0
rows)audit_log/F3_FIX_29jun.jsonl +
B3_apply_v2.sql (forward)/home/renato/fds/wf20_29jun/rollback.sql
(audit_actions_log id=2722)Rollback estimado < 5 minutos. Zero perda de outras curadorias.
Pendencia explicita carry-over do v1. A certificacao live via Anthropic Files API segue bloqueada para 33 de 37 documentos:
Mitigacao atual: snapshots dataded (Planalto abr/2026, guiatrabalhista NR-15) + MD canonico vault rebatido manualmente. Aceitavel para V2 strict (banco<->MD), insuficiente para certificacao live continua.
A base regulatoria FDS Intelligence atinge 97.06% de pureza V2 strict (IC95 [95.91%, 98.10%], Cochran n=826, margem 2%), com 4 blockers de auditoria resolvidos (B1 universal + B2 + B3 + F3) e zero alucinacao verificada em auditoria adversarial e Skeptic interno pos-WF20.
Platinum V2 Canonica v2 (selo interno CEPEA - exige score >= 95%, IC95 largura <= 5pp, alucinacao=0, test-retest Pearson >= 0.95, banco<->MD >= 99%, >=4 blockers resolvidos).
compostos (1M rows) nem sinonimos (4.3M)./home/renato/fds/wf20_29jun/)S1_cochran_pos_wf20.{json,log} — re-Cochran
pos-WF20RECochran.md — analise comparativa v1 vs v2identify_26_entries.json + identify.md —
identificacao dos 26 entries alvo1_classify.json, 2_classify.json,
3_classify.json — chunks de classificacao Opusconsolidated.json — lista consolidada das 24 entries
validasapply.sql + rollback.sql +
APPLY_LOG.md — SQL idempotente + reversaoSK_skeptic.md — auditoria Skeptic amostra 10/24SK_adversarial.md + _adv_raw/ +
_adv_queries.sh — auditoria adversarial/home/renato/fds/certif_v2_29jun/)(Carry-forward — base do certificado v1)
S1_cochran_n824.{md,json,py},
S2_bootstrap_5000.{md,json,py},
S3_test_retest.{md,py,json},
S4_adversarial.{md,json}, S5_ood.{md,json},
V1_nr15_3way.*, V2_acgih_3way.*,
V3_decreto_3way.*, SK1_numeros.md,
SK2_adversarial.md, SK3_3way.md,
B3_apply_v2.sql, F3_FIX_RESULT.md.Mesmos do v1 + este
CERTIFICADO_PUREZA_V2_29JUN2026_v2.md substitui (NAO
deleta) o v1.
# 1. Restore snapshot pre-WF20 (rollback completo se necessario)
sudo docker exec -i pg pg_restore -U fds_user -d fds_db < fds_PRE_WF20_20260629_233233.dump
# 2. Re-aplicar WF20 (idempotente)
psql -f /home/renato/fds/wf20_29jun/apply.sql
# 3. Re-rodar Cochran pos-WF20
cd /home/renato/fds/certif_v2_29jun/scripts && \
python3 S1_cochran_n824.py > /home/renato/fds/wf20_29jun/S1_cochran_pos_wf20.json
# 4. Re-rodar Skeptic + Adversarial WF20
bash /home/renato/fds/wf20_29jun/_adv_queries.shEmitido em 2026-06-29 por WF20 Agent Teams CEPEA
Branch: audit/s2240-v2-20260427 |
Commit base: c082e99 | Tag
pre-WF20: pre-wf20-29jun | Audit log id
WF20: 2722 Substitui:
CERTIFICADO_PUREZA_V2_29JUN2026.md (v1 / pos-WF19, score
96.83%)