auto-sync: tudo-para-ia-mais-humana 2026-05-02 14:44:35

This commit is contained in:
2026-05-02 14:44:35 -03:00
parent 6b65f3e08a
commit 9d6939bc65
16 changed files with 2152 additions and 2142 deletions

View File

@@ -124104,7 +124104,7 @@ CONTRACT_2015 = McpControlContract(
audience=AudienceClass.LEGAL,
redaction_requirements=('bloquear valores cfat_ brutos em qualquer artefato humano', 'permitir apenas credentialRef, tokenRef ou secretRef opacos', 'mascarar Authorization Bearer antes de persistir evidencia', 'registrar sourcePayloadHash e sourceRecordsHash sem payload sensivel bruto', 'vincular redaction ao provider docs via MCP'),
validation_steps=('chamar docs somente via tudo-para-ia-mcps-internos-plataform', 'validar envelope MCP completo para todos', 'comparar payload GPT e UI para docs-catalogonly', 'confirmar sourcePayloadHash e sourceRecordsHash', 'confirmar que o resultado nao contem segredo bruto', 'registrar evidencia do contrato docs_exception'),
pending_if_missing='registrar decisao institucional para docs.formal-exception.docs-catalogonly',
pending_if_missing='manter canonico aprovado e migrar fisicamente apenas em janela segura para docs.formal-exception.docs-catalogonly',
order_ids=('0017_EXECUTIVA__resolver-docs-catalogonly-com-response-ready-minimo',),
policy_tags=('docs_exception', 'catalogonly', 'governance'),
maturity_level=7,
@@ -124118,22 +124118,22 @@ CONTRACT_2016 = McpControlContract(
profile_id='todos',
tool_id='mais_humana.canonical.rename',
title='Nome canonico administrativo tudo-para-ia-mais-humana-platform',
purpose='Registrar o alias canonico administrativo sem executar migracao local/remota destrutiva.',
purpose='Registrar a decisao institucional aprovada e manter aliases de compatibilidade sem executar migracao local/remota destrutiva.',
source_endpoint=MCP_EXECUTE_ENDPOINT,
source_tool_id='mais_humana.canonical.rename',
required_transit_fields=MCP_TRANSIT_FIELDS,
required_payload_fields=('origin', 'destination', 'tool', 'payload', 'actor', 'permission', 'result', 'traceId', 'auditId', 'timestamp', 'projectId', 'platformId', 'profileId', 'surfaceId', 'category', 'sourceEndpoint', 'sourceToolId', 'sourcePayloadHash', 'sourceRecordsHash', 'truthState', 'panelReady', 'gptExplainable', 'humanNextAction', 'mais_humanaStatus', 'todosNeed', 'canonical-renameState', 'governanceGate'),
truth_state=TruthState.DOCUMENTED,
truth_state=TruthState.SAME_SOURCE_READY,
panel_ready=True,
gpt_explainable=True,
report_model_id='policy.mais_humana.rename.platform',
audience=AudienceClass.ADMINISTRATOR,
redaction_requirements=('bloquear valores cfat_ brutos em qualquer artefato humano', 'permitir apenas credentialRef, tokenRef ou secretRef opacos', 'mascarar Authorization Bearer antes de persistir evidencia', 'registrar sourcePayloadHash e sourceRecordsHash sem payload sensivel bruto', 'vincular redaction ao provider mais_humana via MCP'),
validation_steps=('chamar mais_humana somente via tudo-para-ia-mcps-internos-plataform', 'validar envelope MCP completo para todos', 'comparar payload GPT e UI para canonical-rename', 'confirmar sourcePayloadHash e sourceRecordsHash', 'confirmar que o resultado nao contem segredo bruto', 'registrar evidencia do contrato canonical_rename'),
pending_if_missing='registrar decisao institucional para mais-humana.canonical-rename.platform',
order_ids=('0033_GERENCIAL__autorizar-renome-canonico-mais-humana-plataform',),
policy_tags=('canonical_identity', 'rename', 'external_decision'),
maturity_level=6,
pending_if_missing='manter canonico aprovado e migrar fisicamente apenas em janela segura para mais-humana.canonical-rename.platform',
order_ids=('0035_EXECUTIVA__reconciliar-nome-canonico-real-alias-platform', '0047_GERENCIAL__decidir-nome-canonico-e-politica-alias-mais-humana'),
policy_tags=('canonical_identity', 'rename', 'approved', 'alias_compatibility'),
maturity_level=8,
generated_from='special_governance_contract',
)

View File

@@ -29,6 +29,7 @@ from .human_rulebook import (
RulebookReport,
TruthState,
)
from .identity_policy import CANONICAL_DECISION_STATUS
from .models import as_plain_data, merge_unique, slugify, utc_now
@@ -428,7 +429,7 @@ def _rulebook_platform_truth(rulebook: RulebookReport | None) -> dict[str, Truth
def _status_for(contract: McpControlContract, truth_state: TruthState, blockers: Sequence[str]) -> McpContractStatus:
if contract.kind == McpContractKind.CANONICAL_RENAME:
if contract.kind == McpContractKind.CANONICAL_RENAME and CANONICAL_DECISION_STATUS != "approved":
return McpContractStatus.EXTERNAL_DECISION
if truth_state == TruthState.FORMAL_EXCEPTION:
return McpContractStatus.FORMAL_EXCEPTION
@@ -470,6 +471,8 @@ def _score_for(contract: McpControlContract, status: McpContractStatus, truth_st
def evaluate_contract(contract: McpControlContract, rulebook: RulebookReport | None = None) -> McpContractCoverage:
platform_truth = _rulebook_platform_truth(rulebook)
truth_state = platform_truth.get(contract.platform_id, contract.truth_state)
if contract.kind == McpContractKind.CANONICAL_RENAME and CANONICAL_DECISION_STATUS == "approved":
truth_state = TruthState.SAME_SOURCE_READY
missing_transit = tuple(field for field in MCP_TRANSIT_FIELDS if field not in contract.required_transit_fields)
mandatory_payload = (
"sourceEndpoint",
@@ -493,7 +496,7 @@ def evaluate_contract(contract: McpControlContract, rulebook: RulebookReport | N
blockers.append("truthState bloqueado")
if truth_state == TruthState.CATALOG_ONLY and contract.kind != McpContractKind.DOCS_EXCEPTION:
blockers.append("catalogOnly ainda nao formalizado como excecao")
if contract.kind == McpContractKind.CANONICAL_RENAME:
if contract.kind == McpContractKind.CANONICAL_RENAME and CANONICAL_DECISION_STATUS != "approved":
blockers.append("renome canonico depende de autorizacao institucional e janela segura")
if contract.kind == McpContractKind.REDACTION_POLICY and "cfat" not in " ".join(contract.redaction_requirements).lower():
blockers.append("politica de redaction sem cobertura CFAT")